# I Didn't Write a Single Line of Code. I Built It Anyway.

> Source: <https://dev.to/mikecase/i-didnt-write-a-single-line-of-code-i-built-it-anyway-3ln>
> Published: 2026-05-24 06:20:42+00:00

I'm not a traditional developer. I don't have a CS degree. I learned to code at 13 on Visual Basic 3.0, spent 9 years in the U.S. Army including 3 combat deployments to Iraq, came home, spent 15+ years as an automotive technician, and somewhere in between all of that never stopped learning technology.
I run a homelab that would have been considered enterprise infrastructure in the late 90s, It's amazing what's changed in 26 years. Self-hosted git, SSO, secrets management, a zero-trust network architecture, local LLMs, workflow automation. I built all of it myself. I am not telling you this to brag. I'm telling you this so you understand where I'm coming from when I talk about AI.
I needed an invoicing application for my side business as a home mechanic. There are plenty of automotive invoicing solutions out there — Mitchell1, Shop-Ware, Tekmetric — but they're built for full shops with full shop budgets. Subscriptions running $100-300+ a month for a guy doing side work out of his garage doesn't make a lot of sense.
Beyond the cost though, there's a principle at stake. I self-host everything. My password manager, my git repos, my search engine, my AI. Why would I hand my customer data, my vehicle history, and my business financials to a SaaS platform I don't control, for a small home business that doesn't need enterprise features?
So I built exactly what I needed. Nothing more, nothing less.
But not just a simple "create invoice, send invoice" app. I needed something that actually understood how a mechanic's business works:
These aren't features you find in generic invoicing software. They're features that only make sense if you've actually done the work.
The result is a full-stack Flask/Python application with:
Stack: Python 3.12, Flask, SQLite (WAL mode), Jinja2, Bulma CSS,
WeasyPrint.
I did not write a single line of code.
I spent $0.50 in API tokens using opencode with a custom provider, stated what I wanted, made sure my agents.md was appropriate for the project, had the AI plan the architecture, then build it.
Total cost: $0.50.
Total time: One day.
Here's where I expect some people to roll their eyes.
"You didn't build that. The AI built that."
And I'd push back on that — hard.
What I did was:
That last point is critical. AI makes mistakes. Sometimes subtle ones. Sometimes confidently wrong ones. If you don't have the domain knowledge to catch them you'll ship broken software and not know it.
The mobile-responsive layout wasn't just a nice-to-have. I specified it because I know what it's like to stand in a garage trying to look something up on a phone. The internal time tracking that never shows on customer invoices — because as a mechanic you're always working against book labor times. A brake job
might book at 1.2 hours. Am I actually hitting that? Beating it? Where am I losing time? That's data I need for myself, not something a customer ever needs to see on their invoice.
The parts-first sorting on printed invoices — because a customer shouldn't have to read through a jumbled mix of parts and labor line items. Parts grouped together, labor grouped together, clean and readable.
None of that comes from a prompt. That comes from experience.
The AI was the hammer. I knew what needed to be built.
The industry is having an identity crisis about AI right now and I understand why. AI is ingesting human knowledge at an unprecedented scale and automating things that used to require years of skill development. That's genuinely disruptive and the anxiety around it is legitimate.
But here's what I keep coming back to:
The calculator didn't replace mathematicians. It elevated what mathematicians could accomplish. The people who refused to adapt didn't win — they just fell behind.
AI is the same inflection point.
The people who will thrive are not the ones who ignore it. They're not the ones who blindly depend on it either — pumping out slop and calling it productivity. They're the ones who understand it deeply enough to direct it, validate it, and know when it's wrong.
That requires real knowledge. Real experience. Real judgment.
I want to be transparent about something.
I run an automated "This Day in Tech History" blog on my personal website. The posts are AI generated. I use n8n workflows and locally hosted LLMs to draft them automatically.
Every single post sits in draft until I manually review and publish it.
The internet is already drowning in AI slop. I'm not interested in adding to it. The automation handles the drafting. The judgment is still mine.
I apply the same standard to my projects. My DOSBox Launcher — a GTK3 desktop app for managing DOS games on Linux — has the AI authorship breakdown documented directly in the README:
That's the line I try to walk with all of this. AI as a tool. AI as an assistant. Not AI as a replacement for thinking.
To put that number in perspective — a freelance developer would charge anywhere from $3,000 to $10,000+ for an application like this. A SaaS alternative would run $50-100/month indefinitely.
I spent fifty cents and an afternoon.
That's not a party trick. That's a fundamental shift in what a single person with domain knowledge and the right tools can accomplish.
I'm a 45 year old self-taught infrastructure engineer, army veteran, and automotive technician from Texas. I don't have a degree. I don't have a fancy job title. I have 32 years of continuous self-directed learning, a homelab that saves me an estimated $26,000 a year in SaaS costs, and an invoicing application that cost me fifty cents and actually understands
how a mechanic's business works.
AI didn't replace my knowledge. It gave my knowledge a power tool.
That's the correct way to use it.
