My career is no better (or worse) than yours
Our unique experiences are our strengths

This is a topic I've been thinking about for a while - I was going to do a talk about it in my last role, but it had to be rescheduled due to illness and when the time came to book it in again, I was leaving and had lost the motivation to do it.
Everyone's career is unique and different and that is a Good Thing. I often meet bootcampers who feel an enormous amount of impostor syndrome when comparing themselves against Computer Science graduates who have taken the more "traditional" route. Those feelings are, of course, completely valid (all feelings are!), but personally I would say "nonsense" to that. Bootcampers are some of the best teammates I've had the pleasure of working with and just because someone had their start later in life or didn't do a degree in computing, doesn't mean they aren't just as competent.
This post gets slightly self indulgent from here because I wanted to show that just because someone has a degree in Computer Science (like me), it doesn't mean their journey was a smooth one - I think of my career as a very winding path. I'm fairly happy with the way things are now, but I have definitely experienced impostor syndrome and some shame around the amount of time it has taken me to get here. Ageism is rife in our industry and I do often worry about that, but this post is a middle finger to that, because again, everyone brings their unique experiences to the job and having decades of on the job experience should be celebrated rather than punished.
Anyway, let's begin... Here's the winding path I took to get where I am today.
I did Computer Science at University by sheer accident. I’d built a website as a teenager and I enjoyed it, I’d even dabbled in a bit of BASIC after finding a book about it in the local library and I figured “why not?” because I had no idea what else to do - turns out eighteen years old is way too young to decide what to do with the rest of your life. I had no idea Software Engineering was supposed to be a good career choice (though something should have tipped me off because my dad was super keen), I just thought it was fun.
After I graduated, I really struggled to find my first proper programming job and ended up doing a lot of temping - photocopying, making cups of tea, filing, data entry, that sort of stuff. I graduated at a time when there were very few software engineering jobs around and, much like now, an entry level job required you have three years on the job experience. I had rent to pay, so I wasn’t going to hang around waiting for that perfect job to come around. In the end, it took me two years to find that elusive first role.
And as it turns out, it was rubbish. I was extremely grateful to have a programming job, don’t get me wrong, but I encountered some of the worst sexism and misogyny there and I didn’t even end up writing any code! I was heartbroken, but in the end, I had to cut and run after a few months because the toll on my mental health was just too much. Back to temping I went. I got extremely lucky and a temping job for a web developer opened up on the campus of my old university - I was still living in the area so it was absolutely perfect.
I loved that first job (I actually count this as my first proper programming job - that other one was just a trial run) - it was an extremely small public sector organisation so there were only five or six of us and I was the only developer. It meant I had all the freedom in the world and I revelled in it. I got to build a website in Python, which was a language I hadn’t used before and I built some pretty cool tools for the team too - an annual leave calendar, an events management system - you name it, I built it. I couldn’t believe that I could get paid to do something that I enjoyed so much!
The temp job eventually turned into a permanent role and I only moved on because I moved further away and the commute became too much. I took another public sector job - this time in a college - and learned some PHP this time. I went for the interview after thinking to myself “how hard can it be?” I hadn’t written any PHP at that point - the benefit of beginner’s mind, I’m not sure I’d be so brazen now! I impressed the interviewing panel by writing my code in Notepad (this is absolutely hilarious now!) and I somehow got the job.
Yet again, I was a team of one - while this was wonderful in some ways, I can really see how it hampered my career in others now that I’m older and have worked at larger companies. There was no support network - no one else knew how to do what I did, so there was no peer review and there were no quality checks. My work could have been utter garbage and nobody would have known, least of all me.
I only stayed in this job for about a year, because I had a genius (or slightly harebrained) idea - I was going to do consultancy work. I’d done some part-time work to earn some extra money and saw an opportunity to take this further. I ended up working for the last two companies I’d worked for because I had a good relationship with them and got a bit more work on the side. It was all going swimmingly… Until we had a financial crisis and all my work started drying up.
One of the companies I was consulting for offered me a permanent position and I took it. It was a stable job with decent pay and we got yearly bonuses too, what’s not to like? I always say to folks “everyone should join a startup at some point, ideally when you’re young” and that is what I had done. It’s hard, gruelling but kind of satisfying work and you will learn so many skills - not just programming either. I ran the company’s email and file server for the best part of five years for example. Oh and I fixed people’s laptops because we didn’t have anyone else to do that stuff. I hasten to add that I had no idea how to do any of that stuff - I did a lot of frantic Googling during my time there.
In terms of code, we went from ActionScript (the programming language that used to come with Flash of all things), Mochikit, jQuery, we tried to build our own framework for a bit, then we found Angular and immediately switched to that out of sheer relief, then found React. On top of that I did some more Python and PHP too and built the company’s Knowledge Base using Drupal. It was an interesting mix of stuff, but it was a lot.
In hindsight, I should have moved on sooner than I did, because I ended up staying in one place for ten years. I got stuck in a bit of a rut and I was afraid that with my mixed bag of skills - I was very much a jack of all trades, master of none - I would never find a good programming job. Of course, I was wrong. I decided to focus on the front end because that’s what the majority of my role had amounted to in the end and finally took the big scary plunge into the unknown of a job writing React code. It was technically a step down, but that’s just what I needed at the time, because my confidence was at an all time low and I didn’t know what to expect from a non-startup world.
This was my first “proper” programming job. We had PR reviews! We had standups and refinements and all of that Agile stuff. We even had some test coverage in our repo - before this I’d only ever written tests if the code was so complex that I couldn't really avoid it. Whereas my previous role gave me breadth, this one gave me depth. I found that I loved working in a proper software engineering team and even though the PR reviews were tough at first (ouch, my ego!), I learned so so much from my colleagues.
I quickly found that I wanted to progress up the ladder and the opportunities just weren’t available for me, so I got a new job as a Senior Software Engineer - the first time I’d had the word “engineer” in my title and I’ve got to be honest, I thought it was the best thing ever! No more “web developer” for me. I loved being a Senior Engineer at this place - it was even more of the software engineering team stuff that I loved, but we also had mentoring and Community of Practices and random workshops on networking in AWS.
I had a voracious appetite for learning in this role - I just wanted to learn, learn, learn and learn some more. So I did. I did my AWS certifications, I learned all about infrastructure as code and Next.js and performance and who knows what else. I also got really involved in the community side of the job - I ran the front end Community of Practice with my teammate (hey Matt!), I helped run the mentorship scheme, I set up lean coffee chats so people could get to know each other, given we worked remotely and it went on and on.
All that work eventually landed me a promotion to Staff Engineer and I was super proud of that. It took me twenty years though, so it definitely wasn't a quick and easy journey. But I’d put in a lot of effort and it had finally paid off! Getting a job as a Staff Engineer is tough - there are very few open roles and getting promoted internally is generally even harder. The silly thing is, I didn’t adjust my own expectations. I was still doing all the community stuff and all the learning and all the everything, on top of the changing workload of my day-to-day, which was shifting, quite understandably.
I've already written a whole post about what happened next - I ended up taking a step down because it was all far too much for me. While there were aspects of being a Staff Engineer that I loved, Senior Engineer feels like the sweet spot to me for now - I get to tackle challenging problems without having to spin ten different plates and feeling like I'm never quite going to manage it.
So yes, all this to say that if your career has been a smooth upwards trajectory from Junior to Staff, fair play, but most people's careers don't actually look like that, even when they do come from more traditional backgrounds, and there is absolutely no shame in that. Your experiences make you uniquely capable of doing your job - I often feel like the tough start in my career has given me a resilience that I perhaps wouldn't have had otherwise and working at a startup has uniquely prepared me to deal with chaos and enabled me to set good boundaries (I am never working at the weekend or overnight ever again).
I am a firm believer in celebrating people's differences and I'd much prefer having a diverse team from different backgrounds than just a bunch of Computer Science grads - the world is so very boring if we're all the same!



