Careers: On Staying and Going

Five years into this industry (which is longer than I spent in my first career, itself a somewhat jarring realization), careers still confuse me. Titles and leveling seem arbitrary. People change jobs every two years, often because that’s the only way to get promotions and raises. We’re told we need to code on our evenings and weekends too if we want to get anywhere.

I care about my career, but I care about a lot of other things too. I value stability and a smaller number of deep relationships over a larger number of more superficial ones, two things that make the idea of changing jobs every two years daunting (I suspect that many people who do this find it daunting too, there are any number of factors at play in that decision, and circumstances that necessitate it).

I talked to some people I respect about this last year, and got a lot of really wonderful perspectives. That’s why I’m writing this. I still don’t have answers (I don’t think there are answers, there are only the choices we make with the information we have at the time), but I have my story and choices and the reasons behind them, and maybe those will help you, as other stories have helped me.

After 4.5 years, I’m leaving my first dev job. I almost left once before, a little over a year ago, but decided to stay that time. These are some of the things that went into both of those decisions.

  • At the end of 2019, after being in my role (first post-bootcamp dev job) for 3.5 years, I was feeling under-challenged and decided to look for new opportunities.
  • I got rejected from some jobs and also got some job offers. I got a little more jaded about tech.
  • I almost took one of the offers, but after an open conversation with leadership, decided to stay with the company, though changing teams and kicking off a new project.

Almost 1.5 years later (staying was worth it, hard to overestimate the learning during that time of getting to tech lead a project and team), the time has come: I’m starting a new role in the new year.

Before I changed careers into tech, I worked in education: immediately before going through a code bootcamp, I was working in a public high school. To say I knew nothing about VC-funded tech when I joined a startup is the understatement of a lifetime. During my first job hunt in 2016, immediately post-bootcamp, I didn’t know what to look out for or what questions to ask. This time I did.

There was a CEO who told me he’d started the company because all his friends were doing it and, “they weren’t any smarter than [he] was.”

There was a CTO who, when I turned down an offer because of ethical concerns about the product that didn’t surface until the final round of interviews, offered to remove the features I expressed concern about if I took the role (the red flags glowed all the brighter…)

A CTO who, when I asked him how I could be sure I would be safe working on his team of 15 engineers, 15 of whom were men, in an engineering-only office, paused to truly consider my question and said, “I can’t imagine how you wouldn’t be.” Someone doesn’t have a very good imagination.

It wasn’t all like that. There were some men I would have been willing to work for (they were, in fact, all men).

One of the roles for which I was offered a final interview, but withdrew from before completing, was for a data engineering role for a man, a team, with whom I think I would have loved to work. But I wasn’t sure I wanted to be a data engineer, and I would have been the first team member joining fully remote for an otherwise local team (this was 2019, pre-pandemic). It would also have been a substantial pay cut.

There was another offer which I very nearly accepted. It was a good offer, good company, good team. That’s about all I can say though — I think it would have been good but I don’t think it would have been great. Looking back at this with a year’s distance, I also know: I probably would have been laid off six months later when COVID hit. That’s the kind of thing you can’t know, of course.

And so: I talked to my manager. I was honest and told them I was thinking about leaving. If it was surprising, it shouldn’t have been. I’d been talking in regular one-on-ones about being under-challenged, but it wasn’t addressed. I wish it weren’t true, but that kind of conversation is clearly more effective with leverage (read: another job offer you’re actually willing to take).

Another thing I won’t pretend wasn’t a factor was the knowledge that if I stayed, I would be promoted to a senior role a couple months later — I’d known this before I started interviewing, but it was still a factor in the final decision: the offers I received weren’t for senior-level roles, and I knew it would be easier to continue to be acknowledged as a senior engineer moving forward if I already had the title. (This proved true in my most recent job search, though of course the benefit of an extra 1.5 years of experience effectively in a tech lead role can’t have hurt either: I interviewed into another senior-level role in 2020.)

Staying was a good decision. I got to design and implement a new system within our app, with a lot of leeway into making architectural decisions (and mistakes). I got to work closely with my CTO, who is an incredible engineer I’m pretty sure I learned multiple months-worth from each time we spent a couple hours in a room with a whiteboard hashing out design decisions. I eventually got to tech-lead a team implementing features within this system. I think other than my first year as an engineer, which will likely never be exceeded in terms of growth, that year was probably my highest-growth year to-date.

The decision to interview again in 2020 was a little less premeditated. Someone in my network mentioned her company was hiring. It was a company I was familiar with, but hadn’t considered looking into roles at, but was excited about the idea. I applied. Once they invited me to interview, I figured I might as well look around a bit more to see what was out there, and submitted a couple more applications, though very selectively.

It’s never quite that simple, of course. It might feel like a whim, but whims are borne of circumstance. I was still pretty hyper-aware that I couldn’t stay in my first dev job forever, though “how long is too long?” is still not a question I can answer. I was the longest-tenured IC (individual contributor) on the team, and the demands for my attention came from all directions: I was tired. (I don’t know how long it’s going to take me to not be tired anymore).

Numbers definitely don’t tell the whole story, but I do think it’s important to share these. The first engineering job is far and away the hardest one to get, but that doesn’t mean it’s painless from there.

There were 7 roles I made it into some round of interviews for (I didn’t track how many I applied for). Of those I:

  • Was rejected from 1 after a final on-site interview
  • Was rejected from 1 before a final on-site interview
  • Withdrew from 2 processes partway through
  • Received 3 offers

I was more discriminating the second time around (more jaded about tech and capitalism). I submitted four applications and interviewed with two companies:

  • Was rejected from two companies without any interviews
  • Withdrew from one after being invited to the final round of interviews, because I accepted an offer from the other
  • Received (and accepted 🎉) one offer

One of my life philosophies (thank you, mom) is to keep my options open. If I were giving advice to someone else, that would probably translate into a recommendation to always follow through with interviews, even if you don’t think you want the job.

  • It’s good practice
  • You get data on the leveling and salary that other companies are willing to offer
  • You never know, you might not think you want the job, but you actually do!

But this isn’t always practical in reality. You have to take time off work or away from your family. Tech interviews are grueling and often demeaning. That’s what it came down to for me — I had (always have…don’t we all?) limited emotional energy and decided not to spend it on opportunities I was pretty sure I wasn’t going to take. So I closed some doors early. I don’t regret it, but it may or may not be the right choice for you.

I’m not sure what the key take-always are here. Despite the fact that a big part of the reason I’m moving on now is just the length of tenure at my first dev job and the feeling that it’s time for me to learn from a new team, new problem space, new tech stack, I still feel strongly that something someone told me a while ago holds true: “stay as long as you’re learning, happy, and paid appropriately.”

The first job-hunt is by far the hardest, but it’s still not perfect from there: you will still get rejected from roles you know you could succeed at. The process itself is grueling. There will be companies and teams that months later you’ll think of out of the blue and be so grateful you don’t work there.

We work with computers and talk about “the tech industry,” but humans actually are still at the core of it. People are why I stayed at my first job as long as I did, and why I didn’t take others, and ultimately a large part of why I accepted the role I did this time around.

Everyone’s career and what they need from it is different. What worked for me might not work for you, but I hope you find what works for you 💙