Staff Software Engineer • Current Employee
Pros: * The food wallets are straight up awesome.
$220/month for Door Dash is fantastic.
* Really nice shirts and sweaters with company logo. I hate the company, but these clothes are comfy.
Cons: My gosh, where to start?
* Too much process. I spend 70% of my time making documents, 25% of my time in meetings, and 5% of my time actually coding.
* Engineering team boundaries are not well defined. Figuring out how to do a project is a mess, and it makes sure you're always in a ton of meetings with other teams. Due to this, there's a fat mess of bugs, and everyone hot-potatoes them to other teams. Even the tests don't catch these bugs, and if you're on an "experience" team, you're the first line of defense, having to drop everything when you're on call to figure it out. Then you need to pawn it off on a downstream team. Awful.
* Obsessing over the smallest thing. I made an email thread with my boss and a PM about when to turn on a feature flag for launch, and the next morning, it had 7 other people added to the email and 8 questions for me to answer. The work ballooned beyond a simple answer. It does this all the time. It isn't fun.
* Expect to really, REALLY be on call – cancel your plans for the whole week. The infrastructure is so brittle and interconnected that the on-call rotations are busy, and you really get grilled if you don't know which of the 6 other teams you work with could have produced a bug that is breaking your API. I've broken down more times than I'll ever admit. You're going to get paged, and it will hardcore suck.
* Upgrades require a huge amount of team coordination. Imagine 6 other teams coding in the same repo, and you all need to upgrade to the next major version of the visual component library. Incredible mess.
* Still on Python 2.
* You need a huge doc explaining why you want to make a change instead of just making that change and shipping it. The time to make the smallest change has grown exponentially in my year here.
* Staff software engineers run every meeting for the team. You'll never have time to work on actual coding.
If you just want to scope large projects with reasonable boundaries, easily work to make a stable product, and ship your high-quality coding work, then do not go work here. A staff software engineer is essentially just a PM. This is a nice job for some, but hugely untenable for me.