Pros
- You can gain ton of technical and overall IT experience in absolutely different fields, if you're aiming for; - Fine salary and stocks; - Food compensation program covers almost all food costs; - Lots of well-working internal tools, that make your work easier; - You're in touch with your superiors and can discuss what bothers you.
Cons
- Big lack of experienced software engineers in company, cause most of experienced employees are going to western companies, so when it comes to non-trivial questions you gotta search for the answers around the company. So if you're an experienced person, that means the amount of work for you is huge, cause noone else will do this work, company goals are not getting lower; - Big lack of software engineers overall, so it does mean that often there's noone to read your pull request, discuss plans for changing certain system component or probable changes in architecture, because most likely noone knows it in detail or their amount of time is really limited. - Many features are implemented in a hurry to the end of the review period and forgotten afterwards; - Code is messy - there are no goals about making it good; - Bad documentation.