Another ex-Googler. I worked there as an SRE for six years, then left due to lack of career advancement opportunities[0]. Currently I work at Stripe, which is less capable on some narrow technical metrics but a far more pleasant environment.

Stripe is hiring. We list open positions at https://stripe.com/jobs#openings. Email me at jmillikin@stripe.com if you'd like to hear more about the engineering work here.

---

Good differences:

* It's about 70x smaller than Google (100x smaller when I joined a year ago). My CEO knows engineers by name, knows generally what we're working on, and occasionally DMs us congratulations on especially interesting blog posts (hello Patrick!). The effects of your work (good and bad) are obvious, and people know who's doing what. I'm not sure if there's a "monkeysphere" equivalent for engineers, but in Infra at least we've not yet reached the limit.

* More transparent. Private companies have fewer restrictions on what business metrics they're allowed to share with non-executive employees, and people here are enthusiastic about sharing both (1) what's going well and (2) what could be done better.

* A general feeling of optimism and cheer that is absent at Google. We don't end up in the news for easily avoided own-goals that employees protested for months before they hit the public.

* The business model (supporting business growth across the globe, and scraping a bit off the top) is directly coupled to the success of our customers. At Google there's always a thought in the back of your mind that the people using the product are in conflict with the people generating revenue. At Stripe we're in partnership with our customers, working against people who are not customers (i.e. fraudsters).

* Much more support for remote work. I live in the Bay Area and am planning to go remote some time in the next six months. I don't think this would have been possible at Google, which is focused on offices and especially focused on "main campus" (Mountain View).

---

Bad differences:

* We use third-party open-source code more than Google does, and the average quality of open-source code is far lower than internal Google code[1]. I've reported critical crashing bugs upstream and gotten nothing but [tumbleweed noises]. At Google I once reported a bug in the getopt() equivalent, and it was personally fixed by Sanjay.

* Fewer engineers mean non-critical bugs in internal tools sometimes don't get fixed. We just don't have time. I've seen more JS stack traces on .corp pages in the last three months then during my entire Google tenure.

* Hiring engineers away from different companies (instead of entire cohorts fresh out of school) can lead to cultural conflict around dev velocity vs reliability. Obviously as an ex-Googler and an SRE I'm double-biased toward reliability, but folks with other backgrounds feel differently and there can be some difficult conversations there.

---

Overall I'm very happy with the outcome of leaving Google. I attribute most of this to Stripe itself. It turns out I got lucky, and things could have gone much worse (company full of ex-startup engineers = campfire horror stories all day long).

---

[0] During my last perf cycle, my manager's manager told me "senior engineers don't implement, they write design docs. Implementation is just code writing". Either he was wrong (and I was now stuck under someone who believed my chosen career was low-skill + not valuable), or correct (and I was in a comapany that believed same). Either way, the situation was clearly undesirable.

[1] External Google code is also lower-quality than internal Google code, which shocked me. I've found memory errors in protobuf (https://github.com/protocolbuffers/protobuf/issues/3752), all sorts of wacky stuff in Bazel, and every day I wonder why go-protobuf doesn't have DynamicMessage yet.