Borrowing Understanding with Artificial Intelligence

Deploying apps and dealing with infrastructure is my bread and butter. Working with OpenTofu (Terraform), Ansible and anything Linux, I’ll have no problem with. But actually coding something to deploy? That’s where I struggle. I’m certainly not a frontend dev.

Tracking my workouts via a Notes app on my phone was bugging me though, and turns out that $34 per month I pay for Claude to help with University study actually came in handy when I wanted to test out Claude Code. The end product has a Flask backend with an SQLite database deployed with Docker. It lives at a live URL hosted via Caddy on a VPS I pay peanuts for, and I actually use it every week to log my sets and track whether I’m progressing.

As many of you Vibe Coding Professionals know, I basically just described what I wanted, went back and forth with Claude for a while, and eventually I had something that worked and I could deploy.


You learn the shape of things

Before I built this thing I had never really touched Flask, and now I feel like I get what a Flask app feels like. I know roughly where the routes go, how the frontend is supposed to talk to the backend, where things tend to get messy if you’re not careful. I didn’t learn any of this from a tutorial or from documentation. I learned it by building something I actually wanted to use and watching the structure emerge as I went.

That’s what I mean when I say you learn the shape of things. You pick up this mental model of how the technology fits together even if you don’t know the specific syntax or the implementation details. You start to understand the structure and the kinds of problems it’s designed to solve.

But here’s the catch. You can connect your coding agent to an MCP server now and it has instant access to every API reference and best practice guide for whatever you’re working with. The agent reads documentation that you would’ve had to read yourself. It builds up all this context and understanding during the conversation, but that only exists inside the conversation window. When you close the chat, it disappears. You’re left with code that works and a vague sense of how it all fits together, but nothing concrete.

You shipped something and that’s cool, but you borrowed the understanding to do it.


But I am learning something

Here’s the thing though. I’m not trying to become a developer. I’m a Systems Engineer. I’m the person who gets paged at 2am when something breaks.

And weirdly, vibe coding is teaching me exactly what I need for that. I’m not learning how to build apps, I’m learning how apps break.

When I was going back and forth with Claude on this workout tracker I ran into database locking issues, I had to figure out why the container wasn’t persisting data properly, I dealt with weird state bugs where the frontend and backend weren’t agreeing with each other. These aren’t coding problems really, they’re the exact same problems I’d be troubleshooting if someone else’s app was down and I had to fix it.

The shape I’m picking up isn’t “how to write Flask routes.” It’s “what goes wrong with a Python app talking to a database behind a reverse proxy.” That’s way more useful for my actual job than knowing the syntax for a decorator.

I think there’s something here for anyone who works in ops or infrastructure or SRE or whatever you want to call it. You don’t need to know how to build the thing from scratch. You need to know where to look when it’s on fire. Vibe coding gives you that exposure without making you sit through a web dev bootcamp.

So yeah, I borrowed the understanding to ship this app. But I paid it back in a different currency.

Leave a Reply

Your email address will not be published. Required fields are marked *