Not for entry level engineers
Pros
Work life balance Good people to work with
Cons
This is based on my personal experience - others mileage may vary ... - support overload of existing production systems - keep firefighting - rampant production failures leave little time for personal growth as a software engineer... unless you have come in with a lot of experience from the industry and all this doesn't bother you. - too little time to write actual code (unless you are too brilliant and can code up something very quickly) - Architect does things on his own terms and overrides tech lead and manager; often times tech lead and manager are as clueless as the new hire. Poor mentoring. - Terrible for entry level engineer - Too many things to know before feeling productive - whole lot of complexity in products - Immigration process is slow for entry level folks (F-1 students moving to H-1B -- take care; clarify about green card immigration process during interview.) - Upward mobility not so good, takes 4-5 years to get promoted (since there are only 3 levels for software engineers) no matter how hard you worked; till then keep growing linearly in terms of compensation. - Lot of old guard - people store company knowledge in their heads, not sufficient documentation, you can get tired of going and asking for every small thing (even after spending 2 years in the company) -- this should be resolved by better training for new hires. - Old legacy systems in place -- need to use more open source. - Not as competitive in compensation and perks as other top silicon valley companies. - Conservative east coast management - stingy in spending. - record profits, record quarters -- but still cut down on perks and bonuses to employees who are main assets. - projects are under-staffed. very painful at times even when the shortage of staff affects critical release cycles by a big margin. they do not want to spend! I would look at better places in silicon valley to work for if you are a new or a recent grad.