- All the companies I have and am working for have very smart folk, very personable people you want to work with / learn from.
- All the companies pay well, have great benefits.
- I don't care for perks, I can afford the $20 a day to spend on food and snacks.
- All of em have great challenges to tackle, and usually you are sought after by the teams with exactly those. No one is going to pay you double your worth to sit around / purely 'learn on the job'. Past experience counts big when it comes to leveling/team choices in all of them.
- All of them are exponentially growing.
- Almost all of them are dabbling in each others areas of work: Everyone is doing databases/fs/networking/user applications/web dev and what not.
For me the choice of snap was purely because I wanted a small company experience without the risk of a pure startup, in fact all the benefits and better compared to the big 5. Unless you have a specific requirement like that, sadly money will end up being the differentiator.
To add some irony to the whole discussion, they know this as well: All the offers I got from the big companies were with few $$$ of each other. I didn't tell them my current salary with Amazon, it didn't even come close to the numbers on glassdoor for my then level, but magically they seem to 'know' (shrug).