← Back to Articles

5 Career Pivots Away From Software Development

Tom Gregory
Tom Gregory
Oct 14, 20229 min read

Do you feel like you're at the end of the road in your sofware development career? Perhaps you've been coding for years, maybe decades, but recently the original excitement has faded away.

If you don't feel inspired in your current role, the good news is that the valuable skills and experience you've gained as a developer are highly transferrable to other technical roles. In this article, you'll discover 5 such roles which could be an ideal fit for your future career pivot.

What's wrong with being a Software Developer?

Absolutely nothing. If you're currently enjoying your role as a software developer then congratulations! Writing software can be highly rewarding, especially when you see projects you've worked on adding value to people's lives.

Oh yeah, and it pays pretty well too.

Java developer salary worldwide

Data from Glassdoor (October 2021).

So if you're on such a great ride, why on earth would you want to get off?

There are many possible reaons, not necessarily negative. Here are a few that I've experienced personally.

  1. Curiosity: after coding for a while you may feel very comfortable in what you're doing. When new business requirements arrive, you and your team follow a well-worn process to make the required code changes, before smoothly releasing the new version (in theory!).

    Now you might start getting curious about what other employees in your department are doing.

    For me, I was always interested in what the operations guys were up to with all their servers that would actually run my code in production. They knew a lot of stuff that I didn't, and eventually I wanted in!

  2. Boredom: this feeling can also develop after becoming too comfortable in your work. Or maybe you've been working with a specific programming language for so long that you feel there's nothing else to learn.

    It might be tricky to distinguish between being bored of development with being bored within the speciifc job you're working in right now. If it's the latter, then finding a more challenging and inspiring role might be the best solution.

    The closest I got to boredom was working in a development team where the other developers weren't bothered about the quality of the code. Whole chunks of code would be copy and pasted every time they wanted to create another paginated list in the UI! At this point in my career though, finding another job was the right answer.

  3. Wanting to stretch yourself: while curiosity may also play a part here, this is mostly about the recognition that in order to grow as a person you need to stretch yourself in potentially uncomfortable ways. Love it or hate it, there's a whole industry built on this: Personal Development.

    Deciding to move away from software development could be a strategic decision in order to learn other skills or to move towards a specific long term goal.

    After reading many personal development books in the last 5 years, I recognised that I'd become comfortable in my software development roles which had initially been challenging. Being a detail oriented introvert, I decided that moving into a more people-oriented role would round off some of my rough edges.

Whatever your reaons, you've almost certainly gained valuable skills and knowledge in the development work you've done so far.

These might include:

  • technical development skills (e.g. Java)
  • knowing how a dev team functions (e.g. scrum, kanban)
  • interpersonal skills (e.g. tutoring, persuasion, documentation)
  • domain knowledge (e.g. ecommerce, media, finance)
  • other technical skills (e.g. how HTTP works, encryption, OAuth)

Well, if you're moving away from development, you won't need them, right?

Wrong. Many of these skills can be directly applied to other non-development roles you might want to pivot into. Yes, these roles are still related to creating software, but don't involve writing software. Well, at least not most of the time.

Still sure you want to move away from software development? Before you decide, consider these 5 roles you could pivot into to see if they get your juices flowing.

Become a DevOps Engineer

Be the "behind the scenes" guy who seems to knows how everything works

If you become a DevOps engineer your responsibilities will shift from writing software to ensuring the software is deployed, hosted, and monitored as effectively as possible. All while guaranteeing minimal interruption to live users of the system.

You'll need to get familiar with cloud technologies like AWS, GCP, and Azure, so you can scale and monitor the software, all while keeping tabs on costs.

Other responsiblities may include:

  • create infrastructure-as-code templates so whole environments can be easily replicated
  • work with developers to come up with the best options to run software in production
  • get environments security tested, then fix any vulnerabilities

With your development background, you'll be able to easily work with developers and understand the sometimes complex requirements of the software you'll need to deploy.

Other skills you might need to learn or improve include:

  • networking
  • DNS
  • TLS & certificates
  • CI/CD (e.g. Jenkins, GitHub Actions)
  • build automation tools (e.g. Gradle, Maven)

Each of these topics, while getting you out of your developer comfort zone, will give you a fascinating insight into how the internet works and how best to deliver software.

Finally, you'll be the guy that knows everything.

Positives


  • lots of potential to learn fascinating new technology
  • in-demand skills, especially cloud services
  • will gain well-rounded understanding of how to deploy software

Negatives


  • learning curve can be steep
  • may have to provide out-of-hours support

Become a Development Manager

Develop your non-technical skills

Become a Technical Architect

Learn to see the bigger picture

Shift to a technical architect role, and you'll spend more time defining how developers should write software. Your focus will depend on your role, ranging from high to low level.

At the high level, you may define distinct services and how they interact with each other e.g. a microservice architecture.

At a low level, you might define how an individual application should be written e.g. BDD, TDD.

Eitther way, you'll need to be aware of upcoming feature requirements, and plan ahead of developers so they know in which direction to go.

Other responsibilities might include:

  • create architecture proposals and get buy-in from team
  • document, diagram, and ensure compliance with agreed patterns
  • discuss with developers possible improvements to architecture

Architecture vs. infrastructure? you can think of architecture as the design of software components and how they interact, whereas infrastructure is how those components run.

You'll work closely with developers, devops engineers, and possibly other technical architects, depending on the size of the project.

Technical architect is a natural progression for a software developer who wants to stay technical, without necessairly writing code every day.

Other important skills & experience includes:

  • design patterns (e.g. inversion of control, visitor)
  • experience of different architectures (e.g. monolith, service-oriented architecture)
  • clear communication of ideas
  • implementation infrastructure (e.g. AWS, GCP)

Positives


  • less development, more big-picture thinking
  • your decisions have a big impact within & across teams
  • you'll get a good understading of how the whole system fits together
  • can remain close to code, if desired

Negatives


  • increased pressure as success depends on your correct decisions

Become a Technical Lead

Lead the charge with your team, but stay close to the code

Taking on a technical lead role, you'll lead a small technical team to effectively deliver new features. Such teams comprise developers and QA at a minimum, and you'll help them translate business requirements into reviewed, tested, and deployed code.

You'll need to have strong development skills, since your team will look to you for technical guidance. Innevitably there'll be strong opinions within the team, but you'll have to make the final decision and get buy-in from everyone.

Other responsbilities are likely to include:

  • code reviews
  • writing user stories
  • leading meetings (e.g. stand-ups, sprint planning)
  • providing estimates to management

As a technical lead, you'll be seen as the face of the team, and will likely work closely with project managers and other roles. You'll help them translate high-level business requirements into low-level technical details, and provide timescale estimates.

Useful skills for technical leads include:

  • knowledge of several programming languages (e.g. Java/JavaScript)
  • effective communication with all areas of business
  • ability to simultaneously think big-picture and low-level

Positives


  • can strongly influence technical decisions
  • gratifying to coach more junior developers
  • get a good understanding of the whole system

Negatives


  • you may be stretched thin, especially on less senior technical teams

Become a Freelancer

The freedom to do it your own way

As a freelancer, you'll have more control over what projects you take and how you spend your time. Working as a mini-business, you'll have the added responsibliity of finding work and interacting with clients, on top of day-to-day development.

You'll need to think carefully about what exactly you want to offer clients. One choice would be the same kind of development work as your previous role, on a per-day or per-hour basis. But with the freedom of a freelancer, there are no limits to what you do and how you do it, as long as you're delivering value.

Freelancer vs. contractor? A freelancer normally engages clients directly, is responsible for specific deliverables, and has full control over how work is done. A contractor normally works full-time on a single project at a time, on a day rate, and often via an intermediary.

Just to spark your imagination, here are some ideas of what you could do as a freelancer:

  • design & deliver client's website
  • develop specialist/niche software for client
  • troubleshoot client issues
  • create a software-as-a-service (SAAS) product
  • deliver training in your knowledge area

Whatever type of work you choose, you'll need to manage your client's expectations and ideally exceed them, to increase your chances of more work or recommendations.

Some useful skills you'll need include:

  • desire to understand and please customers
  • able to manage workload without outside motivation
  • pick the right technology to solve a customer's issue

While taking on the freelancer role might take time to get started, if you consistently deliver good work you'll likely be able to choose the best projects and name your rate.

Positives


  • more freedom than any other role
  • unlimited financial potential
  • satisfying working directly with clients

Negatives


  • as a one-man-band, you'll have to do tasks you don't enjoy too

Comparison table