A frontend architecture you can still understand in two years
The principles we use to keep large web applications easy to change long after the initial build — boundaries, naming, and resisting premature abstraction.
Practical write-ups on the decisions, trade-offs, and small wins behind the software we build. Opinions are our own and earned the hard way.
The principles we use to keep large web applications easy to change long after the initial build — boundaries, naming, and resisting premature abstraction.
How to build for reliability without letting your monthly cloud bill drift out of control — right-sizing, autoscaling, storage tiers, and visibility.
The habits and guardrails that let us change production database schemas calmly and safely, even on busy systems with no maintenance window.
Why we don't chase coverage numbers, and how we decide which tests are worth writing — testing behaviour, not implementation, and trusting the pyramid.
You don't need a wall of dashboards to run software well. The handful of signals that actually matter, and how to avoid drowning in alerts.
An API is a promise. The principles we follow to design interfaces that are predictable, hard to misuse, and possible to evolve without breaking everyone.
Things will go wrong in production. The blameless review process we use to turn outages into lasting improvements rather than into someone's bad day.
Why we reach for proven, well-understood tools before novel ones, and how to spend your limited budget for novelty where it actually counts.
How we run code review as a tool for sharing knowledge and catching real problems, rather than a gate for nitpicks and personal style preferences.