As most of you know, I left Uber in December and joined Stripe in January. I've gotten a lot of questions over the past couple of months about why I left and what my time at Uber was like. It's a strange, fascinating, and slightly horrifying story that deserves to be told while it is still fresh in my mind, so here we go.
As most of you know, I left Uber in December and joined Stripe in January. I’ve gotten a lot of questions over the past couple of months about why I left and what my time at Uber was like. It’s a strange, fascinating, and slightly horrifying story that deserves to be told while it is still fresh in my mind, so here we go.
I joined Uber as a site reliability engineer (SRE) back in November 2015, and it was a great time to join as an engineer. They were still wrangling microservices out of their monolithic API, and things were just chaotic enough that there was exciting reliability work to be done. The SRE team was still pretty new when I joined, and I had the rare opportunity to choose whichever team was working on something that I wanted to be part of.
After the first couple of weeks of training, I chose to join the team that worked on my area of expertise, and this is where things started getting weird. On my first official day rotating on the team, my new manager sent me a string of messages over company chat. He was in an open relationship, he said, and his girlfriend was having an easy time finding new partners but he wasn’t. He was trying to stay out of trouble at work, he said, but he couldn’t help getting in trouble, because he was looking for women to have sex with. It was clear that he was trying to get me to have sex with him, and it was so clearly out of line that I immediately took screenshots of these chat messages and reported him to HR.
Uber was a pretty good-sized company at that time, and I had pretty standard expectations of how they would handle situations like this. I expected that I would report him to HR, they would handle the situation appropriately, and then life would go on – unfortunately, things played out quite a bit differently. When I reported the situation, I was told by both HR and upper management that even though this was clearly sexual harassment and he was propositioning me, it was this man’s first offense, and that they wouldn’t feel comfortable giving him anything other than a warning and a stern talking-to. Upper management told me that he “was a high performer” (i.e. had stellar performance reviews from his superiors) and they wouldn’t feel comfortable punishing him for what was probably just an innocent mistake on his part.
I was then told that I had to make a choice: (i) I could either go and find another team and then never have to interact with this man again, or (ii) I could stay on the team, but I would have to understand that he would most likely give me a poor performance review when review time came around, and there was nothing they could do about that. I remarked that this didn’t seem like much of a choice, and that I wanted to stay on the team because I had significant expertise in the exact project that the team was struggling to complete (it was genuinely in the company’s best interest to have me on that team), but they told me the same thing again and again. One HR rep even explicitly told me that it wouldn’t be retaliation if I received a negative review later because I had been “given an option”. I tried to escalate the situation but got nowhere with either HR or with my own management chain (who continued to insist that they had given him a stern-talking to and didn’t want to ruin his career over his “first offense”).
So I left that team, and took quite a few weeks learning about other teams before landing anywhere (I desperately wanted to not have to interact with HR ever again). I ended up joining a brand-new SRE team that gave me a lot of autonomy, and I found ways to be happy and do amazing work. In fact, the work I did on this team turned into the production-readiness process which I wrote about in my bestselling (!!!) book Production-Ready Microservices.
Over the next few months, I began to meet more women engineers in the company. As I got to know them, and heard their stories, I was surprised that some of them had stories similar to my own. Some of the women even had stories about reporting the exact same manager I had reported, and had reported inappropriate interactions with him long before I had even joined the company. It became obvious that both HR and management had been lying about this being “his first offense”, and it certainly wasn’t his last. Within a few months, he was reported once again for inappropriate behavior, and those who reported him were told it was still his “first offense”. The situation was escalated as far up the chain as it could be escalated, and still nothing was done.
Myself and a few of the women who had reported him in the past decided to all schedule meetings with HR to insist that something be done. In my meeting, the rep I spoke with told me that he had never been reported before, he had only ever committed one offense (in his chats with me), and that none of the other women who they met with had anything bad to say about him, so no further action could or would be taken. It was such a blatant lie that there was really nothing I could do. There was nothing any of us could do. We all gave up on Uber HR and our managers after that. Eventually he “left” the company. I don’t know what he did that finally convinced them to fire him.
In the background, there was a game-of-thrones political war raging within the ranks of upper management in the infrastructure engineering organization. It seemed like every manager was fighting their peers and attempting to undermine their direct supervisor so that they could have their direct supervisor’s job. No attempts were made by these managers to hide what they were doing: they boasted about it in meetings, told their direct reports about it, and the like. I remember countless meetings with my managers and skip-levels where I would sit there, not saying anything, and the manager would be boasting about finding favor with their skip-level and that I should expect them to have their manager’s job within a quarter or two. I also remember a very disturbing team meeting in which one of the directors boasted to our team that he had withheld business-critical information from one of the executives so that he could curry favor with one of the other executives (and, he told us with a smile on his face, it worked!).
The ramifications of these political games were significant: projects were abandoned left and right, OKRs were changed multiple times each quarter, nobody knew what our organizational priorities would be one day to the next, and very little ever got done. We all lived under fear that our teams would be dissolved, there would be another re-org, and we’d have to start on yet another new project with an impossible deadline. It was an organization in complete, unrelenting chaos.
I was lucky enough during all of this to work with some of the most amazing engineers in the Bay Area. We kept our heads down and did good (sometimes great) work despite the chaos. We loved our work, we loved the engineering challenges, we loved making this crazy Uber machine work, and together we found ways to make it through the re-orgs and the changing OKRs and the abandoned projects and the impossible deadlines. We kept each other sane, kept the gigantic Uber ecosystem running, and told ourselves that it would eventually get better.
Things didn’t get better, and engineers began transferring to the less chaotic engineering organizations. Once I had finished up my projects and saw that things weren’t going to change, I also requested a transfer. I met all of the qualifications for transferring – I had managers who wanted me on their teams, and I had a perfect performance score – so I didn’t see how anything could go wrong. And then my transfer was blocked.
According to my manager, his manager, and the director, my transfer was being blocked because I had undocumented performance problems. I pointed out that I had a perfect performance score, and that there had never been any complaints about my performance. I had completed all OKRs on schedule, never missed a deadline even in the insane organizational chaos, and that I had managers waiting for me to join their team. I asked what my performance problem was, and they didn’t give me an answer. At first they said I wasn’t being technical enough, so I pointed out that they were the ones who had given me my OKRs, and if they wanted to see different work from me then they should give me the kind of work they wanted to see – they then backed down and stopped saying that this was the problem. I kept pushing, until finally I was told that “performance problems aren’t always something that has to do with work, but sometimes can be about things outside of work or your personal life.” I couldn’t decipher that, so I gave up and decided to stay until my next performance review.
Performance review season came around, and I received a great review with no complaints whatsoever about my performance. I waited a couple of months, and then attempted to transfer again. When I attempted to transfer, I was told that my performance review and score had been changed after the official reviews had been calibrated, and so I was no longer eligible for transfer. When I asked management why my review had been changed after the fact (and why hadn’t they let me know that they’d changed it?), they said that I didn’t show any signs of an upward career trajectory. I pointed out that I was publishing a book with O’Reilly, speaking at major tech conferences, and doing all of the things that you’re supposed to do to have an “upward career trajectory”, but they said it didn’t matter and I needed to prove myself as an engineer. I was stuck where I was.
I asked them to change my performance review back. My manager said that the new negative review I was given had no real-world consequences, so I shouldn’t worry about it. But I went home and cried that day, because even aside from impacts to my salary and bonuses, it did have real-world consequences – significant consequences that my management chain was very well aware of. I was enrolled in a Stanford CS graduate program, sponsored by Uber, and Uber only sponsored employees who had high performance scores. Under both of my official performance reviews and scores, I qualified for the program, but after this sneaky new negative score I was no longer eligible.
It turned out that keeping me on the team made my manager look good, and I overheard him boasting to the rest of the team that even though the rest of the teams were losing their women engineers left and right, he still had some on his team.
When I joined Uber, the organization I was part of was over 25% women. By the time I was trying to transfer to another eng organization, this number had dropped down to less than 6%. Women were transferring out of the organization, and those who couldn’t transfer were quitting or preparing to quit. There were two major reasons for this: there was the organizational chaos, and there was also the sexism within the organization. When I asked our director at an org all-hands about what was being done about the dwindling numbers of women in the org compared to the rest of the company, his reply was, in a nutshell, that the women of Uber just needed to step up and be better engineers.
Things were beginning to get even more comically absurd with each passing day. Every time something ridiculous happened, every time a sexist email was sent, I’d sent a short report to HR just to keep a record going. Things came to a head with one particular email chain from the director of our engineering organization concerning leather jackets that had been ordered for all of the SREs. See, earlier in the year, the organization had promised leather jackets for everyone in organization, and had taken all of our sizes; we all tried them on and found our sizes, and placed our orders. One day, all of the women (there were, I believe, six of us left in the org) received an email saying that no leather jackets were being ordered for the women because there were not enough women in the organization to justify placing an order. I replied and said that I was sure Uber SRE could find room in their budget to buy leather jackets for the, what, six women if it could afford to buy them for over a hundred and twenty men. The director replied back, saying that if we women really wanted equality, then we should realize we were getting equality by not getting the leather jackets. He said that because there were so many men in the org, they had gotten a significant discount on the men’s jackets but not on the women’s jackets, and it wouldn’t be equal or fair, he argued, to give the women leather jackets that cost a little more than the men’s jackets. We were told that if we wanted leather jackets, we women needed to find jackets that were the same price as the bulk-order price of the men’s jackets.
I forwarded this absurd chain of emails to HR, and they requested to meet with me shortly after. I don’t know what I expected after all of my earlier encounters with them, but this one was more ridiculous than I could have ever imagined. The HR rep began the meeting by asking me if I had noticed that *I* was the common theme in all of the reports I had been making, and that if I had ever considered that I might be the problem. I pointed out that everything I had reported came with extensive documentation and I clearly wasn’t the instigator (or even a main character) in the majority of them – she countered by saying that there was absolutely no record in HR of any of the incidents I was claiming I had reported (which, of course, was a lie, and I reminded her I had email and chat records to prove it was a lie). She then asked me if women engineers at Uber were friends and talked a lot, and then asked me how often we communicated, what we talked about, what email addresses we used to communicate, which chat rooms we frequented, etc. – an absurd and insulting request that I refused to comply with. When I pointed out how few women were in SRE, she recounted with a story about how sometimes certain people of certain genders and ethnic backgrounds were better suited for some jobs than others, so I shouldn’t be surprised by the gender ratios in engineering. Our meeting ended with her berating me about keeping email records of things, and told me it was unprofessional to report things via email to HR.
Less than a week after this absurd meeting, my manager scheduled a 1:1 with me, and told me we needed to have a difficult conversation. He told me I was on very thin ice for reporting his manager to HR. California is an at-will employment state, he said, which means we can fire you if you ever do this again. I told him that was illegal, and he replied that he had been a manager for a long time, he knew what was illegal, and threatening to fire me for reporting things to HR was not illegal. I reported his threat immediately after the meeting to both HR and to the CTO: they both admitted that this was illegal, but none of them did anything. (I was told much later that they didn’t do anything because the manager who threatened me “was a high performer”).
I had a new job offer in my hands less than a week later.
On my last day at Uber, I calculated the percentage of women who were still in the org. Out of over 150 engineers in the SRE teams, only 3% were women.
When I look back at the time I spent at Uber, I’m overcome with thankfulness that I had the opportunity to work with some of the best engineers around. I’m proud of the work I did, I’m proud of the impact that I was able to make on the entire organization, and I’m proud that the work I did and wrote a book about has been adopted by other tech companies all over the world. And when I think about the things I’ve recounted in the paragraphs above, I feel a lot of sadness, but I can’t help but laugh at how ridiculous everything was. Such a strange experience. Such a strange year.
Note: I am temporarily disabling comments because there are too many for me to keep up with!