← Back to blog

What I've Learned Building Software With AI Tools

·
aiengineeringproductivity

Like most engineers, I've been experimenting with AI-assisted development tools over the past year. Unlike most takes you'll read online, I'm not here to tell you it's magic or that it's a fad. The reality is more nuanced — and more interesting.

The Setup

I've been using AI tools across personal projects and prototyping work — everything from generating boilerplate to helping architect systems to writing tests. I've pushed these tools hard enough to have a real sense of where they shine and where they fall short.

What Actually Works

Clear specifications produce better output. This has made me a better engineer, honestly. When you're working with AI tools, ambiguity is your enemy. The more precise your requirements and context, the better the output. It's forced me to think through edge cases and interactions more thoroughly before writing code.

Boilerplate and scaffolding. AI tools excel at generating the repetitive, structural code that every project needs. Setting up a new API endpoint, creating CRUD operations, writing test scaffolding — these are tasks where AI saves genuine hours.

Code review and refactoring. Having an AI review your code for potential issues, suggest refactoring opportunities, or explain unfamiliar code is genuinely useful. It's like a tireless pair programmer who's read every Stack Overflow answer.

Documentation and tests. AI-generated documentation and test cases often need editing, but they're a much better starting point than a blank file. Getting 80% of the way there instantly is a real productivity win.

What's Surprising

The biggest surprise? The speed for well-scoped tasks. Tasks that would take an hour can sometimes be done in minutes — not because the AI is smarter, but because it doesn't context-switch, doesn't look up syntax, and doesn't get distracted.

The second surprise? The creative limitations. AI is excellent at implementing well-defined features but struggles with the ambiguous, creative leaps that great software requires. The "what should we build?" and "how should this feel?" questions are still deeply human.

What This Means for Engineering Leaders

If you're leading an engineering team, here's my take: AI isn't replacing your developers. But it is changing what productive development looks like. The engineering leaders who thrive will be the ones who can:

  1. Write exceptionally clear requirements and specifications
  2. Review AI-assisted output with a critical, experienced eye
  3. Understand architecture deeply enough to guide AI tools effectively
  4. Make fast, informed decisions about when AI helps and when it hurts

The bar for technical leadership is going up. Leaders need to understand these tools well enough to set good practices for their teams — what to use them for, what not to, and how to maintain code quality when the pace of output increases.

The Human Element

For all the efficiency gains, the most important decisions are still human ones. Architecture choices, domain modeling, team dynamics, technical strategy — these require judgment, experience, and empathy that no AI can replicate.

I'm bullish on AI-augmented development. But "augmented" is the key word. The best outcomes come from experienced engineers using AI to amplify their capabilities, not replace their thinking.