{"id":609,"date":"2026-02-13T11:55:25","date_gmt":"2026-02-13T19:55:25","guid":{"rendered":"https:\/\/www.danshapiro.com\/blog\/?p=609"},"modified":"2026-02-13T11:55:29","modified_gmt":"2026-02-13T19:55:29","slug":"you-dont-write-the-code","status":"publish","type":"post","link":"https:\/\/www.danshapiro.com\/blog\/2026\/02\/you-dont-write-the-code\/","title":{"rendered":"You Don&#8217;t Write the Code. You Don&#8217;t Read the Code Either."},"content":{"rendered":"\n<p>A few months ago, I walked into Justin McCarthy&#8217;s office at StrongDM and noticed something wrong with his colleague Jay&#8217;s monitor.<\/p>\n\n\n\n<p>He had a Google Spreadsheet open. Columns, rows, formatting &#8211; it looked exactly like Sheets. Except the URL bar said localhost.<\/p>\n\n\n\n<p>That could not be so.<\/p>\n\n\n\n<p>Gsuite was not alone. Slack was there, Jira, Okta\u2026 all running locally? A digital twin of the entire enterprise SaaS universe, there on that desktop, faithful enough that the Python client libraries couldn&#8217;t tell the difference. Jay confirmed that it was in fact what it looked like; he built it himself. It took a couple of weeks. He used their <a href=\"https:\/\/simonwillison.net\/2026\/Feb\/7\/software-factory\/\">Dark Factory<\/a>.<\/p>\n\n\n\n<p>The essence of what I learned from them could fit on a notecard.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Standing on One Foot<\/h2>\n\n\n\n<p>I&#8217;ve been having quiet conversations with Justin McCarthy, CTO of StrongDM, for months now. I wrote about the first one &#8211; a dinner at Piccino where he told me about <a href=\"https:\/\/www.danshapiro.com\/blog\/2025\/10\/slot-machine-development\/\">slot machine development<\/a>, and I walked away patting myself on the back thinking I understood a little bit of the future now. Since then, every few weeks he&#8217;d tell me something new, and every few weeks I&#8217;d nod politely while privately thinking he was\u2026 let&#8217;s say optimistic. Exaggerating would be rude. Nobody&#8217;s actually doing that.<\/p>\n\n\n\n<p>This week he got on stage and showed it to the world. I was in the room. He was not exaggerating.<\/p>\n\n\n\n<p>The essence of what Justin&#8217;s team learned fits on an index card.<\/p>\n\n\n\n<p><strong>First<\/strong>, you recognize that, if you want to move quickly, you&#8217;re not the person best qualified to be writing code anymore. The AI writes the code.<\/p>\n\n\n\n<p><strong>Second,<\/strong> you recognize that if you&#8217;re not writing the code, and you&#8217;re still reviewing every pull request, <em>you<\/em> are the bottleneck. So you have to stop reading the code, too.<\/p>\n\n\n\n<p><strong>Third<\/strong>, you realize this creates an enormous pile of terrifying problems. If nobody&#8217;s writing code, who understands it? If nobody&#8217;s reading the code, how do you know it works? How do you know it&#8217;s getting better instead of worse?<\/p>\n\n\n\n<p><strong>Finally<\/strong> &#8211; and this is the part that takes a minute to land &#8211; you realize that solving those problems is your actual job now.<\/p>\n\n\n\n<p>That&#8217;s it. That&#8217;s the whole thing. That&#8217;s how you build a software factory. Everything else is commentary. You can stop reading and go figure it out.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">You Can&#8217;t Look Inside<\/h2>\n\n\n\n<p>So you don&#8217;t read the code. You built something, it&#8217;s inside a sealed box, and you have no idea what&#8217;s going on in there.<\/p>\n\n\n\n<p>It seems strange, but we&#8217;ve been here before.<\/p>\n\n\n\n<p>When I was 10 years old, <a href=\"https:\/\/en.wikipedia.org\/wiki\/Leonard_Shapiro\">my dad<\/a>, a professor of computer science, explained this while carving a roasted chicken at the dinner table.<\/p>\n\n\n\n<p>&#8220;You see, everyone used to write the code by hand. But now there are these &#8216;high level languages&#8217;. People say it&#8217;s cheating to use them. But getting things done is <em>so much faster<\/em>.&#8221;<\/p>\n\n\n\n<p>People would complain that you had to hand-optimize the assembler. They would be horrified that you&#8217;d ship assembly code you&#8217;ve never read.<\/p>\n\n\n\n<p>History rhymes.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Monday, Then Tuesday<\/h2>\n\n\n\n<p>The Monday before their release, they built CXDB. It&#8217;s a special-purpose observability layer that watches every interaction in their system.<\/p>\n\n\n\n<p>On Tuesday, they built Healer.<\/p>\n\n\n\n<p>Healer watches CXDB, develops opinions about whether agent behaviors look right, and clusters similar problems into diagnoses. Those diagnoses become investigations &#8211; and the investigations are themselves agents. An agent wakes up, looks at the cluster of bad behavior, finds the relevant code and prompts and data, and writes a prescription. The prescription gets applied. The bug gets fixed.<\/p>\n\n\n\n<p>No human filed the bug report. No human triaged it. No human wrote the fix.<\/p>\n\n\n\n<p>This is what I found most interesting about their building process. Last year, &#8220;let&#8217;s spend our time on the tools before we start the product&#8221; was foolish. This year, it&#8217;s more like the quote attributed to Abraham Lincoln: &#8220;Give me six hours to chop down a tree, and I will spend the first four sharpening my axe.&#8221;<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">The Digital Twin Universe<\/h2>\n\n\n\n<p>Back to GSheets on localhost.<\/p>\n\n\n\n<p>StrongDM is an enterprise security company. They build access management for complex enterprises. In their world, &#8216;security issue&#8217; is a euphemism for &#8216;lawsuit&#8217;.<\/p>\n\n\n\n<p>Once you&#8217;ve realized you don&#8217;t write the code, and you don&#8217;t read the code, the biggest problem is quality. And the best solution to quality is testing &#8211; in the most realistic environment you can.<\/p>\n\n\n\n<p>You see where this is going.<\/p>\n\n\n\n<p>As Justin put it: &#8220;A year ago, if an eager new hire had walked into my office and suggested &#8216;let&#8217;s just clone GSuite and Salesforce and Okta and every SaaS application our product integrates with,&#8217; I would have said: your enthusiasm is really welcome. Get back to work. Project not approved.&#8221;<\/p>\n\n\n\n<p>&#8220;And I would have been wrong. Jay built the whole suite in a couple of weeks. The replicas are faithful enough for every externally observable behavior the agents need &#8211; not a full reimplementation of Google Sheets, but close enough that the agents can&#8217;t tell the difference.&#8221;<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Why Am I Doing This?<\/h2>\n\n\n\n<p>Justin&#8217;s team has a mantra. Whenever anyone finds themselves doing something manually &#8211; reviewing logs, checking output, validating behavior &#8211; they stop and ask one question:<\/p>\n\n\n\n<p><em>Why am I doing this?<\/em><\/p>\n\n\n\n<p>If you&#8217;re looking at a log file and something doesn&#8217;t look right, and you can articulate <em>why<\/em> it doesn&#8217;t look right, you&#8217;ve just described a validation rule. And if you can describe it, you can automate it. So stop looking at log files. Get yourself out of the job of looking.<\/p>\n\n\n\n<p>This is the discipline that separates a team that uses AI from a software factory. It&#8217;s relentless, almost uncomfortable. But it&#8217;s also the most concrete thing you can take away from Justin&#8217;s work: the next time you find yourself doing something, ask how you can stop.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">What Next?<\/h2>\n\n\n\n<p>Justin&#8217;s team is three people. A CTO, a senior software engineering manager, and a new hire less than a year out of school. That team built it all &#8211; the factory, the features, the digital twin universe. Now Navan, the new guy, is leading bootcamps where dozens of StrongDM senior developers learn the new way software is built.<\/p>\n\n\n\n<p>StrongDM&#8217;s experience is what happens when building software becomes a means instead of an end. A compiler &#8211; not one that turns BASIC into machine code, but one that turns problems into solutions. Our job is to keep the ideas flowing, and the factory running.<\/p>\n\n\n\n<p>It happened to software first. I don&#8217;t think it&#8217;s going to stop there.<\/p>\n\n\n\n<p>If you&#8217;d like to build something with a dark factory yourself, you should. There are a few options. You can read more of the team&#8217;s work at <a href=\"https:\/\/factory.strongdm.ai\/\">https:\/\/factory.strongdm.ai\/<\/a>. You can try out a real implementation of their software factory at <a href=\"https:\/\/github.com\/danshapiro\/kilroy\">https:\/\/github.com\/danshapiro\/kilroy<\/a>. Or &#8211; meat for another blog post &#8211; you can take a trip to the incredible, Mad-Max infused magic of <a href=\"https:\/\/steve-yegge.medium.com\/welcome-to-gas-town-4f25ee16dd04\">Steve Yegge&#8217;s Gas Town<\/a>.<\/p>\n\n\n\n<p> Time to sharpen our axes.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A few months ago, I walked into Justin McCarthy&#8217;s office at StrongDM and noticed something wrong with his colleague Jay&#8217;s monitor. He had a Google Spreadsheet open. Columns, rows, formatting &#8211; it&hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[21],"tags":[],"class_list":["post-609","post","type-post","status-publish","format-standard","hentry","category-startups"],"_links":{"self":[{"href":"https:\/\/www.danshapiro.com\/blog\/wp-json\/wp\/v2\/posts\/609","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.danshapiro.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.danshapiro.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.danshapiro.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.danshapiro.com\/blog\/wp-json\/wp\/v2\/comments?post=609"}],"version-history":[{"count":2,"href":"https:\/\/www.danshapiro.com\/blog\/wp-json\/wp\/v2\/posts\/609\/revisions"}],"predecessor-version":[{"id":613,"href":"https:\/\/www.danshapiro.com\/blog\/wp-json\/wp\/v2\/posts\/609\/revisions\/613"}],"wp:attachment":[{"href":"https:\/\/www.danshapiro.com\/blog\/wp-json\/wp\/v2\/media?parent=609"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.danshapiro.com\/blog\/wp-json\/wp\/v2\/categories?post=609"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.danshapiro.com\/blog\/wp-json\/wp\/v2\/tags?post=609"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}