The new golden age of software development has arrived
If you ever had the wacky dream of running your company like a big tech firm, where all the tooling is proprietary and written in-house, you’ve never been closer to realizing it. We’re truly in the “if you can dream it, you can build it” phase of software development. Just look at the number of commits in Github in the last months! Everyone and their dog can code now, writing code is cheap. Every possible combination of solved problems can be mixed to solve another problem, and it can be done in parallel, with the help of AI.
I want to emphasize on “wacky”. You can really do the wackiest projects right now. Hundreds of side projects which have gathered dust due to limited time, scope that’s too ambitious, or problems that seemed too difficult to be tractable by a single person or a small team are coming to life. Migrations from older frameworks and technologies that have been perpetually postponed are now happening in days instead of months. Performance and security issues being solved left and right. Unhappy with some external library? That’s okay, you can write your own now. SaaS vendor lock-in? Screw them, ask for your data and build a better product with the features that work best for your business! It’s easy. Nobody has to tolerate incomplete libraries or unpolished products anymore. There are no more boring problems left to solve and no more boring work left to be done. The playing field has shifted.
It’s interesting to imagine what the future holds for software. Perhaps we’re entering an age of hyper-customized, hyper-specialized software that’s purpose built for a particular workflow and natively built to interface AI (MCP and all). Maybe software will be hyper-personalized, built only to serve one human user, and anything around it would be agent workflows. Who knows. I’m just letting my imagination run wild. In any case, there will be much, much more code and many more moving pieces than ever before. There will certainly be a great bump in complexity in every piece of software out there, just because pieces of working code can be cobbled together quickly now. There will be an incredible amount of bloat, and it will be glorious when it has to be cleaned up and fixed. But, let’s try to keep looking at the current phenomenon through a positive angle.
On an individual level, the changes are still exciting, albeit less disruptive. I could complete the busywork around my homelab in the fraction of the time with the help of AI. I can try tools out, quickly scaffold features with them or build prototypes. I’m not afraid to completely swap out features, do massive refactoring, as long as there’s no tight coupling. It’s also more engaging to learn new tooling, analyse and diagnose issues, and try different software architectures out. I am like a kid in a candy store, and I am not alone. I have friends “clauding” until 4am, launching new products, improving their existing side projects. It’s palpable shift in how software engineering is done.
It’s not all rosy all the time. On long horizon tasks, AI veers off and writes code that is redundant. There’s a lot of bloat that’s generated and files and structure that can be organized better and more efficiently. Sometimes it’s obvious slop, other times it’s a matter of taste. The times when I have to sit down and focus are only on complex issues and non-trivial problems, as it should be. AI has enabled me to be more daring in my work and offered more difficult problems to tackle. It’s intoxicating, but also tiring. The productivity gains are real, but I wouldn’t put a multiplier on them. It all averages out around 20-25% individual productivity increase.
Exercises in problem-solving have become increasingly more important at keeping myself sharp and fast at mechanical typing and recalling language syntax and structures. I’ve always kept a clean separation between software engineering work and algorithmic problem-solving, but now this separation is more pronounced. I never truly enjoyed producing code in a work setting, either at a big organization, or at a startup. The first is often monotonous and repetitive, and the latter felt like typing code was a hurdle to shipping fast. There are exceptions, but as my career is evolving, dedicated coding exercise time has become increasingly more important for holding a firm grasp over the fundamentals. With AI obviating typing code, it’s become a must.
Currently, I’ve no idea if I’m using the right tools, the correct models or the most efficient setup, whatever that is. Frankly, I don’t care. There’s way too much money being spent on marketing, hype and hidden agendas. I try things as they come, and I’m not committing to anything. I’m installing and uninstalling tools and libraries all the time, and my work environment is a total mess, but I don’t care. It’s a bubble. When it pops, we’ll find out what’s good and what’s utter slop.
So far, my exposition has been focused on software development, not software developers and the tech industry as a whole. I would like to abstain from addressing these at length in this post. The only thing that I’d share is that I hope that the whole gerontocraticooligarchical (or oligarchogerontrocratical, whichever fits your taste) economical order gets reorganized and we get back to a more stable equilibrium. I don’t believe all this innovation will amount to anything good if things keep going in that direction.
These are crazy times and I hope we all get back to building stuff and solving hard problems, sooner or later.
