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://codeforces.me/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!