There is an argument running on this site right now that AI broke the junior developer pipeline. The grunt work was the curriculum, the models ate the grunt work, and nobody is manufacturing seniors anymore. I want to hand that argument a data point, because I am what the other side of it looks like.
I am not a developer. I run a product with real customers and real money moving through it, and AI wrote most of the code. I got there in weeks. Then the apprenticeship I never did came back for its money, and I can itemize the bill.
Ten years in travel and aviation as a product manager. Booking funnels, GDS integrations, checkout tests, arguments about whether a field belongs on step two or step three. A few years ago I did a full-stack bootcamp so I could argue with engineers in their own vocabulary. It worked. I came out able to build things, slowly and badly.
In early 2026 I started a travel eSIM store. Web app, mobile app, backend, my own catalog, 190 countries, 25 languages. I run it alone. First paying order on June 14, and since then customers in 21 countries, most of them in markets I have never marketed in. The volume is small. The money is real, and it moves through the same rails a large store uses, which turned out to be the whole problem.
The build went the way the posts promise. I shipped a working store in weeks instead of the six months four people would have needed. That part is true and I am not here to argue with it.
An app is code you control. A store is a machine with money moving through it, third-party APIs that lie to you, a payment processor, tax rules, an email provider, a CDN, and customers in 25 languages who notice everything you get wrong.
Every serious failure I have had came from the second category.
Stripe took money and no order existed. Customers were charged, nothing shipped. The webhook was configured. It fired. Something downstream ate the event and I found out from a customer instead of a dashboard. I now run an hourly reconciler that walks recent charges and checks each one has a matching order, because a webhook is a promise and promises break in production.
My analytics undercounted my own sales by half. PostHog showed roughly half the purchases my database had rows for. The event fired in the browser on the confirmation page, and half my customers pay and close the tab before they ever see it. I had been reading a 3% conversion rate for weeks and telling myself a story about a broken funnel. The real number was 16%. Every decision I made off that dashboard came from a figure wrong by a factor of five.
Confirmation emails went out in French to people who do not speak French. The function resolving a customer's language defaulted to fr
when it could not find one, and it could not find one most of the time. My own language, applied to Japanese and Brazilian buyers. Nobody complained. They just did not come back, which is worse, because a complaint is data and silence is not.
Turning on bot protection blocked my own suppliers. Cloudflare started serving challenge pages to the server-to-server webhooks my eSIM providers use to tell me an order is ready. A machine cannot solve a captcha. Orders sat in limbo while I congratulated myself on hardening the site. My test suite does not run through my CDN, so my test suite was fine.
My cache filled the disk and took the site down. Next.js writes incremental static pages to disk. My host's disk is small and ephemeral. The cache grew until there was no room and the whole thing stopped serving. An outage caused by a framework default I never chose and did not know existed.
I priced the entire catalog wrong. I launched on a flat markup, which is what everyone does. Then I sat down with the real arithmetic: supplier cost, the card processor's percentage, its fixed fee, EU VAT, refund rate. On small orders the fixed costs ate the whole margin. A three euro sale was losing me money. I rebuilt pricing around net profit per order and added a small-order fee.
Look at that list again. Not one of those is a coding problem. There is no function in there that was written wrong.
Distrusting a webhook you can see firing. Knowing that a client-side event undercounts. Suspecting a default before it bites you. Understanding that a security control is an integration change. Knowing your framework writes to disk. Reading your own unit economics before you set a price.
That is the exact inventory a junior accumulates in the years everyone says the models have eaten. It does not come from writing CRUD endpoints for their own sake. It comes from sitting through the incident that follows, watching a senior say "check whether the event actually landed" before anyone opens the code, and learning why that was their first question and not their fourth.
I got the endpoints for free. I bought the scar tissue at full price, in production, with my own customers as the test group. The lessons cost me a week of staring at a retention chart, a day of downtime, and an unknown number of Japanese buyers who got an email in French and decided I was not a serious company.
The failure mode is specific and I want to name it, because it is the part the build-in-public posts skip.
AI cannot observe your production database, your payment processor, your CDN configuration, or your customers. When I described a bug, I got a confident, plausible, well-structured fix for a bug I did not have. Fluent and wrong. The model reasons about the system I described, and the whole problem is that my description was the thing that was broken.
The skill that saved me was refusing a fix until I had reproduced the failure myself. That skill is not technical. It is the reflex of not believing an authoritative-sounding answer, which is the single thing apprenticeship drills into people and the single thing a chat interface trains out of them.
Where the leverage is real: the second version of anything. Once I knew what my admin dashboard needed to show, describing it and getting it built took an afternoon. Migrations, backfill scripts, translation pipelines, one-off data audits, per-order margin tracking in my backoffice. On a team that is a two-week sprint someone keeps deprioritizing to the next quarter. Alone, it was a weekend. The boring surface area of a business is where I got the most out of these tools, and it is not the part anyone writes about.
Twenty-five languages, translated, with tone reviewed per language, would have been a budget line I could not afford. It was a pipeline instead. That is a real change in what one person can attempt.
If you are a developer reading this as evidence that people like me are coming for your job, I would read it the other way. I did not replace an engineering team. I replaced the part of the job I could already do on a bad day, and then I spent four months paying full price to learn the part I could not. The judgment was the job. It was always the job. I just had to be charged for it directly to believe it.
But the argument about juniors does not get easier because of that, and I do not want to end on a flattering note that lets everyone off. My route worked. Badly, with outages and lost customers and a dashboard that lied to me for a month, and it worked. Enough people will take it that "just hire juniors and let them wobble" stops being a description of how the industry actually behaves.
So the honest version of my data point is this. The apprenticeship is not optional. It is only skippable in the sense that you can defer it, and the deferred version is more expensive and gets paid by your customers instead of your employer.
Which leaves the question I cannot answer. If what the bottom rung taught was the reflex to distrust a plausible answer, and the bottom rung is going away, where does anyone get that reflex now? I got mine from a Stripe balance that did not match my database. That is a terrible curriculum. It is the only one I had.
If you have hired or mentored someone in the last two years, I want to know whether you have found something that replaces it, because I could not build one for myself and I am not convinced anyone has. I write specs for a living and I have been building an eSIM store solo since January. If you want the product version of this story rather than the career one, it is on MarTech. The store is Simsima.