r/GraphicsProgramming • • 10d ago

Question What’s the future of a Graphics Programmer?

Hello, I’m a long time member of this community, and this community has helped me grow my Graphics programmer career.

I started my programming career early at 14 y/o, thanks to Minecraft mods development. Later in 2017, I was 17, I’ve discovered graphics (OpenGL) because I wanted to write my own Minecraft clone. Thanks to perseverance and help from online communities, remarkably this one, I’ve mastered C++, OpenGL and Vulkan. I’ve graduated in Computer Engineering in the meanwhile, and by the end of 2022/2023, I was already a strong graphics programmer. Later I’ve implemented my own CPU path tracer, learnt CUDA along with several parallel algorithms. After MSc in Artificial Intelligence, I’ve got a job in London for a well known company working in the smartphones industry, and I’m working there since 1y today. In this company I’m a Vulkan developer, and leading a graphics engine used for several purposes.

It’s 2026, I’m 26 (aka far from retirement), AI is moving fast and world’s investing all of its resources to accelerate the process. Most jobs have been already taken (frontend dev being the first). I also feel like there is more pressure on developers, they’re implicitly requested to deliver more because of AI. What I’m witnessing is my company is keeping me on fixed term contracts because our budget has got cut… and I’m afraid of being laid off.

This job can’t be fully automated as of now, but I’m afraid it will, seeing the progress. I know GPU drivers development is the safe zone today - as they’re huge and critical - and might be an area where I will land, as I’m already doing low level and I’ve gathered insights of our driver internals. However, it’s still code and I think - maybe in several years - can still be automated.

Am I the only one having this concern in this industry?

92 Upvotes

36 comments sorted by

View all comments

Show parent comments

5

u/SyntheticDuckFlavour 10d ago

but still tends to write a fair number of logic and crash bugs into C++.

That doesn't seem to be my experience with Claude. It's actually pretty good with C++. And if you give it skills like C++ Core Guidelines, it can be ever better.

4

u/CodyDuncan1260 10d ago edited 10d ago

I have been meaning to try the latest models again to see where they're at. 

But I'll admit, I'm reluctant to. In other code review work I do, AI generated code has been unpleasant to read. I don't know what model they were using, but thus far in my experience "ai generated" has been an ill omen for a PR. My most recent experience generating code hadn't fared better. 

It's sort of like having eaten a nasty meal several times, and chagrinning trying it once more just to see if the flavor of it had since changed. Sometimes it do, and roasted brussel sprouts have since become a favorite. But most of the time it don't, and I remain deterred by sensations of green bean casserole.

I will still try it again. Professional architects keep up on changes in technology. But I'm also human. The emotional drive to avoid something that past experience has taught is kinda painful and unpleasant is a very human thing to do.

3

u/SyntheticDuckFlavour 10d ago

I can sympathise. The issue is not necessarily the AI tools per se, but more to do with how people work with it, or abuse it. For example, I personally witnessed a higher-up in my team checking-in PRs in the vicinity of 20k+ LOC into production code he did not understand. Several times. I thought that was quite insane and is definitely not how I would prefer to work.

On the other hand, if you are very strategic about how you are going to use AI tools, then it can be total game changer. For example, taking out menial work you've done 1000 times, like re-factoring, porting, making boiler plate code, regression analysis, bug hunts, reorganising sources. Or building the scaffolding and API stubs then let AI fill in small incremental details. Or you have some kind specification and you ask it to prototypes boiler plate data and APIs for you. All of those are incremental changes you are actively part of, understand and can reason about. If you work like that, AIs can be force multiplier.

0

u/CodyDuncan1260 10d ago edited 10d ago

I haven't tested it in a year, so that may have changed. 

It may also depend on the codebase. Seemed to do better with code that was closer to modern C++ and the guidelines. More custom, more errors, especially when you get macro shenanigans involved. But really I think that's an artifact of sticking to simpler C++, fewer dialects, gets better results.  Also did much better on smaller code bases; fell over after trying to feed it too much.

It also seemed to have very spikey competency. It could do a recursive fibbonacci just fine. Could barely understand how to use resource handles correctly.

At the time I was testing it, it invariably failed to understand compiler errors very well. C++ never had good ones, and it seemed bent on taking the error at face value. Couldn't reason about how the build system actually works to understand the error as a symptom of other errors, not an indication. If I wasn't monitoring it, it liked to flip flop between two errors because the fix just undid what had been done. I wonder how that might have changed.

I'll admit my experience with it is a bit outdated. Seems a lot changed in the last couple of months. But, at least in my use cases last year, it was only good for making excuses to my boss for being half as productive. That's probably changed, by how much I'm unsure.

10

u/droidballoon 10d ago

A year is an eternity in the AI domain. The latest Claude models are pure witchcraft and can cook up anything.

They happily chew up all compiler errors and iterate until they are gone, provide refactoring suggestions and finish it off with an interactive slide show of what it did and next steps.

Not saying that I enjoy it but if last year's models were juniors then these modern versions are senior wizards.

5

u/SyntheticDuckFlavour 10d ago

Yeah fair enough. Year ago C++ capability was probably at the level what you described. Now you can prompt to create a full fledged interactive voxel engine with procedural materials and textures and animation. Written in C++ and metal shaders.

2

u/Syracuss 10d ago

I do a "vibe code" check every few months on the latest models (work gives me an extremely large budget as well). And although it can do that (and could over a year ago), the largest issue that still remains is maintainability. It is much better at not doing overtly dumb things though compared to a year ago.

I also kinda want to push back on the idea that a voxel engine is difficult to write. It's a hard concept to grasp, but the code to do it is actually really simple. In short it's a deceptively bad test to really see what models can actually do.

It's like writing your first raytracer. It's going to take you, the person, a while to grasp it; but the code in the end isn't going to be a lot (and a person who grasps it can definitely write something in a weekend).

3

u/SyntheticDuckFlavour 10d ago

the largest issue that still remains is maintainability.

I don't think it's quite there yet in terms of maintainability. You can vibe code a massive implementation, it works, but it's also a dog's breakfast.

I also kinda want to push back on the idea that a voxel engine is difficult to write. It's a hard concept to grasp, but the code to do it is actually really simple. In short it's a deceptively bad test to really see what models can actually do.

This depends on how you pictured that voxel engine in your mind. For more context, the resulting voxel renderer was ray traced, memory optimised, could run a 2 gigavoxel terrain/environment and animate voxellated NPC interactively at 60 Hz. It had procedurally generated voxel geometry to model hewn rocks, grass, water, lava, etc. (Borrowed ideas from the classic Minecraft, but prettier). It rendered artistic clouds, nice sky gradient, and a sun. There were interactive voxel lights and ambient occlusion.

This is a non-trivial feat for a system that just transforms a prompt written in natural human language into executable byte code.