Career Paths in Software - Frontend, Backend (and more)
Introduction
A note, this list is incomplete. Software is a massive field, and there are so many flavors of BI work, data positions, sys-admins, and more, that covering all of them would be a decent size novel. However, if you are just starting out of school and have a fresh degree under your belt (or don't, half the programmers I've ever met have been self-taught), these are a decent starting place.
Choosing a career path as a developer can be tricky. When a person gets started, either as a fresh grad, bootcamp grad, or even self-taught, there are so many choices, and some of the salaries flying around can seem unreal. This guide is to help new developers understand the difference, and perhaps which road they might want to take.
Here's the shortcut I wish someone had handed me, before those salary numbers start scrambling your judgement: pick by the kind of problem you'd happily stare at all day. If it's how a thing looks and feels to a human, you're probably a frontend person. If it's how data moves and where it lives, backend. If it's keeping the whole machine running and not falling over at 3am, that's the devops itch. None of these are walls, plenty of us end up doing all three, but it's a decent compass for the rest of this post.
It's worth noting that the terms "developer" and "engineer" are, for the most part, interchangeable, and I will use them as such. Personally however, I view engineers as people who will work in teams, and developers as those who will either work solo, or in small teams, but it's really just semantics at a certain point.
Frontend
Popular Languages: JavaScript, TypeScript, CSS/Sass/Scss, HTML
The Frontend is really comprised of two parts. There's the "front-of-the-frontend", and the "back-of-the-frontend". In the last five years, this was a bit of a blur as frontend frameworks trended in the direction of SSR and SSG (Like Next.js and Gatsby.js), and suddenly work that used to be done exclusively on the backend became possible in the frontend.
front-of-the-frontend developer
This is a web developer who specializes in writing HTML, CSS, and JavaScript. In modern times, you'll find companies also interpret this through a framework (usually React, though Svelte and Solid are worth a look), styling with something like Tailwind, CSS-modules, or styled-components, and writing it all in TypeScript, a typed flavor of JavaScript that's gone from "nice to have" to very nearly the default.
They will:
Take design mock-ups and implement mobile-first solutions, using CSS to create personalized, intuitive user interfaces with good user experiences. They will also manipulate the DOM with javascript.
Be involved in testing, for either end-to-end tests where a programmed bot will simulate user interactions with the app and flag any errors, or acceptance, integration, unit, visual regression, and cross-browser compatibility. This is all to say, they'll program parts of the app to make sure that the app hasn't broken in new updates, works equally well on all major browsers, and all the pieces work as they should.
Optimize apps for speed and accessibility. Most users will leave a webpage if it loads slower than 3 seconds, so it's important for most kinds of sites and webapps to perform faster than that window.
Maintain and extend a component library of all the pieces that comprise the webapp.
back-of-the-frontend
a back-of-the-frontend developer is one who specializes in writing business logic in javascript.
They will:
Write CRUD logic and handle state, routing, cache, and authentication within the app.
Use the UI created by the front-of-the-frontend developers to populate fields with data from the backend, or data generated client-side (on the machine the user is on, like a phone or PC).
Write user, end-to-end, or integration tests.
Architect tools
Some devops work, for things like bundlers, CI/CD, and sometimes, hosting.
Work with the product and UI teams to make sure that product demands meet possible engineering solutions, and if not, finding the right compromises.
Notes and considerations
This line is still fuzzy, and some developers will do both of these roles. In some companies, some developers will fill both of these roles and be the backend developers as well (this is common in smaller startups, companies lacking capital, or companies that view developers as cost-centers instead of value-generators).
It's a good rule of thumb that for most organizations, if you're being hired as a frontend developer, you should be able to write some CSS, and you better know how to fetch data, as well as manipulate it. In larger organizations however, these roles can be more spread out, so the distinction is more obvious.
Here is a roadmap of all the skills that you might need to be a frontend developer
If this list is a little overwhelming, that's ok! Starting as a junior somewhere doesn't expect everything, and learning on the job in software is a constant, but very rewarding, race.
Backend
Popular languages: Python, JavaScript/TypeScript, Ruby, Go, PHP
A backend developer will do a lot of the behind the scenes work. They'll often either create or maintain a database (popular choices, MySQL, PostgreSQL, MongoDB, AWS DynamoDB, and various graph databases), and will set ways to interact with that data either with traditional REST endpoints, or in something like GraphQL.
The idea is for either frontend developers, other businesses, or users to be able to access this data to serve their own needs. This can be things like historical stock data, a users' list of transactions in a month, stock of a car dealerships inventory.
They will:
Create databases
Stand up webservers
Interact with operating systems
Set up API routes
Work on security settings
Create backups for the databases
Setup automatic reports and testing for backend systems
Here is a roadmap of skills that a backend developer will build over their careers
Full-stack
Worth saying plainly, since it's where a lot of people actually land: full-stack just means you do enough of both of the above to ship a feature end to end. It's the default at smaller companies and a very common starting point, because when the team is five people, someone has to own the thing from the database to the button. You won't be the deepest expert in either half, and that's fine. Being the person who can chase a problem all the way through the stack is its own valuable skill.
Devops
Devops is an interesting field, and most new fledgling-developers want to be one, because of the sky-high salaries involved. However, this is a bit of a misnomer.
Most engineers don't start their career in devops. More often it's something developers drift into a few years in, as a natural progression, and before they know it they've got an entire suite of critical skills that businesses want. Managed platforms and serverless have lowered the floor a little (you can touch deploys and infrastructure earlier than you used to), but going straight for a pure devops role out of the gate is still a tougher entrance than most.
At its core, devops is about standing up apps/webapps with good CI/CD, and ensuring that there is no unexpected crashes.
If you haven't heard of the term before, CI/CD stands for Continuous Integration and Continuous Development. This is a paradigm in programming that goes hand in hand with version control like Git. The idea behind is in that apps should progress smoothly from MVP to polished product, and as developers write code, it gets reviewed, and then gets merged into alpha/beta/main, all in the matter of days, and instead of webapps rolling out big updates every few months (like software in the past, where a big update like 1.5 might be a big deal), these updates are instead incremental and subtle.
That isn't to say that software doesn't rely on versions any more, but CI/CD certainly helps roll out features faster, and keeps everything feeling a bit smoother.
They will often start as backend developers with a focus on SRE skills, living in the terminal, or wiring their company's app into 3rd party services like Azure DevOps or AWS.
So which one?
Honestly? Whichever problem from the top of this post you'd happily lose a weekend to. The salaries even out more than the job boards make it look, and the lines between these roles get blurrier every year. I've drifted across most of them myself. Pick the one that fits how your brain likes to work, get in as a junior somewhere that'll let you learn on the clock, and don't panic about the parts you don't know yet. Nobody knows all of it. The good ones are just comfortable going and finding out.