Back to blog
25 July 2025
5 min read

Composing software with AI

Compose with AI instead, not generating large solutions

Coding, Software Engineering, or whatever name floats your boat these days, is relatively a new field. People like Uncle Bob and many of the boomers in the field have been trying to make it a more rigorous discipline practice. What makes good Software? is it maintainability?, functionality? etc. Whichever one you choose, you know at the day code has to be written.

Very recently LLMs came into the mix in terms of their ability to generate code and all the doomers said we would lose our jobs. Maybe they’re right and we need to get with the program. However, I still see a few more decades remaining for regular old programmers. Programming is about problem-solving not necessarily about writing code. As long as there’s problems to be solved in the digital space programmers will remain the wizards there. LLMs are not a threat to that hegemony, but rather an ally that will quadruple our productivity.

AI is not good at generating an entire application

In my experience it’s difficult to write a perfect spec and give to AI to spit out a whole bug-free application you can use that integrates with your 80-year-old IBM database. Or integrates with that in-house Payroll software your brother-in-law wrote while he was in college.

Not every damn API in the world is available to AI and some systems are highly proprietary with documentation only available to a few people. I would argue that it’d be a lot faster to write the software yourself then give to AI to write when there’s a lot of complexity involved and a bunch of obscure interfaces.

You remember the good old saying garbage in and garbage out, AI is only as good as the input given to it and humans are terrible at upfront specification. We can’t anticipate everything, and we often learn as we go.

So it’s very unlikely in our life-time that we will see AI writing huge enterprise Software in one shot or even in several iterations. I feel like it’s not worth the headache and debugging that would come with it.

Composing Software with AI

It’s been argued at length that AI will not replace programmers but will rather augment them. As in Deus Ex augmentations, which isn’t too far way right now since Neuralink is a thing. Perhaps, one day you’ll just cough out code through your Neuralink without ever touching the keyboard. I digress, but maybe I’ll eat my words in a few years with the pace AI is moving. Nonetheless, the most value I’ve seen in LLM code generation through Github Co-Pilot and other LLMs like ChatGPT is that instead of asking them to generate entire solutions to a problem. You can be the architect and decide which piece you want generated and I feel like this the right way AI should be used. It works best for small tedious repetitive tasks such as generating angular forms with all the right validation you need.

Or a small function that does a particular thing that you would have had to download npm packages for.

The programmer now acts like someone building with lego and puts the pieces together in a way that makes sense. He’s not so much concerned with the nitty-gritty details of each and every single function. Sure, he might have to vet these functions that they’re doing the right thing. AI code generators are also perfect at writing unit tests, or perhaps they were doing TDD and have all the tests written by themselves and let AI do the implementation.

This could have added security benefits because now you might be a bit more safe from supply chain attacks if you’re not fetching is-odd library from NPM. Perhaps this would increase the amount of code written, Software would no longer be “eating the world”, but “digesting it”.

A single programmer with the right prior experience in building software would now be more valuable as they can get products to market quicker. Don’t quote me here. I’m aware the current AI code generators are creating more headaches than they’re solving, but I’m hopeful that it will change.

Summary

Sure, Software is still hard, we are figuring it out as we go along. AI as some say, might not be the end of coders, but it will quadruple their productivity in the meantime. The need for programmers may only increase as the need for software and more companies requiring AI integrations increases, if AI interaction becomes a new way to interact with various systems. Perhaps every website will have some sort of MCP server one day that allows AI to complete tasks on behalf of its human owner.

Rather than let AI spit out complete solutions, compose applications with its help to speed up your development. They’re very good at the small things. It will be a while before they’re good enough to spit out large working applications bug free. Business requirements, the world, change is the constant. Software is not spat out once and that’s it. it undergoes change to keep up with requirements and the ever-changing external world. Sure AI written apps (or what I call throw-away apps) are great if you never have to make complex modifications. They’re great for prototyping.

Where AI really shines is composition.