Selling the open decentralized web
Aaron Powell wrote that while decentralization is insurance, that’s not enough to sell the majority on paying the cost it takes to switch away from the major platforms. I agree! I think we can do better.
Hello from Leaflet
After all that effort making my static personal site posts standard.site compatible, I decided to start using Leaflet instead.
Stay curious about your systems
As AI changes how engineering work gets done, we still have to build and maintain our understanding of the systems we're responsible for.
Integrating my website with ATProto
A first pass at integrating my personal site with the ATProto network. Publishing standard.site records on deploy and embedding bluesky comments on my post pages.
Grounding questions
Three simple questions to ask when feeling stuck or off course: what problem am I solving, what constraints exist, and why? Regularly returning to these questions prevents unproductive spirals and helps refocus energy on goals that truly matter.
Building for longevity
Argues for considering the long-term maintenance burden when making technical choices. Every dependency, language, and infrastructure decision carries ongoing costs. Choosing boring, stable technology minimizes that burden and lets you focus your limited time on what matters.
Prioritize learning
Makes the case for engineering teams to invest in cultivating their collective knowledge. A team's shared understanding is one of its most valuable assets, and putting in extra effort to grow it pays dividends in better problem-solving and decision-making.
Custom GitHub Actions with Docker
A walkthrough of building a custom GitHub Actions workflow using Docker instead of marketplace actions. Covers the action file, Dockerfile, entrypoint script, and workflow configuration for building a Zola site and deploying it to Netlify.
Asynchronous remote work
A comprehensive guide to working remotely and asynchronously. Covers foundational principles like information availability and clear goals, practical team processes for meetings and work tracking, and the personal challenges of staying productive without real-time collaboration.
What makes an API simple?
Explores the tradeoffs in API design between minimal request inputs and richer contextual data. Argues that 'simple' should mean simple to use correctly, not just simple to look at. When an API encapsulates business logic, shifting complexity onto the API can reduce errors for consumers.
How I'm currently writing Haskell
A walkthrough of a Haskell development environment built on NixOS, Vim, GHCid, and Hoogle. Covers the Nix and Cabal setup, fast compiler feedback with GHCid, testing with hspec, and documentation lookups, all prioritizing simplicity and locally contained tooling.
Growing in the open
A reflection on the recurring cycle of starting to write online, feeling anxious about past content, and tearing it all down. Recognizing these decisions as fear-driven, and committing to sharing and growing in the open despite imperfection.