HACKER Q&A
📣 axitheon

Harder Software Jobs


I'm leaving this question a little vague intentionally to solicit a wide variety of interesting responses. I graduated from college with a CS degree in May 2018, and have been working as a SWE at the same FAANG company since that summer. I like my job and am pretty good at it (have consistently gotten quite good performance reviews), but also find it fairly boring. I basically implement very simple business logic and glue APIs together. I do not work on any challenging technical problems and my manager discourages us from thinking too hard about things like performance in favor of quickly making progress and keeping the code very simple. I understand there can be a lot of value in working this way, but I am getting tired of it and want to move to more technically challenging work.

This question is also somewhat inspired by seeing the coverage of the Perseverance rover and reading about some of the serious technical challenges involved in software work for these applications. With that in mind, what recommendations do HN users have for jobs that I might find more challenging and engaging? Should I look more at embedded systems work (I am decent at C++ but would have lots and lots to learn)? I would prefer to move to another team within my current company but could definitely try to find another job too.


  👤 nostrademons Accepted Answer ✓
FAANGs have plenty of hard problems - most of them are involved in hardware, robotics, distributed systems, machine-learning, huge data pipelines, compilers, etc.

However, you usually will not get to work on those directly as a new grad, and for several years later. The reason for that is simply that they are hard problems, and big corporations are risk averse, and so they want people who have already made lots of mistakes working on the hard problems so that they will hopefully make fewer mistakes. At Google at least, the "hard" interesting technical work usually starts around L6 or high L5, which will take you 5-10 years to achieve. (The exceptions are some truly exceptional undergrads that got into the particular problem domain as a high-school student, and so already have 5-10 years of experience at 23.)

If you want to short-circuit this process, your best bet is often to pick your domain, start looking into it as a hobby, and use this to get a job at a startup in the field that's desperate for people. Because they're desperate, they're often willing to take the risk of putting junior engineers on hard problems, because, well, they have no other alternatives. And a FAANG background makes you look great in these cases. Then once you've got a couple years of experience in the domain, come back to a FAANG, but this time do it with a few years of relevant experience, which qualifies you for the hard problems. Make sure you leave on a high note; this makes you eligible for rehire and often lets you skip the re-interview process entirely.


👤 ipnon
Do your own DIY Ph.D. then make a startup with your research results. That's what I've been doing. I'm not sure I could pass a dissertation but I'm never lacking in difficulty on my side projects, and I get a pretty penny to boot. Big N doesn't need anymore research-level software engineers (they're already paying all of those that exist a million dollars a year in compensation), they need code grunts from elite universities to be digital plumbers. Sorry to burst your pipes.

👤 dangwu
It sounds like you're itching to solve Principal-level problems, so the obvious answer here is to get promoted (in the IC track) until your work is hard enough.

👤 AnimalMuppet
I'd start with your boss. Say something like "You know, I like working on this team, and working for you. But I'm kind of bored. The work isn't challenging me very much. Do you have anything a bit harder for me to work on?"

Note well: This presumes that your boss won't use this against you. If you have reason to suspect otherwise, don't follow this advice.


👤 mraza007
Hey maybe you can try quantitative trading firms. They work with C++