1. Good HW and SW availability as a software developer
2. Give adequate time to learn new things and implement them.
3. Opportunity to learn new things.
4. Get opportunity to learn intensive networking and embedded systems.
Cons
1. If you know how it feels to work with a boss (sitting alongside) almost 80% of a day.
2. A little bit of office politics.
3. Very bad wash-room environment, when I left.