Blog
Technical notes. What I've learned by building.
Categories
Filter by tag(55)
Business3 min read
Ten questions to ask a software vendor before signing.
The ten questions that separate a serious quote from an optimistic one, with the answer you should actually be listening for in each case.
Business5 min read
We moved our support into the tool we already had.
At Brault, support lived in a third-party tool. Now it runs on our own platform: AI drafts, people reply. How it works, and what to take from it.
Business4 min read
Does AI actually work for a small business?
It's good for four concrete things and bad for four others. The line between the two lists has a logic to it, worth understanding before you spend.
Business
4 min read
Buy a system off the shelf, or build one?
Six criteria for choosing between a tool that already exists and one built for you, plus a simple rule for knowing which side you're on.
Business
3 min read
The five questions I ask before writing a line of code.
I don't ask what you want the system to do. I ask five other things, and the answers decide whether the project goes well long before any technical choice.
Business
3 min read
Why custom software projects fall apart.
Projects rarely fail because the work was hard. They fail on decisions nobody makes, and three signs show up long before it's too late.
Business
4 min read
Why the same request can cost five times more.
You asked three suppliers for the same thing and got 3,000, 8,000 and 20,000. Two of them aren't ripping you off: you asked three different questions without realising.
Business
4 min read
Your problem isn't that you're missing a system.
Many companies that ask for a system don't have a software problem. They have an order problem. And software on top of disorder multiplies it.
Engineering
5 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.
Engineering
4 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.
Engineering
3 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.
Engineering
5 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.
Engineering
6 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.
Engineering
4 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.
Engineering
3 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.
Engineering3 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.
Engineering2 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.
Notes2 min read
RSA Conference 2024, my first big tech conference.
I went to RSA Conference 2024 still in college. I didn't understand half of what was on the floor. That was the point.
Notes3 min read
The setup I build from.
Desk, PC, software. What sits on the table and what I actually use, day to day.