Books for software engineers and managers

Back to Articles

Your Third Job in  Software

by Brian

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.

Your first three jobs

Of course, none of this is related to what you need. In that gap you find the pitfalls.

  • 1st job = Hardest to land
  • 2nd job = Easiest to land
  • 3rd job = Most pitfalls

I will help you navigate around the pitfalls of finding your third job in software. The right job.

What should be different?

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?

Avoid looking like a job hopper

As a hiring manager, I see resumes a lot of engineering resumes like this:

  • June 2017 – September 2018: Company A (one year)
  • September 2018 – May 2020: Company B (1.5 years)

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:

  • June 2017 – September 2018: Company A (one year)
  • September 2018 – May 2020: Company B (1.5 years)
  • May 2020 – November 2021: Company C (1.5 years)

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.

Correcting the pattern

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.

Who is going to manage you?

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.

Investigate the hiring manager

As a job applicant, you have numerous ways to learn about your manager. Although most engineers don’t know how. So here’s how:

  • Job ad
    Look beyond the technologies listed and identify themes. Does the ad talk about code quality, collaboration, learning, growth? Especially at small to midsize companies, the job ad is a reflection of the hiring manager’s personal values – the ones you will work under and be expected to uphold.
  • Phone screen with HR
    Ask the HR person about the manager. Tell me about them. What are they like? What’s important to them? Are they introverted, extroverted, technical, people focused?
  • Interview with manager
    Ask the manager directly – what’s important to you? What’s the vision for this team? What is this team good at? (Hint: this is a clever way of asking what the manager values about her team).
  • Interviews with other engineers
    Tell me about working under this manager. What are the 1:1s like – casual or formal, regular or infrequent? What’s your manager’s vision for the team? (Hint: you’re finding out if the manager and their team are aligned). Tell me about something new your learned in the past six months – a technology, pattern, or skill you’ve acquired. Your goal is to break through the wall of generic, canned answers and get to something real where you can really learn about your prospective manager.

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.

Expectations in your third job

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.

Team culture and its effect on your life

Going into your third job, acknowledge a few things about yourself:

  1. You are expected to be here for a few years, both from the company’s perspective and by potential future employers. This stability might be a welcome change.
  2. The person you are today probably won’t be the person you are three years from now. That’s a good – a sign that you’re growing. Of course, you don’t want to prematurely optimize for an unknowable future self. But here’s a safe bet – you will probably mature and gain perspective on life. You’ll want to spend more time with friends and family. You will start to feel the effects of regularly working nights and weekends. Work may not be your number one priority.

Red flags for your third job

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.

Good signals sound like this

  • “Haha, yeah. I play beer league softball. It’s kind of dumb but really fun.”
  • “Oh man, my kids take up all my personal time.” This is a good one to follow up on by asking if they take their kids to school or pick them up. You can get a sense for how flexible and supportive of families the work environment is.
  • “Actually, I just got back from Europe. It’s really nice to get off the grid. I do my best to not check email.” Anytime someone mentions travel is a good opportunity to see how disconnected they can get. It’s both an indicator of culture and of engineering systems – can other engineers do the job or is there a big dependency on specific people?

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:

  • “Umm, I mean it’s not too bad. We’re a startup though so it’s kind of a 24/7 job.”

Better answers sound like this:

  • “Well, we each have on-call once a month. But other than that we don’t work weekends.”
  • “Only if things blow up. I usually check my email once or twice and that’s about it.”
  • “Sometimes I’ll poke around on Sunday night, but nobody expects it.”

Beyond words, listen to their voices and ask yourself if they’re just repeating cliche lines or actually mean it.

Avoid pigeon holes

As an engineering manager, here’s how I look at technology on your resume:

  • 1st job = Rails
  • 2nd job = Rails

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.

  • 1st job = Rails
  • 2nd job = Rails
  • 3rd job = Rails

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.

Explore new tech in job three

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:

  • 1st job = Rails
  • 2nd job = Rails
  • 3rd job = C#

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.

Your Third Job in Software