Vantaggi
The company does very well and job security is stable Most employees are friendly, there's lots of joking around and casual discussions which really helps relieve many stresses of the job. Well equipped kitchen, a decent games area and an ok gym + showers Many enjoyable team-building and open-bar events which are paid for by the company. They don't cheapen out in this regard. Office looks beautiful Lots of overtime opportunities Lots of travel opportunities Team mates are not just colleagues, they are great people you'd want to be friends with outside of work. Estimations for development of new features are fair and well adapted to your skill. Most colleagues are very helpful and will go out of their way to help you.
Svantaggi
Some of the tech stack is extremely uncommon in the industry. If you end up working on this tech, the skills you will gain will be very specific to the company which is pretty useless to you unless you remain with the same company for the rest of your career. Too much work per employee, very frequent interruptions from other departments and constant tackling of issues in a hectic firefighting manner. Priorities constantly shift around, usually multiple times a day which results in a ton of context switching making it very difficult to focus on a task and be efficient in your work. Most decisions like what is included in a release for instance are not managed by developers but rather by non-tech people who do not understand what's best for the product. Too much politics and red tape. Potentially great ideas from enthusiastic employees tend to fizzle out in the chain of communication amongst the parties involved but I guess this is normal in larger companies. Salaries are well below industry average and negotiating for a better one doesn't get you far, you will get a plethora of excuses instead. If you want a fair salary be ready to work a ton of overtime. The nature of the business requires that personell are available 24/7. Although this only applies to the more experienced employees it is something you should be prepared for. There's very little stability in procedures from point of development to point of release. New steps or changes in flow are quite a common occurrence. This is because a lot of patchwork takes place to solve individual problems on the spot which later need to be revisted. It is also caused by the fact that developers don't manage the software life cycle.