By now, it’s likely that you saw the Bloomberg article about Google SREs’ mental health, which among others quotes my friend Mike Knell, and if not, I do recommend you start by giving that a read. While it focuses on a particular team in Google Zurich with whom I only had passing collaboration, I can relate to what is being discussed there.
Two years ago, just before most of the world started locking down in the face of the pandemic, I left Google SRE myself. And the reason for that is not to be searched in deep business reasons: it was because of a terrible manager. People join companies, and leave managers, the saying goes, and it definitely was right for me.
I’m not saying that I was always happy about the business choices of Google, just as I’m not always happy about the business of my current employer, but as I wrote before, I have dependents, and I don’t think the world is just as black and white as it’s sometimes easy to state on Twitter or other media. But the important part here is that I could have been saving the world from a disaster, humanity from an extinction event, and I would have still left that manager as I left him this time.
In a Twitter thread following from that article, I collected some examples of how my manager at exit at Google has effectively driven me out of Google, but I thought I would actually get into more details, and give a bit more context. Not to scare people away from Google, or from SRE (though possibly, suggesting prospective transfers to at least give a good thought about reporting to him, would be a good thing). but rather to give examples of what can happen, though it shouldn’t, fulfilling my commitment to be a better senior engineer.
Premise and Context
First of all, let’s put something out of the way: what I’m going to be writing about is the behaviour of a terrible manager. The fact hat he was and still is at Google (at the time of writing) does open questions on the general choices in management of Google SRE (London in particular), but there is nothing that specifically suggests that this behaviour only happens in Google.
Currently, I’m working at Meta (although in the WhatsApp organization), and I feel incredibly lucky to be working with a manager who I trust, and helped me to recover my confidence after this experience, and to grow again in my role. I’m expecting that similarly good managers are available in Google, and possibly managers just as bad as my last Google one to have made their way into Meta — I don’t have enough experience at my current employer to judge that many managers, but my experience to this point has been very positive overall.
With all of that said, I need to provide some necessary context to read where I was when I started reporting to that terrible manager. Four and a half years after starting in Dublin, I moved to London while staying at Google. The reasons behind the choice were all basically personal, and to do with not feeling “at home” in Dublin, but it worked out when the team I was working on in Dublin was being disbanded, and my then-manager suggested me to use it as a chance to be reassigned to a city I would find myself more happy in.
When I started reaching out to managers who might help me to move, I was hoping to transfer in one of the teams that I was working closely with previously – one of which working on a Zero Touch Production project that I was very keen to get myself more involved in – but that didn’t work out quite as I expected. The manager who I knew, and would have liked to report to didn’t have enough open headcounts, and instead I joined a team whose manager was just about to switch to a new team, and was going to hire someone entirely new.
That team turned out to not be quite a good fit for me, and while I was having a good relationship with my manager there, a number of separate escalations did cause me stress. Eventually, with our manager unable to resolve a difference of opinion between me and the tech lead of the team, I have asked for a transfer, explicitly to the manager that I was looking to report to in the first place when moving to London, as I knew or at least suspected, that he would be able to provide me more direct feedback on how to “read the room” with the new leadership of our organization. This request was accepted, but with a lot of warnings about this being a single exception, and that the London director had to be convinced of letting me change team.
A few weeks after I started reporting to this manager, news arrives that a re-org is happening, and the team I just joined is no more. The previously horizontal split of services in our area would be replaced with a product-vertical split, which re-shuffled the members of the previous two teams in two separate divisions. In this context, my chosen manager got pushed up, with the other “pod” manager and a new hired manager taking the new horizontally split teams.
Because of this, my choice of manager was obviously not feasible. Instead, I was being handed to the pod that reported to the already tenured manager, with the justification that the new manager was an unknown, and my chosen manager trusted the one that was there already. He would instead stay to be my skip-level manager. I wasn’t entirely happy about the situation, but I had no other option but to put my trust on my now-to-be-skip-level manager: since my transfer out of the previous team was already controversial, I couldn’t change team again, so I had to accept this new, unrequested manager — that soon enough showed as the Terrible Manager, that effectively drove me out of Google.
The last important bit to know, before going into describing my first impression of the new manager is setting up the stage in terms of timing. I can tell you with certainty of when that announcement happened late November 2018. I know that, because originally my chosen manager set up a 1:1 with me for the morning before the wide announcement, but I asked to move it to the afternoon, because it was my birthday, and we got home much later than expected from seeing The Lion King. Quite the birthday present.
Due to holiday breaks, vacation, and general timing of the re-org, I was to report to the Terrible Manager as of the beginning of 2019, with the new OKRs starting in Q1 with the new team. At the same time, due to more people leaving my previous team, I was to stay in the oncall rotation for that team until the end of January. As part of my transition between now three teams, most of my project work was related to a diagonal project, which was being worked on org-wide, and for which I fought tooth and nail in the first half of 2018 to be working on — I had brought up the project in late 2017, but once the impact of this project was clear, upper management tried to transfer the project to an engineer they had a better relationship with, though eventually I got involved, to a point. That’s a story for another time.
Crying At My Desk, In Front Of Everyone
Move the scene to January 2019, I’m reporting now to the Terrible Manager, who just came back from holidays, and I have OKRs covering both the diagonal work mentioned above, and an open ended task to pick up the relationship with a team that hadn’t had SRE support before.
In addition to this, as I noted before, I’ve been maintaining some core Python libraries, which made sense, since this new team I was sitting with had tons of Python code, tools, libraries, and services. One of the libraries I maintained at that point was the internal copy of Flask, which the team also relied upon for a few services. Maintenance of an internal copy of a third party library is usually fairly straightforward: it’s recommended not to change the code of the library unless really needed, and if needed, to send fixes upstream. The primary task for that maintainership is to keep the library up to date — not least so that if a new version is released to fix a security problem, it can be updated quickly without expecting regressions. Keeping the libraries updated is not as straightforward as you may think, because usually there’s lots of users of those libraries, and you should do your best to avoid disrupting their workflow. To make the life of core maintainers easier, Google provides a “global presubmit” feature, that allows you to run the continuous integration tests for all the code that depends on the code you’re changing.
This ends up in an interesting overlap of three main policies: the rollback policy («If you broke something, rollback first, then debug.»), the global test policy («if a global, large-scale change broke your code, you should write a test to verify that new changes don’t repeat that»), and the third party policy («you should always update third party libraries, users can be given a timeline to update their callsites to support the new version, after which their code may be broken.»)
In practice it meant that, since I was doing a major version update, I spent about a week tracking down any change in behaviour that lead to failures, reached out to all of the code owners that would have been broken by the update, and provided “bridge changes” that would be able to support both Flask versions for a while, so that I could run the update without disrupting anybody. I announced the upcoming change, and after a few days with no concerns raised, I went and submitted the update on a Thursday afternoon (so that if something broke, it could be rolled back ahead of the weekend.) Nothing comes through on the weekend, but on Monday the following week I get a review request for a change that reverts the Flask update, with a single line description saying that the change broke something, providing just the exception text — no stack trace, no information of which service it affects, no reproduction steps.
With something like this, my reaction is unfazed: I point out the policies above, and ask for more information, since their code is clearly missing global tests, and I have no way to reproduce this, while also trying to keep the third party library up to date. I tried figuring out what service might be affected, but I remember checking the internal profile and seeing the job title of the author of the change listed as «VP of Keeping It Real» — Google lets you edit the job title in your internal profile, mine used to be «Yak Stylist of the Typing Pool», and one day I’ll explain the yak stylist concept.
Later on the same day, a different person, in California, reaches out because the Flask update did indeed break some of their processes. This person does not ask me to revert my change, but rather asks for help to figure out what might be the problem. I ask them to file a bug report with a bit more information, and promise to look at it the next day. The next day, over coffee, I ask a colleague with more AppEngine experience than me to help me investigate this problem — he gave me a couple of pointers, so I check and go back to the bug reporter with a few questions to see if we can fix it properly.
Not even a couple of hours later, while I’m out at lunch, I see a comment on the bug from someone in London (so not from the team of the person who opened the bug) insisting that this is breaking their workflow, and that they are going to escalate to my manager. Before I can finish my lunch and go back to my desk, I see a group chat created with me and Terrible Manager, where this last commenter is complaining I have not rolled back the change yet.
At this point I’m back at my desk, and I’m trying to collate the answer pointing out the request for additional debugging information and the lack of answer from the change the previous day when I asked for details of the failure. Terrible Manager, who has the desk behind and to the right of me, turn his chair, positions himself to my right, and starts by asking me to rollback the change, which I point out is not as straightforward as he thinks, since the new version of Flask had been by that point in use for nearly a week, and it is possible that some other team is now relying on the new features, plus the policy suggests never to downgrade a third party library, but rather to fix the callsites.
Instead of doing what I would have expected a manager to do (ask me to look into it, and then buy time with the escalator by getting more context on what’s going on), Terrible Manager literally spent the next two hours sitting next to me, asking me why I’m not doing something about this, all while I’ve been asking two engineers to at least give me steps to reproduce the problem. Despite me having pointed him at the previous discussion on the bug, and the number of policies I’ve been referencing, he didn’t stop to look at them, but rather kept badgering me to do something to help the other team out. I still don’t know what that team did.
At some point, I pointed out to him that I was still in the middle of a shift for my old team, and that I was keeping an eye out on a situation that might have caused an outage, and his answer to that was to tell me to find someone else to take my shift, because that failure was now the most important thing for me to look at. Without explanation of why it should even be my priority, and without appearing to understand that a team having no tests for their service should not be a burden on the core maintainers, not just me but all of them. I broke down crying; Terrible Manager didn’t stop, but went to fetch the manager of my older team to find someone to take on my oncall.
It’s at this point that my tech lead actually stopped by the desk, and asked if I wanted to have a tea — I probably should have taken the out, but instead I felt so terrible that I just sat at my desk, crying, and tried to get someone to give me instructions on how to reproduce the problem.
The whole debugging ordeal doesn’t really need to be mentioned, but just for closure I can tell you that the problem turned out to be present only on a test environment, that tried to fake the AppEngine runtime environment. If the code had been tested in staging, it would have shown that it was working perfectly, and at the same time, all of the instructions I was given to reproduce the problem required me to have access to resources that I was not actually authorized to have access to. So, really, there wasn’t anything I could have done more to help this, it needed to be escalated to the team that wrote the fake AppEngine environment, who did resolve the issue relatively quickly afterwards.
It’s a bit of a blur exactly how I made it home, whether a colleague picked me up at my desk to make me leave earlier, or if I just wandered out and found him on the way as well, but I’m absolutely glad that someone was with me on the way back home, because I was devastated by the experience. Never before, on the job, I felt so crushed by having tried to help the company and another team. But as I went home I realised that I couldn’t just turn up the next day as if nothing happened. Since I knew that changing team was not an option, I had no idea what to do, and I actually spoke with my then-girlfriend-now-wife that evening and decided to ask for a month of unpaid leave, during which to decide what to do.
As I reached out to HR the next day, I was suggested not to take the unpaid leave, but start with a two weeks paid stress leave, which I did take immediately after that. With the exception of one afternoon, when Terrible Manager asked me for a meeting before I would go back to work. In the meeting he apologized, asked me what I wanted to do about this. I accepted to stay in the team, and thought the apology was real, and that we would be actually having a working relationship afterwards… oh, I was so wrong.
Being More Present, While Being Present
Two weeks later, with the stress leave behind me, I went back to work as if nothing happened, nearly. The diagonal project that I fought to be able to work on was taken away from me: its success was too critical to leave it to an engineer who took two weeks stress leave, so it was reassigned to another teammate. I was left with the new team engagement only. And this turned out to be a bit of a mess, because said team had no idea what to ask of SREs, and after a couple of meetings I decided to basically leave them alone, and focus on the Python 3 migration that was already underway, despite it being not formally assigned to me.
What I didn’t expect was that a week (or maybe two, this part is fuzzy on timing) after my stress leave, on a Thursday, I would be spending nearly two hours stuck on the Tube. You see, my usual commute routine, back when I was commuting that is, involved leaving my flat at around 10am. The reason for that is that I live on the Heathrow branch of the Piccadilly Tube line, and my two options to get to the Google office in Kings’ Cross were leaving very early in the morning, before the flights from the US landed, or wait until 10am for the traffic to get back to normal. Leaving around 9am would basically just mean having a miserable time and not making it to the office much sooner than leaving at 10 anyway, due to the number of times doors get jammed by luggage. That Thursday, something was afoot across the Tube, and I literally spent more than 40 minutes waiting between stations, with no network signal.
This was particularly annoying because on Thursday after lunch my team had the weekly meeting to update on the various projects’ statuses, and after that I had my 1:1 with Terrible Manager. So I notified a teammate that I was stuck on the Tube, and that I would probably be late for the meetings. At the first chance I got, I switched from Piccadilly to Circle line, but that also was being affected by the rest of the lines problems, and so I decided to get off at Great Portland Street station, and walk the rest of the way. It’s a 2KM walk. After spending nearly two hours on the Tube. I’m diabetic, so I bought an orange juice at the first booth, and then immediately texted Terrible Manager telling him I’m on the way, and that if I don’t make it exactly for our meeting start, I would just be a few minutes late.
I make the meeting, arriving a few minutes before the designated start time, so I head to the meeting room and wait for Terrible Manager (no point in crossing half the office to try and say hello to the rest of the team during a meeting that is already finishing.) The first thing my manager tells me? «I have an important ask of you, you need to be present at more meetings.» I just briskly walked two kilometres with diabetes after skipping lunch to make it in time to our 1:1, and I don’t even get asked if I’m alright after the ordeal. It’s our first 1:1 since I came back from stress leave.
After the meeting, I checked my calendar, where I always carefully recorded my attendance to meetings. Since the beginning of the year, I only skipped one weekly meeting: the one that day. I have skipped other meetings, including the sync with the Kirkland teams, but all of those have always been optional unless you were oncall the week, since they are mostly handovers. And I did skip a few design review meetings for designs that I had no context or opinion about, and that mostly didn’t fit with my pod’s work. I received no apology when I pointed out that I had not been missing meetings that I was required to attend.
Ratings, And «Trying to be right, rather than helpful»
At the following performance review cycle I received a “Needs Improvement” rating – the first and only of my career at Google – that was announced either late March or early April, I can’t remember. I kind of expected it, but also kind of not. Up to that point, most of my ratings were Exceed Expectations or at least Constantly Meet Expectations. But with the abrupt change of teams, and the not quite working out with upper management in the diagonal project, I was braced for those to haunt me.
I received the rating, and wasn’t told to do anything special besides trying better for the quarter that was already happening. I then started talking with other teams, and particularly other non-SRE orgs, to see if I could find a better fit for myself, sidestepping the problem of asking for a transfer (a role change would be a different thing than a team transfer), but nothing seemed to be particularly urgent.
At that point, my primary project was to oversee the transition of one service from our team to a team based in Zurich, with an explicit deadline of EOQ2. So after doing the work to disentangle the service from our team’s systems, I book a trip to visit the receiving team for May, and thanks to the June bank holiday, I join it with a trip to Venice with my girlfriend, taking only one extra day off.
When I took business trips, I always cleared my calendar: except for incredibly important meetings that I might not be able to skip, any regular weekly meetings, standups, and 1:1 with the members of my London team wouldn’t make sense to use the time I’m explicitly spending at a different office. That’s the same reason why I wouldn’t want to be oncall while on a business trip (exceptions have happened, mostly due to scheduling constraints.) So you can imagine my concern when Terrible Manager replies to my declined meeting notice with a “Can we meet Friday morning over VC, if you’re busy on Thursday?” So I do ask if there’s something urgent that can’t wait for me to be back, and I’m told that no, it’s just to not skip a week of catch up. Well, okay, though it feels a bit strange, and I don’t think I need to explain much why it sounds like that.
While some scheduling snag did happen during my visit to Zurich, the visit was productive, and I left the city excited for the quick visit to family. I came back to London early on Wednesday, worked from home in the afternoon, and was meant to be back at the office on Thursday, except that the Piccadilly line thought otherwise. That meant I took the weekly meeting over VC. When asked for the update about the service handover, I declared I was feeling confident that we would be completing the project in the expected time, only to be stopped by my manager saying «Have you not checked the meeting notes on Tuesday?» It turned out that on the previous Tuesday, when the weekly handover meeting happened, and I was off on vacation in Italy, Terrible Manager and the other team’s manager realized that the timeline they thought they agreed upon (before I was attached to the handover project) differed between the two teams: my team thought the receiving team committed to receive the service at the end of Q2, while the receiving team thought they would be picking it up after July.
I had been back at work for a day and a half by then, I hadn’t checked the meeting notes because nobody mentioned me in them, and I usually only checked them before the following meeting. Both Terrible Manager and my team tech lead were aware of the snag, and none of them mentioned it to me, even in passing. Terrible Manager said he wanted to tell me at our 1:1, but that meeting has always been scheduled for after the weekly meeting. Since I was taken aback in front of my whole team, I did have to say I had no idea what else to say for the other project I was supposed to work on, and I stated so. I then reached out to tech lead and Terrible Manager pointing out that I no longer trusted them, since they had all the time to send me email, or a message, or mention me in the documents, and instead they caught me like a deer in the headlights during the meeting.
Terrible Manager rescheduled our 1:1 to the day after, since he preferred discussing this in person, rather than over a remote video. At the meeting I repeated that I now had trouble trusting him because I didn’t think that the way he behaved about the timeline was proper (he could have not said anything during the meeting, and let me finish my update, then filled me in afterwards about the snags, at the very least), and he asked me what I wanted to do. I told him I would have to think about it during the weekend, and he agreed to meet again on Tuesday.
At that point, I decided to see what options I had, and reached out to the manager of Python team, since I was working closely with that team for many months, and I had some glimmer of hope I could apply for a remote position. We spoke on Monday, and he unfortunately had to pop my balloon: remote positions are very difficult to get approval for, and with a NI rating they are impossible. He also explained to me how surprised he was that I was not on a plan, since the usual process involves Performance Enhancement Plans (a first step to an Improvement Plan, which if failed leads to termination) and he would have expected it to be presented to me already by then. Following that I set up a 1:1 with my skip level, with the idea of figuring out what other options were available to me.
A day later, I have my meeting with Terrible Manager, he asks me what I thought to do, I say that I guess I’ll give another try at building a relationship, and after that he presents me with a document: my PEP. I stop talking then, and say that I’ll have to read and think it through. I head to the meeting with my skip level, who is clearly aware of the PEP already, and despite me having a different topic in mind when setting up the meeting, that turned out to be the only thing we spoke about.
I did ask explicitly if he could be the one administering the PEP, and he turned down the idea with no doubts, saying that I would have to learn to work with Terrible Manager. And he confirmed that the PEP was worked on since April, and was ready to be shared with me when I was in Zurich, which is why I was asked to schedule a 1:1, but Terrible Manager decided not to bring it up over VC, and then he didn’t bring it up immediately after I came back because I got upset about the timeline slip.
The thing is, once you’re under a PEP, you are not allowed to change team. So asking me what I want to do, a few days before presenting me a PEP that was in the game for over two months, does not really help rebuild trust. Even less so, because I found reasoning in the document that I was lacking respect for my peers. When I asked explanation about this, as Terrible Manager never brought up this as an issue in the six months I reported to him, he tried to bring up the Flask incident, telling me I was «trying to be right, rather than helpful», despite me having already engaged with the affected teams before he got involved. I brought this up with the HRBP that was assigned to my Plan, and the reference to respect was stricken out.
Concerns, Deliveries, Alternative Arrangements
The short version of the Plan was that I was required to deliver certain milestones for my project on a schedule. As many might know already when working in big tech companies, OKR schedules tend to be very optimistic at times. That meant that in the middle of the quarter, and of my Plan, I had to change the chosen work to complete. In previous teams, this would be the time to send a single email announcing that we would be changing our priorities according to the emergent facts, but in this team, and with the Terrible Manager, that meant instead starting a complex process to request the OKRs to be amended, even starting the discussion of whether I should rather be marked as having failed the OKR.
At some point during this time, I had a weekend oncall shift (weekend oncall starts Saturday morning and ends on Monday 6pm, to make it easier to bundle the bank holidays), and on Saturday morning I discovered that an incident was filed during the Pacific Time shift for a slow-burn resource consumption issue. The issue existed across the org, and practically didn’t affect my team, but the Kirkland oncall got roped in, and sent me a handoff saying that if something went wrong, I should be ready to help, but otherwise it probably will be taken care by the Pacific teams anyway.
On Monday I’m at the office, and dealing with another, burning incident, when around 5pm I get a notification requesting all of the oncalls for my org in Europe to stay after hours until 6.30pm for a warroom. Terrible Manager approaches me aisle hurriedly asking how things are going and me, still trying to deal with the actual incident, answer off the cuff with «Since when [senior manager in Dublin] calls the shots for our team here?» and pointed out that it would have been nice to know this earlier in the day, so that I could inform my girlfriend I would be home late. I’m told that I don’t need to worry if I can’t make it, because the Kirkland oncall is on top of it anyway (and as I said, our team was barely affected), and I thought it would end there.
On Thursday, during our 1:1, Terrible Manager states he’s “concerned” by how I took the request to stay late. Since we’re still in the middle of my Plan, I keep asking for a specific action I can take to appease his concerns, but instead we spend a full hour (rather than the booked 30 minutes of the meeting) with me explaining how the request to stay late should have been sent much earlier, out of respect (the issue was known for the whole weekend, it’s not like it came as a surprise at 5pm), and that the whole incident had been seriously overstated, at least in the impact that it would have in our team, while Terrible Manager kept insisting he was concerned, but provided me no actionable feedback.
After the second half hour, since I needed to go to a different meeting, I just said goodbye, and left the room. I followed up by sending an email to the HRBP and Terrible Manager, explaining how not actionable the whole discussion had been. This was then followed by a meeting with both HRBP and Terrible Manager, in which Terrible Manager eventually stated that his concern was with the tone I used, at which point HRBP reminded him that my native language is not English, and that if he thought my tone was inappropriate he should have said so there and then.
After that, my Plan was nearly over, and I passed it with no issues, and my following performance review came back with a Consistently Meets Expectations. Of course, I still could not put in a request to change team within SRE, as the previous year it was made clear to me that I had one and only one chance. So instead, I started looking at software engineering teams in London. Unfortunately, I couldn’t find a fit that would work, as most of the teams relevant to me were in Mountain View or Sunnyvale, and a long, protracted discussion about this with my by-then wife excluded the idea of moving. This is the first time I actually started considering leaving the company, and started planning for it, in terms of runway and budgets.
What I would not find out until much later is that just about at the same time as I started considering this, one of the managers around my area had suggested Terrible Manager to exchange me with a new hire head. It was meant to be a perfect proposition: losing a difficult engineer for a new, malleable individual should be the kind of thing managers would be very happy to. The request received the blessing of upper management, as long as Terrible Manager would be okay with it, but he rejected the proposal. I wasn’t aware of any of that anyway.
Exit Stage Left
What totally sealed the idea of leaving was the result of the compensation letter. For the second year I would get no new stock and the bonus was kept at the minimum, next to the yearly raise. Some of that probably would have been related to the fact that I was already on the upper range of pay for my level, since I used to have a much more consistent Exceeded Expectations story, but that also meant I needed a promotion to be able to get anything more. And given the lack of trust to my manager at that point, that didn’t seem likely.
I decided to start interviewing outside, got two very good offers on the table, both at a higher salary than I had at Google, and accepted the role at Facebook. But things continue to happen before I gave my notice, even!
You see, back then the Google office in Kings Cross was the target of protests by the union of janitorial staff after the termination of two employees. Without getting into the merit of these protests, I was (and am) not comfortable to enter an office that is being effectively piqueted. Since the protests were announced in advance to happen for a month, on a specific weekday (I think it was Tuesday, but I’m not sure enough to state that for a fact), I suggested I would be working from home on the days of the protest. Very quickly I received a response (sent to the whole team) reminding me that the ability to work from home is a privilege, and that it is only permitted in exceptional circumstances.
Not wanting to really get into a discussion about this while getting ready to leave anyway, I acknowledged the fact, and instead took days off for the days of the protests. I thought it would end there, but instead on the Thursday at the weekly meeting, our skip-level turns up, for the first time in months, to talk about the work from home policy. At some point, he suggested that if I felt strongly in support of the protests, he’d welcome me to join them — only to be reminded by my tech lead that this wouldn’t be protected activity, and that I could be summarily dismissed due to bringing my employer in disrepute by joining. I want to believe my skip-level wasn’t aware of that, rather than trying to trap me into being fired.
That weekly meeting was, by the way, just an hour before I gave notice to Terrible Manager. And in that meeting another team member announced his departure. At the end, in the span of just over a month, and just within the reports of Terrible Manager, three people (including me) left the company, one person transferred out of SRE, and one more who was on a rotational program as a trial for an SRE role decided not to become an SRE after all.
Obviously, I can’t say that for sure all five people left due to Terrible Manager, but I can say that I did leave because of it, and I know that this is not what was said about my departure after I left, rather referencing the fact I got a promotion by moving — and that’s without going into the merit of how comes Facebook was happy to offer me a Senior Engineer position, which I’m doing fairly well in if I may say.
I did state that very clearly in my exit interview, which by the way was not conducted by Terrible Manager. Instead on my last day I was informed by another manager in my group that he’d be conducting that interview — which suited me well particularly as I did have a much better relationship with him. Though the whole exercise felt a bit pointless given that Terrible Manager still set up a last 1:1 just before my corp access was revoked.
What Did I Learn?
This experience was, to me personally, awful. I was under a significant amount of stress, which I kept bringing home with me, and caused worries for my girlfriend-then-wife. I am grateful to my network of friends and colleagues that supported me through the experience. The end result of this is that I have actually learnt a few lessons.
First of all, I learnt that even the managers that I previously complained about were not as bad as a manager can be, and still be employed. I at some point ranted to colleagues about a manager who left me unsupported during a promo cycle I didn’t intend to join, but that was a manager that cared about and respected me.
I learnt that sometimes a team with a good, exciting technical landscape does not pay off. There are people who can deal with bad managers much better than me, and be productive through it, and there are people who play the game better than me to make use of them.
I definitely learnt that the saying people join companies but leave managers is true.
I feel extremely privileged and lucky, with my current manager. He let me play by my strengths, while also challenging me to grow and improve myself. This is the main thing I was hoping to get when I requested the team change at the beginning of this story, and I have definitely got it.
This is not meant to suggest that either of these two managers are the only type of managers you would find at their respective companies, not least because people change companies all the time. But it is meant to tell you that if you start feeling like your manager is not respecting you, it might be a good idea to go ahead, and look around for someone who might be on your side and help you. It works, sometimes.