Hacker News new | ask | show | jobs
by tinfoilboy 1239 days ago
I feel like I am in a decently unique situation where I learned C++ throughout my preteens and teens, and got a job straight out of high school writing C++ for Unreal Engine applications. Most of the C++ jobs I see when I look are things that I just honestly do not want to do.

I don't really mind working with the language and wouldn't mind sticking with it. But I don't want to work on financial software, as I don't want to mess with people's money. I work in a game development context right now, and may for the foreseeable future, but I also know that I get paid less than others at my same level in a different context. That part hurts with the way inflation has been lately.

I think in the end, those factors drive me away from trying to further my career in C++ and instead move toward something that would at least pay the bills in the future. I didn't start with C++ and could pivot to other languages and stacks as needed. But it would be a bit painful to know that I put a lot of time into this language to just not use it and let the experience rot.

This also doesn't factor in the numerous jobs that I have seen postings for that I am not qualified for, according to their description. It's hard to become a Senior C++ Engineer when no one is hiring a Junior to Mid C++ Engineer. Probably part of the lack of "talent" is not wanting to invest in cultivating that talent.

5 comments

FWIW most of the folks who work with C++ in the financial industry are not really "messing with people's money" except in the sense of trying to exploit market inefficiencies to take it. In a typical quant hedge fund no actual money changes hands; instead, the C++ parts are there to perform analytics extremely quickly, which then feeds into an execution engine (usually also in C++, or sometimes Rust or assembly) that's sending trades to the exchange. And they're usually trading their own capital or a small set of very wealthy limited partners.

The retail financial industry, the folks like Fidelity and Vanguard that manage money for ordinary people or folks like Bloomberg that supply data for this, largely runs on Java. There are fewer foot-guns here, and you really don't want a security vulnerability that loses your customer's funds or creates an inaccurate statement.

> except in the sense of trying to exploit market inefficiencies to take it

that's precisely the bad part about it

Well yes, but the gaming industry is all about exploiting psychological efficiencies to take your money. Big Tech (in its advertising/retail/OS forms) is all about exploiting psychological inefficiencies to help other people take your money, and then taking a cut of it.
If you mean "gaming industry" meaning gambling machines, then yes. If you mean "games industry" as in video games then it's just not true that it's "all about exploiting psychological inefficiencies". There are many monetization strategies that are not exploitative that are common and even dominate in the market. Ubisoft, DLC, or Candy Crush freemium models are not representative of the whole industry.
AAA games with one-time payments are still exploiting psychological inefficiencies; there is a reason why we are evolutionarily hard-wired to pay attention to fast-moving visual settings where action is required from us.

For those who say "but I like to play video games" - yes, that's the point. Day traders like to speculate, and gamblers like to go to the casino. Your downside is capped with one-time payments, but a gambler who goes into the casino with a $20 and no other money also has a capped downside.

Arguing that one-time payments with up-front pricing are exploitative is pretty silly. That's the basis for the entire economy since we invented money thousands of years ago. If it's exploitative then you're basically lumping all economic transactions into the same bucket, which makes it fairly meaningless.
Unless you're selling me living in a cave foraging for nuts and berries, you're trying to exploit some psychological inefficiencies.

I do get what you're saying, but if you take it this far then literally everything sold is considered exploiting inefficacies, psychological or biological, and it's kind of a useless statement in the context of comparing markets, only useful as part of an overall critique of capitalism.

All I meant was the games industry gets a very bad rap for being dopamine driven skinner box design and it simply isn't true, and being in the industry for 15+ years I have met very few people who are comfortable exploiting psychological effects for gain. If I was in a different part of the industry I probably would have met a lot of people who ARE comfortable with that. It is there. But it is far from "running solely on" that attitude.

Sorry what’s bad about making profit from market inefficiencies?
It’s not something that drives obvious value for people.
Don't throw rocks in a glass house, a lot of shit software engineers do does not stove obvious value for people.
Hey, I'm not giving software engineers a free pass either.
How does your employer pay you if they don't take money from anyone?
Of course they take money, but they hopefully also create real value.

Providing liquidity a fraction of a microsecond faster than a competitor doesn't seem like real value to me, more like a cover story so that politics doesn't outright forbid high-speed quantitative trading.

Ahh classic. Obviously only these financial firms are the only ones not creating value.

Those social media companies, start-ups people do for venture capital cash grabs, Web3, and addictive mobile games all create such value.

EDIT: Okay, as the replies mentioned, OP did not make this argument. I still feel it’s valid, as a lot of big tech is neutral/worse for society, yet they are some of the loudest critics of low latency liquidity.

This is a strawman argument. GP never claimed what you stated.
I don’t see that being argued.
By providing a service to customers, rather than finding ways to skim money off the top of markets?
If you ask most financial institutions they would say the service they provide is "liquidity" - they let you put your money in or take your money out at any time (in exchange for securities), as well as make decisions about where you want to allocate your capital based on your personal view of the world.

This always fell a little flat to me (hence why I left the financial industry early in my career), but it's pretty analogous to merchants or retail. What service does a storefront provide, other than marking up the wholesale price of a good by 3x? They offer convenience - you can buy anything you want at the time you want it just by picking it up and swiping a credit card, vs. having to contract with a wholesaler for delivery, which might be months in the future, at a place that's convenient for the wholesaler, and needing to buy in quantities that no individual really needs. So it is with brokerages & exchanges - they let you buy any security with a couple clicks of a button, vs. needing to get an ISDA and pay a lawyer to write a contract, plus find someone else that wants to trade with you, plus take on the risk that your counterparty goes insolvent. And so it is with market-makers like Citadel or Jane Street: they ensure that you can always find a buyer for your securities (for a price), and that you don't have to worry that about simply not being able to sell stocks at any price.

> If you ask most financial institutions they would say the service they provide is "liquidity".

I've honestly never understood this. Economics 101 teaches us that artificially manipulating supply (liquidity) is at direct odds with a free market's ability to do price discovery. If there is effectively infinite supply of any security (because all these high frequency firms are instantly hedging out the risk against their entire portfolio), why should anyone believe the NBBO? It's just a made up fantasy number at that point. It doesn't represent what the real security is worth because there are an infinite number of buyers and sellers willing to transact at any moment.

It really does feel like an enormous grift.

The average retail investor just does not need that much liquidity, especially if they're not buying individual stocks (which by and large they shouldn't be).
Levelling prices between markets is a useful service. Eventually the amount being skimmed is tiny and regular consumers are much more likely to be getting a fair price without having to shop around.
Just try imagining in what ways the world would be different if financial markets were very slow and inefficient.
Exploiting information asymmetries to funnel other people's money into your pocket before or without them knowing it. No value had been generated, it's just extraction.
Bloomberg is actually mostly C++.
Google, Amazon, & Microsoft are nearly always hiring talented C++ engineers.

So you're not limited to finance. Quite the opposite.

I'd be surprised if the majority of C++ jobs had anything to do with finance.

Yeah but then you go in to interview at these places and someone who only programs javascript or python will ask you to answer a contrived whiteboard question by hand that involves manually writing out verbose C++-isms like "std::unordered_map<uint64_t, std::string_view> hashmap;".

I went through a day of interviews at Facebook once where not even a single person interviewing me worked in C++. A lot of the interview cycle consisted of me answering basic syntax and STL questions or clarifying my handwriting which made it extremely difficult to finish the problem in the allotted time.

I interviewed at Facebook using C++ and didn't have any issues. I guess maybe you were just unlucky. There are thousands of interviews so it happens that some are bad and you might get them.

And if you think C++ is too verbose I guess you've never interviewed in Java?

Personally when I interview people I don't care about specific syntax details. I do have at least a passing familiarity with 99% of common languages though, I think only once (out of ~500 interviews) did someone use something I had never seen before.

Google interviewers sign up for particular languages and are expected to have proficiency in the language. As an interviewer, I also allow a lot of abbreviations (so long as we agree during the interview what they are) and I expand them in the digital writeup. That makes large generic types in Java/C++ a lot easier to interview with.

"Can I use AL for ArrayList?" "Go for it"

Too bad Google, Amazon, & Microsoft just shrank their workforces in response to the no-longer-zero interest rate.
Only finance and game dev was a little bit of hyperbole. I do see other jobs for like aerospace or GIS, at least looking at job postings on LinkedIn. Though I most assuredly do not have the requisite skills outside of just C++ to work in those fields.

I think big tech has the same issue where they don’t want to cultivate talent. I doubt Google or Microsoft would consider me at this stage in my career because I lack a college degree.

I will say that I do get recruitment emails from Amazon, though I’m sure those are just shotgun blasted to anyone with a pulse and a LinkedIn.

> I doubt Google or Microsoft would consider me at this stage in my career because I lack a college degree.

Don't know for sure about Microsoft - but if you can get a referral at Google, they will definitely consider you. A college degree definitely helps you get to the interview stage, but doesn't do much more than that. A solid referral pretty much guarantees you an interview.

You can also work on rockets! SpaceX flight software is all C++.
I wonder what percentage of devs would still want to take a job for Elon Musk on normal competitive terms, though. I would demand getting the severance pay up front for example.
yeah im starting to get into the mindset of "fuck doing what you love, just get hobbies"

Ultimately, working in these high paying jobs lets you have a lot of great hobbies and enjoy life. Get a job with a decent work-life balance, and use the rarity of your skillset to make the crazy cash, retire early, make your own game company if you want.

I think both ends of that spectrum are fine. If you really do mostly love your work, and you can afford necessities, then that is just as good as getting paid oodles to do a job you don't hate that gives you time and money to do exactly what you love.

The traps are convincing yourself you love your job more than you actually do, or that you don't hate your golden handcuff job and the hours won't always be this crazy...

And paying the opportunity costs. "Oh man I love working on this game, surely someone will recognize me" all the while putting major life things on hold, like having a kid, or securing your future.

I know a guy who LOVES his job/company and knows he's underpaid. But he's set. Has zero plans on having kids. Has his own place. 100% secure. So he can afford to do whatever. But many who have bigger goals in this economy have to follow the money.

Tip: Amazon Games pays above game industry standard, hires for Unreal skill, and has options for good work/life balance. (Like any large company, it can depend on the particular game team. Moving to other teams is generally supported, if the needs and skills match up.) And answering one of the other sibling replies: if you apply for one of the games reqs, you'll be interviewed by members of the game team that posted the req. If it's a C++ role, you'll be interviewed by someone who uses C++ on the job.

You will benefit from doing your interview homework first. Make sure you know the Amazon Leadership Principles by heart, try to have 2-3 solid examples at the ready of how you exemplified each one (some matter more than others), and be comfortable solving little programming challenges (I'm sure it's happened but I've never seen some of these Google-esque obscure tree challenges get asked). Lots of good Amazon interview material out there, I recommend reviewing it. Also, I hear some recruiters can help you prep.

The problem is that all the titles Amazon Games has developed were either flops on release or were cancelled, and the reason it’s still alive is probably because of its parent company having too much money to spend. Maybe it’s the “corporate” Amazon culture having a bad influence to the studio’s creativity… But really they seem to have no idea on how to make a game that people would like.
Yep, we have a lot to accomplish. I can only speak for my own experience but I've enjoyed the ride so far. And if Games gets old for you, broader Amazon is also supportive of transfers. Amazon's got a zillion interesting projects going, so there is a lot of opportunity to scratch whatever random itch you get. (Many use C++!)
How's your work-life balance? I worked in the games industry a couple times, at Activision in the 1990s and later at Rockstar, and like almost the entire industry, everybody was in crunch mode almost all the time. I remember when the list of holidays came around one year, Christmas was on a Saturday so they gave us Friday off. Someone asked if we were also going to have the Saturday, Christmas day, off.

Programming is essentially solving puzzles, so you can find the work interesting even if the topic area isn't interesting. No seven year old says "when I grow up, I want to write a memory allocator!" but doing it well, with as few CPU cycles as possible, without fragmenting memory too much, is an interesting challenge.

I wouldn't worry about what people have in their job descriptions. There's a quote from John Carmack about an ad for a Oculus dev that he technically wouldn't qualify for, and DHH who invented Ruby on Rails, was called by a recruiter asking whether he had 10 years of Rails experience when Rails was only 9 years old. A "Senior C++" engineer might just mean more than 2 years of experience with C++, who knows.