Ask HN: C++ Dev Jobs Are Rare, Aren't They?

12 points by ozudan ↗ HN
Apart from game companies and the computer graphics scene, I don't find many C++ jobs at all. Most are either enlisted for languages such as Java, C#, JavaScript or Python.

If you find a "C++" keyword in a typical job listing, it will be among a list of other high-level languages. And in my experience, you'll soon find out that it has nothing to do with C++ programming once you got past the interview process.

Embedded development may seem as a last frontier for C++, but no, you won't find it there either most of the time. You'll rather find something C-related there. Furthermore, someone who interviewed embedded developers told me that those types of developers tend to be bad software engineers or C++ programmers for some reason.

C++ jobs seem to be rather inside a niche market and many companies seem to have few use cases for it.

25 comments

[ 3.1 ms ] story [ 59.6 ms ] thread
Try HFT companies. I live in Amsterdam, we have a bunch of them here and I used to work for couple of them. Their business is extremely low latency so they live and breathe C++ (and also stuff like FPGAs).

But this is somewhat a niche indeed.

And HFT tends to hire from: - Gaming - Military software - (Medical) devices
Who uses C++ ?

Webscale tech companies (definitely Google plus almost certainly Amazon, Facebook, Netflix, etc.), traditional software companies (like Microsoft), aerospace and defense, finance, robotics and automation, automotive, are a few industries that come to mind off the top of my head.

Not as rare as you might think.

Embedded is definitely being done in C++. Gaming -- Unreal Engine still uses C++ as I recall. HFT has been mentioned already. Robotics, automation. Lots of stuff is still done in C++ and not going to leave it any time soon.

I haven't been following this for a while but financial engineering/quant is a big thing where you can get high paying jobs doing C++. HFT as well.
I don't know. I think that's company specific. I work in finance and most of the quant stuff is Python, R, and Java. It's easier to teach a business person Python and R than it is to teach tech people finance (at least that's what the business people say).
I thought the high end financial jobs wanted physicists and mathematicians, not business or tech people.
Have a look at SpaceX or Comma.ai job openings. There are still quite a lot of jobs for c++ devs.
It is not that C++ jobs are rare, but the expectation of companies recruiting C++ engineers is either too high(i.e. they expect C++ gurus with domain expertise) or too low(i.e. they expect interns). There is no role for generalist C++ engineers. If you look for C++ jobs, then most of them mention foremost the domain expertise such as AI, Games, Finance, Crypto etc as a requirement and C++ as secondary requirement. Hence most of the companies struggle to recruit C++ engineers.
> It is not that C++ jobs are rare, but the expectation of companies recruiting C++ engineers is either too high(i.e. they expect C++ gurus with domain expertise) or too low(i.e. they expect interns).

This is how it seems to be for most domains that aren't doing your average business web application development.

Also why do all the job listings say C/C++? I actually know C but not C++. What happens to me?
It's not hard to train one from the other, but very hard to train a JS programmer into a C programmer.
I suspect it's because HR doesn't know the difference.

It is easier to learn C++ if you know C, but it's a good point, they're not the same languages, and have diverged greatly over the years.

I would understand that back in the days of C++98, but C++11 and newer are really very different languages. Proficiency in the earlier language specs doesn't guarantee any such in the newer specs -- as I learned when I came back to dev work in C++ and had to update my skills quite a bit working in C++11 (I learned C++98 long ago and had worked exclusively in that for quite a while).

I remember in grad school in 2005/2006, I decided to write a little program in C++ which I hadn't touched since the 90s. The language had evolved enough that I found it to be enough of a challenge that I ended up writing the program in Perl instead.
Even as a C++ type I still shudder when I see Perl.
A lot of companies use both C and C++ on different projects, sometimes due to use cases and requirements, sometimes due to the preferences of the project leads, sometimes due to legacy code bases
Someone I knew claimed he used to be a C+ programmer.
They're far less rare than Rust jobs from what I've seen.
I’d recommend not getting too attached to working in any particular language
People who master C++ already know easier languages. Business start with a prototype nocode(web solutions/excel/filemaker), then go to prototype dynamic language(js/python/lua/ruby), then to a prototype static managed code(java,c#), then to prototype production and optimization(C/C++/asm). It's a lot of money to make something fast and stable, so the business idea must be good enough to pay for that, and most business ideas aren't good enough, so they bankrupt before than production. Sketch drawings and natural language texts are most of the time a better solution for that temporary trend than code, that's why html would be enough "code".
Look at HFTs they are always looking for C++ devs
Anyone working in the encoding, streaming and mucking about with video is working in C/C++. FOSS projects such as ffmpeg have the entire set of nearly all video related industries built on top of their work.
Microsoft has entire set of application development in C++
I work in an embedded / safety critical software tools vendor and I can say C++ is pretty big in a lot of embedded spaces (maybe 40% vs 55% C, with 5% other) whether it is growing or shrinking depends on which industry (In avionics it is being displaced by model based design but it is growing in medical devices), I will say that the embedded space also has a lot of C programmers who via C++ as a bastardization if their beautiful language.

The general rule, with many exceptions, is that in lowest level embedded you see C with a healthy sprinkling of assembly, in higher level embedded (programs with guis or that just involve a lot of component interaction and interfaces) you tend to see C++

FYI, for a nice sampling of what C++ jobs are out there you can look at the C++ jobs posts at Reddit’s r/cpp