← Ben Lai

Blog

40 notes ·RSS ·JSON Feed

    • 1 min read

    The agent needs a manager, not a persona

    Giving an agent a personality is easy. Giving it scope, escalation, metrics, and consequences is the actual management work.

    • 1 min read

    The first dashboard should be boring

    Your first dashboard should not answer every question. It should make the next bad week easier to understand.

    • 1 min read

    Secrets are not configuration

    Config explains how a system should behave. Secrets decide who the system is allowed to become. Treating them the same is how quiet incidents start.

    • 1 min read

    The calendar is part of the architecture

    A system that only works when one person is online has a hidden dependency. The calendar is where that dependency shows up.

    • 1 min read

    Your CLI needs a receipt

    A command-line tool that changes state should leave behind proof. Otherwise every operator becomes a detective.

    • 1 min read

    The model switch is a product change

    Changing models is not an implementation detail. It changes tone, latency, failure modes, cost, and sometimes the user's trust.

    • 1 min read

    Don't hire a platform team to avoid decisions

    Platform teams do not remove product choices. They just make the cost of unclear choices more expensive and more reusable.

    • 1 min read

    The migration plan is the feature

    A replacement system is not shipped when the new code works. It is shipped when the old world can move without losing its history.

    • 1 min read

    Latency is a product decision

    Speed is not an engineering vanity metric. It decides which workflows feel safe, which ones feel broken, and which ones users avoid.

    • 1 min read

    The second system is a spreadsheet

    The shadow spreadsheet is not a user failure. It is a map of the workflow your product refused to own.

    • 1 min read

    The approval button is the product

    If a workflow needs approval, the approval step is not administrative glue. It is the product deciding where trust stops.

    • 1 min read

    Your demo is not a deployment plan

    A demo proves the happy path can be performed once. Deployment is the work of making the unhappy paths survivable every day.

    • 1 min read

    Logs are a user interface

    Logs are not exhaust. They are the interface your future operator uses when every other interface has stopped being enough.

    • 1 min read

    The smallest useful agent

    The useful agent is not the one with the most tools. It is the one with the narrowest job that still removes a human handoff.

    • 1 min read

    Stop hiding risk in the backlog

    A risky task does not become safer because you put it below the fold. Backlogs are where uncertainty goes to avoid conversation.

    • 1 min read

    The best internal tool is boring

    Internal tools do not need delight. They need memory, defaults, permissions, and a way to undo the expensive mistake.

    • 1 min read

    Prompts are interfaces

    A prompt is not a spell. It is the interface between intent, context, and a machine that will happily misunderstand both.

    • 1 min read

    Your roadmap needs a trash can

    A roadmap without deletion is just a promise accumulator. The hard part is not adding ideas. It is creating a place for dead ones to stay dead.

    • 1 min read

    The status page is a product

    A status page is not a compliance artifact. It is the interface customers use when your product has already failed them.

    • 1 min read

    Vibe-coded code has more bugs. Price it in.

    Recent honest data shows AI-assisted code shipping with around 1.7× the rate of major defects. The pitch isn't "ship faster." It's "ship faster, accept the bug tax, decide if it's worth it."

    • 1 min read

    Stop calling it context engineering

    The term sounds like a craft. It mostly hides a budget you refused to write down. Call it what it is — engineering with a token budget — and the work changes shape.

    • 1 min read

    The 25% rule

    AI can only touch the quarter of your week you spend actually coding. The biggest productivity wins live in the other three-quarters and nobody is selling them to you.

    • 1 min read

    The /goal command is a confession

    Coding agents now ship with explicit "set a goal" commands. Last year's pitch was that they figured out the goal themselves. The walking back is real, and worth understanding.

    • 2 min read

    The runway you didn't spend is the option you bought

    We had four hundred thousand left when revenue covered burn. We didn't celebrate. We left it in the account. Eighteen months later that four hundred thousand was the reason we said no to a bad term sheet.

    • 1 min read

    Your MCP server is a prod dependency

    We installed five Model Context Protocol servers last quarter and version-pinned none of them. The first outage was educational.

    • 2 min read

    The deploy log is your changelog. Tag accordingly.

    Stop writing changelogs by hand. The deploy log already contains everything that changed. The work is in making the deploy log readable — that's a one-day project, not a process change.

    • 1 min read

    Local models won the long tail

    The frontier wins demos. A 70B model on one good GPU wins the two hundred calls per day workflow nobody tweets about. The economics flipped this year.

    • 2 min read

    Customer support is product research wearing a costume

    I answered support tickets for the first six months of the company. Then I stopped, and within a quarter we shipped three features nobody asked for. The inbox knew what to build. I had stopped reading it.

    • 1 min read

    The eval you don't have, production already wrote for you

    Every customer-reported failure of an LLM feature is a test case you refused to file. The dataset is free; you're throwing it away nightly.

    • 2 min read

    Observability is a tax you pay before you owe it

    The first incident is when you discover you don't have logs. The second is when you discover the logs aren't searchable. By the third you have observability, and a story about how expensive it would have been not to.

    • 1 min read

    One worktree per agent

    Sub-agents and tool-loop trees are not parallelism. Git worktrees are. The unit of useful concurrency in a coding swarm is the working tree, not the model call.

    • 2 min read

    Your first hire is a multiplier or a manager. Pick.

    The two failure modes of first hires are "the second me" who does what I do twice and "the senior person" who manages me instead of working. The good first hire does neither.

    • 1 min read

    The output token tax

    Inputs got cheaper this year. Outputs didn't. Your verbose agent is paying both halves of a bill that quietly stopped being symmetric.

    • 2 min read

    Postgres is a queue. Stop reaching for Kafka.

    A team I know spent six weeks operationalising Kafka for a workload doing two hundred messages per second. Postgres did the same job with forty lines and a SELECT FOR UPDATE SKIP LOCKED.

    • 2 min read

    Every agent should have a passport

    We onboard humans with identity, scope, audit, and approval. Agents get an env var and a system prompt. The next round of incidents will be about this.

    • 2 min read

    Pricing pages are written for people who won't buy

    I spent two weeks rewriting our pricing page. Conversion didn't move. What moved conversion was rewriting the sales email — the document everyone who actually paid had already read by then.

    • 2 min read

    The 3-person team is the new 50-person team

    A friend's startup did $4M in revenue last year with three engineers and a tax contractor. Their competitor did $6M with forty-two people. The competitor has more meetings.

    • 2 min read

    Your prompt isn't cache-shaped

    I asked a team what their cache hit rate was. The lead said "we cache responses, right?" That single misunderstanding was costing them about fourteen thousand dollars a month.

    • 2 min read

    The cheapest dependency is the one you delete

    I removed a logging library last quarter. Build time dropped twelve seconds, bundle dropped four hundred KB, the on-call rotation forgot it existed. We had been paying rent on it for three years.

    • 2 min read

    You're optimizing the wrong axis of agent cost

    I watched a team spend a quarter dropping their per-call latency by 40%. The bill kept going up. The bottleneck was never speed.