Learning the hard way: How I went from junior to mid-level engineer… in eight years
Six mistakes that stymied my growth
I recognise this article does not have the most flattering of titles. I could have written a more self-aggrandising title and proceeded to lecture you with a series of lessons on how I navigated the engineering world perfectly. But this would be disingenuous of me, for I do not present you with the secret to guaranteed engineering success. The truth is, throughout my eight years in the software industry, I have perpetually failed to grow optimally as an engineer. I have committed a series of mistakes over the years that I believe have cost me years of growth.
I present you with what I believe to be my top six mistakes over nearly a decade in the industry. Successes have their place, and we can discuss them in future publications. But I find failures to be far more interesting. I hope that in sharing my mistakes with you today, you may avoid these in your own life. Perhaps you’re already committing some of these mistakes; rest assured, it’s not too late to correct course.
Let’s dive in.
Mistake #1: Not moving on when you should
Over the past eight years, I have worked at four software companies. My longest tenure at any of these was four-and-a-half years. We’ll call this company Company #2, as it was my second employer.
This organisation had a headcount of roughly twenty-five employees when I joined, about sixty per cent of which were in engineering. At this point in my career, I had a mere year’s worth of experience under my belt. But, whilst I was green, I was able to use this company to grow both my experience and knowledge relatively quickly.
The problem was I got comfortable working at the company. For the first three years, I was growing my technical foundations—and growing them fast. This is one benefit to joining a small startup where everything is on fire ninety per cent of the time: you improve quickly. After the three-year mark, I got overly comfortable with my position. The idea of moving on, updating my CV, and doing interviews—which I hate—wasn’t of interest. In fact, the only reason I eventually left that company was the result of being head-hunted; I had to expend minimal effort to make the move. Apathy had set in. I had also bought into the company’s BS on the value of their shares—more on that later.
Lesson learnt: I should have moved on from this company earlier.
There’s nothing wrong with staying at a company for many years if your value continues to increase, but when you notice this is no longer the case, that’s when alarm bells should start ringing. It’s a reality that the most effective way to increase our value as engineers is often by going to the market. Whether that’s acquiring a better offer and using that as a bargaining tool with your existing employer or leaving your current firm to join another, there will likely come a point where your current employer is undervaluing you.
Being undervalued is one thing, but being undervalued and offered just enough of a raise each year to keep you hooked is a crucial reason I loitered at Company #2. This blind acceptance of annual pay increases is a mistake in its own right 👇.
Mistake #2: Being content with each pay increase
Before I break down this mistake, I want to recognise I have been extremely fortunate throughout my career. From 2015—when I began working in the software industry—to today, I have received a pay increase every year. I do not take this for granted and would never want to be considered ungrateful. That said, whilst it’s healthy to acknowledge what we have, we also have the right to pursue more significant gains. If we constantly play the someone has it worse than me card, then we risk stagnation. Call it greed, or call it ambition: our desire to attain more is what moves us upwards.
Being a recipient of a yearly pay increase, whilst pleasant, contained within an insidious temptation: sufficiency. Each pay increase was always just enough to keep my interests piqued. This was a slow killer. My gratitude for these incremental increases distracted me from discovering how much I was worth to the market. Credit to my employer: they got my services at a generous discount, and I was none the wiser for many years. My annual reviews would have had a different outcome if I had been cognisant of my value.
Lesson learnt: I should have established my value sooner.
My error here was twofold: the value I gave myself was far too low, and I went into my annual reviews without any strategy. It turns out that not only was my employer undervaluing me, but I was undervaluing myself! If I don’t recognise my value, how could I expect anyone else to? That, coupled with a lack of negotiation strategy going into the meeting, was a recipe for maintaining the status quo of slow growth.
This mistake was partly fueled by a separate poor decision I was making: refusing to discuss salaries.
Mistake #3: Refusing to talk about salaries
I used to find the discussion of salaries extremely uncomfortable. So much so that I was never interested if a colleague tried to broach the subject with me. If I analyse why I had this aversion to the conversation, my younger self would claim that he didn’t want to discuss salaries with colleagues because the subject was private. In reality, however, he didn’t like to discuss salaries because he was afraid he’d discover he was being paid less than his colleagues.
Lesson learnt: I should have engaged if a colleague I trusted was willing to talk salaries—and I was interested in increasing my own.
Salaries are a private matter, but there’s a reason why sites like Glassdoor exist: seeing what others in similar positions to us are being compensated is one of our primary methods for sizing ourselves up against each other. If my only insight into my value is what my manager tells me in my annual review, then, of course, I will find myself being underpaid. As employees, we have access to a localised version of Glassdoor daily: our colleagues. If you want to know if you’re undervalued, be open to discussing your salary—you’ll find the answer pretty damn quick.
Mistake #4: Feeling guilty for wanting to resign
This mistake is not as detrimental as the others, but it demonstrates my inability to prioritise growth. Of the three times in my career when I offered my resignation, two were emotionally painful. In one case, I had been with the company for four-and-a-half years; in the other, I felt I was leaving others in the lurch. Of course, leaving a company you have grown attached to can be sad, but feeling guilty about leaving doesn’t help matters. This is the reality of employment: people come and go. Sure, in my experience working for smaller companies, a resignation can be impactful, but the company quickly moves on. It’s an unnecessary expenditure of emotion to feel sorry for a company to which you have bid farewell—it’s the nature of the business.
Lesson learnt: I needn’t have felt guilty for leaving a company. I was doing what I needed to do.
Mistake #5: Staying for the promise of options
I wrote a whole article on the danger of being enticed to remain at a firm for the potential future in which your options are realised. I am certainly guilty of this. I was offered options about a year into my time at Company #2. The problem was I knew nothing about options, but worse, I just assumed that one day, the company I chose to work for would become one of those coveted unicorns, seeing me walk away with untold sums of money.
In reality, the probability that I was working for a company that would someday be worth enough to be acquired or successfully IPO, that this event would happen within ten years, and that I wouldn’t get cut before any such event to make the firm leaner was improbable. But in my mid-twenties, I was naive and thought I was on such a train.
Lesson learnt: I should have prioritised career growth over the unlikely scenario of a company I had not founded one day being acquired.
To make the offer of options even more enticing, Company #2 did not allow your options to vest. The moment you left the company, your options were gone. Once I eventually realised that these options were monopoly money, I could reject this carrot.
Mistake #6: I didn’t know what I wanted
The final mistake I’ll share underpins the previous five. When I think back to the years I was undervalued, I only have myself to blame. My lack of vision for my future ensured I could avoid holding myself accountable for not growing optimally. If you don’t set a goal, you’ll never fail to achieve it. I was content with progressing as an engineer, learning new skills and just “improving”, but I never defined what success for me looked like because I didn’t know what it looked like.
When I was offered the opportunity to leave Company #2 and join Company #3, I had the privilege of hiring a junior engineer into my team, of which I was then the only member. I got immense satisfaction from holding the mentor role, but was this what I wanted? After eighteen months of being in the job, I defined what I wanted for the first time in my career. And it turned out that whilst I enjoyed the mentor role, it wasn’t a primary desire. My primary desires were to leave the startup world, join the enterprise world, and make more money. I even picked a number for my preferred salary. One month later, I was offered such a job, which is the job I’m in today. There’s nothing objectively right or wrong about these goals, but they were defined, and so success—or failure—of achieving these goals could be measured.
Lesson learnt: I should have defined my aspirations with greater detail earlier in my career.
Wrapping up
I don’t imagine for a moment that my entire career consisted of just six mistakes that inhibited my development, but these are the ones that come to mind when I reflect. Mistakes happen, but one thing is worse than a mistake: a mistake from which we learn nothing. As I’ve hopefully demonstrated in this article, each error presented an opportunity to rectify the situation. These realisations during my career have led me to correct course and prioritise my development as an engineer.
If you’ve made it this far into the article, I am grateful for the time you have spent. Let me know below if any of these mistakes resonate with you, if I was off the mark on some of the points, or if you have your own mistakes you’d like to share.
Until next time.
Onwards 🚀
Zak
If you’re new to this newsletter, my name is Zak, and I’m on a mission to discover what makes a high-value engineer. Perhaps you might consider subscribing to this newsletter if you haven’t already. I release an article every Tuesday, and I aim to increase my content output in the future. Your subscription is a sign of your support and is greatly appreciated. Thank you.