Software Engineer • Current Employee
Pros: - Interesting projects with complex challenges (if you have the luck to end up in a cool team; if not, you see it as a con).
- Smart people around you (you don't feel like the smartest man in the room :))).
- A lot of resources available for you to learn.
- Senior people are willing to help you or are sharing at least from their knowledge or experience what's the best you can do in a particular situation.
- I ended up in a really new team, and the product is written from scratch, so I know almost the whole codebase and I know who to ping in case I have questions. Also, we're using the latest tech stack, so I am up-to-date :)
Cons: You don't have to choose your team. When you come to interview, you will be picked by one interviewer, so if you wanted a team that isn't in the interview rounds, bad luck.
Your manager can be your "best friend" or your "worst enemy." The bad part is you don't have to choose.
Promotions vary from team to team. You should switch teams if it's not a fair process.
You thought you don't need to brush up on your algorithms? Guess what, if you want to switch teams, you will most likely re-interview. All the times you want to switch your team, you basically start the process again, but you have your connections.
Pay is less than the competition (Google, Facebook, and many others still pay you more).
There's no free food. God, I wish I had that! Besides saving money, an important factor for me would be saving TIME! I'd rather do something else when I arrive home than cooking dinner.
In some teams, you have work-life balance, but for me, I feel that there's always something to do, or I feel the pressure to ship as fast as I can.