I’ve been building a software factory with 15 Codex subscriptions, working across a dozen software projects over the last month. In this post, I’ll dive deep into my philosophy on coding with AI, how I built my software factory (including my complete tech stack), and an overview of my projects.
My factory yielded +6.7M, -4.7M lines of code this month
Step 1: Use the best tokens most efficiently
You must relentlessly seek leverage so that most of your time is working on hard problems, not babysitting execution.
Token efficiency is key. The best open-source models still lag closed models when you account for heavy subsidies from the big labs. When writing code, you should always use the ~best available model on the pareto frontier [0], taking subsidies into account [1].
I run 15 Codex Pro 20x subscriptions [2]. If we use the 70x subsidy reported by SemiAnalysis in June, I’m spending $210k/month on premium inference. That’s a run rate of $2.5M yearly – for only $36k [3].
I currently have 15 Codex Pro 20x subscriptions. This means I’m leveraging $210k/mo cooking with the finest models – a run rate of $2.5M yearly. And I'm paying $36k, which is less than minimum wage in Washington State. (70x subsidy reported by @SemiAnalysis_ in June)
a portrait of my software factory over the last 30d my yield was +6.7M and -4.7M lines of code over 25 projects my factory is 2x more productive in the afternoon and least productive in the morning some days i just let it ride but i'm trying to be on the factory floor more
[0] I track the pareto frontier of model capability on aicharts.io (not accounting for subsidies). Model selection is critical when your agents write production code. Optimize for quality over cost or speed. When you skimp on model quality, you end up wasting time (and tokens) in the long run.
[1] When I did a bake-off between Claude Max and Codex Pro 20x, I was able to use GPT 5.6 Sol (Max/Ultra) for much longer than I was able to use Fable.
[2] Managing 15 subs is somewhat painful, so I built a simple CLI over Codex App Server to track my accounts. I’m also building a metaharness called Hra, which lets me pool my subs, and experiment with agent architecture/interface ideas tuned to my particular constraints.
[3] $36k might sound like a lot of money, but it’s far less than the wage of a human engineer.
Step 2: Build a knowledge base
Codebases have an intelligence of their own. They encode a system of rules and beliefs, with deep veins of tacit knowledge.
Early on, I decided to build a knowledge base (kb) for my factory. In data, kb is simple: back-linked markdown files and a SQLite db. In code [0], kb gives agents tools to search knowledge more efficiently by combining full-text search, tags, semantic search [1], graph search, and git context.
This has worked out swimmingly in my factory. Agents record plans and decisions in kb. This helps them learn over time. At the agent orchestration layer, I believe continual learning is solved. Just give agents the ability to coordinate with each other across time and space. They’ll figure it out.
[0] I design all my agent tools with CLI and SDK interfaces. The SDK lets agents write code to invoke the tool, which opens up a whole new universe of possibilities.
When growing a high-quality codebase with LLMs, you must ground the model in the intelligent part of its training distribution.
Because much of a codebase is prose, not code (comments, commits, documentation, etc), you must ensure all your prose is high quality. When you do this, you’ll notice the difference in the quality of your conversations and the feeling of your code. When your inputs resemble the work of someone with good taste, you’ll find this triggers smarter circuits in the LLM, and your outputs will improve.
I use two markdown files to achieve better prose: WRITING.md for internal prose, and STYLE.md for external copy.
Step 4: Choose a solid tech stack
My agents now run for hours, sometimes even days. I dispatch prompts when I wake up, around lunchtime, after dinner, and before bed. How did I pull this off?
Agentic coding is like golfing. First, I chose an uncomplicated tech stack [0] and established my preferred coding conventions [1] – improving the accuracy of my swing. Once I had a solid foundation, I enabled agents to verify work themselves – improving the power of my swing.
I created a custom UI testing framework called direct, which lets agents simulate and verify app states. direct sits at the seam between your app and the internet. It gives agents an efficient way to record rigged UI flows, and verify them efficiently. I was inspired by the success of direct in my factory, so I built a browser automation tool called wrench [2]. I mostly use wrench for personal automations, but it’s occasionally useful for automating dev workflows where an official API isn’t available.
Shared dev platform: UI, accounts, payments, observability
“Make invalid states hard to represent.”
“Keep dependencies deliberate. Separate shared foundations from product composition.”
“Prefer coherent cross-file correctness and focused deterministic evidence to a knowingly weaker design.”
“Treat production risk, rollout, monitoring, provider access, and external coordination as real costs.”
“Keep ownership documented. Each source boundary gets an AGENTS.md with exactly # CONTENTS and #GUIDELINES. Plans, notes, and runbooks belong in kb.”
“Record future work in a verifiable plan under kb/plans".”
[2] wrench is inspired by agent-browser’s derive-client skill; it lets agents grow an SDK for any target website.
Step 5: Let the agents cook
My factory was ready, so I decided to point it at some personal infrastructure projects. First, I made the personal website of my dreams. Then I dreamed up more projects. I accumulated 94 new domains in 1 month.
Recently, I started using Grok Bot. As the creator of Zo Computer, I’m deeply familiar with the space – we were the first personal agent with a cloud computer. I’ve long respected Benji Taylor and the Cursor team, so I was excited to try Bot. The computer use is slick, the agent is fast, and the interface is simple and delightful.
ok damn @cursor_ai mogged everyone with @bot i kneel
By plugging in homegrown tools from my software factory, I’ve spawned a bunch of useful agents in my Grok Bot:
Wrench – In Bot’s browser, I signed into X, Substack, Bluesky, Instagram, Threads, Facebook, Reddit, YouTube, and Hacker News. I ask Wrench Bot to browse, summarize, and post to social media platforms, saving myself from brainrot.
Read – My personal website includes a living reading list that summarizes all the interesting links I encounter. The full contents of every article, video, or PDF get stored in my kb, so my agents have full context on my interests. And articles in my kb get synced automatically to my website. These days I just send links to Read Bot, it replies with a useful summary, and I know that useful side effects are happening in the background.
Invest – I connected my Public account and asked Invest Bot to devise a portfolio strategy (saved to kb) and execute it autonomously, waking up to iterate 3 times a day. We’ll see how this goes.
Stripe – I’m a big Stripe nerd, so I built hraness.com/stripe to catalog Stripe news since its inception. Stripe Bot notifies me when anything newsworthy happens.
News – I made an aggregator for the news I’m interested in at rough.day. News Bot sends me a summary each day.
Atet – I’m building an agentic media toolkit called Atet, named after the solar barque Ra sails on through the underworld. atet iteratively creates images, diagrams, and videos, using a mix of generative and code techniques. I chat with Atet Bot to transmute raw assets and ideas into media gold.
People – I’m building an agentic rolodex called PeopleBlade. I’ve ingested all my contacts (with useful metadata, like how often I’ve interacted with a person) across iMessages, Apple Contacts, Gmail, LinkedIn, Telegram, WhatsApp, Instagram, and Facebook. PeopleBlade lets me sync my rolodex to the cloud, and enrich thousands of contacts across my entire life.
SEO – I hooked up PostHog, and now SEO Bot iteratively improves SEO across all my web properties.
act60 – I’m building a suite of tools and resources for Puerto Rico Act 60. I generated a CLI and hooked it up act60 Bot, which now manages a bunch of administrivia for me.
I’m spending half a trillion tokens per day, and I’m just getting started. Now that I’m done with phase 1 of my software factory, I’ve started cooking some more ambitious projects. More on that soon.