May 27, 2026 · 5 min read

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.

May 19, 2026 · 5 min read

What makes a codebase easy to hand off

READMEs, environment variables, naming consistency, and the kind of tests that actually help new engineers.

May 12, 2026 · 5 min read

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.

May 5, 2026 · 5 min read

Build vs buy: how we actually decide

The core vs commodity question, total cost of ownership, and when it makes sense to switch sides.

Apr 28, 2026 · 5 min read

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.

Apr 23, 2026 · 5 min read

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.

Apr 17, 2026 · 4 min read

Why small teams ship faster

Communication overhead, decision speed, and the conditions where the math actually holds.

Apr 12, 2026 · 5 min read

The actual cost of one more feature

How scope creep compounds in slow motion and how to have the conversation before it starts.

Apr 7, 2026 · 5 min read

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.

Apr 2, 2026 · 4 min read

Why we default to boring technology

The case for Postgres, proven frameworks, and tools that have been around long enough to be trustworthy.