Hacker News new | ask | show | jobs
by danpalmer 1114 days ago
Learn Java or C++, get good at leetcode, and work in finance. You don't need to be a good engineer – these places are messes of legacy code created in fiefdoms run by people who care more about money than the engineering. You'll make a ton of money and feel poor because the quants will make far more than you ever will.

In my opinion this is a truly terrible path to choose, but you will earn more than anyone in tech who doesn't win the startup lottery.

4 comments

> You don't need to be a good engineer – these places are messes of legacy code created in fiefdoms ...

For juniors coming in, "messes of legacy code" probably isn't the best learning environment from a tech skills standpoint.

For more sr folks coming in to "message of legacy code", you do need to be a good engineer, because you may have to be working around a lot of stuff that can't be changed. You may not have version control. You likely won't have any sort of fancy CI/CD/pipeline process. You may not have tests (as the code is likely untestable in its current state).

For people actually working in FinTech today, what does a day-to-day workday look like? What types of problems does your code solve?
You solve a lot of the same problems that other tech companies solve, just with different constraints. An example I like to use is: "Facebook can afford to lose a 'like' on a post -- whether that is through data loss or just eventual consistency -- while we cannot afford to lose a penny (exaggerating a bit here) since there are people making live decisions on that penny"

Those sort of problems are more on the product side, along with the regular slew of product development tech problems. On the infrastructure/platform side (where I work) it is remarkably close to "regular tech". Same types of distributed systems problems, database issues, CI/CD pipelines, engineering efficiency, etc. The "new" part here is working with the finance specific areas such as physical data centers and networking to clients, or domain specific items such as data retention for compliance.

I generally think of "FinTech" as startups/scale-ups working on finance related products, and they're not too different.

There's quite a difference with what I think of as pure-finance, companies that aren't producing a tech product, but are using tech to make money with financial services, or betting on the markets in various ways.

As for the problems, I was once in an interview given a coding task of moving money around a network of companies based on tax rules. Fun.

I am a junior that does C++ currently for HFT. Lots of legacy code, although I don’t think the code is that terrible (although I am a junior so maybe I can’t tell).

Any reason why it’s a terrible path to choose? Am I stunting my growth? I was hoping HFT would help leverage me into a big tech company for systems level stuff since (at least I was told this as a selling point to get me to join) its tougher here so FAANG likes to see HFT experience. Is that not the case?

It depends on the FAANG, though most of them have some amount of C++ code. Google has a ton; they'll appreciate people who know the language well.

I think people may be concerned because these days it's more niche, though it's still a very common language. Take a look at the job postings from the companies you want to join and see what skills they want. Get familiar with some of them, even if you don't do them professionally.

Get good at the Leetcode style questions.

Are you doing distributed systems work? Can you answer design questions like: design bit.ly, Twitter, or Facebook? There's a lot of info out there on how to solve these problems.

There may be questions about your ability to work with "big data". But that's also something you can pick up on your own, even if you aren't doing it at work.

Look for technically challenging projects at your job and solve them. Learn from them. Think about ways you could have solved them better with what you know now.

> Any reason why it’s a terrible path to choose?

These reasons are not universally applicable, so see what fits your experience, but... code quality is often poor, internal practices often seem to leave a lot to be desired, company culture does not seem to be a focus, assholes seem to get rewarded.

You can probably get into big tech from it, but perhaps not at the seniority you might expect, or if you do you may find it a struggle to get onboard with industry norms around engineering process and company culture that are missing from a lot of finance companies.

Another junior eng here chiming in.

Base on what I can gather from my friends who work in the space (DRW, Citadel) it's just more stressful and has more politics than my current role (ML Engineer @ a retail company). Trading income for work-life balance and stress, and maybe OP is hinting that as you progress down that track the WL balance and stress only increase.

Just my 2 cents and why I didn't choose to pursue that path.

isn't it risky to work on finance related code...

i don't want to get shouted out by a bunch of coked up psychopaths.

I think this culture has changed a hell of a lot. When I started there were eating contests on the floor and someone got fired for being sexually harassed. People would break keyboards and bring water pistols onto the floor, and there would be free dinner each night for anyone willing to listen to salespeople.

Nowadays, it's quite different. Gifts have to be logged so people don't do it much anymore, metoo happened, and I can't really imagine another burger eating contest, even though that last one is fairly tame.

Finance is a large field with a lot of different personalities and cultures. Paying top dollar for devs is inversely correlated with getting shouted at by coked up lunatics, although there are exceptions…