I haven't been this excited about a technology since I was a teenager figuring out how to build websites. That same feeling of staring at a screen, losing track of time, realizing it's 2 AM and not caring. Hyper focused. A backlog of ideas growing faster than I can build them. Endless possibilities if you know how to use the tools.

In the past few evenings, I went from an idea to a running AI engine with a working UI. Not a prototype. Not a proof of concept. A platform with 19 engine components across a 6-package monorepo, 28 database tables across five migrations, 744 passing tests, spanning AI capabilities, vector search, AES-256 encryption, and real-time streaming. Over 150 source files. More than a hundred pages of documentation. The kind of thing that, not long ago, would have required a team, a timeline, and a significant budget.

I built it in a few evenings.

If you've been paying attention to what's happening with AI-assisted development, this probably doesn't surprise you. The tools are moving fast. The output is impressive. Anyone can sit down with a chat window and start generating code at a pace that would have been unthinkable two years ago. The demos are breathtaking. The possibilities feel limitless.

But speed isn't what made this work. Speed is what made it exciting. What made it work was everything I did before I let the AI write a single line of production code.


A rough block of stone surrounded by scattered fragments and chisel marks, the removed pieces more prominent than the form that remains


Early on, the AI told me that caching prompts would cut my LLM costs by 90%. That's a compelling number. It's the kind of number that makes you skip ahead to implementation because the ROI seems obvious. Instead, I ran a spike. Built a small test harness, measured actual token usage across real conversation patterns, and watched the savings come in at 57%. Still significant. Still worth doing. But the gap between 90% and 57% is the difference between a pricing model that works and one that bleeds money at scale. The AI was confidently wrong, and if I hadn't tested it, I would have built my cost projections on a foundation that didn't exist.

That spike took an evening. It saved me from an architecture built on bad math. And it taught me something about working with AI that shaped the rest of the project: the AI is fast, convincing, and often right. But "often right" isn't "always right," and at scale, the difference matters enormously.

This became the pattern. Before writing production code, I ran three technical spikes. A vector search spike validated hybrid semantic and keyword search and caught five syntax gotchas that would have been painful to debug in a production codebase. An AI personality spike tested responses against fifteen real-world conversation scenarios, revealing edge cases that looked fine in isolation but broke down in context.

None of this was accidental. I wrote twelve architectural decision records, not because I enjoy documentation, but because forcing yourself to write down why you're choosing something exposes the assumptions you haven't examined. When you can't articulate why you chose one approach over another, that's usually a sign you haven't thought it through. The ADRs caught three decisions I would have regretted. I wrote seventeen implementation plans before writing the code they described. I ran code reviews that caught twenty-nine issues, all fixed before they reached production.

The AI helped with all of this. It drafted the ADRs. It suggested what to test in the spikes. It helped structure the implementation plans. It executed these processes faster than I could have alone. But it only did these things because I told it to. Left to its own defaults, the AI would have skipped straight to code. It doesn't know to run a spike first. It doesn't have the instinct that says "this number feels too clean, let's validate it." It doesn't carry the scar tissue from the last time an unquestioned assumption made it to production and failed. It required my attention, my correction, my alignment with the end goals at every step. The rigor was AI-assisted. The judgment was mine.

The AI amplified my process. It didn't supply one.


The most important work I did on this project isn't in the codebase. It's in the list of technologies I researched, evaluated, and decided against.

I looked at a vector search library that seemed perfect for my use case. Clean API, good documentation, active community. The AI recommended it without hesitation. I spent an evening integrating it before discovering it doesn't work with my database driver. Not a bug, not a misconfiguration, a fundamental incompatibility buried deep in the implementation details that no amount of prompting would have surfaced. The kind of thing you only discover by actually building with it. If I'd committed to it, built three layers of abstraction on top, and wired it into the rest of the engine before hitting the wall, unwinding that decision would have cost me days. Instead, it cost me an evening of learning and a better architecture.

I evaluated LLM-based reranking for search results because the AI suggested it as the sophisticated approach. It is sophisticated. It's also significantly more expensive than algorithmic Reciprocal Rank Fusion, which achieves comparable quality for my use case at a fraction of the cost. Sophistication and fitness for purpose are not the same thing. The AI optimized for capability. Experience told me to optimize for economics at this stage.

I looked at workflow orchestration platforms, the kind of tools that handle job scheduling, retries, and complex task dependencies. Every one of them was engineered for problems bigger than mine. Temporal is brilliant infrastructure for distributed systems with hundreds of workers. For a single-tenant engine in its first phase, it's borrowing complexity from a future I haven't earned yet. The AI couldn't make that judgment call because it doesn't understand where I am in the lifecycle of this product. It sees the technical problem. It doesn't see the stage.

I evaluated four different compute platforms for long-running AI tasks. One had a fifteen-minute execution limit that would have forced me to break natural workflows into awkward chunks. Another had thirty to sixty second cold starts that would have destroyed the user experience. A third cost ten times more than the option I chose. The fourth cost twenty times more. Each one would have been a reasonable recommendation in a different context. The AI suggested all of them at various points. None of them were right for mine, and understanding why required knowing things the AI doesn't have access to: my cost constraints, my user expectations, and my deployment model.

Every technology I rejected represents hours or weeks of wasted effort that never happened. Not theoretical waste, the real kind. Integration time, debugging time, refactoring time when you realize six weeks in that the foundation doesn't hold. Some of them would have worked eventually. Some would have introduced maintenance burden that compounded over time. Some would have been fine for now and catastrophic at scale.

Knowing what to say no to is harder than knowing what to say yes to, and it's far more valuable. A junior engineer says yes to everything because everything seems plausible. A well-written README, a clean API, a confident AI recommendation, they all pass the coherence test. They all look like progress. Experienced engineers have a different filter. They've seen what happens when you adopt a technology because it looks right on paper without asking whether it's right for your specific context, your current stage, your actual constraints. They've learned that the cost of adding something is always less obvious than the cost of removing it later.

The rejected-technology list isn't a footnote to this project. It's the architecture. Every decision to not build something shaped what I actually built. Every door I closed made the remaining path clearer, faster, cheaper. The sculpture isn't defined by the marble you keep. It's defined by the marble you remove.


Step back from the details for a moment and consider what this looks like from the outside.

To build this platform with a traditional team, you'd need backend engineers for the engine and integrations, a frontend engineer for the portal, an AI/ML engineer for embeddings and vector search and prompt engineering, an infrastructure engineer for multi-cloud deployment, a security engineer for encryption and tenant isolation, a technical writer for the documentation, an architect for system design, and a project manager to coordinate all of it. Multiple specialized people, working for the better part of a year. The kind of project that gets a budget, a roadmap, and quarterly check-ins.

I'm not arguing that AI replaces teams. That's the wrong conclusion and it misses the point entirely.

What's changed is what experience is worth. An experienced engineer working with AI isn't marginally more productive. They're a different category of productive. The leverage comes from a tight compound loop: judgment decides what to build, AI accelerates the building, judgment reviews the output, AI iterates on the feedback. Each cycle takes minutes instead of days. The loop compounds. Every good decision makes the next cycle faster and more precise. But the loop only works if the judgment is sound. Bad judgment at AI speed just produces bad software faster. You can generate a thousand lines of confidently wrong code in the time it used to take to write ten correct ones.

This matters for anyone making decisions about how to build things. The bottleneck has shifted. It used to be "can we hire enough engineers to build this?" Now it's "do we have engineers with enough judgment to direct AI effectively?" The number of people in the room matters less than the quality of the thinking in the room. One experienced engineer who knows what to build, what not to build, and how to validate the difference can outpace a team that's moving fast without that foundation.

The economics of building software have fundamentally changed. The question is whether our thinking about teams, hiring, and investment has caught up. For most organizations, it hasn't. They're still staffing projects the way they did five years ago, optimizing for headcount when they should be optimizing for judgment.


Something is happening right now that hasn't happened since the early internet. Individual builders can create things that punch far above their weight. The tools have caught up to ambition in a way they haven't before. The gap between "I have an idea" and "I have a working product" has collapsed from months to evenings. If you have the experience to direct these tools well, the scope of what you can build alone is staggering.

I think about the early days of the web, when a single person with HTML knowledge and a hosting account could build something that reached millions of people. We're in a similar moment, but the ceiling is higher. The tools are more powerful. The complexity you can manage alone is orders of magnitude greater. And just like the early web, the people who will build the most interesting things won't be the ones with the most resources. They'll be the ones with the clearest vision and the discipline to execute it.

But this moment isn't available to everyone equally. It favors people who already know what good looks like. Who've shipped enough systems to know where they break. Who've been burned enough times to run a spike before committing to an architecture. Who've sat through enough postmortems to develop an instinct for when something sounds too good to be true. The AI doesn't replace any of that hard-won knowledge. It assumes you already have it.

AI is a multiplier. And multipliers are only as good as what they multiply.

For engineers, the craft you've built over your career is more valuable now, not less. Every architecture decision you've made, every production failure you've debugged, every technology you've adopted and later regretted, it all compounds in this new environment. Your experience isn't being replaced. It's being amplified in ways that weren't possible before. The years you spent learning what not to build are the exact years that make you dangerous with these tools.

For anyone building teams or deciding where to invest, the implication is the same: invest in experienced judgment, not just AI tooling. The tooling is available to everyone. The judgment isn't.


This is just the beginning. The tools will get better. The possibilities will keep expanding. The backlog of ideas will keep growing faster than any of us can build them. I can feel it every evening when I sit down and the list of things I want to build is longer than when I left it.

But the speed is intoxicating, and that's exactly when discipline matters most. When everything feels possible, the hardest thing to do is stop and ask whether you should. The engineers who build the most important things in this era won't be the ones who move fastest. They'll be the ones who know when to slow down.