engineering
Categories
Filter by tag
- 2026-04-30engineering5 min read
Splitting central from regional without duplicating everything.
Multi-region isn't 'one stack, copy-pasted N times.' Three layers, each with a clear job, and a single rule about who depends on whom.
- 2026-04-26engineering4 min read
Build vs buy on AWS: when self-hosted compute beats managed.
Managed services bill per output. Self-hosted compute has a fixed base. The economics cross, and it pays to know where the crossover is before you commit.
- 2026-04-22engineering3 min read
Tunneling to a private RDS without a bastion.
Reach a private RDS instance from your laptop without a bastion EC2. SSM Session Manager port forwarding does it in one command.
- 2026-04-17engineering5 min read
Real-time with Socket.io across instances: what I learned the hard way.
Socket.io behind a load balancer with multiple backend instances breaks in three specific ways. Each one teaches you something the docs underplayed.
- 2026-04-11engineering6 min read
SQS between services, not just for long jobs.
Synchronous calls are the default reflex. Half of them shouldn't be. A queue between producer and consumer changes the failure shape of your whole system.
- 2026-04-04engineering4 min read
Prisma + multi-tenancy: one database, many tenants, no chaos.
The reflex when your first big customer asks for a dedicated database is to say yes. That reflex scales until it kills you.
- 2026-03-28engineering3 min read
Spec-driven development: if the rule lives in Slack, the AI invents it.
Business rules living in Slack, in the PM's head, or in implicit code aren't seen by anyone. How to write specs your codebase, your AI, and your next dev consume as context.
- 2026-03-21engineering3 min read
Typed errors: each error with its code and its destination.
`throw new Error('not found')` tells you nothing in production. Each error is a type, with a stable code, and declares whether it deserves to reach the error tracker.
- 2026-03-14engineering2 min read
100 items, 101 queries: the N+1 pattern and how to kill it.
N+1 shows up every time you put an `await` inside a `for`. How to spot it in your logs and swap it for a single query.