Forget all of the fringe crap like snacks, cafes, massages, etc. That stuff is easy come, easy go (as 2008 has shown), and once the novelty wears off, it doesn't really affect your life much. There are better reasons:
Overall quality of employees is the highest I have ever seen. You won't find yourself having to dumb down your project so that the rest of the team can contribute. Google's size and wealth give you the opportunity to work on global-scale engineering problems that few other companies have.
It's nice to work for a company that at least makes a pretense of not being evil.
The lack of any coherent strategy can be extremely frustrating. The entire company just kind of wanders through the daisies as if at the whim of a couple of billionaires with attention deficit problems. Hmm.
Let's buy some wireless spectrum! No, let's make a browser! Wait, let's make a phone! Let's make a wireless phone browser social network thing! That will be awesome!
Be prepared for enormous variance in recognition and compensation, between individuals and between projects. The sexy new project that doesn't make a dime in revenue, and everybody already wanted to work on anyway, will probably get the multi-million dollar awards. Slave away on ads for a few years and, well, you'll get the satisfaction of knowing that you're keeping the lights on for the kids playing foosball.
Similarly, many complain about the "low-numbered" employees, which are indeed a problem. Why they stick around, I don't know. Their level of talent runs the full spectrum, but you can usually count on them having egos and titles to match their bank accounts.
Get better at failing fast on both employees and projects. It typically takes 12-18 months to get rid of a person that doesn't cooperate by quitting. And everybody here can name a half dozen projects that have been limping along for years with no significant impact in their market and no revenue to show for it.
The process included several steps: * Two IVs with HR * One project management and leadership check * Two code interviews * One system design interview * One disaster recovery interview: Simulation of an issue in production. * Final step with HR
First, an online assessment, then the HR call, then several rounds of technical interview (you need to solve data structure/algorithm problems), and finally a manager interview (mostly behavioral questions).
I had two online interviews with their software engineer. They first asked me about my research at school, and then we started the coding question part. The difficulty of the problems is around medium to hard on LeetCode.
The process included several steps: * Two IVs with HR * One project management and leadership check * Two code interviews * One system design interview * One disaster recovery interview: Simulation of an issue in production. * Final step with HR
First, an online assessment, then the HR call, then several rounds of technical interview (you need to solve data structure/algorithm problems), and finally a manager interview (mostly behavioral questions).
I had two online interviews with their software engineer. They first asked me about my research at school, and then we started the coding question part. The difficulty of the problems is around medium to hard on LeetCode.