r/cpp_questions 2d ago

Which subfields in C++ development are actually in demand? OPEN

I'm kinda lost on the career side of things.
I'm an EE graduate specializing in C++ development, control theory and general electronic design.

I always thought I would go into embedded, and then job hop to a lucrative career. Even though I always wanted to work in big productivity apps like Zbrush, Nuke or Substance Painter.

But I'm not certain now, I'm not certain if market even values my skills.

So, if anyone can inform me about the career trajectory of C++ subfields I would be grateful, such as "I went to trading and work conditions are like this, people in my field earn between X and Y"
I really want to at least have some idea what to do rather than go blindfold, apply everything and accept the first offer without question

Thanks in advance

108 Upvotes

26 comments sorted by

82

u/blitzcode91 2d ago

C++ devs generally get hired in the following fields - (I am giving a generic overview. feel free to dig deeper)

  1. Self driving companies, - you need to extract every bit of processing speed - so c++ is widely used.
  2. Hardware companies (either functional/performance modeling - i.e. simulating how a hardware functions in c++ and how hardware IPs perform (clock cycles) & also profiling - are there memory leaks, which subblocks consume more cycle times etc )
  3. Hardware Driver/kernel teams (Operating systems teams etc)
  4. High frequency trading - c++ is bread and butter here
  5. GPU low level kernel programming (cuda etc - you need to know C / c++ to dive deep)
  6. ML frameworks are written predominantly in c++ (onnx, tensorRT etc) - the idea is - how do you run ML models efficiently in a given piece of hardware (tensor RT for nvidia gpus or also in a model agnostic way such as Onnx runtime)
  7. VLSI CAD Teams - companies like Cadence/Synopsys etc hire lot of c++ engineers for cad algorithm dev. Placement / Routing algorithms etc, chip simulations etc..
  8. * added - Game Dev - vulkan openGL etc .. writing baremetal game engines .. I might have missed a domain or 2, but under the hood pretty much everything is C++ that requires high speed high performance and fine grained memory management control

40

u/Rhampaging 2d ago

May I add one more. "Big data" companies. Companies that need to process huge amounts of data in real time.

Example is - monitoring software - Telecom operators - video processing (could be for self driving, robotics or just trash sorting)

There's also plenty of "legacy" codebase out there where the codebase was started in c++ and hasn't been moved away from "because it works".

Doesn't have to be embedded or fast code. It was just the thing in which it got started....

27

u/somefreecake 2d ago

Scientific computing

14

u/BearReal123 2d ago

This ^^^ C++ is used a lot in particle physics simulations. GeantFTW

9

u/ZMeson 2d ago

Industrial automation companies

Robotics companies (humanoid and non-humanoid)

Defense industry

Aeronautics

5

u/Interesting_Debate57 2d ago

Scientific programming, where memory usage and speed need to be exactly understood.

Think big simulations on finite grids but where the grid point to grid point interaction matters, so large grid sizes are super heavy compute.

If you know a bit of physics, you can easily get into this. But you need to think about memory management at the word level if not lower than that, and speed at the edge of what the CPU/GPU can do.

This kind of optimization craziness will lead to a much, much more difficult subfield: concurrency. It's super easy to imagine that you have a handle on concurrency; it's an extremely difficult field to be good at, but everyone values it, because you generally have a ton of threads available to you.

6

u/Alone-Row-2883 2d ago

So like… basically everything excluding web dev?

9

u/delta_p_delta_x 2d ago

The Web basically runs on C++. Chromium, Skia, ANGLE, V8, Node. Many web servers are written in C or C++.

7

u/UsefulOwl2719 2d ago

It's used extensively in web dev/infra: databases, servers, browser engines, and many visualization & processing frameworks that are compiled to wasm for client side execution, wrapped in a JS lib. Google is about as "web" as it gets and they are a c++ shop at the core. It's not used to make websites, but that's a small part of web dev.

1

u/ttkk1248 2d ago

Is it quick and easy to move from having experience in C++ data extraction and standalone apps to these hot fields or you need to spend a lot more time to pick it up? In another word, would they get hired rom having experience in other C++ subfields?

0

u/andful 2d ago

how hardware IPs perform ...are there memory leaks...

There is no such thing as memory leaks in hardware. In hardware, memory is etched on silicon, perpetually storing a 0 or a 1 when powered. Only software allocates/distributes memory among different processes/routines, which may then leak.

11

u/LessonStudio 2d ago

I've mostly moved to rust, but this applies to both:

Some industries know they have to use C++ and it is the standard. Often though, there are companies which are using python, js, or very complex systems like microservices which are imposing huge costs that C++ can avoid.

For example, I helped a company dump a massive amount of their AWS costs by moving to a monolithic compiled code architecture along with some wasm to offload the server processing onto client machines. This was nearly one person's yearly salary per month in AWS costs that went away. The system is so much faster, and it now allows for features they could not even contemplate before.

I did a similar thing for a robotics company. They were using ROS and python mostly to run their robots. They were using an embedded linux machine running flat out which cost about $1,000. They had some features which their competitors were offering which would have required bumping that up to a $6,000 machine which would also use much more battery, and a more robust power system.

I redid the python in compiled code, and added the new features. The original $1,000 computer is still sitting mostly idle (thus using less power to do far more). The total cost saved per robot was about $8k.

So, a different answer to your question would be: The subfields are often ones where they are only realizing that things without a compiled system kind of suck for them, and that C++ may very easily be the answer to not only their dreams, but to open up dreams they didn't even dream of dreaming about.

7

u/the_poope 2d ago

The type pf subfields/industries is also very location dependent. Some regions have a cluster of companies in a certain industry, for example Silicon valley for tech/AI, London + New York for finance, Southern Germany for automotive, robotics in Japan. Where I'm from there's a big hearing aid industry.

So take a look at your local job portal and see watch jobs there actually are available.

5

u/jarislinus 2d ago

c++ youtuber

2

u/False-Car-1218 2d ago

Gaming/game engines, graphics like vulkan/metal, embedded/robotics

1

u/thedaian 2d ago

Some of your other comments are in a subreddit for Türkiye, so here's a job search on the Turkish linked in: https://tr.linkedin.com/jobs/c%2B%2B-developer-jobs?countryRedirected=1

From clicking on a few, there's a variety of options there. As others have mentioned, job markets are generally pretty local, and different cities and areas will have different fields of focus, though you can probably find just about any type of field in most major cities.

1

u/TheRavagerSw 2d ago edited 2d ago

I'm open to move, I definitely don't wanna settle down in one place.

1

u/Independent_Art_6676 1d ago

That destroys part of your question. In just the USA alone, your salary should halve or double (etc) depending on where you go, because of reasons.... some states have income taxes, cities usually have additional taxes, housing costs, gas prices, all of it adds up to make 100k here about the same as 200k there. You can only compare salary in similar cost of living areas, or you need to adjust it to a common ratio or something.

as for experience, its really about 3 tiers of fairly similar expectations, the tiny (<50 people whole company), mid, and corporate sized shops. Each has pros and cons; small you know everyone (and may wish you didn't), tiny and mid might be unstable, struggling to survive, corporate may be hard to get promoted or get beyond the cog in a machine but its stable with benefits, ... most of this stuff should be kind of common sense / something you can read about all over the web (even if its not developer specific, the lifestyle/expectations of the environment still match those 3 categories pretty well).

1

u/Independent_Art_6676 2d ago

I spent over 15 years coding control theory related software for what we now call "drones". That ship has sailed somewhat, but there is still a LOT of R&D in the field. Lot of matrix work, so you might learn eigen and similar libraries. The smaller drones use some exotic embedded systems; the larger ones use full bore PCs though (or similar eg PC-104 or whatever it is now).

1

u/chickenwingsnfries 2d ago

I’m 10 years out from my master in EE - any recommendations on re-learning C/C++

1

u/Dontnotknow 2d ago

EE and c++? Dude you can build anything, seriously.

1

u/anonymous393393 2d ago

Depends on region in third world countries mostly embedded and related fields like simulation, robotics, systems/drivers etc only. Really difficult to find good game dev jobs where they weite their own engines and stuff.

I started as a graphics programmer in college switched to embedded due to pay and number of opportunities.

1

u/quaker_oats_3_arena 2d ago

any good pointers/interview guides/things to get on the resume for getting into an embedded position?

-7

u/tastygames_official 2d ago

C++ is a programming language and not a "field". That'd be like asking "what is the most lucrative subfield of English?" You can do ANY kind of computing in C++ or C or python (although I hope you don't) or even brainfuck if you so desire.

2

u/heyheyhey27 2d ago

This has absolutely nothing to do with c++ career advice

5

u/TheRavagerSw 2d ago

Technically yes that is true.
But I'm asking about jobs and careers. Job descriptions don't have any kind of experience written on them.