Writing
Technical posts on software, process, and decisions. Written by the people who build, not by a content team.
How to run a first technical meeting with a client
The questions that surface the real problem, what to listen for, and what to send within 24 hours.
What makes a codebase easy to hand off
READMEs, environment variables, naming consistency, and the kind of tests that actually help new engineers.
Why we don't use microservices for MVPs
The infrastructure complexity microservices require, and why a modular monolith is almost always the right starting point.
Build vs buy: how we actually decide
The core vs commodity question, total cost of ownership, and when it makes sense to switch sides.
Writing a spec a developer can actually use
User stories, acceptance criteria, known unknowns, and why listing what's out of scope matters as much as what's in.
How we handle auth in every new project
Why we default to an auth provider, when we don't, and the floor for rolling your own.
Why small teams ship faster
Communication overhead, decision speed, and the conditions where the math actually holds.
The actual cost of one more feature
How scope creep compounds in slow motion and how to have the conversation before it starts.
How we scope a project before writing a line of code
What a real discovery phase looks like, what goes in the spec, and why skipping it always costs more.
Why we default to boring technology
The case for Postgres, proven frameworks, and tools that have been around long enough to be trustworthy.