Pros
1. We work with best of breed bleeding edge tools in big data world (streaming and batched) dealing frequently with 10 billion+ rows - needless to say choice of technologies we use is therefore derived from our needs. Work is extremely rewarding and satisfactory. 2. Independence to using choice to technology that we'd like to use for any initiative as long as it's efficient, fast and best of breed. 3. Great learning environment within team where every member fosters excellence by reading and applying best practice principles, algorithms etc. 4. Very nice patient and understanding team members who take whatever you say very seriously no matter how trivial the issue might be on technical side that is. 5. Great place to learn and explore new technologies acquire great skill-set for long run. 6. Excellent perks, benefits and salary :-)
Cons
1. Sometimes change is so constant that it may tire you - you'd have to read, read and read and still get a feeling like you don't know much and still have a lot of catching up to do. 2. Often we have tighter deadlines and so choice of tools and skill-set in things for implementation is highly dependent on few team members who know a lot and therefore can run away with tasks that would take you say 3 days and finish them off in a day - I.e there is a learning curve to follow. Once you've crossed that barrier with a year under your belt it gets easier. 3. Lack of opportunity in my team to build things from scratch especially if you are an engineer, since there's already a lot of things that have been explored and best practices figured out - rightly so, however doesn't give you that opportunity to start afresh make mistakes and learn from those rather than relying on others telling you of a way to do it. If you like building things from scratch you might wanna look for other team perhaps.... Although there are attempts to circumvent this but it cannot be avoided. 4. Tensed team - there isn't much fun or joke cracking amongst team mates - this is different for other teams though (direct observation) - our team rarely makes a loud joke or plays any sport etc. socialization is restricted to a few events that are organized - not a healthy place to be in long run if you are looking for a balance. Again this is team specific other teams are very different from ours but then the work is different. 5. Lack of communication with managers and reports - often manager relies on few senior engineers to express anything - and ignores advise of other engineers. This can happen in any organization but it's rampant in my team. It may not be so for other teams though I cannot say.