“I ship 37,000 lines of code a day with AI.”

That’s not impressive. That’s terrifying.

Code is not an asset. It’s a liability. As Edsger Dijkstra famously said, lines of code should be counted as lines spent, not lines produced.

And yet here we are again. Recently, Garry Tan from Y Combinator mentioned shipping 37k lines of code (LOC) per day.

Garry Tan screenshot about shipping 37k lines of code

But LOC counts are meaningless by themselves. It’s like bragging that your company just took on $1.3 billion in debt. Nobody celebrates the amount itself. What did you do with that extra capital? Did you enter a new market? Did you acquire a competitor? What matters is what you built with it and whether the return justifies the cost.

Code works the same way. Every line you add to a system creates ongoing obligations. It will:

  • rot over time
  • expand the surface area for bugs
  • increase complexity
  • slow down future development
  • eventually need to be rewritten or deleted

Also remember that most of the cost of software also happens after the code is written. Roughly 70–90% of the lifecycle cost occurs in maintenance.

Some people argue AI fundamentally challenges Dijkstra’s argument. Perhaps. AI may make large codebases easier to read, maintain, and extend. But easier to carry is not the same as worth carrying. The real question is whether that extra code improves the business enough to justify its existence. If the answer is no, AI did not solve the problem. It just helped you build a bigger liability faster.

If anything, the AI era makes discipline more important, not less.

Don’t optimize for LOC. Optimize for outcomes:

  • revenue generated
  • problems solved for users
  • speed of shipping useful features
  • how easily the product can evolve

Code is just the tool. The business outcome is the asset. Treat code like the liability it is.

(see the original Linkedin Post)