this post was submitted on 26 Jun 2023
19 points (100.0% liked)

Engineering Managers

445 readers
1 users here now

Discussion, rants, questions, and more about engineering management.

Resources:

founded 1 year ago
MODERATORS
 

A few months ago, I lost my job as an engineering manager. I was officially told that I was being let go because my team didn’t think I gave good enough feedback and because they didn’t think I had enough technical understanding of the team’s work. Ironically, I got no feedback on this until the day I was being let go, and my performance review from 6 months before had mostly positive. I have told myself that most of the real reason that I was let go was probably the company trying to save money. There was a general push within the company to raise expectations and to not let good enough be good enough, and two engineering teams (neither mine) had recently been combined, leaving an extra manager. But, my confidence still took a big hit, because I’d been under the impression that my team thought well of me and my management. I got mixed messages on the way out the door with my own manager harping on all my shortcomings and my team telling me how much I'd helped them.

In my job search, I could have afforded to take time finding a new job. But, I threw myself into doing it quickly, both to eliminate the uncertainty and to prove to myself that I wasn’t useless. That was probably a mistake. After two months of searching, I got an offer and decided to take it. I wasn’t super excited about the company. The hiring process felt impersonal. But, the recruiter said they were excited about me, the pay was good, and I wanted to be done looking.

A brief history on me: I spent 16 years as an individual contributor. I started out in full stack web dev, moved to iOS dev for a few years, and moved back to web dev for a few years before moving to management. I've never had much interest in designing large systems or introducing new technologies. I like to build stuff and solve problems, and I care less than some engineers about how elegantly it's built. Before moving to management, I held scrum master roles on teams, but never tech lead roles. Shortly before moving to management, I got a promotion to staff engineer, but that was mostly in recognition of my non-technical leadership work. I was told I couldn't be a manager at that company because I wasn't technical enough. I've been a manager for 3 years total. My first management job was leading a team of front end engineers, my second (the one I lost) was leading a team of full stack engineers with a strong focus on the front end.

It's probably worth noting that I am female, and I have heard a few times that I am not technically strong enough to do certain things. Despite believing that I'm smart and good at understanding complex topics, I believe I internalized the idea that others are better at me at architecture without seeing potential bias behind it. But, at this point, I don't know what I'm unskilled at from lack of exposure and genuine lack of interest and what I'm unskilled at out of fear of being bad at something.

My current company does a lot of backend work and uses a serverless architecture. I have a decent understanding of backend, but I've never worked at a place with a serverless architecture and I barely understand the term. In the hiring process, there was a screen that consisted of multiple choice questions about AWS, which I don't really know. I felt like I was taking a test in a foreign language. But, when I later told the recruiter that I found that section tough, the recruiter told me that I got a top score. There was also a system design question that I think I did well with simply because I've studied system design questions. I've never actually designed systems a distributed system. All of this makes me think I may have interviewed well above my actual abilities. I've always been very good at taking tests. I recently saw a hiring panel where people chose to reject an engineering manager candidate because they're technical skills weren't strong enough. Someone made the comment that they wanted all of their engineers to be capable of acting as staff level engineers. I don't think I'm at that level.

To make matters worth, there's a lot of pressure on my technical leadership skills right now. I have a team that does a lot of manual work to make up for the fact that the systems it supports were never fully built out. Before I joined, the team had 4 people, but two had been lent to other teams for other projects. So, it was essentially 2 engineers, and one of those was beyond burnt out. One of the engineers who was supposed to rejoin the team was fired right after I started because he was stubborn and hard to work with. The other engineer was brought back to the team at that point. But, when the burnt out guy quit a couple weeks later, I was back down to 2 engineers. The two remaining engineers are a junior engineer who has been at the company (and in the working world) for about a year and a senior engineer who has been at the company for less than 6 months. We clearly need to build systems to replace the manual work, and people are looking to me to start planning what those systems are going to look like. But, I've been here for about a month, and I don't think I have the skills or the context to do that.

I have tried asking if I can get an engineer from another team. But, everyone is stretched thin. We're getting some help from a principal engineer, but it's only temporary, and he's on vacation. We're hiring for my team, and there are two offers out to senior engineers. But, it's going to take some time to onboard them. I've also yet to meet them, because that's not how our hiring process works. I have seen the interview notes, and they're positive. But, I'm uneasy about not knowing these people.

I don't think anyone would blame me if I just quit. But, I don't really want to go back to job searching right now. I also wonder if this might be a chance to build skills I've been lacking.

But, I really worry about doing a terrible job of it and getting fired. I've seen two people fired in my first month. One was the aforementioned engineer. In the brief time I knew him, I saw enough to think letting him go might have been a good decision. But, I am fairly certain the firing took him by surprise, and I don't know if that was his arrogance or poor communication from his previous management. I also saw someone in product who'd been supporting my team let go. I didn't know the person well, but all of my interactions with them were positive and they seemed like a good ally. I have no idea why they were let go, and I worry that the things I saw them doing that seemed positive were things others thought were a problem.

One of the interview questions the company asks managers is about handling a very productive, but toxic engineer who refuses to change. I've seen the rubric, and the only acceptable answer is to let him go. I wouldn't be here had I not expressed a willingness to let go of someone who was being toxic. But, it leaves me wondering if this is a company that is a little too trigger happy. The rubric doesn't cover whether or not a manager can judge if someone is really a problem or give them feedback to help them improve. My manager hasn't given me feedback, good or bad. I could be next and not know it yet. I know I should probably ask my manager for feedback, but I'm afraid that if I have a frank conversation with him, I'll let on how unprepared I feel and get myself fired sooner rather than later.

I'm having a hard time caring about this job and summoning the motivation to try to do what I need to help turn things around. Do I need to just get back out there and find something else, or do I need to find the motivation to lean in and give it my best shot? Any other suggestions?

you are viewing a single comment's thread
view the rest of the comments
[–] nibblebit 3 points 1 year ago (1 children)

I totally understand. It sounds like you've been put in a frightening spot. These transitions really hard enough to do for established managers that have worked at a company for a while, let alone for a fresh hire. It sounds to me like you are doing all the right things: putting tasks into systems and managing expectations.

A growing organization is used to moving fast and when you reach a certain size, you start spinning wheels. Very rarely do companies stay ahead of the curve and setup systems before they hit that wall. You are in the unfortunate position of having to slam the breaks.

Often a company needs an outsider influence to be able to do that. The old guard is used to going fast and haven't developed the tools to go far yet. To me, it sounds like you are doing exactly that. Accept that there will be friction. The new company will work for different personalities. The people that take you from 5-50 are going to be completely different that take you from 50-500. You will lose people in this transition and all you can do is keep a steady course and communicate realistic expectations to stakeholders.

Something that helped me a ton during a turbulent time was implementing patrols. Now, I was lucky to be granted a lot of freedom to implement process changes. But it did really help us to minimize all the small tasks and distractions that kept coming up. Regardless of what tools you use, those little in-betweeners are by far the cause of most overhead. They never really take less than an hour to complete and they are constantly taking an engineer out of the working memory for a complicated task. Also, people love doing them, because you get a small accomplishment every few hours. It's much more difficult to sit with a long project for weeks without much progress, but it's easy to pickup low-hanging fruit. You're doing well to eliminate those.

When it comes to a billion client requests, a bit of requirement engineering goes a long way. Go through the requests and try to understand the root of the problem they are trying to solve. Propose a projects around solving that problem and eliminate all the chatter while your team can focus. If the requirements for that project change too much, then that means the chatter is even more wasteful and needs to be eliminated. A smart business will recognize this.

As for expectations. Yeah, it sounds like it's up to you te set expectations for you and your team. Stakeholders don't have preset expectations and often look at you to set the standard. You want to bring clarity to the table. You want to have the difficult conversation about responsibility and accountability. Again, none of that has much to do with databases and virtual machines.

[–] ph4ntorn 3 points 1 year ago (1 children)

Ooh, patrols look like an interesting idea. I'll have to keep that approach in mind. There are some expectations that my team use sprints in the sense that I need to report on what we've accomplished every 2 weeks and what we're planning to do in the next 2 weeks on a regular cadence. But, until someone tells me different, I'm assuming that I can run things however I like so long as I keep up the reporting.

I appreciate all the ideas in general, it gives me a lot to think on and provides a reminder that there are plenty of things that I can work on improving that have nothing to do with the tech specifics like databases and such.

But, I've got to admit that I'm still worried about missing technical details. When he was letting me go, my last manager recalled every time my team had failed to consider a non-functional technical requirement and put the blame for that on me. When those things had been missed, I had taken ownership and resolved to make checklists that would catch similar things in the future, and I had thought that was as much as I could do. All I ask of software engineers on my team is that they do their best and work to avoid making the same mistakes twice. But, I'm learning that even if a company hires me for espousing that view, that doesn't mean they'll treat me the same way. I worry that managers are expected to do something more and that I'm just not cut out for that.

[–] nibblebit 1 points 1 year ago

It sounds like you are already doing a great job and taking the right steps. The challenges you are facing aren't uncommon.

When it comes to non-functionals (response times, scaling, security, cost, update speed), you need to quantify them. Bring the stakeholders and your team together and set standards. If stakeholders have unrealistic requirements, this gives the team a chance to negotiate. If your team repeatedly fails to meet the standards they agreed upon, you have a more difficult conversation.

As an engineering manager, your job shouldn't be to know everything and predict the future. Your job is to use your technical intuition to create clarity and keep people accountable. Manage expectations and filter out the bunk between business and technology.

I hope you are doing well, it sounds like you are in a tough spot, but you can recognize it :) It's important to remember that it's possible your employer has unrealistic expectations of your role. Then you should talk to them about it. Expectations can be managed. If that is also not possible, it's okay to look for a better place. We don't have the time on this earth to take the heat for things we can't control.