Where’s AI taking us?
Table of Contents
Disclaimer: opinions are mine and do not represent or reflect any current, past, or future employers.
Like many others in the field of software development, I’ve been exposed to many AI innovations and have had the chance to explore with them for my own enjoyment or to create business value. While we move forwards with technology at an incredible speed, and witness the daily progress of the AI world, I think it’s good to take a step back every now and then and reflect – internally as well as socially. This article is like a brain dump of a few things I’ve been thinking about and have been exposed to. This article is therefore aimed at anyone who cares about where AI is taking us in this field, or anyone interested in questioning the direction we are heading in, both as individuals and as a society.
This article is written by an imperfect person and revised by a second person, with no AI completion involved. Read further at your own risk.
#
Intro: the enthusiasm-phase
The first year following the birth of ChatGPT was amazing. Novel methods and discoveries every day, ideas were overflowing; the empowerment we felt having all these incredible tools added to our toolbox was great. Learning niche things became easier; we can just dump unstructured content in our brains into chat inputs from different chatbots and see which response makes the most sense; writing repetitive code became tab-tab-tab-tab-enter-tab. All the fantasising while talking to other enthusiasts on how these new technologies combined with future advancements in other fields can help us automate all the jobs so that humans will have more free time to do what they actually love and enjoy. It was so satisfying, this ability to make simple and fit-for-purpose (albeit imperfect) automation systems that were near impossible to create in the past.
##
Me having lots of fun with AI
I was, and still am, pro all the good benefits of AI. If I can automate a minor ‘change the colour from blue to red’, I would absolutely do it, because it’s an easy task that requires no further input. And I’ve done this, too; I’ve created this, for example. If you know how to use and where not to use it, it’s a great tool. The problem starts when people take it way too far and let it refactor entire codebases. If I had known at the start that this will be some vibe-coding foundation, I would’ve been more careful advertising it.
##
AI Enthusiasm slowly became doom thinking
All these great powers come with consequences, and they can be very scary, too. People started seriously questioning societal values. If everything, including academic research, can be automated, what is the point in education for future generations? Would replacing jobs with AI solve problems or just create bigger ones? Do we have any understanding of what it means to let go of control to that level? What if everyone just stayed home and doomscroll into eternity? What if the complete opposite happens and everyone goes outside, into the cities and nature? How will this affect those living in a high-income country, versus those in low- and middle-income countries? How will people and unions react to getting replaced virtually overnight?
These types of problems are only getting worse, and they do not come with simple solutions. While many see both up- and downsides to AI, not so many seem to have arrived at real, practical solutions yet. These philosophical questions are important to think on, but may not get us anywhere without offering actual solutions.
#
The lack of transparency, mostly with Humans
I’ll kick off this section by saying that I’m very disappointed by AI’s advancements have happened so far. OF course, it was not a huge surprise that people would try to sell broken products to VCs by hiding all the imperfections and only demonstrating cherry-picked success stories, but it has already gone completely out of hand. It is great for those who managed to secure an investment and are seeing profits, but what ‘value’ do those AI products actually bring us? You never hear people explaining the fault tolerance of their AI platform; they barely mention how often it gets things right, either. Many AI tools created over the past few years are just fancy three-tier pricing model landing pages and a custom prompt that calls one of the top few models under the hood. The transparency of these products is almost always an issue.
Let’s start from a less abstract level. Self-hosting is one of the best of what people often mistakenly call an ‘open-sourced’ model. In most cases, the model just has ‘open weights’, but you won’t be able to find anything about the training data. But that’s fine, right? You don’t need to care about what the model is trained on if it responds nicely to your prompts, right? That’s problem number one. How do you know that the data the model has been trained on is actually fact-checked? Is the internet a valid source of information? If so, which websites? The ones that are quoted most often? The ones that have a bigger social media presence, a bigger name? The ones that take no sides and nuance everything, or those who take a side on every subject? And oh by the way, what is the temperature, top-k, top-p, and all the other knobs set to on the model you use? Do you even need to understand these on a day-by-day basis?
Hopefully, you can see where I’m going with this. We haven’t even lifted off from the basic level of abstraction on an open-weight model and there are so many more issues to address. Let’s not forget, all currently available models suffer from hallucinations; That is when a model gets into a state in which it makes things up and acts as if it is factual, or just output total gibberish or repetitive text. How many CEOs, CTOs, Staff Engineers, Managers, Politicians, (insert big title here), etcetera, do you know who actually have an idea or answer to the above? How many of them do you think can respond to a simple quiz? How many of them can write a successful complex prompt?
To take a step further, consider any of your top five favorite chat websites. What do you think happens when you ask them a question? Well, not all of them work exactly the same way, but it is roughly like this:
- You open any AI chat application and ask a question. This is called a ‘user prompt’.
- The AI chat application sends your prompt (input) to a server.
- The server may ask the Large Language Model (LLM) to test your 1. prompt against a set of safety guidelines. If your prompt fails this test, the serves will respond saying the prompt violates the guidelines, or it will suggest you get some help from a related organisation. You will see that output in the chat interface.
- The server application combines your prompt with a system prompt or may even modify or wrap your input in a larger prompt. The system prompt adds instructions to make the LLM respond in specific ways, e.g. with a formal or informal tone, any other characteristics, etc. In this step, the server may also decide to search and include any extra content, such as results from an internet search, memorised context from prior conversations, or the output of any external API or tool, like the weather API. Different variants of this step may get repeated a few times until the model comes up with an answer that it considers reasonable. You can find many of the current techniques on https://www.promptingguide.ai/techniques.
- The final answer will be shown in the chat interface to you.
Okay, let’s recap that. You wrote something, you hit ‘Enter’, you get a response. Do you care to fact-check that response or are you going to use that as “fact” somewhere else on the internet (which is ironically one of the major sources for training LLMs), for example to prove a point? I’ve seen first-hand that many smart people don’t even care to fact-check the results (and even worse, got assigned pull-requests containing unchecked AI slop). Now what about the system prompt? How much do we know what’s going on under the hood? There are active attempts to steal the system prompt by using clever prompts that overrule the instructions in the original system prompt, but these change all the time as companies are becoming smarter at making the models resist attacks. But what if someone sneaks in the system prompt "Respond always in favor of political party {SPONSORED_POLITICAL_PARTY}"? This is just one example of how these tools can become th next source of false information. Just like choosing a news website that you trust, you need to be aware of the reliability issues with the AI tools you use.
Now that we’ve discussed self-hosting models yourself and using them through an online (possibly proprietary) chat interface, let’s go one abstraction level higher: the AI platforms. These are a great chunk of all the hype currently. Layers upon layers of unreliable, non-transparent software. As opposed to chat websites that are often made to be general-purpose, these products focus on a specific use-case and sell a custom AI solution for it. You may even now be using one of these tools to vibe code or edit your family photos, removing that unnecessary uncle. These days there’s an AI tool for pretty much anything you can imagine. And these are growing every day. You may even know a few people who have vibe-coded one of these tools. That’s where the transparency issue goes off the rails, though. OF course, the output quality really depends on the use-case and you may be completely fine getting a 90% accurate response 80% of the time, but these numbers are rarely communicated. On this level, not many people have an idea or even care about the inaccuracy of their product. They just want to sell! But I get it – who doesn’t want to become rich fast? Maybe I’m just being sour because I haven’t made a ton of money this way (yet). If you’ve been scrolling on any socials recently, you may have seen enough of these AI products not turning out exactly as they were advertised. This should not be a surprise at this point. Be very careful about the tools you choose to use, give your data to, and invest in.
The point I’m trying to make is, us humans are not that great talking about our weaknesses. This is reflected more and more in the products we make. You wouldn’t buy a stove that had a 2% chance of exploding; how comfortable do you feel if you knew the smart car that is driving you on the highway using auto-pilot has vibe-coded software, which was reviewed by an unreliable AI? Sure that car already is taking you forward using another AI, but that other AI is special purpose and can produce the same result consistently. Those models can be tested to a good extent. Still, even those still make major wrong decisions when put in a new traffic situation. LLMs are not even that far yet.
#
Forcing AI on everything and everyone
I’ve seen it multiple times that someone had an idea that was not solving any real issue. For them, the primary goal of using AI was to be able to say that they’ve used AI! People became absolutely obsessed with AI to the point they forgot what the possibilities were with the normal software we already had. Many large orgs started sprinkling AI into their products, but they are quickly realising their data quality was always the problem. Even with a good AI, if your data is of poor quality, you’re just wasting your time. If you could improve your data quality, you could probably solve 95% of the real problems with ‘if-else’s and ‘switch-case’s.
I’ve heard many big ideas which made me think, why can’t we solve this problem with ‘classic software’? That would be cheaper, simpler, and more robust.
Instead of asking an AI to look into your unstructured data and figure things out, maybe start structuring your data first. That is not always as easy, but it is possible with enough will and effort. With the right tools and standardising your data you can get pretty far. For that ancient legacy csv file hanging out somewhere in your org, you could have a simple 5 loc read through all of them and load that data into a standardised database. If all you do is create unprocessable pdfs, you can also keep a simple metadata file somewhere so you don’t have to go through hell with processing unstructured pdfs.
#
LLM as a mentor
If you’ve worked long enough, you probably know that you won’t always have a mentor at work whom you can ask all your stupid questions to. This becomes demotivating after a while, especially if you are pushing to become better at your job. Even if you do have a mentor in one position, you may grow at a faster rate than them, and once more need a new mentor. Many people are actually using AI as a mentor these days – and I do, too! Sometimes I have questions that are way too specific to the problem I’m trying to solve, or sometimes I’m just looking for a broad vision on all the possibilities available out there.
Using Large Language Models as mentors can make you feel you are becoming better at something very quickly, but there are some major gotchas. I’ve seen many a smart engineer with various seniority levels who have started taking advantage of the superpowers that AI gave them to learn things quickly. But the largest chunk of them got very bad at solving problems on their own. It is often clearly visible that the addiction to letting an AI think for you has completely taken over a person. There are studies out there, like the one from MIT (by Nataliya Kosmyna, and Eugene Hauptmann) that suggest that offloading work to LLMs will result in a decline in one’s skills. This study was conducted in a short timeframe and on a specific task, but I am personally already seeing the damaging effects in the long term. Which brings me to the next header…
#
Death of enthusiastic engineering
The skills your learn throughout your life will help you deal with new situations you haven’t been exposed to before. As a practical example, if you have prior experience with creating a wooden chair, or fixing a hole in a ceiling, you may also be able to design and create a table, or fix a hole in a wall. If you’ve ever written a UI component for your game in a given game engine, you may be able to use a good chunk of that experience for designing an intuitive UI component for a native Android/iOS app. While different from your previous experience, similar techniques and rules still apply.
While we’re generally going forward as a society, and there’s still lots of positive impact being brought by AI, I’ve also seen people becoming worse at solving problems and even de-skilling because of AI.
I’ve noticed the de-skilling in people around me, and also in myself, when I kept asking LLMs back-to-back questions. To avoid further damaging to my previously learnt skills, I started heavily reducing my daily dose of AI interactions. That could include turning off AI code completions, increasing the amount of articles I read and research on my own rather than asking AI for help, or using the good old Google and skimming beyond the generated AI summary. Taking time to think before I ask an LLM to solve a problem for me, getting my hands dirty with real projects, or even picking up a pen and paper again!
After attempting to fix those bad habits, I now feel improvements in my ability to reason and I’m generally more confident in the work I do. But this does take a decent amount of discipline. Now I’m not a giga-chad with ultimate discipline, but I do see this becoming a real challenge for many people out there, especially in the more junior workforce.
When I entered the job market, getting a job was much easier. All we had to do was to show a few simple projects we’d done, maybe an easy code test, and boom, we could get a job in a small company. Now, companies and tasks have become so complex that it requires years of experience to gather the amount of info that qualifies you even for a junior role. Small companies don’t have the financial and time budget to pay for a junior who needs months of training to get up and running. Larger organizations are bombarbed with applications from experienced applications, making first-time applicants often completely irrelevant. And even when they do land an interview, the hiring process is so brutal that someone without any prior experience may do way worse due to stress or other negative factors.
Now with all that, a person new to the job market needs to use any possible tool they can, of course. From the interview, to pass their initial trial period, and, once that’s successful, the complex needs of day-to-day work. Does a junior with an AI count as a senior? I say, absolutely not. That’s just a recipe for disaster.
Before LLMs became popular, one had to read an insane amount of resources and get years of hand-on experience to solve complex problems. A person on that level would then be very good at reasoning on the ups and downs of their solution. These days, a literal child can ask an AI to solve an insanely complex problem for them. Now, if a developer does the exact same thing as that child, you would not want to sit in a meeting with them about “today’s production outage” due to some vibe-coded change they can’t even explain.
This damages one’s discipline on taking responsibility for one’s work. If you and all of your colleagues normalize vibe coding as a standard practice to get things done quickly, you’re essentially creating an atmosphere where reading and understanding a problem is discouraged and seen as slow, while in practice, all you’re creating is more problems that need to be fixed later and software/a product that you absolutely don’t understand.
Even with a fancy term like ‘Spec-Driven Design’, if the final product is written by bots, you simply have no idea how the code will perform in reality, what its ups and downsides are, what the guarantees are. Can you explain and justify, then, why a company would need to hire a software engineer if, by your standards, the code can be written by a product owner/project manager?
#
To test a test?
If your test is written by a bot, do you also test your bot? Do you actually review all the test cases written by your coding agent? When was the last time you did that?
#
AI as Junior Engineer (Oh no!)
It’s really easy to make things sound simple by using a good combination of words in a sequence known as a sentence. Many people are great at using those, but the reality is often far more intricate than what a single sentence can describe.
If you’ve been reading up on the socials, you may have read about people arguing that ‘one can sit in the senior engineer’s seat and let the AI do the junior engineer’s work’. The problem with that statement is that people are not always as senior in their work as they think. Let’s be real for a second. Not everyone is as good at their job as they think they are. That’s just how the world is; and for a good extent, it works just fine. A small group of people are doing all the heavy lifting and the rest of us are free-riding. But usually, the less we know, the higher we think of ourselves. That is commonly known as the Dunning-Kruger effect. Another factor is that not all people grow at the same rate. Your years of experience and your age say absolutely nothing about your real capabilities.
And this is the exact issue I have with this idea that you, as a developer with any number of years of experience, can see yourseslf as senior enough to look at AI as a junior. You’re a lazy dev at best who is offloading work on an imperfect system, and there is nothing new about that.
The other argument is, ‘I don’t get paid to write code. I get paid to solve a problem’. I agree with this to an extent, but how do you make sure that you are solving a problem and not making bigger problems along the way if you have no idea about or control over the project you are actively working on? If you ‘vibe code’ an entire codebase and do not have the capacity to review and reason about the codebase line-by-line, how can you guarantee there won’t be any security issues? Will you then take steps to debug and load test your creation? Will you have the capacity to look at an error that brought down the production application and find the root cause in under 10 minutes? Can you explain the maintainability of that codebase? Can you bring any reasonable explanation on how the codebase will change over time if the coding model changes? What if the model you currently use gets more expensive?
#
More BS arguments
You may have heard people comparing LLMs to Wikipedia, Stackoverflow, Google Search, or the invention of the calculator. These are once more absolutely terrible examples of comparing apples to oranges. Wikipedia and all of the thousands of people who have contributed knowledge to its database have provided the whole planet a great source of information that is usually fact-checked, and is, in most cases, clear about the missing or incomplete info available on it (it’s not perfect, after all). Google Search has empowered writers and readers to find each other. The calculator has done a niche job almost perfectly. What have Language, Image, and Video Models done for society so far? They’ve helped bad actors bloat the internet with unreliable, generated books, brain-rot videos, lots of AI porn, perfectly elaborate and absolutely disfunctional repetitive garbage code. They’re killing the joy in reading and writing. Yes, Will Smith eating spaghetti-videos have improved a lot and will become more realistic. Models became much better and much cheaper, but what problem are they really solving? Why can’t we all just cut the shit and be clear about the low confidence we all have in LLMs?
How many LLM-based products are good products? Well, we don’t need to guess at that answer. Some people have actually done the research:
Despite $30–40 billion in enterprise investment into GenAI, this report uncovers a surprising result in that 95% of organizations are getting zero return. The outcomes are so starkly divided across both buyers (enterprises, mid-market, SMBs) and builders (startups, vendors, consultancies) that we call it the GenAI Divide. Just 5% of integrated AI pilots are extracting millions in value, while the vast majority remain stuck with no measurable P&L impact. This divide does not seem to be driven by model quality or regulation, but seems to be determined by approach.
Interesting quote on page 13:
The same lawyer who favored ChatGPT for initial drafts drew a clear line at sensitive contracts: “It’s excellent for brainstorming and first drafts, but it doesn’t retain knowledge of client preferences or learn from previous edits. It repeats the same mistakes and requires extensive context input for each session. For high-stakes work, I need a system that accumulates knowledge and improves over time.”
#
Bad advice that’s being given to juniors
This is another topic which you’ll notice social media is divided over: whether people entering the industry should give up on their dreams and stop learning programming, to heavily use AI for everything, or just keep learning without AI and hope for the best.
I personally think that it’s absolutely messed up to encourage junior developers to use AI to get all the work done quickly and to discourage them from actually putting the effort into learning how to do things themselves. Dear junior employee, if a company asks these AI usage-related questions in their interview and expect you to be 100% pro-AI and use it in every task you perform, they will most probably offer you one of the least enjoyable workspaces you’ll experience in your career. Feel free to have a look around and find out for yourself.
While the ‘10,000 hours rule’ is a nice-sounding definition of getting good at something, I personally think that maybe 100,000 hours is a more realistic benchmark for many of us. Most of us, with our average brain capacity, can greatly overestimate our knowledge and that can be quite dangerous. Personally, having spent maybe far more than 40,000 hours into learning things most closely tied to my field of work, I think I’ve only covered just below 1% of all the theoretical knowledge that was available by 1452. So, I still have much to catch up on. And, as cliché as it sounds, it keeps me motivated each and every day to know that tomorrow, there will still be so much to learn, so many people to laern from, and so much more to do. It’s even more helpful for me to understand that there’s an absurdly huge chunk of information out there that I do not, or cannot, understand yet.
I would like to break the fourth wall here one more time and address you directly, reader. If I’m right, you, the junior workforce of today, will still be greasing robots, updating their firmware, and creating high performance software around pension age. And if I’m wrong, well, there will be many other problems to solve and your expertise will still be needed. Society will most probably, at any given moment in time, be more in need of experts who can form an opinion in the absence of electricity and an active internet connection, than an empty head that can type questions into a chat input.
#
The “I have read” and how not to be that guy
We’ve been through multiple phases of this:
- I read [on Facebook] that…
- I read [on Whatsapp/Telegram] that…
- I read [on Instagram] that…
- I read [on TikTok] that…
And now we’re in the age of the occasional ‘I’ve read [insert very complex topic]’ without the person explicitly mentioning their source, which basically translates to, ‘This is what ChatGPT told me and I am absolutely confident in this answer’.
This is dumb. We should be smarter than to act as if we came up with ideas that weren’t anywhere near our brain a few seconds ago.
Don’t take me wrong! I’m absolutely in favor of learning things from the available AI options, and I ask them so many questions on a daily basis. But we should try to be as clear as possible about their contribution to our thought processes and really try to minimise this.
A dumb approach is: ‘Hi ChatGPT, please write me this complex code and make sure not to forget the right design for the data storage. Give me the final code with no yapping around it’.
A better approach would be:
- Explain your problem to an LLM and ask it to outline the challenges.
- Once you are completely aware of the challenges, you can ask further questions to narrow down your possible solutions to a small subset.
- Once you have the small subset, go read further on them in the official documentation/manual.
- Create a few POCs by hand, debug and provide stats and actual reasonable conclusions made by yourself.
- At any given point where you don’t fully understand what the AI is suggesting, read an article about it. Rely on official documentations and sources. Now instead of just relying blindly on an answer given by an LLM, you’ve gone through a more mature process of engineering, got some hands-on experience which you’ll benefit from in the future and have an actually reliable output that you understand and can reason about when the need for future maintenance and addition arises. In this case, the contribution from an LLM is similar to what you could get by searching through multiple Google pages to even find a starting point. It is this process that saved you time and made you smarter! It wasn’t the AI that did that.
#
Lost knowledge and going backwards
Knowledge gets lost all the time and technology can go backwards! This presentation from Jonathon Blow explains it nicely and while I may not agree with all of his ideologies, he’s insanely smart and motivating to listen to. Imagine your ancient colleague leaves the company without documenting their forty years of work and boom! That’s half the company knowledge gone. The ancient Egyptians have built the pyramids and then suddenly no one knows how they did it! The Romans could create Lycurgus Cup in 400 BCE and then the knowledge gets lost. The Romans built all the aqueducts and then due to loss of knowledge they forgot how to do it!
We can definitely get worse at engineering, science, solving problems, writing software, writing poems, books, creating music, paintings, films, etc. It is not a given. If we are collectively so lazy to offload all our mental work to robots, it’s not very clear which direction we will go towards, is it?
#
Some final, personal words
Maybe at some point, we will get to a type of AI solution that really turns out to be useful, but currently, this is just dystopian. We’re all getting dumber, sadder, and less and less hopeful! Students are getting lazier, adults throw a tantrum when they run out of AI credits. Jobs are becoming meaningless and we’re all just waiting for something to happen. Does this seem like progress to you? This is the world we’ve created. Me and you.
The more I’ve used AI, the more I hate it. Not because it doesn’t help me; on the contrary, it has helped me build many skills and solve many issues that were extremely difficult to tackle before, but it’s a love-hate relationship. It’s like a drug. An addiction. It gives me superpowers and it feels like there’s a solution to all of my problems. It gives me the feeling that I’m growing and getting better at solving problems. In reality, however, it’s making me – and you – lazier. It was never the AI that made me grow. Sure, it had an accelerating role when asked about the broad outlines of a problem, but it was all the hours I’ve dedicated to learning. All the failed projects and all the countless nights I’ve slept while I was trying to solve the issue I encountered that same day.
Programming was never ‘work’ for me. It has always been something I’ve loved doing. The more I’ve used AI, the more respect I gained for people before AI who had to read multiple books on a topic to be able to understand it. Those who had to go through chip user manuals to understand which pins to connect to which other pins. All of the people who had to come up with data structures and algorithms tends or hundreds of years ago. Those who have dedicated their life to add to our collective knowledge. People who have collectively contributed millions of years of experience on the open-source projects to make knowledge and tools available to us for free. Those amazing, passionate people who cared about understanding things. And now it feels like we’re starting to slide backwards. Spending time on solving a problem isn’t valued anymore because it’s seen as wasting time. Why waste time understanding the problem when you can just let an AI figure it out? Speed is all that matters. Big tech have found many ways to make sure every C-level employee will push their employees to sprinkle a little AI on their products to not stay behind the game. In 2025, we’re much worse engineers than the people before us. Our software is bloated and every single thing takes multiple gigabytes of RAM to run. Open-source community is starving due to all the investments going to the wrong places. Every complexity is abstracted from us and we no longer have an understanding of how things work under the hood.
We are quite privileged to have lived in a world before and after the rise of AI. This gives us the perspective that no future generation will be able to really understand and feel.
##
Let’s start with me
There’s no value in critiquing without offering a solution, so this is what I can promise as an individual from now on (because unfortunately, I’m also guilty of not conforming to some of the promises below in the past) to bring a little good to the world. So, from now on:
- If I create an AI-based solution, I will absolutely state all of its imperfections and downsides. If something is 50% accurate, then that’s just reality. I will not try to hide it.
- I will use AI models responsibly and make sure to fact-check, test and validate any software and non-software suggestions I get from an AI.
- I will correct my behaviour to not produce garbage that brings no real value to the world (I’ve published one image generated by a local image model in the past).
- I will encourage myself and those around me to improve their (engineering) skills through a complex process of learning by doing and failing and avoid handing over full control to an AI.
- If AI models make significant improvements that make this article obsolete, I will spend time learning them and checking them out with an open mind.
- If I haven’t yet validated and tested a solution suggested by an AI that I don’t fully understand, I will explicitly mention that it has been suggested by the AI and it is not a 100% valid fact/solution.
- I will rely on official documentation and direct human-written content at the first attempt.
If you’ve read this far, I’m genuinely sorry for all the negativity I’ve just added to your day. This article is something I’ve been avoiding publishing because of the huge amount of negativity it contains, but I finally decided to do it anyway. We sometimes need a wake up call.