Software Engineer • Current Employee
Pros: Good benefits and a strong salary, even for entry-level positions. The free lunch 3-4 times a week is good, plus the unlimited snacks and drinks. A nitpick here is that they tend to restock the drinks nobody likes and cycle out the ones that I like and are gone.
Developing is fast-paced, and changes can be shown to others very quickly after completion. This is full-stack development, which allows all engineers to make their own design decisions for the implementation. There is good communication with the product managers, which allows the engineer to give a fair amount of input.
The people at the company are awesome. The culture tends to be laid-back in the teams, and the environment promotes asking other engineers for help on difficult sections.
There are a bunch of training classes for spoken languages and other trainings. However, they are not easily accessible, or I never felt that they were easy to seek out. It would be better if fewer were offered at a time and had a visible place to access and sign up. There is some support for this, but it could be better.
There are plenty of things to do at the office, including video games, board games, and a foosball table. But aside from the foosball table, these get rarely used, if at all.
Cons: Mobility within the company is difficult. In order to switch teams or offices, you need to be excellent at your current position.
The culture for this is one of blame. Bugs you introduce are tracked and remembered indefinitely. These all detract from the excellent rating. This is a serious problem: if you are placed on a product that doesn't interest you, it is difficult to excel and switch to another part.
Work-life balance is not the greatest. Engineers are advised that 40 hours is the minimum, and working beyond that is a good way to show their exceptional work.
The codebase is not in the best state. Code is often copied and pasted, which leads to errors or outdated code permeating the entire website. Encapsulation is not very well achieved because of this. Similarly, the opposite can occur, where several different ways of doing the same thing are implemented as part of different projects, which introduces inconsistencies. Code is rarely cleaned up; however, there seems to be a push to do more cleanup projects.