Live data from Hacker News

The pool of talented C++ developers is running dry

efinancialcareers.com

251–260 of 869 posts

Re: The pool of talented C++ developers is running dry

#251

There's lots of C++ programmers out there. But they're bottled up in FAANG, I think. So you have to be able to compete with that. Working at Google is on the whole a lot of C++. Major parts are moving to Go, certainly. But there's absolutely giant code-bases of pretty cleanly written C++ services, and most Googlers are quite proficient in it and there's whole teams at Google that work on improving C++ standards and t…

From what I understand, Google is really about a crippled subset of C++, that people jokingly call "C+-". I ran a C++ shop for 25 years. I used to program in it, but stopped, many moons ago. The new C++ is a huge change from what I knew. I am expecting to see a lot of hate for the language, in this thread. Regardless, it is a very powerful language, and it is not for the faint of heart. I attended a Swift conference,…

Did they upload the recording to YouTube? I would like to listen to her.

Re: The pool of talented C++ developers is running dry

#252
post #54

Question: what kind of skills do financial companies typically look for from C++ devs? Whenever I hear “C++ expert”, I don’t know what that means. Are they masters of the STL? Are they part of the “C with classes” church? Are they an unhinged template meta programmer? Are they a major gcc/clang contributor? Did they co-author a part of the language spec? Or are they just some dude with 7 years of experience working o…

More specifically in trading, the most important thing seems to be to know how to write fast code, while keeping the codebase maintainable, because it's going to keep growing, and will need to change as the world changes.

That means avoiding polymorphism (and so a fair chunk of OO design), making heavy use of templates, and understanding the performance characteristics of language constructs and standard library functions. Expect to be slinging godbolts back and forth, benchmarking obscure hashmap implementations, and occasionally sweating over the precise layout of structs to maximise their cache-friendliness.

Re: The pool of talented C++ developers is running dry

#253

Earlier quoted context omitted.

That's the problem with the C++ ecosystem, it is actually many vastly different ecosystems mashed together. It's impossible to find a "C++ developer" because there is no agreed upon "one C++ style". It seems what you're looking for is a "C++ developer who likes to write the same C++ style as myself" ;)

> It seems what you're looking for is a "C++ developer who likes to write the same C++ style as myself" ;) No, I'm perfectly content with someone writing C++ in a different style. What I'm not content with is someone who uses old code without a technical reason why. C style arrays, for example, are 100% inferior to std::array. Old loops with indices are maybe 80% (off the cuff guesstimate) inferior to ranged-for. The…

holy mother of god! I used C++ around 2000 for some old projects. When new and delete where the object oriented "equivalent" for malloc() and free(). So, if you don't use that, what do you use in 2022 C++?

Re: The pool of talented C++ developers is running dry

#254

I actually just tried to play around with what seems to be a "modern c++" boilerplate project. It uses CMake, conan for packaging, clang-tidy and cpp-check, and has templates for fuzz and unit testing[1]. I found it because qtcreator and kdevelop were weirdly clunky and created partly broken qt projects and I figured I wanted to add a package manager and qt to the mix. The template looks really fancy, but it's so inc…

I wouldn't put much stock into such starter templates, the developer who put them together has a goal and priorities that are not yours. QT tends to be particularly painful outside of QTCreator so I also wouldn't use that as a general knock against C++. having said that, C++ build times are slow due to both the #include mechanism and templates. The C++ modules coming will help deal with the #include mechanism and tem…

C++ modules has been promised for a long time, I wouldn't hold my breath on it coming anytime soon.

As for build times, it is sadly very easy in C++ to have long build times. Avoiding it takes careful work, knowing when and what to include, when to forward-declare instead, and always maintaining includes as requirements change, etc.

There's nothing to make that process any easier or automatic, which is very frustrating. There's the include-what-you-use project, but I could never get it to work.

Re: The pool of talented C++ developers is running dry

#255

Earlier quoted context omitted.

> Employees may be leaving the embedded space Embedded opportunities have been slowly shrinking for years. For whatever combination of reasons, a lot of employers think that embedded work is easy or otherwise doesn’t require a large budget. It’s increasingly bizarre to get a well-designed IoT device with a very polished mobile app and web UI, then struggle with hardware factory resets and firmware upgrades because th…

"Programming is just typing" was a typical management refrain when I was in the embedded field (more properly, now I'm adjacent to it). It was frustrating. Computer scientists and programmers aren't Real(tm) Engineers so they don't deserve as much money. They can't be in charge because you can't have engineers answering to non-engineers (ie, very few leads let alone managers coming from the software side). Which lead…

It might also be that the management chains in embedded are likely former engineers or EE people. In Web you get a lot of management interfaces where the boss can't do their job: that's the perfect recipe for high pay.

In embedded and other non-software engineering but engineering firms, the management is typically engineers that CAN do their subordinates jobs, they just don't want to.

Re: The pool of talented C++ developers is running dry

#256
post #9

Because Python pays more. Or Javascript. Or Ruby. More demand, more salary. Apart from finance, pay is lower than web languages. And finance is small. Embedded systems programming, that also uses the language, pays 30% less than web jobs from my last job hunting period. Employees may be leaving the embedded space (and C++) for web tech because of this. This is the feeling I get from my local job market (western Europ…

Yes, the embedded space pays terrible, and the employers don't seem great on the whole. When I was at Google I got to work on embedded stuff and really liked it; but I was getting a Google salary. When I left Google I pursued IoT and embedded jobs a bit and while I was not expecting Google level compensation at all, I was astounded at what was going on there, pay wise. General software eng back end jobs pay better. T…

> Yes, the embedded space pays terrible, and the employers don't seem great on the whole.

in europe c++ pay is in general ridiculously bad, I got some job ads this morning. Senior job in real-time trading in C++ in Paris, multithreading and linux knowledge, english first: 55-75k. Embedded senior C++ FPGA engineer in paris: 45k-65k. No bonus in either position. thanks but no thanks

Re: The pool of talented C++ developers is running dry

#257
post #213

Earlier quoted context omitted.

> It seems what you're looking for is a "C++ developer who likes to write the same C++ style as myself" ;) No, I'm perfectly content with someone writing C++ in a different style. What I'm not content with is someone who uses old code without a technical reason why. C style arrays, for example, are 100% inferior to std::array. Old loops with indices are maybe 80% (off the cuff guesstimate) inferior to ranged-for. The…

Last time I needed to write `delete` I was either fixing some low level garbage code that was super old or writing a smart pointer for a case not handled by the standard library. Either way it was so long ago that I really can't remember which. Complaints about delete aren't about part of common modern C++, if they aren't from subject matter experts aren't well structured complaints.

Last time you needed to, sure. The problem is that if you find out how to do dynamic memory allocation, there will be tons of resources pointing at new/delete. Parts of the language that all the experts agree are terrible are just sitting there, poking out behind a shiny facade, waiting to scratch the unwary.

Re: The pool of talented C++ developers is running dry

#258

Earlier quoted context omitted.

Ah yes I used to work at a california company as c++ developer. There was no automated test whatsoever. QA department was just manually clicking things on a client that would connect to my c++ thing. When I wrote a couple of unit tests I got told off because I was wasting time not doing features.

Why waste time writing tests when you could be busy fixing bugs!?

Best comment ever!

Re: The pool of talented C++ developers is running dry

#259

Earlier quoted context omitted.

This is true, trying to switch from FPGA's/RTL Design to something higher up the stack over the next few months for this reason. My employer does seem to have great difficulty hiring anyone with these skillsets but funnily enough, the salaries never seem to improve.

This is what I find astounding. I wonder how much is just EEs looking at SWE resumes and going "why would I pay that much for this?! writing code isn't that hard" I definitely get that vibe from some of the local hw-eng companies. And they may not be wrong, but.. sorry, that's supply and demand. If I have to go write stupid NodeJS stuff to get paid decently, I guess I'll have to go do that.

At a previous job, the project lead (mechanical) assigned the embedded team (2 people) writing the firmwares for 3 boards (multi-element heater control, motor controller and move orchestrator with custom BLDC setup, multi-sensor temperature probes) in 2 weeks over christmas, because the junior EE said “I can control a motor with arduino in 30 minutes.” My only guess as to why such a disconnect from reality was possible is that the EE had a MIT degree, while I’m self-taught, and that we had always delivered our firmwares on time and without bugs.

Re: The pool of talented C++ developers is running dry

#260
post #9

Because Python pays more. Or Javascript. Or Ruby. More demand, more salary. Apart from finance, pay is lower than web languages. And finance is small. Embedded systems programming, that also uses the language, pays 30% less than web jobs from my last job hunting period. Employees may be leaving the embedded space (and C++) for web tech because of this. This is the feeling I get from my local job market (western Europ…

It's a resonant issue: if everyone is taught Python, it's the tool they will reach for.

And of course, Python is much more broadly applicable.

I don't like to develop in C++ because it's a tiresome mess of issues that don't exist in modern languages.

I don't care about the newer variations or whatever, I still can't do basic things or pull in a library to do it 20 years later so no thanks.

That said - it's not going to go away.

While Rust is nice, I just don't see it replacing C/C++ for a long time due to abi incompatibility etc..

C++ does require more experience, and it needs to pay well or companies won't get the talent.

Post reply on HN