Vantaggi
I can't really imagine a better company in Russia and I always have a very warm and nostalgic feeling when remembering the period when I worked at Yandex. * Interesting and challenging problems with large impact * Very little pressure in most groups - there's rarely a formal deadline * This means you can often do a lot of experimentation in the direction you like - you will usually NOT be forced to implement a quick-and-dirty solution * Lots of super-smart people around * All the code is open to everybody in the company, so you can e.g. read some crazy stuff from the core search algorithms and learn a lot. * Everybody is friends with everybody. It's a joy to come to work and just talk to people. * A huge amount of intra-company communication infrastructure that's very actively used: mailing lists (with search), messenger, a wiki about EVERYTHING, "100 facts about everybody", people directory etc. It really helps A LOT to jump on the board or just to creep around and learn more about who is who and what's going on in the company. * Many of the mailing lists are cross-team (e.g. for java developers in general) and they're active * Teams are very open. You can talk to anybody; you can send a suggestion to their mailing list and they'll respond, etc. * Good infrastructure - e.g. crazy stuff for load testing * The company is constantly collaborating with universities and helping host educational events. You can be proud to be part of a company that's having such a HUGE impact on education. * Beautiful offices with on-site everything: food, sports equipment and instructors, english lessons, library, showers, games etc
Svantaggi
* Salary is middle of the market, not top * There are fewer interesting tasks in St.-Petersburg than in Moscow (that's why I left) * Food in St.-Petersburg could be better, and if you take lunch after 3pm, you may find that all the tasty things are already eaten :) * There are of course some projects with smaller impact or less stellar management. You might be unlucky to run into one - then just try jumping to a different project. * There's A LOT of "not invented here syndrome" all over the company. It can be dissatisfying to spend years developing something really cool and then see other people reimplementing a crappier version of it, just because it's fun for them too (with a formal reason like "it was hard to integrate"). Well - then learn better communication skills, mate, and don't concentrate just on coding.