Changelog
A public version of the feed the homepage uses for its local, private "since you were here" diff. No account, no analytics, no server-side memory.
Your last mile is a human
Many products are automated until the final awkward step. That human step is not an exception. It is part of the system.
The product spec is a commitment
A spec is not a brainstorm with headings. It is a promise about what the team is choosing not to rediscover every week.
Make the reversible choice
Teams waste courage on decisions that can be changed. Save the hard process for the choices that actually close doors.
The team calendar is technical debt
Recurring meetings are production load on the people who build the product. Treat them like any other long-running process.
Your backlog is not a strategy
A backlog is inventory. Strategy is the reason most of that inventory should never be built.
The best security feature is a boring log
Security work often starts with controls. It should also start with whether you can explain what already happened.
Write the postmortem while it is small
Waiting for a major incident before writing clearly about failure teaches the team to practice only under stress.
The agent should ask fewer questions
Clarifying questions are useful when they reduce risk. They are waste when the system could have carried the context itself.
Pricing is an ops decision
Pricing does not end on the pricing page. It becomes metering, invoices, support policy, limits, exceptions, and renewal work.
The most important test is the retry
Happy-path tests prove the first attempt works. Production usually wants to know what happens after the first attempt fails.
Measure the work you refuse to automate
Manual work is not always bad. Unmeasured manual work is how teams lose weeks without noticing.
The release train needs brakes
Shipping on a schedule is good. Shipping without a stop condition is just confidence wearing a timetable.
Your support macro is a roadmap
Repeated support macros are not just saved replies. They are product gaps that have learned to speak politely.
One good default beats ten settings
Settings look like user empowerment. Often they are product indecision exported into the account page.
The staging environment lies
Staging is useful, but it is not production with lower stakes. Its data, traffic, permissions, and failure modes are usually fiction.
The AI budget needs an owner
LLM spend hides inside product usage, experiments, support tools, and developer workflows. Without one owner, nobody is managing the whole bill.
Ship the negative path
Products are usually designed for yes. The no path is where trust is either preserved or quietly burned.
The on-call rotation is the org chart
The real ownership model is not in the planning doc. It is in the list of people who get paged when the system tells the truth.
Your database has product opinions
Schema choices decide what the product can remember, forget, enforce, and explain. That is product work in SQL clothing.
The best demo has a log file
If a demo cannot show what happened under the surface, it is selling magic where the buyer needs machinery.
Delete the feature flag
A stale feature flag is a branch in production. Every branch has a carrying cost, even when the flag is set to true.
The model card belongs in the repo
If a model is part of production behavior, its assumptions and limits should live beside the code that depends on it.
The invoice is product feedback
Billing questions are rarely just billing questions. They are the moment customers explain what they thought they bought.
The cheapest scale test is a limit
You do not need a heroic load test to learn how the system fails. Add a limit and watch what tries to exceed it.
Your PR template is a control surface
A pull request template is not paperwork. It is the cheapest place to make risky changes explain themselves.
The cache is a contract
A cache is not just a performance trick. It is a promise about freshness, invalidation, and what users are allowed to believe.
Stop optimizing the empty state
Empty states are easy to polish because nobody is angry yet. The loaded, messy, half-broken state is where the product earns trust.
A good API has one boring path
Flexible APIs look generous until every customer integrates differently. The best path should be narrow, obvious, and hard to miss.
Write the runbook before the incident
A runbook written after the outage is a memoir. A runbook written before it is a control surface.
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.
The first dashboard should be boring
Your first dashboard should not answer every question. It should make the next bad week easier to understand.
CLI receipt contract
A JSON receipt shape for state-changing commands, suitable for logs, support tickets, and rollback notes.
Goal mandate template
A pasteable goal block for coding agents that makes the stop condition explicit before implementation starts.
MCP production dependency policy
A short policy for allowing an MCP server into a production-adjacent agent workflow.
Prompt cache audit checklist
A mechanical review for prompt templates that should hit provider prefix caches instead of paying cold-start prices.
Worktree agent launcher
A small shell script that gives each coding agent an isolated git worktree and branch from fresh main.
Managed frontier APIs may keep the long tail
The local-model argument underweights operations, compliance, and opportunity cost; many teams may rationally keep paying frontier prices for boring calls.
Verbosity can be cheaper than ambiguity
The essay treats output tokens as waste too quickly; in some agent systems, extra words are the audit trail that prevents a much more expensive support or safety failure.
Kafka buys organizational clarity, not just throughput
The Postgres-default argument may understate the value of an explicit event log when multiple teams need replay, ownership boundaries, and independent consumers.
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.
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.
Your CLI needs a receipt
A command-line tool that changes state should leave behind proof. Otherwise every operator becomes a detective.
State-changing AI or ops CLIs will be expected to emit receipts that make later audit possible.
Prediction opened at 58%, resolves by 12/31/2027.
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.
Teams will increasingly treat LLM model changes as product changes, not implementation details.
Prediction opened at 64%, resolves by 6/30/2027.
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.
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.
AI-product teams will treat cache behavior as a product contract because cache misses change latency, cost, and quality.
Prediction opened at 57%, resolves by 12/31/2027.
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.
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.
Teams shipping AI features will move model cards or model-behavior notes into the repository alongside code.
Prediction opened at 55%, resolves by 12/31/2027.
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.
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.
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.
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.
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.
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.
Prompts are interfaces
A prompt is not a spell. It is the interface between intent, context, and a machine that will happily misunderstand both.
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.
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.
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."
AI-assisted coding will keep showing a higher serious-defect rate unless teams narrow it to well-tested or low-blast-radius work.
Prediction opened at 62%, resolves by 6/30/2027.
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.
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.
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.
Early-stage teams will keep underinvesting in observability until incidents force the first boring dashboard.
Prediction opened at 60%, resolves by 6/30/2027.
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.
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.
Production agent teams will treat MCP servers as governed dependencies with pinning, scoped credentials, and health checks.
Prediction opened at 70%, resolves by 3/31/2027.
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.
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.
Local or fine-tuned open models will handle most high-volume narrow LLM calls in cost-sensitive production stacks.
Prediction opened at 68%, resolves by 6/30/2027.
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.
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.
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.
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.
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.
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.
Output-token volume will become a named margin-control metric for agent products, separate from input-token volume.
Prediction opened at 72%, resolves by 3/31/2027.
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.
Postgres-backed queues will remain the better default than Kafka for most internal queues under roughly 1,000 events per second.
Prediction opened at 66%, resolves by 12/31/2027.
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.
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.
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.
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.
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.
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.