Hi all, if you are currently in college, greatly enjoy CP, and are thinking about what field and type of position to get which will allow you to solve algorithmic problems, please first read this post: https://mirror.codeforces.com/blog/entry/79401. It has a ton of advice from people which can help you out.
Two years have passed since I made that post, and I've found an excellent position which allows me to solve algorithmic or otherwise technical implementation problems with good frequency. I work at Facebook (I refuse to refer to the company by its actual name) and I work on F3, which is a compiler written in Python used by ML engineers to write data pipelines for their models. It interfaces with all of our internal tooling, optimizes their queries, makes them privacy compliant and does a lot of sanity checking. It's extremely complex and probably has about 1 million LoC. The compiler still takes hours on pipelines with ~1e5 nodes in them, which is insane.
I specifically work on scalability, so my job is just to make the compiler fast. The compiler also views the data pipeline as a DAG, so it's quite frequent I am thinking about regular graph algorithms (graph search, DSU, merkle-like hashing). I'm also thinking about the implementation of relatively complex functions, so I do feel challenged most days at work. However, there are of course times where I am working on something irritating, like gluing systems together that don't really work because FB loves the move fast/break everything culture.
If you were too lazy to read the other blog post, I think the takeaway is that most positions in SWE aren't going to be this nice. They do definitely exist and it requires diligence to find them, so you should make yourself known as an "algorithm guy" and go from there. At any big company there is going to be slow code that must be faster.
Feel free to ask me any more questions about my experience in this role, and good luck to everyone looking for a job which suits them!
Job is a joke these days. Future looks bleak when every company is laying off in thousands even reputed ones like Google
Keep your head up, we are just in a recession and tech companies have miscalculated the trends. This is historically normal
I only wish I was a millionaire in this shitty world, would love to have no worries in my life. But nowadays, anxiety is through roof. And people say AI is going to solve all our problems lol, we progressed in AI so much but situation has gotten worse.
Do you feel your team is a company priority? How was your team/org affected by the recent layoffs? I am trying to contemplate if this is the time to find "cool" jobs like yours :). My intuition says it may be better to find an ops heavy team in the core revenue generating business instead :)
Also FB employee, some of my code probably calls code you wrote. Opinions are my own
You can look me up internally, my name is just my CF handle. My team used to be around 11 people under one person, then we split into 4 people on scalability and another feature authoring team. Two of the four were laid off. I am guessing upper management didn't understand that having a compiler which takes hours is an issue for dev productivity. Although, my opinion is that the two who were laid off (despite both having 5 YoE at FB) weren't accomplishing much.
You should find a cool job which is critical, but I doubt there is going to be much headcount at the moment. In better times as long as you find a good top level metric to attack and your skip level smiles upon you (highly correlated, duh), I seriously doubt you are in any trouble.
Also, if we regain headcount on my team (currently unclear), we can send a reach out to you. Would be nice to have some guys with algo background.
They should be kicked out because they have hoarded enough money in 5 years almost maybe half a million or probably more(250K is good). This will help the newer and younger kids to take over. People don't want to leave but also don't want to innovate. This is just stealing money that could have gone to good use(hiring more capable engineers).
the thing is, there are a lot of positions, especially in big companies, which were just unnecessary for business. Occupied by people who were doing nothing except of attending some meetings and drinking wine in between. Of course this bubble's popping right now.
If you're a passionate software developer who can and will write some good code then don't worry, you'll find a nice job. Be like Roman Gilg, for example:
you got so lucky
Yeah I definitely agree. It felt like dumb luck that I got the FB internship in the first place, which set me up for the job. I had no other offers lol. The position itself is also perfect, I think if I was elsewhere on the compiler team I would also be happy, but this is best.
Hi, congratulations for finding your favorite job I didnt find anything about how much they pay you? can you share something about payings in CP related jobs?
My salary is basically online, you should be able to use e.g. levels.fyi. In case you are too lazy, my base salary is around 127k, I have no clue what my bonus target is but it's probably 10-20%, and I'm getting like 20k stocks per year (down from 40k because Mark has trouble understanding how corporate decisions and stock value is correlated).
With what CP knowledge did you get this job?
I've done a lot of ICPC practice, probably I've done around around 500 hours or more of that. I'm expert after decaying from master/being rusty, but also my implementation skill isn't very good. The CP knowledge wasn't very relevant though I think, the hard part was getting the interview. I assume having math research on my resume was the biggest part.
Curious, which location?
Bay area but it became a bait and switch, they kept pushing back the date for return to office, and eventually never happened. I moved back to east coast and now I'm fully remote.
You also asked about salary for CP related jobs — at FB, it doesn't matter what org you are on, just your past performance, current level, and position title. I would be earning the same if I was making nice buttons for you to click on. In general however, you should anticipate that you will be paid less and face more competition for algo/math related jobs. People are very hungry for them, as you can tell by the last post. My position manages to avoid the competition for some relatively unknown reason, maybe all the algo/math people never bothered to look at F3.
Aren't you the impostor from beef stroganoff
Yes