How I'm Navigating an Uncertain Future
I guess this is my “thoughts on LLMs” post that everyone in the software industry seems to eventually make. I’ve never found those particularly helpful to read, so I’m going to try to approach things from a slightly different angle. This isn’t focused on whether using these tools to build software is ethical or useful (although I will touch on both of those things), but rather where I’m choosing to focus my attention and energy when surrounded by chaos and uncertainty.
While there are a lot of nuanced takes to what’s happening, the loudest voices are split into two extremes. The first:
Writing software is over. You don’t need to understand or look at code anymore. In a matter of months average people without any background in engineering will be able to prompt their way through writing sophisticated software that works perfectly. If you aren’t spending all of your time learning how to leverage them you’re going to be left behind and cast aside.
If you’re someone like me, who has built their career, reputation, and a large part of their identity on carefully crafting high quality software, listening to people like Steve Yegge confidently predict your imminent obsolescence can be unsettling.
The truth is nobody knows what the world will look like a year from now. Personally, I think Yegge is wrong, which I base on my own direct experience. I’ve seen the fever-dream architecture that these tools spit out in staggering volume when guided by people without an understanding of software design or those just don’t bother looking at the code. Yes, even Claude Code with Opus 4.x.
We can also all see what’s happening in open source software right now. Project after project is having to shut down contributions and bug bounty programs because an influx of poor quality submissions. Stories about vibe-coded projects with absolutely stunning security vulnerabilities come across my desk seemingly weekly.
This means we might have a lot of companies with barely functioning codebases that will need to hire experts to unwind their spaghetti and keep everything from constantly breaking. Almost as likely, we might have a lot of companies with barely functioning codebases that don’t really care and keep pushing ahead. Honestly, the latter has always been true of a lot of companies.
On being left behind, I don’t think there’s actually much to learn when using LLMs to write code. Non-technical people share a lot of superstitions about how to extract the best performance. This can be ignored. There are also people and companies building agent and orchestration tooling that gets replaced by something else every few months. When things settle down, I would imagine any competent engineer will be able to learn the “state of the art” tool in a matter of days. Being “left behind” seems very unlikely.
This brings us to the second take:
LLMs are at worst useless stochastic parrots and at best late-stage capitalists’ breathless last ditch effort to replace the final group of laborers (artists and engineers) that had the tiniest bit of leverage on them. We need to fight against them at every turn.
If you’ve used these tools lately, especially the coding agents, it’s hard to argue that they are completely useless. The models and tooling have advanced to the point that given the correct context and scope, they are able to accomplish non-trivial coding tasks about as well as a junior engineer. They’re able to explain sections of code reasonably well, and are very good at catching the kind of dumb mistakes that can be missed in a code review like unintentionally reusing a variable.
This doesn’t mean you can type “write me a Facebook clone” into a box and return a few hours later to a perfectly functioning Meta competitor. It does mean with some back and forth planning and careful oversight it can create, for example, a reasonable boutique input mask or validation library.
For other classes of problem, like complex application architecture or building user interfaces with a level of thoughtfulness that causes users to say to themselves “wow, this is nice”, they’re not even remotely close.
But still LLMs are having and will continue to have a significant impact on the industry. They will certainly affect many of us in our ability to make the kind of living that we’ve enjoyed from our careers so far. This is not because they are good, but because they are already good enough.
Few people in management and practically zero owners/investors ever actually cared about software quality or customers having a good experience. The software just had to be good enough for customers not to rage cancel their SaaS subscription, and the business side always worked very hard to create enough lock-in that canceling was slightly more painful than suffering the rough edges of the product.
With LLMs and lower skilled (or less product-focused) engineers, they can crank out features for their comparison tables and blog posts without push-back from caring engineers who wanted time to architect a secure, scalable solution that wouldn’t accidentally nuke customer data from some edge case.
They’ve always wanted this, and this is why we see a number of companies forcing their engineers to use these tools. They will be able to find complacent workers at lower wages to crank out slop at high volume. This will mean fewer jobs and less leverage over employers than we’ve had in the past.
I think momentum created from these incentives will be nearly impossible to stop, especially given the current political climate in the United States where I live.
So what am I going to do?
I don’t really like making predictions in public. That’s not because I’m afraid of being proven wrong in the future, but because I don’t like to give advice to others. Public predictions are inherently advice. I could be completely wrong about all of this, but this is how I expect things to unfold and what I’m basing my own planning around.
1. An enormous amount of software is going to be created, and most of it will be bad.
I’m staying focused on building thoughtfully designed software that’s is a joy to use and is built for long-term maintainability. I’m betting that this will continue be a big differentiator for the kind of customers I want to have.
I’m building one-time purchase, desktop software that customers will own, possibly with some optional services around it (similar to the Obsidian model).
I’ll share more about what I’m working on here when it’s further along, but I’m really happy with what I’ve built so far.
2. Many engineers will become dependent on LLMs to do their thinking for them and will experience an atrophy of skills and understanding.
Except for some small experiments and rote tedium that I delegate to OpenCode, I’m writing code by hand. I’m certainly not delegating any architecture or design decisions to the robot. When I do experiment with OpenCode I prompt it to make very small changes so that I can actually read and understand the diffs.
I still have a deep understanding of all of the codebases I work on, which means I know exactly where to go to make a change, where the hairy parts are that I want to refactor, and how the feature that I’m about to add fits into the whole. Ironically, this sometimes means that I can refactor faster by hand than I could by guiding an LLM in the right direction.
Like many people have said - writing code is rarely the bottleneck, and lines of code is not the metric. Understanding what to write and the shape it should take is the hard part. This still requires taste and experience if you care about the quality of what you’re making.
3. Relationships with other people will be more important than ever as trust becomes an almost intractable problem online.
It’s hard to know what to believe right now - in tech or the world at large. I think it’s incredibly important to build a community of people that you can talk to and help each other navigate this uncertain future.
If I’m feeling gaslit by something I read or heard, I talk about it with someone in person. A lot of these confident claims don’t hold up when given the slightest interrogation. It’s easy to fall into group think when you’re only seeing the online echo chambers.
This is also primarily how I find interesting music, movies, books, apps, and websites.
I hope that someone tackles this very difficult problem and we’re able to have some subreddit-like spaces that we can trust again.
And what if I’m wrong?
The short answer to this is that I don’t know.
What I do know is that I’ve never been interested in building low quality software at volume.
If I’m wrong about the trajectory of LLMs to the extent that your experience and reasoning skills are no longer relevant to writing software? I’ll have to re-evaluate whether that’s something that I find rewarding and ethical as a career. Likely not.
I am, however, extremely confident that investing time in understanding how things work will always be beneficial and rewarding no matter what the future holds.
Suggested Reading
These are a few books, short stories, and articles that have helped me wrap my head around the current state of the world.
- Nexus by Yuval Noah Harari
- The Machine Stops by E.M. Forster (PDF download)
- Selfish AI by Larry Garfield
- How The Hell Are You Supposed to Have a Career in Tech in 2026 by Anil Dash