Notes about writing and running software


I use an Apple Silicon laptop. A script symlinks dotfiles to $HOME and sets up my text editor, programming languages, language servers, and CLIs.


At work, I prefer a monorepo and a workflow with a kanban board, GitHub code review, and CI/CD.


My text editor is Neovim in a Kitty terminal. My Leader key is mapped to Space. Leader+r runs code. Leader+t and Leader+s run tests. I fix code on file save. \ searches projects.


These steps help me debug slow queries.

I happily run Postgres-backed job queues in production.

I try to create indexes concurrently to avoid locking writes to a table.

I like concat_ws instead of concat() to avoid ugly output.


To better see cause and effect, I use a four-phase test structure, avoid mystery guests, and use stubs and spies instead of mocks.


There are many ways to put static HTML on the internet but I've been happiest with a custom Go script that runs on GitHub Actions when I merge changes and deploys to Deno Deploy.


I like SSH keys with Ed25519 instead of RSA for good security, performance, and aesthetics.


I don't point DNS directly to an origin server. I point DNS to a CDN that pulls content from the origin.

I prefer writing thin HTTP clients rather than using a third-party SDK.


Heroku Postgres has a great feature they call "dataclips" which let users enter SQL queries into a textarea, run them against a read replica, and export to CSV. I wrote a Heroku dataclips clone for fun.


I restore my development database from a production copy daily.

When my production app processes change state, I send Slack notifications with AWS Lambda.

If needed, I configure Heroku Postgres read replicas with Rails to scale read traffic and free primary database connections for writes.

Even better is to serve a web app from multiple regions and route read-only queries to same-region Postgres replicas.


Growth is a discipline that blends design, marketing, and engineering to help users get value from products. When I've worked on growth for SaaS products, a north star metric and retention curves have been helpful inputs to the roadmap.