Pros
Coming from companies where engineers were always bound to the status quo, this company welcomes a good challenge. They don't fear changes as long as you can prove it is beneficial for the company. This is a bit like the Amazon way but with more flexibility. It's a lot to say but these are the identities of this company that stands out: - work flexibility: They have a great hiring process and deliver on the promises they made during interviews. - Great pay package: No complaints on this one, I got what I asked for and I'm super grateful. - Layoffs are rare and minimal ( though still painful but due to the current climate it was inevitable) since I have been there, there have only been 2 in a couple of years. They keep transparency and they do their best to keep the best and keep the company running lean. - freedom to move within teams: like Google, you are free to move from one team to another if you feel like your services can be best utilized in a different domain. You can even go from frontend engineer to backend engineer. Again as long as your output is still consistent and evolving. - the design team: the most creative people I have ever had the chance to work with. They design like artwork. It gives me a lot of inspiration which I have never had in the past. - engineering creativity: the top managers in the company highly highly favors creativity. So as an engineer I get to build systems that reflect the vision of the company with the appropriate tools. Which means as an experienced engineer, I am not bound to specific technologies and my ideas matter again as long as they evolve the company somehow.
Cons
They do allow you to be the greatest you can be. However in this industry there is still the need for structure. This is to allow engineers to focus on what matters and not mix unnecessary feelings, thoughts to the work at hands. And also in a way to feel safe to learn to fail and to get support they need. The company has evolved a lot though in defining roles within but there is definitely room for improvement. - hierarchy exist but the roles are a bit too vague - difficult to make a decision during times of disagreement within the team because of the above (that one person we can look to, to put the dot on the i.) - hassle to introduce order in engineering creativity. this is a personal opinion but I believe that as an engineer it is much more beneficial when you are able to gather arguments for your ideas, showcase the pros cons and possibilities and share with the rest of the team before adopting a finite solution. - we can definitely improve on cross teams communication especially since the roles (managers included) are not very well defined yet