I'm building a 30k‑line V12 codebase solo with a "team" of 4 AIs

8 pointsposted a month ago
by garylauchina

Item id: 46462910

10 Comments

brettgriffin

a month ago

I've built up to a very similar process, but it looks like yours is a much better oiled machine. Specifically I struggle with getting enough architecture thoughts in place for the programming agent to really do what it needs to do without me going behind it and refining its work. Your research repo is incredibly inspiring and has given a lot of think about.

It's sort of surreal to feel the change in the software development lifecycle over the last 24 months - what you are describing will very likely become the norm amongst most developers.

> Cursor is happily charging me something like $100 a day. If anyone from Cursor is reading this – is there a “solo dev building absurdly large systems” discount tier I’m missing?

I'm also paying a similar bill (but honestly I think it's incredible value). I'm curious about this comment though - I picture LLM pricing as consumption rather than per-seat (token in/token out) - would it really make sense to offer volume discounts on a single seat versus total volume? These platforms shouldn't really care about how many developers are consuming the tokens, just the total consumption, right?

user

a month ago

[deleted]

garylauchina

a month ago

Sounds like you’ve been bumping into the same wall and asking the same questions.

Since I switched to this layered setup, the amount of “cleaning up after the programmer” dropped a lot. The programmer‑AI has become much more obedient, and most of the real fights now happen with the architect‑AI instead.

You’re absolutely right that it’s hard to front‑load enough architectural thinking. That’s also why this project raced its way to version 12 so quickly – every time the architecture felt wrong, I forced myself to rethink and re‑document it, not just patch the code.

On the token/pricing side, I honestly haven’t thought too hard about the exact math. One way or another, we’re all just helping to pay Nvidia’s bills, right?

garylauchina

a month ago

Small correction on my own post: I just went back and measured things properly and… I was way off.

The codebase isn’t ~30k lines anymore – it’s around 223k lines of code, plus about 243k lines of Markdown (research notes, design docs, experiment logs, etc.). So the “large system + context window” pain I’m describing is happening at a significantly bigger scale than I initially claimed.

Which also explains why I’ve become slightly obsessed with measurement, contracts, and forcing everything through text before letting the “programmer” AI touch the code.

nunobrito

a month ago

You really seem on top of your game, just to mention that 30k code bases aren't typically complex on my experience. When they, it just means you need to simplify the overall struture, unify as much as possible the functions

garylauchina

a month ago

Fair point – 30k LOC by itself isn’t “complex” in any absolute sense. In my case the difficulty isn’t the raw size, it’s:

long‑running experiments and measurement contracts that span many modules,

an evolving research agenda (I’m at V12 now, with quite a few pivots along the way),

and the fact that I’m doing all the design + implementation solo.

I agree that when something feels complex at this scale, it’s often a sign the structure needs to be simplified and unified. A big part of what I use the “architect” agent for is exactly that: forcing myself to rewrite and consolidate interfaces instead of just piling on more code.

nunobrito

a month ago

Yes, you got it.

The structure tends to become "simpler" as it matures and you realize which parts can be made reusable (reality tends to be different from plans) and which "laws" you enforce across the project structure to ensure the architecture fits the goal and not the other way around.

Good luck and keep up sharing your progress. Very good article.

zkmon

a month ago

How does the hand-off work among the team roles? Is it a water-fall or iterative? How does the programmer complain about something that's wrong or inconsistent in architecture or requirements?

garylauchina

a month ago

It’s iterative, not a strict waterfall, but the constraint is “text first, code second”.

A typical loop looks like this:

I talk with Perplexity/ChatGPT to clarify the requirement and trade‑offs.

The “architect” Cursor window writes a short design note: intent, invariants, interfaces, and a checklist of concrete tasks.

The “programmer” Cursor window implements those tasks, one by one, and I run tests / small experiments.

If something feels off, I paste the diff and the behavior back to the architect and we adjust the design note, then iterate.

There is a feedback channel from “programmer” to “architect”, but it goes through me. When the programmer model runs into something that doesn’t fit (“this API doesn’t exist”, “these two modules define similar concepts in different ways”, etc.), I capture that as:

comments in the code (“this conflicts with X”), and

updates to the architecture doc (“rename Y to Z, merge these two concepts”, “deprecate this path”, etc.).

So the architect is not infallible. It gets corrected by reality: tests failing, code being awkward to write, or new edge cases showing up. The main thing the process enforces is that those corrections are written down in prose first, so future changes don’t silently drift away from whatever the system used to be.

In that sense the “programmer” complains the same way human ones do: by making the spec look obviously wrong when you try to implement it.

timhigins

a month ago

what is the goal of this software? how close is it to success?

measuring lines of code is meaningless without its real world or business impact. apologies if this is described in the docs, went through the repo but couldn’t tease that out