This August marks exactly 10 years since my first software development job! Iā€™ve hopped between industries, companies, and seniority a lot in this time, hopefully learning a few useful lessons. Well, at least 7 anyway.

Introduction

Before diving into each job and the lessons learned, itā€™s worth pointing out how drastically the software development market (and of course my own situation) has changed in the past 10 years, especially the past 4. Gergely Orosz posts weekly about the state of the software engineering industry, but one takeaway is that some of the career moves I made would be impossible now.

Additionally, itā€™s very likely that reasons I left companies have been addressed by now, so any information in this article might be out of date, it is merely a snapshot of a moment in the past.

7 lessons learned

If youā€™d like to skip aaaaallll the personal information, back-story, and explanations, here are the 7 lessons Iā€™ve learned, 1 from each employer. Theyā€™re simply in the order I learned them, and as with all ā€œlessonsā€ they need to be evaluated critically not just blindly followed:

  1. Take ownership of your own career.
  2. Be honest with yourself about burnout.
  3. Supportive colleagues are essential.
  4. Pay attention to your job market.
  5. Donā€™t be blinded by the money.
  6. Try out different employer & team types.
  7. If a job seems too good to be trueā€¦ you might as well interview!

2014 - 2017: First Option Software

First Option Software

What was the role?

As a Software Engineer at First Option Software I usually led work on the absurdly varied software systems used by a building surveyor for insurance claims, later focusing on building an Android app for a social media company.

What was the best & worst part?

The best part was the sheer variety of technology used, most of which had to be learned from scratch! Itā€™s pretty rare even a full-stack fresh graduate gets to lead projects in Java, C#, PHP, SQL, and more on a daily basis, adding in VB6, ColdFusion, Android, iOS after a couple of years.

The worst part was the lack of guidance. As great as it was running massive, important projects by myself, and I learnt massive amounts daily, I did a lot of ā€œcowboy codingā€ with nobody to show me better! With no code reviews, no seniors to learn from, and no personal objectives, it was nevertheless an excellent first job.

Why did I leave?

Money and specialisation. I self-taught myself Android outside of work, and building my games (e.g. Pixel Blacksmith) made me realise it was possible to actually enjoy software development, plus get paid more than a basic graduate wage for it.

What career lesson did I learn?

Take ownership of your own career. Your employer will take your preferences into consideration, but ultimately if you want to 2x, 3x, 4x your salary and/or work in a new area, you need to make that happen by yourself.

This means having an appealing LinkedIn, sharing your work publicly, not burning bridges when you leave companies, being friendly (but realistic) with recruiters, and staying up to date on your chosen technologies. Itā€™s not automatic, but a good job is worth the effort!

All of my roles (after this first one) have been via recruiters reaching out via LinkedIn, so keeping that profile appealing to recruiters is absurdly important.

2017 - 2018: Creators.Direct

Creators.Direct

What was the role?

I founded a content creator startup Creators.Direct with a friend, so I was Co-Founder / CTO. Realistically this involved everything technical, plus comms, legal, finance, management, and towards the end literally everything!

What was the best & worst part?

The best part was utilising my full-stack experience to build the backend, database, iOS app, Android app, client site, and having the complete control and vision over how the entire system operates and grows.

The worst part wasā€¦ infinite essential work, and finite time to do it. With my (sales & product) co-founder leaving early, I ended up spending half of my day fielding client emails, handling contracts, and contacting leads, and the other half building 3 large projects (Android / iOS / Web) and the backend to support them! Turns out 1 person canā€™t do the work of an entire team, regardless of hours worked.

Why did I leave?

Workload and dwindling resources. Since Iā€™d work 16-20 hours, then sleep for 8, my body clock became completely detached from reality, and Iā€™d shift a few hours later every day, waking up at arbitrary times of the day / night. This lifestyle plus barely making enough revenue to pay rent let alone save any wasnā€™t sustainable mentally, physically, or financially.

What career lesson did I learn?

Be honest with yourself about burnout. If youā€™re working ridiculous hours and arenā€™t enjoying the work, you canā€™t escape this byā€¦ working even harder. You need to delegate, offload responsibilities, take a break, or do whatever you need to protect your own mental health.

2018 - 2019: ingenie (ANWB)

ingenie

What was the role?

This was my first dedicated Android role, as a Senior Android Developer at ingenie. This involved leading development on a driving tracking app for a large Dutch company (ANWB).

What was the best & worst part?

The best part was working entirely in Android, and having a very competent colleague! Whilst I had a reasonable amount of software development experience as a solo / cowboy developer, I was fortunate to work with a skilled Android Developer who taught me plenty of modern Android topics and libraries.

The worst part was being very distant from the client in terms of planning work and releases, and having no connection to the appā€™s mission as a non-driver. This was my first experience working in a slightly larger company (~30 people), and adjusting to work being translated through layers of management was a somewhat painful learning curve.

Why did I leave?

Management interference and better opportunities. As internal company politics became more and more prominent (new CEO, high profile firings, restructures, etc), all of my closest friends left the company. With no remaining ties, I started looking for better opportunities, and found them.

What career lesson did I learn?

Supportive colleagues are essential. Whilst Iā€™d previously worked alone often enough, experiencing competent, funny, and intelligent colleagues to bounce ideas off was a game-changer. Once Iā€™d had it, the loss was very painful, and would have been enough of a reason to leave in itself. This experience made me pay extra attention to the social aspects of work.

2019 - 2020: Candyspace (ITV Hub)

Candyspace

What was the role?

I joined Candyspace, an agency with a long-standing major client (ITV Hub) that I would be 100% on. Initially my role was Senior Android Developer, progressing to Lead Android Developer.

What was the best & worst part?

The best part was my (and the 3-4 other Android developersā€™) work reaching millions of users, and leading development on an app that most people in the country have heard of. This made explaining my job to others very easy, and that name brand recognition will never stop helping me get new jobs! Iā€™m extremely grateful for my manager taking a chance on my limited experience.

The worst part was the one-sided nature of the client / agency relationship. The power was entirely with the client (ITV), and the financial and workload limitations meant I hit the internal ā€œceilingā€ of earnings / responsibility quite early with no opportunity to progress further.

Why did I leave?

Earning potential and becoming an internal employee. Due to changing personal circumstances, and the very strong Android developer job market at the time, I had a lot of favourable offers available (e.g. +40% base compensation). Additionally, I wanted to be ā€œinsideā€ a company, where I could actually influence what was done, how it was done, and the app direction.

What career lesson did I learn?

Pay attention to your job market. If youā€™re noticing a lot of attention from recruiters on LinkedIn, and the numbers seem significantly higher than yours, maybe itā€™s worth talking to them. Conversations and interviews are free, and practice always helps, so itā€™s worth doing occasionally!

2020 - 2021: Metro Bank

Metro Bank

What was the role?

I was only here for 6 months (and was looking for a new job after 3), but I was a Lead Mobile Developer (Android) for Metro Bank.

What was the best & worst part?

The best part wasā€¦ itā€™s hard to say. Perhaps the salary, itā€™s hard to find any other positives!

The worst part was, at least in the area I worked, the complete lack of conversation / webcams, friendliness, energy, competence, meaningful work, and everything else that is essential for a software development job. Perhaps a company adjusting to fully remote work is to blame for some of this, but it was truly unbelievable, and Iā€™m hesitant to say too much publicly in case it comes back to bite me!

Why did I leave?

Culture and work of any value, or the complete lack thereof. It is truly hard to overstate how much I disliked this role.

What career lesson did I learn?

Donā€™t be blinded by the money. I joined for good money, and I got good money, but it wasnā€™t even slightly worth the boredom and being able to feel my software skills and drive to learn / improve deteriorating in real time.

2021 - 2023: Photobox

Photobox

What was the role?

I joined Photobox as a Principal Android Engineer, later becoming a Principal Android Engineer / Interim Engineering Manager, and finally an Engineering Manager.

What was the best & worst part?

The best part was finally having the ā€œinsideā€ experience I wanted, and experiencing life inside a larger team (10+) and organisation (500+). Knowing that every part of the company (especially engineering) had skilled individuals was reassuring, and helped encourage improving skills.

The worst part was the higher-level company decisions resulting in high turnover. During my first few months there my iOS counterpart left, then my manager (who was a major reason I joined), then the company entered a protracted and technically extremely complex merger of equals, including the C-suite (goodbye CEO!). Whilst this resulted in lots of ā€œgapsā€ letting me try out management, the relentless political manoeuvring at all levels due to the merger was painful.

Why did I leave?

I donā€™t want to be a manager. Whilst I enjoyed interviewing, mentoring, and influencing product direction, I absolutely loathed the ā€œpoliticsā€. This included information withholding, allocating budget, jostling for resources, and being forced to enforce and publicly support decisions I strongly disagreed with (e.g. going back on an employment agreement, losing us an excellent developer). I need to be genuine and open at work.

What career lesson did I learn?

Try out different employer & team types. By now Iā€™d been in a software shop with tens of projects, a bank, ran a startup, worked on a major app, in team sizes of 1-20 and company sizes of 1 - 1000. This varied experience helped me figure out what I actually wanted and needed in a role to actually stick around.

2023 - Now: Seatfrog

Seatfrog

What is the role?

Iā€™m currently a Staff Android Engineer at Seatfrog, a traveltech startup!

What is the best & worst part?

The best part(s) are the get-it-done energy and freedom within a startup environment, and the work/life balance that comes with the absurdly excellent 4-day flexible & fully remote week. This suits me absolutely perfectly, letting me work on other projects for at least 1 day a week (e.g. my MBA), and do whatever is needed to stay productive and keep improving.

The worst part is trickier to identify, but probably having 20 things I want to get done yet limited time in a day. Realistically this is a (positive) symptom of being empowered and invested in my employerā€™s product, so I canā€™t complain too much! Thereā€™s a constant balance between implementing new features, bug fixing, improving / removing lower quality code, improving testing, improving build process, etc etc etc. Prioritisation is hard!

Why did I leave?

I havenā€™t, and hope I donā€™t anytime soon! With a startup, the biggest risk is lay-offs / financial problems, but this doesnā€™t seem to be a concern for the short-term. šŸ¤ž

What career lesson did I learn?

If a job seems too good to be trueā€¦ you might as well interview! For Seatfrog, I was offered work I wanted to do, for an interesting and unique product, with compensation & flexibility that suited my fully remote lifestyle perfectly. Everything seemed literally a perfect fit, including all the interviewers Iā€™d spoken to, so I assumed my chances were extremely low.

Despite moving house a couple of weeks ago and having no internet (or desk!), I obviously interviewed well, and ended up with by far the best job Iā€™ve ever had.

Conclusion

The tech job market changes often, and so do personal circumstances. Your job needs to meet your specific needs, so no article (including this one!) can accurately guide your career moves, or whether a specific job is right for you.

However, reading a variety of anecdotal stories like this, and being aware of the career moves available, will help with the decision-making. Just because I shuffled between smaller companies instead of getting promoted within a large company doesnā€™t mean itā€™s right for you! Perhaps youā€™re better at internal politics yet worse at interviewing than me, so changing company is harder.

I also made the risky decision to run my own tiny company, which completely drained my finances (and sanity / energy) but let me experience a very different working environment and have complete creative control. The intensity of this experience also let me ā€œskipā€ a couple of years working my way up to senior, and itā€™s definitely something I couldnā€™t have done if I had an active social / personal life!

Whilst doing my best to obscure any actual numbers (or any way to infer them), for transparency & context this is an absurdly over-smoothed graph of compensation throughout my career so far, ignoring inflation. Obviously salary is only one aspect of a job, but itā€™s one that typically rises over time. Despite all the job changes, itā€™s been a fairly consistent progression (excluding the dip for running my startup!):

Salary over time

As for whatā€™s nextā€¦ I donā€™t know. Iā€™m very satisfied in my current role, and since itā€™s within a growing company with empowered employees, I suspect any move I want to make (e.g. management, or more backend focused) can probably be handled internally saving everyone time, money, and hassle. Thereā€™s no ā€œpromotionā€ or ā€œtransferā€ I want, my financial needs are met, it would be very hard to poach me.

Iā€™m looking forward to writing a follow-up post in 10 more years, and seeing how my perspectives and career plan have changed!