The various reasons I’m fed up with my current situation
AI, “What a pleasant surprise!”
Let’s put this out of the way: I hate AI, for various reasons, but let’s focus on the job topic:
- Takes the fun out of programming It’s a job, so, invalid argument
- Ecological disaster I’m currently working in the consumer electronics industry, so, invalid argument too
The main issue in a working environment is to make it clear that a proof of concept is not a product. Taking shortcuts to test or demo something makes sense. AI is good at it and blazing fast.
I would be surprised if a Software company would have a strong no-AI policy, but “How many percents of your core product code is generated by LLMs?” is definitely on my questions list.
An analogy to trigger you: would you build a 3D renderer based on a demo of the demoscene?
Lessons learned
In every company and likely any project released or canceled ends in the same way:
After doing, a ton of things, including a lot of failures over years. At some point a full review is done. Its name is variable: call it “retrospective”, “review” or my favorite: “lessons learned”. Why my favorite you may ask?
Spoiler Alert
We never learn anything.
“Ah shit, here we go again.”
In the best case scenario, a few important mistakes are avoided. From the critical ones, nearly everything is repeated over time.
The classics from what I saw. In EVERY SINGLE FUCKING PROJECT I worked on in a professional environment:
There is no clear architecture or no architect on fairly large projects: Every team work in their area, despite being all the time in meeting no information is shared. You end up with double work, non compatible interfaces, breaking stuff you didn’t know existed.
Unrealistic plan from the beginning or sudden plan change: everybody wonders how unrealistic (or “Sporty” in management language) is the planing. If you think no one cares, remember you need to rush, and not only in the end.
Really debug only in the end.
On top of that, add normal mistakes you cannot easily prevent if you don’t know them and, the critical failures you make because you absolutely want to do something different way.
Build crap with gold
I work with some really talented people, but the project quality is so far below from what a normal human being would expect from these profiles… that’s something I cannot explain and that’s killing me.
I asked for fun from time to time who in my team would feel confident to release the current state of our repo as an open source project. We’re all ashamed of this quality.
Let’s troll a bit: consider the monsters working at Microsoft and look at the crappy Windows… what kind of dissonance is this?
Never fix, just workaround
Why don’t we just fix things when we can work around them faster? … And end up spending an absurd amount of time fixing stupid mistakes afterwards.
In the fantastic times of AI, this is a bigger problem than ever. Things are not compatible? Just vibe-code a wrapper. It works, why should you read the code? Someone complained that it stopped working? Re-ask your favorite agent, tokens are cheap (so far).
By experience, if you want to fix something working often, you have some options:
- Don’t consider fixing it
- Attempt to quickly fix it and abort
- Write a ticket which will rot in the backlog:
You won’t fix it because it’s low priority, and the day it became a real problem you will notice it will take a tremendous effort to fix as so much stuff was added…
But the priority will change from “won’t do” to “blocker”. - Do “Guerilla Software” as a colleague named it: don’t tell your boss you’re doing it, just fix it properly, eventually over time.
Ok, so what now?
These main reasons lead me to believe it’s time, not to look for yet another job in yet another company, but to truly change things.
Let’s throw away decades of experience in software and start building buggies: ~400 kg, a ~75 HP electric motor, ~100 km autonomy: Something approaching the kind of cars we really need to go from A to B in a fun way.
No ok, I’m joking… Even if I’m pissed off with the car industry and if I would break down that’s probably what I’d try to do, that’s another topic.
Giving up on software is not an option for me: this is my main hobby. I can understand the argument “You’re paid for doing your job, so don’t give a shit about what you deliver”, but that’s not me.
By the way, let’s be honest, the overly comfortable situation some magical keyword on a CV add to your income is just insane.
The ideal working environment for me (likely not realistic to check everything, but I can use it as a reference… and depress later on, signing a contract).
Work in open source environment. Everything I do must be open source
I need to be sure of my stuff before pushing it. We properly review before we release something broken (oh, and the CI pipeline is reliable).
As a bonus, looking at the sources before signing up is possible.Work for a non-profit foundation.
Hopefully less bullshit, nothing should be hiddenNo vibe coding (using an LLM is fine if done responsibly, but if you need to maintain generated stuff you didn’t even read, maintain it without me).
Not a single Windows PC around (including sales, HRs, …).
Fun fact (ok, depressing fact)
As some project in a company where advertised as “Open Source”. What did I do being a new employee and discovering these projects?
Yes indeed, I searched for their repos from home! But guess what “Open Source” does not mean Open Source, it’s just internal open source.
If for some reason, you may consider it, you can find my redacted CV here. Feel free to contact me.