I genuinely enjoy programming and have always liked learning how different languages work, including their core concepts and execution models. In my current job, though, most of my time is spent turning business requirements into prompts and reviewing AI-generated work. I rarely get to write code, explore lower-level details, or build experience with architecture and system design. Are there technology roles where hands-on programming, deeper technical work, and system design are still a significant part of the job?
4 Answers
There are technical roles with plenty of coding, but it may also help to rethink how you use AI at work. Treat it like a pair programmer rather than an automatic code generator. Ask it to explain execution models, inspect library source code, compare design tradeoffs, and help investigate your real codebase. You can still do the deep technical thinking while using it to speed up the repetitive parts.
You can still take control of the work by building your own projects outside the job. Companies will always choose their own tools and processes, but personal projects let you decide how much actual programming, experimentation, and low-level work you want to do. A lot of useful software began as something someone built for themselves and later shared.
If writing code every day is the main thing you want, look at roles closer to infrastructure, embedded systems, performance engineering, developer tools, or backend systems. Those areas tend to require more direct programming and a stronger understanding of how software behaves underneath. Still, check the actual job description and interview process carefully—many companies now expect engineers to use AI, even in highly technical positions.
The role you described may give you an opportunity to practice skills that usually take years to reach: understanding requirements, designing solutions, and reviewing implementation decisions. Study architecture and systems programming on your own, then look for ways to apply those ideas at work. Side projects are especially useful because they give you complete ownership and something concrete to discuss when applying for more hands-on engineering roles.

That seems much better than simply accepting generated code. If you ask targeted questions and verify everything, the tool can actually help you learn instead of replacing the learning process.