Johnny Butler

May 11, 2026

Why stripe_subscription_id.present? is a governance time bomb

You have written this line. So have I. def can_access? stripe_subscription_id.present? endIt looked fine at the time. Probably week three of the project. Billing was working, Stripe was sending webhooks, and access was gating correctly. Ship it. That line is not a billing integration. It is a governance failure you have deferred. Here ...
Read more
May 9, 2026

Spec Kit Is Free. Waterfall Was Too.

Specs are useful. They are not governance. Spec Kit exists because vibe coding made an old software problem suddenly more dangerous. Vague intent has always produced bad software. The difference now is speed and plausibility. A loose prompt no longer produces only a rough prototype. It can produce a feature-shaped object with files, te...
Read more
May 1, 2026

Engineering Had Governance First. Then Marketing Demanded It Too.

Once I had the engineering side of the Dark Factory model working, governed pull requests, agentic workflows with clear handoffs, playbooks applied on every PR, a different problem became obvious. Engineering was touching marketing surfaces. And marketing had no equivalent governance layer. That is not a complaint about marketing. It i...
Read more
April 29, 2026

When you own the full SDLC alone, governance is not process. It is survival.

Governance is not something I learned from a book. It is something I could not afford to get wrong. Twenty years of working in startups does something to the way you think about shipping software. Not because startups are glamorous or fast or any of the things people say. But because in a small team, there is nobody to hand the respons...
Read more
April 26, 2026

I built an agentic marketing department. The hard part was not the AI.

Building the engineering side of the Dark Factory operating model was easier than I expected, and the reason was clear in retrospect: I had 20 years of SDLC experience to draw on. I already knew what a good pull request workflow looked like. I knew what a reasonable CI/CD pipeline should do, how code review should work, what a deployme...
Read more
April 23, 2026

You Have to Put the Reps In

AI learns the same way a junior engineer does. Through reinforcement. Through feedback. Through someone watching closely enough to catch the drift early and correct it before it becomes a habit. Most people do not think about it that way. They treat an agent like a search engine with ambition — give it a task, expect a result, get frus...
Read more
April 22, 2026

Good Agentic Development Looks a Lot Like Good Software Engineering

People talk about agentic workflows as if they need a completely different set of principles. I think the opposite. The more I work with coding agents, the less I think the winning teams will be the ones with the cleverest prompts or the strongest models. I think they will be the teams that understand software engineering discipline de...
Read more
April 21, 2026

A governed PR should tell you why it exists

A diff tells you what changed. A governed PR should tell you why it exists. That is why PR summaries in the factory now include a Why section near the top. This sounds like a small template change, but it fixes a real review problem. Without it, the reviewer has to reconstruct intent from implementation detail. They read the code, infe...
Read more
April 21, 2026

Why I did not want setup to start in another dashboard

If a product is meant for technical people who already work in agent-native tools, setup should not begin by pulling them into another dashboard. That was one of the product decisions I cared about most with Explore. Too many tools still claim to fit modern technical workflows, but the first real step is the same old pattern: open a br...
Read more
April 20, 2026

Why I wanted setup to stay in the agent

A static CV can still introduce someone. It just does less proof work than it used to. It is easy to make a profile look polished now. Cleaner summary. Better phrasing. Tidier bullets. That part got cheap. If you want stronger signal, you need something people can actually inspect, with more depth, more context, and a better next quest...
Read more
April 19, 2026

Static CVs are not enough proof anymore

AI made polished summaries cheap. That is useful for cleanup, but it is not useful for differentiation. A static CV can still do the first job. It can tell someone where you worked, what you shipped, what stack you used, and what kind of roles you have had. But it does not do much proof work anymore. If everyone can generate a cleaner ...
Read more
April 18, 2026

Strong governance is what gets agents disciplined enough to auto-merge and deploy

This is the part I care about most now. Agents writing code is no longer the interesting part. That part is already here. They can move fast, write code, fix bugs, add tests, work through a codebase, and get a surprising amount done without much friction. We know that now. What matters is whether any of that can be trusted enough to ca...
Read more
April 17, 2026

One shared CLI is better than four fake integrations

A few people have asked whether Explore only works with Codex. It doesn’t. It now works with Codex, Claude Code, OpenCode, and Cursor through the same shared flow. That matters because I have no interest in building the same integration four times and pretending that counts as product work. That game never ends. New tool, new wrapper, ...
Read more
April 14, 2026

From Development Governance to Production Governance

My software dark factory behind Explore is an end-to-end agentic operating platform with governance built in. Development governance earns trust before merge. Production governance proves the intended outcome is actually live. The release lane bridges the two, and smoke testing turns confidence into evidence.
Read more
April 7, 2026

Strong engineers need more than a polished summary now

AI made polished summaries cheap. That is good for formatting. It is bad for proof. A strong engineer can now look polished in an afternoon. Clean headline. Sharp summary. Sensible project bullets. Nice phrasing. None of that is hard anymore. The problem is that polish used to do more proof work than it does now. It suggested care. It ...
Read more
April 2, 2026

I have a dark factory for engineering. I now have a factory for marketing too.

Today I had the marketing agents review one of Explore’s public pages against the brand, mission, and source-of-truth docs we’ve set for the product. They identified a few bounded improvements, packaged them into a clean handoff, and passed the approved changes to engineering. Engineering then picked up that brief, made the scoped page...
Read more
April 1, 2026

Your app is not agent accessible because it has a chatbot

A lot of companies seem to think agent accessible means they added a chatbot. It doesn’t. A chatbot is just a new way to talk to the old interface. An agent-accessible app is something an agent can actually use. That means it can understand what the product does, what actions are available, what state it is in, what constraints apply, ...
Read more
March 31, 2026

Three mobile paths for Explore

I’ve been thinking about mobile for Explore. Not because every product needs an app. And not because “launched a mobile app” looks nice on a CV. The more interesting question is: what would mobile teach me about the product, and what would it teach me about the factory? Explore is a Rails product. My dark factory is also primarily Rail...
Read more
March 31, 2026

Explore is now agent-accessible.

The interesting part is not the CLI. It’s the login flow. Run explore login, approve it in the browser, and your agent gets authenticated access to the real app. Not a toy sandbox. Not a pasted API key. Not some half-baked “AI feature”. The actual app. This is where software is going. We’re moving from “has an API” to “an agent can act...
Read more
March 30, 2026

Any engineer or technical professional looking for work should be thinking about how to make their profile more memorable than a static CV.

I’ve been testing that with Explore. Using the Explore CLI, I gave Codex my latest CV and asked it to compare it to my current Explore profile, recommend the right updates, and apply the relevant changes without touching my writing. Within a few minutes, the profile was updated and live. That is the interesting bit for me. Not just a n...
Read more
March 29, 2026

Why Explore became agent-accessible, and why profiles need to become agent-accessible too

Explore started as a better proof surface for humans. That was the original idea. Something better than a static CV or polished personal site. Something that let people go deeper into the real signal behind a person’s work, writing, projects, and judgement. But it became clear to me that profiles no longer only need to be readable by h...
Read more
March 28, 2026

Explore: a better proof surface for engineers in the AI era

I’ve been increasingly concerned by the level of anxiety across our profession. I keep seeing very good engineers, people with real experience, strong judgement, and excellent CVs, feeling uncertain about how to stand out in a market that suddenly feels much more crowded and much noisier than before. A lot of that gets framed as “AI wi...
Read more
March 28, 2026

I’ve now pushed 1000+ jobs through my software factory.

At that point, it stops feeling like an AI coding assistant and starts feeling like an operating model. The factory is now taking on more responsibility across the path from spec to shipped: auto-merge, production deploy, and verification. I’ve started scoring it against StrongDM’s software factory maturity classification, and on my cu...
Read more
March 24, 2026

At small scale, people can absorb workflow complexity. At larger scale, the workflow has to absorb it.

A lot of operational pain gets misdiagnosed as a tooling problem or a headcount problem. At small scale, experienced people can often bridge the gaps. They remember the exceptions, know which signals matter, spot what needs doing next, and carry a lot of context in their heads. That works for a while. But as volume, variation, and oper...
Read more
March 24, 2026

In complex systems, software dark factories do more than ship the change. The context they preserve around the change can be just as valuable as the code itself.

One of the biggest advantages is that a shipped job can carry its own decision trail with it: • the prompt/spec • the run log • the verification steps • the PR • the final code and tests That becomes more valuable as the system evolves. Because months later, the hard part is often not reading the code. It is understanding the context t...
Read more
March 22, 2026

Software delivery gets easier to improve once you make the timing visible.

Software delivery gets easier to improve once you make the timing visible. One thing I’m starting to like in our dark factory workflow is recording delivery timing directly on the PR. Not just token usage or the final diff, but how the work actually moved: context gathering, implementation, verification, external wait, and total elapse...
Read more
March 20, 2026

If your PR is the first time the change is properly validated, the feedback loop is too slow.

One of the simplest dark factory wins for us has been pushing more verification earlier, before the PR ever hits shared CI. That means running a meaningful slice of the expected checks locally first, then attaching the evidence and caveats to the work. Cloud CI still matters. It is the shared, trusted gate. But it should confirm qualit...
Read more
March 19, 2026

I’ve started treating agent friendliness as a core product feature, not an add-on.

One thing I’m now adding to personal project is an agent manifest. The idea is simple: when an agent lands on the product, it should understand what the product does, what state the account is in, what actions are available, what the next best step is, and what guardrails apply. Not just for fully autonomous agents either. Also for hum...
Read more
March 18, 2026

Agentic development is the pair-programming model I actually wanted.

I always understood the theory of pair programming. In practice, it often felt like two people doing work one strong engineer could do alone. AI changed that for me. I always got the value on paper: two brains, shared context, faster feedback, fewer blind spots, better knowledge transfer. But especially in startup and scale-up environm...
Read more
March 17, 2026

Most teams are not building software dark factories.

Most teams are not building software dark factories. They are bolting AI onto old delivery models and mistaking that for the shift. Coding faster with ChatGPT, Copilot, or Codex is useful, but that is still surface level. The real shift starts when the workflow itself is redesigned around AI: scoped prompts, execution runs, validation ...
Read more

See more posts »