Books for software engineers and managers
You have just enough confidence to know what you want. Well, what you think you want. What you think you want right now. What you think you want right now, at this point in your life and in your career.
Or maybe you just know what you’re running away from – that thing that wakes you up at 3am with anxiety.
Of course, none of this is related to what you need. In that gap you find the pitfalls.
I will help you navigate around the pitfalls of finding your third job in software. The right job.
Most recruiters ask you what you’re looking for in a new role. That’s a boring question that elicits boring answers.
The easiest way to understand what you want is to write a list of what you don’t want – the stuff you’re running away from – then reverse each phrase. Here’s how it looks on paper:
Initial thought | Reversed |
My manager can’t teach me anything. His technical skills are 15 years outdated and when he does write code the quality is poor. | I want a manager with technical skills – someone I feel confident learning from. |
I’m exhausted. I feel like I’m constantly working. Nights, weekends, it’s non-stop. | I want coworkers with activities outside of work and a manager that encourages me to get offline. |
I’m kind of bored. I feel like I’m building the same thing over and over. | I want a problem I can really sink my teeth into. Something with variety that challenges me to learn new skills and be creative. |
If you don’t figure out in advance what you want (and don’t!) you’ll probably get stuck with the same problems you have today, only at a different company. Then you’ll face a new problem – do you switch jobs again?
As a hiring manager, I see resumes a lot of engineering resumes like this:
All good. In your first two roles, I expect you to last between one and two years. You’re experiencing rapid growth and like a puppy, everything looks exciting. Then job three comes around:
Now there’s a pattern. Alarm bells go off in the heads of recruiters and hiring managers. You need to explain yourself. You’re not actually a job hopper. You really want a great work environment. That third place just wasn’t a good fit. You’re on defense.
The best time to fix this problem is before you start looking for job three. Your third job needs durability and staying power. Anticipate spending +3 years in your third job.
Knowing that you want to spend more time in job three, you need to be more intentional about your decision. Let’s talk about what to look for.
Interviewing for your first couple jobs, it probably didn’t occur to you to ask who your manager would be? What is their background? What do they value?
Having a couple years experience, you understand a little better how your manager impacts your life. But you still don’t really understand. I want to share with you the framework I use for assessing engineers during interviews because it’s the same framework I would use to understand my own manager. It comes from the book First, Break All the Rules.
Talent is a recurring pattern of thought, feeling, or behavior that can be productively applied
Think about your previous managers and ask what talents did they have according to this definition? What areas did they repeatedly talk about or demonstrate interest in? I’ll give you two examples.
My first engineering manager was a database nerd. He regularly talked about performance, scalability, SQL Server functionality he wanted to show me. He was organized and anal retentive, but in a friendly way that encouraged you to follow suit. Genuinely a great person that wanted the best for you and was willing to bring you along. His talents were in database systems, solving business problems, and motivating his team.
My second engineering manager was a hot mess. He was super organized too, but struggled to productively apply that skill. Instead, he had me write daily action plans breaking down my work into 10 minute increments. As though engineering is that predictable lol. His recurring patterns of thought were anxiety, distrust, and control. Those are difficult thoughts to productively apply and I only lasted 9 months at that company.
As a job applicant, you have numerous ways to learn about your manager. Although most engineers don’t know how. So here’s how:
In your third engineering job, expectations for you shift. You are still responsible for individual contributions – writing code in high volume, fixing bugs, and implementing new features. That job doesn’t go away. But now you’re expected to apply that production to both production work and background work – working on high leverage tools like writing reusable components and breaking down technical debt. That’s the easy part because you already have the skills, you’re just applying them at a slightly more strategic level.
Your third job will come with other expectations though, ones you aren’t fully prepared for. Technical project planning, risk mitigation, early estimation, elevating standards, increasing business impact, and growing your sphere of influence. These growth areas mostly exist outside of code. They can be frustrating to learn because unlike a computer, people don’t just listen to commands.
The farther you advance in your career, the more problems require finesse and patience. To learn these third job skills you need a good coach – that’s where your prospective manager comes in. When you interview with your prospective manager, listen for their plan to grow your higher level skills.
I’m not talking about a promotion plan. I’m talking about a growth plan. Don’t confuse the two. Your manager will play an important role in both, but growth is a prerequisite to promotion.
Your growth is their job too. If they don’t mention a plan, ask them directly. Take notes about what they said. Did they mention business impact? Technical planning? Cultivating leaders? You want to walk out of that interview feeling like you could learn a lot from that person.
If your third job looks just like your second job, you’ve made a mistake. Make sure your prospective manager has a plan for your growth.
Going into your third job, acknowledge a few things about yourself:
You’re in the final round of interviews – time to meet your potential future coworkers. In addition to asking about their manager, you want to ask about the work culture. You’re looking for red flags:
You: “So what do you all do for fun – outside of work?”
Engineer: “Well… go out with friends, usual stuff.”
You: “Play any sports or music? I like to run and hit the gym a few times a week.”
Engineer: “I don’t know. We work a lot, so when I come home I just like to chill.”
Those are bad answers.
You’re going to be in this job for a while. You don’t want to find yourself in a surprise sweat shop. Of course, you can also be more direct:
“When was the last time you worked on Saturday or Sunday?”
Asking about weekends will surface both formal expectations like on-call duty and informal expectations like email response times. Bad answers sound like this:
Better answers sound like this:
Beyond words, listen to their voices and ask yourself if they’re just repeating cliche lines or actually mean it.
As an engineering manager, here’s how I look at technology on your resume:
Ok, she’s worked in Rails. We don’t work in Rails, but our problems are interesting and I’m just looking for good software engineers. Let’s interview her.
Ah, he’s a Rails developer. I’m probably wasting my time trying to convince them to work in another environment. Or they’ll be wasting their time convincing me to change our entire backend. Pass. Without your knowledge or consent, you’ve been pigeonholed and it happens everyday to software engineers.
Job three is an opportunity to change your core language or framework. Avoid being pigeonholed by recruiters and hiring managers. Here’s what your resume could look like:
That’s what a versatile engineer looks like. Someone with a hammer and a screwdriver. Someone who can learn. Someone with the guts to grow.
In order to grow, you need to make yourself uncomfortable. Imagine someone trying sushi for the first time. Most people are scared. Raw fish?! Well, turns out sushi is delicious. But even if you hate it, you’re proud of yourself for trying something beyond chicken fingers and tacos.