I’ve been writing code for more than a decade. For the first time in my career, I’m not sure what I’m proud of anymore.
Don’t close the tab yet. This is not another “AI will take your job” post. I’m more productive than I’ve ever been. I’m shipping things I couldn’t have dreamed of three years ago. And at the same time, something inside me is quietly grieving. Both are true, and I think a lot of you feel the same, even if you haven’t said it out loud.
So let me say it out loud.
We’ve entered what people are calling the age of the Centaur: half human, half AI. A developer permanently paired with a machine that out-codes him. The centaur is faster and stronger than either of its halves alone, and I’ll show you exactly how much faster later in this post. What nobody tells you is what happens to the human half’s mental health.
Only about a year ago, I wrote this article about the future of software devs and CHOP (Chat-oriented programming. Read the article here to learn more about this.) Just to fast-forward a year, and now CHOP is dead already! Replaced by coding agents. we longer need to chat and write code, cause the agents have enough context to do everything on their own.
Two things made me fall in love with software engineering. The first was the ability to materialize my thoughts into something tangible, something people could use, something that could change their lives. You have an idea in your head, you type for a few hours, and it exists. That has always been the thing that gets me out of bed.
The second was the pride of solving a hard problem in a smart way. Finding the trick. Doing in five lines what someone else did in fifty. Knowing C# well enough that a colleague reading my code would raise an eyebrow and say, “oh, that’s clever.” It was a game, and I was good at the game.
AI has put the first motivation on steroids. AI has taken the second one away from me.
I’ll get to the good part at the end of this post, and there’s a lot of good. But I need to walk you through the painful part first, because that’s the part nobody in our industry wants to admit.
AI Is (almost) the Ultimate Abstraction Layer (and That’s the Problem)
If you’re old enough to have written C, C++ or assembly, you remember pointers, malloc, and the joy of managing memory yourself. Let me take you back even further. Punch cards. People used to talk to machines by poking holes in pieces of cardboard.
Then came assembly, which is about as close to the bare metal as you can get. Move a value into a register, move it from A to B, do it all by hand. Then one layer up: C, C++, Pascal. Still manual memory management, still very easy to shoot yourself in the foot. I remember programming in C++ back in the day with pointers and malloc everywhere. It was really, really complicated.
Then Java and C# came along, and that abstraction layer changed many developer’s lives. I started programming in C (Self thought, back in Cameroon) the I learned about C# and I jumped to C#, and for more than a decade I was able to materialize my thoughts into working software faster than ever. Microsoft treated its developers like clients: listening, shipping new frameworks, fixing bugs. Things were going well.
Now look at what just happened. AI is the new abstraction layer, and it’s almost the final one. You no longer write the code. You describe what you want, it writes, and you correct alongside it. My thoughts become tangible solutions faster than they ever did with C#.
Every previous abstraction layer took something away from the layer below and gave programmers something back. Assembly took away the punch cards. C took away the registers. C# took away the pointers and memory management (Thanks to the garbage collector). Each time, we were happy to lose it.
This time, the layer took away the writing of the code itself. And writing the code was the part I loved (Many of us loved it).
Do We Even Need Programming Languages Anymore?
This is where my thinking went somewhere uncomfortable.
A few weeks ago I was talking with a senior engineer at a client where I freelance. He was sharing pragmatic tips for making code safe: use the result pattern instead of throwing exceptions in certain places, avoid a class here because it might produce a NullReferenceException, small design decisions that lower the odds a human touching the codebase later causes a crash in production.
Everything he said was sound. I’ve done the same for years. In every C# project I add an .editorconfig with strict null safety, because earlier in my career I shipped more null reference exceptions than I’d like to admit, and even as a senior I found them hard to avoid without the compiler holding my hand. Dart didn’t enforce null safety natively when I used it, so I put the guardrails in myself.
But as we went back and forth, something clicked. Clean Architecture, SOLID, DRY, the result monad, strict null checks, every one of these exists for one reason: to protect code from humans. Legible code, easy to maintain, limited dependencies, fewer places to make a mistake. They were designed around our imperfections, so a junior joining the project doesn’t take production down on a Tuesday.
In the age of AI, do we need them to that extent? And then the bigger question: do we even need the languages?
Think about it. C#, Java, and the object-oriented languages we love were built for human beings. Objects, classes, naming things after the real world, reusable abstractions, descriptive function names. They’re excellent for us. They are not optimized for an AI agent.
A language optimized for an agent would burn fewer tokens. OOP is verbose. It would need fewer human-friendly concepts. It would still have to let a human jump in and fix things, but it would be designed for the machine first and the human second. We already have a hint of what that looks like: F#, the so-called noiseless language. Put F# next to the equivalent C# and it’s like comparing two different worlds. Both compile down to the same IL and the same machine code anyway.
Push it further. These models could write straight to assembly if they were trained to. They could skip our languages entirely and get their code running without ever producing a line a human was meant to read.
That thought made me cry a little too. Not because it’s wrong. Because it means that the languages I was proud of speaking might go the way of punch cards, within my career.
For french speakers, here’s a Youtube video about this article and my thoughts. Enjoy, and don’t forget to share your opinion in the comments.
Claude Will Always Code Better Than Me
Here’s the sentence I hate to admit: Claude codes better than me. Not sometimes. Always.
I used to be able to optimize my software so it loaded faster than the competition, ran tasks quicker, and even looked better. What someone would do with dozens of lines of code, I’d do in five. That made me feel like I was above the rest of humanity, you mere mortals. I’m kidding. Mostly.
Remember how it felt when a colleague read your code and nodded? When someone on GitHub looked at your two-line shell script that replaced a hundred lines and said, “this guy is savvy”? That was a currency. It bought you respect, it bought you job offers, and honestly, it bought you self-esteem. Heck! Even my articles on my blog bought me respect and more. Hundreds of thousands of people per year used to read this blog to find solutions to their problems. But today, they turn to AI. So much so that that trafic plumetted and I’m no longer motivated to write any tutorial or article.
That currency has been devalued overnight. Every AI agent out there does the smart thing by default. It knows the algorithm, it knows the latest syntax, it knows the trick I spent a sleepless night discovering.
Nobody raises an eyebrow at clever code anymore, because clever code is now the baseline.
Nobody raises an eyebrow at you shipping a new app anymore, because it has become so easy! The entry barier has crumbled.
It didn’t happen all at once. I’ve been using coding agents for over a year. I started with Claude Code before it was really known in the ecosystem, and the first time I used it, it hit me: this is it, this dissolves the art of writing code. But back then Claude was a little clumsy. I still had an edge. I’d check its work, correct it, steer it in the right direction.
Then, a few months in, I noticed I wasn’t checking as often. Then skills arrived, and that was the real game changer: I could tell Claude once how I like my code written, and it would just write it that way, forever. Then I could spin up a second agent to review the first one’s work and catch bugs even after unit and integration tests had passed.
Each of those steps was a win for my productivity. Each one was also a small funeral for the part of me that enjoyed the craft.
I even got that sinking feeling confirmed while writing this post. I came across DHH, a developer admired by thousands of devs, declaring that writing code is dead. The coincidence made me sadder and relieved at the same time. At least I’m not the only one.
The Three Hours That Broke Me
Let me tell you about the moment that pushed me to write this post.
I’ve been learning the Microsoft Agent Framework. And I love it. The architecture is beautiful. The concept of an agent has been simplified to the point where creating workflows, streaming a conversation to a user, or orchestrating teams of agents that collaborate with each other is almost trivial.
So I did what I’ve always done with a new framework. I sat down with the docs and the samples and let my mind shape itself around it. Which class goes where. How I’d instantiate a workflow and see it through. How I’d make agents talk to each other elegantly. How I’d manage connections to different models and pick the right one for each job. Beautiful code, straight to the point, nothing you don’t need, solid architecture. Programming wizardry. That’s how I’ve approached every framework in my career.
I was three hours in, happily reading, uninterrupted. Then a thought landed, and I couldn’t shake it:
“You won’t even be the one writing this.”
Why am I memorizing class names? Why am I learning the particularities of the syntax? I’m not going to type any of it. I’ll describe what I want, an agent will build the agent, and it’ll make architectural decisions that, I hate to admit it, are sometimes better than mine. All I’ll do is nudge it in the right direction.
And just like that, the beauty of the code I was planning to write, the pride I was already feeling about how I’d align things, all of it faded away. In a single thought.
The moat a senior engineer had is my understanding of the business logic, the impact behind a decision, the context, a bit of common sense. That’s real, and I’ll come back to it. But the technical moat, the one I spent fifteen years digging? I can feel it filling up with water.
This Blog Used to Have a Reason to Exist
If you’ve been following doumer.me for a while, you know the pattern. I’d hit a problem with no solution online, or a solution buried so deep nobody could find it. I’d fight it for a night, crack it, and compile the fix into a post. People from all over the world facing the same bug would land here and get unblocked. That was the deal. I was proud of it. Really proud.
Look at my archives. The frequency of my posts has dropped drastically since AI became a thing, and I don’t think I’m alone. Traffic dropped with it. What’s the incentive? If you have a problem today, it is difficult for AI not to be able to solve it. Not impossible, I still hit cases where it hallucinates or wanders off topic, but those are the exceptions now.
When people asked me how many languages I speak, I used to joke: “English, French, C#, C and Java.” It was a joke, but it was also the truth. I took pride in the sleepless nights, the git commits, the articles, the programming languages I’d mastered.
Now any average engineer can ask their agent to read the spec of the latest language version and use the most savvy, most efficient way of doing whatever they want. Coding is no longer the moat, and that pains me somewhere.
I Don’t Know My Own Codebase Anymore
This one is less about pride and more about something that worries me.
When I code with AI today, I don’t have a mental map of my own code. I can’t tell you what it looks like, where each component sits, or what each one does. Ask me, “which part of the code applies this business rule?” and I’ll have to go look. A year ago, I’d have answered before you finished the question.
Even with skills telling the agent exactly how I want things written, I only have a broad idea of what it did and roughly where to find it. The exact functioning is gone. I know the shape of the house, but I couldn’t tell you where the plumbing runs.
I thought it was just me. Then I had a long conversation with a senior engineer with more than 20 years of experience, and he described the exact same thing. I’ve since had this discussion with several other engineers. Same answer every time.
We’ve traded understanding for throughput. I’m not yet sure what that’s going to cost us on the day something breaks at 2 a.m. But what I’m sure of is that, even resolving 2 a.m breaks has become easier with AI.
Okay, Now the Good Part
I promised you this, and I meant it. Everything above is true, and so is this: I have never built so much, so fast, so well.
Remember my first motivation? Materializing thoughts into something tangible. That one is now on steroids. With my knowledge of software engineering plus a team of agents, I’m building things that are more robust, more secure, more personalized, with more functionality, fewer crashes, and better performance than anything I shipped on my own. Things that would have taken me months now take days. Three years ago I would not have believed it.
Some concrete numbers from my own work: I’m roughly 3 times more productive than I was three years ago, and the code has far fewer bugs. Here’s what the stack looks like in practice:
- Skills tell my agents, once, how I want code written, so I don’t repeat myself in every prompt.
- Multiple agents in parallel, including one whose only job is to review another agent’s work and hunt for bugs after the unit and integration tests pass.
- Wispr Flow so I can literally talk to my agents instead of typing.
Debugging has changed the most. I used to lose myself in the infinite steps of tracing a bug: read the log, trace the log, compare the values in the database, check this, check that. It drained me. Now I delegate the boring parts to my agents and keep the interesting part, which is understanding what actually went wrong and why.
And there’s something new that I couldn’t do before at all. In some of my side projects, the software adapts itself to each user. Based on who they are, how they behave, or what they tell it, the UI slightly reshapes itself. That was never impossible, but with humans writing every branch by hand it was so expensive that nobody did it. Now it’s a weekend.
That’s the part that excites me. We’re not just going to build more software. We’re going to build digital experiences. We’ll experiment more, learn more, iterate faster, and raise the abstraction layer of software itself in ways I can feel but can’t fully picture yet.
So What Do You Brag About Now?
If you can no longer brag about how elegantly you engineered a solution, how well you leveraged recursion, or how fast you mastered the new syntax of your language’s latest version, then what? What makes you different from the competition?
I’ve found three answers so far.
1. Your edge is context and taste, not syntax. The agent I’m building right now automates a marketing process I used to run by hand. I know every step, what works, what doesn’t, and what to throw away. The output will be seen by a large audience, and AI doesn’t understand taste, at least not my taste, the way I do. I’m the final judge. The same goes for architectural decisions rooted in business logic and real-world constraints: the agent proposes, I decide. That edge is real, and I don’t see it fading soon.
2. Your edge is how well you wield the tools. Skills, agent teams, review agents, voice-driven workflows, knowing which model to use for which job. The engineer who orchestrates all of this well is doing something the average engineer still isn’t. This is the age of the centaur, a dev paired with AI, and a centaur beats both the human and the AI working alone.
3. Your edge might not be in engineering at all. This one surprised me the most. The entry barrier to building software has collapsed, so building is no longer the hard part. Selling is. Five years ago I never thought about sales. Today I’m learning it, and AI has democratized that skill the same way it democratized coding. I’ve been running cold email campaigns, experimenting with different formats, and for my last 10 campaigns the open rate has been above 60% every time, above 80% on some, with replies coming in. For someone who’s been coding his whole life, that’s remarkable. It’s let me validate ideas, test products, and enter the B2B scene with projects I’d have sat on forever otherwise.
I don’t think software engineering is doomed. I think it’s transforming into something cross-domain, where engineers do things engineers were never supposed to do. I can proudly say I’m becoming one of those. Nobody knows what the job looks like in 5, 10 or 20 years, but I’m fairly sure it won’t be “person who types C#.”
I’m Still Looking for the Pride
I’m doing my best to adapt to this new world, and I’m optimistic about it. I mean that. But I have to confess that no matter how excited I am about AI and the future, I still feel pain.
Sometimes I wish coding had stayed what it was. Especially when I catch myself wanting to learn something new, because I love learning new things. I love the pride that came with knowing one more syntax, one more framework, one more trick. A few languages I mastered, and I was proud of every one of them.
That pride is gone, and I haven’t found where the new one lives yet. Maybe it’s in what I build. Maybe it’s in who I sell it to. Maybe it’s in being one of the first engineers who learned to work alongside a machine that out-codes him. I’m still looking.
So tell me: do you feel this too? Have you found where your pride went? Drop a comment, I’d love to know I’m not the only senior engineer quietly crying over his keyboard.
