Why I left Google
Google is an amazing place, it’s the first “real” job I had.
My traits suit companies like Google and Facebook well because they look for a generalist. They focus on problem solving and coding skills for new grad positions. The training in ACM-ICPC helped me a lot with those. The interviews are considerably easier than Jane Street or IMO. I probably can’t get into companies that are more traditional. For example, I didn’t get into IBM, because I have no idea about lots of technical things known to CS majors.
The environment at Google is amazing. The life is flexible, one can decide to be hard working, or just hard working enough to not feel guilty about it. There is freedom to take up on things you want to work on.
The only problem is that I find little enjoyment in software engineering for real life products. The problems are technically easy, but complex. The code changes are easy, but one have to dive into the entire system to understand how one line change could affect someone else’s design.
The programming language choice is also a pain. It’s so hard to switch to C++ when I know how powerful it is to pass around functions or currying as a first nature.
It’s not the fault of Google. There are rarely companies are going around tackling well defined theoretical problems. I’m a mathematician, not an engineer.