I used to be a software engineer, but these days I find myself being more of an agents manager: constantly switching between 3-4 tasks that my agents are working on, and making sure that the features get shipped, the bugs fixed, with correct and clean code. There's no doubt that I'm producing more value for the company, but I wonder if that's the best I can do for myself if the goal is staying relevant in the coming years.
I wonder: if the AI is writing all the code, what value am I bringing?
In an attempt to keep my critical thinking and coding skills sharp, I sometimes foolishly try to debug errors or implement a feature myself. But it feels like wasting time when an agent can do it in a fraction of time.
What is gonna be sought after in the coming years: someone that persevered with manual coding and debugging but is slow and uncomfortable around agents, or someone that has little coding and debugging skills left but knows how to orchestrate dozens of agents effectively?
I'm curious to hear what other software engineers on HN's approach is.
imo the valuable thing we bring as software engineers is and has always been solutions to problems with the contextually correct quality/speed/cost tradeoffs. with agentic coding, these factors all shift and we're all in the process of recalibrating. namely the speed dial can now be shifted way down.
to answer directly, i live in claude code now. and while it's a different shape of daily work, i'm still engineering, still evaluating those 3 factors and figuring out how to triage and solve user-problems much faster than i could 5 years ago.
I have the agent grill me/ask me questions about what has been implemented, often on a fairly technical/granular level of the feature is important enough.This is obviously way slower than just vibing the whole thing and ticking off a passing test suite (that the agent also wrote). But I find that doing this has allowed me to retain most of my problem solving and reasoning skills (which have definitely atrophied).
People are kidding themselves thinking they fully understand what is going on at a deep level for 3-4 (or more) parallel tasks constantly context switching. It's also an anxiety-inducing way to work and has led to a proliferation of agent management tools enabling max efficiency.
Focusing on systems thinking/observability/knowing when NOT to build something/using agents to fix/learn new things quickly seem to be where I see devs still bringing the most value compared to any other cowboy.
if the AI is writing all the code, what value am I bringing?
What wouldn't an average person off the street be able to do?
I think you're mistaking typing characters on a keyboard for coding. Designing a system is coding. Knowing what refactorings to do to ensure things evolve in the right direction is coding.
Being able to recall all the syntax has lost value due to AI, but designing and leading the feature development hasn't and that can't (yet) be trusted to AI.
I'm not too worried about keeping skills sharp - if I'm ever put in a situation where they become relevant again I'm confident I can just relearn them.
see you need to manage between using ai to debug code or create code even and reviewing it manually because its the hard truth ai debugging of code is not of good quality and manual debugging is always superior now comming to the part manual debugging being slow for that you have to understand skills are the centre meaning you can use a hybrid model have ai write code in segment meaning the amoung of code which human brain can read by this you can review the code fast enough as well as you'll save your ai also some time while debugging the code and to answer your question what is going to happen in future in future or even now human developer can't be replaced compared with someone with less skill and heavy ai agent knowledge its just about balancing between too
hope it helps
I'm not necessarily a software engineer, but I do a lot of coding for my cybersecurity projects. I find it's very helpful to have AI generate the first "batch" of code, but I do it in a very unusual manner. I don't use agents, I just use an LLM, and I review the code before I ever hit "copy" so I ensure I'm not outsourcing my thinking to a bot.
Anyway, when it comes time to make a project, I first figure out what I want to build. Then I research the steps I would need to take to build it. For example, if I wanted to make a webapp that has a deliberate SQL injection for a CTF, I would need a database, a login page, and a dashboard to navigate to after logging in. For larger projects, I might use AI to help me figure out the components required.
Then I save those notes and then focus on a single component. Continuing with this example, I'll start with the login page. I'll get AI to generate the code on that. Sometimes it doesn't cooperate and makes the SQL query secure, so I have to manually go in there and fix it myself, rather than ask it to redo it again. I get serious imposter syndrome whenever I use AI to generate code, so I make sure I can understand some of it before I run it, and I try to manually fix bugs before I ask for help.
Once all the components are built, I tie them all together and start testing the program.
I wonder: if the AI is writing all the code, what value am I bringing?
In an attempt to keep my critical thinking and coding skills sharp, I sometimes foolishly try to debug errors or implement a feature myself. But it feels like wasting time when an agent can do it in a fraction of time.
What is gonna be sought after in the coming years: someone that persevered with manual coding and debugging but is slow and uncomfortable around agents, or someone that has little coding and debugging skills left but knows how to orchestrate dozens of agents effectively?
I'm curious to hear what other software engineers on HN's approach is.
imo the valuable thing we bring as software engineers is and has always been solutions to problems with the contextually correct quality/speed/cost tradeoffs. with agentic coding, these factors all shift and we're all in the process of recalibrating. namely the speed dial can now be shifted way down.
to answer directly, i live in claude code now. and while it's a different shape of daily work, i'm still engineering, still evaluating those 3 factors and figuring out how to triage and solve user-problems much faster than i could 5 years ago.
I heavily use browser based LLM for bugs I care about. Code that is close to business logic like SQL is all 'by hand'.
Frontend stuff for me, which I'm bad at, I let agents do all of and I test the end result.
Other things are in-between, but time wise it's probably mostly me writing code. Lines of code is the LLM for sure.
I have the agent grill me/ask me questions about what has been implemented, often on a fairly technical/granular level of the feature is important enough.This is obviously way slower than just vibing the whole thing and ticking off a passing test suite (that the agent also wrote). But I find that doing this has allowed me to retain most of my problem solving and reasoning skills (which have definitely atrophied).
People are kidding themselves thinking they fully understand what is going on at a deep level for 3-4 (or more) parallel tasks constantly context switching. It's also an anxiety-inducing way to work and has led to a proliferation of agent management tools enabling max efficiency.
Focusing on systems thinking/observability/knowing when NOT to build something/using agents to fix/learn new things quickly seem to be where I see devs still bringing the most value compared to any other cowboy.
What wouldn't an average person off the street be able to do?
I think you're mistaking typing characters on a keyboard for coding. Designing a system is coding. Knowing what refactorings to do to ensure things evolve in the right direction is coding.
Being able to recall all the syntax has lost value due to AI, but designing and leading the feature development hasn't and that can't (yet) be trusted to AI.
I'm not too worried about keeping skills sharp - if I'm ever put in a situation where they become relevant again I'm confident I can just relearn them.
see you need to manage between using ai to debug code or create code even and reviewing it manually because its the hard truth ai debugging of code is not of good quality and manual debugging is always superior now comming to the part manual debugging being slow for that you have to understand skills are the centre meaning you can use a hybrid model have ai write code in segment meaning the amoung of code which human brain can read by this you can review the code fast enough as well as you'll save your ai also some time while debugging the code and to answer your question what is going to happen in future in future or even now human developer can't be replaced compared with someone with less skill and heavy ai agent knowledge its just about balancing between too hope it helps
I'm not necessarily a software engineer, but I do a lot of coding for my cybersecurity projects. I find it's very helpful to have AI generate the first "batch" of code, but I do it in a very unusual manner. I don't use agents, I just use an LLM, and I review the code before I ever hit "copy" so I ensure I'm not outsourcing my thinking to a bot.
Anyway, when it comes time to make a project, I first figure out what I want to build. Then I research the steps I would need to take to build it. For example, if I wanted to make a webapp that has a deliberate SQL injection for a CTF, I would need a database, a login page, and a dashboard to navigate to after logging in. For larger projects, I might use AI to help me figure out the components required.
Then I save those notes and then focus on a single component. Continuing with this example, I'll start with the login page. I'll get AI to generate the code on that. Sometimes it doesn't cooperate and makes the SQL query secure, so I have to manually go in there and fix it myself, rather than ask it to redo it again. I get serious imposter syndrome whenever I use AI to generate code, so I make sure I can understand some of it before I run it, and I try to manually fix bugs before I ask for help.
Once all the components are built, I tie them all together and start testing the program.