Popular job roles in tech
Software Developer/Engineer
A technology company will struggle to grow without a core group of technically-skilled people who can build products. In the world of software companies, the key technical role is the software developer.
A quick note: The terms programmer, software developer and software engineer are not strictly interchangeable. We’ll go through the differences in more detail in another guide, but for now we’ll be using the term “software developer” to refer to a person who is building the software product.
A software developer writes “code” to create computer applications. You can think of “code” as a set of instructions that a computer reads to understand how to perform and respond to actions from users and other computer systems check out Technology 101: Software to learn more.
Software developers tend to specialize on particular platforms, so someone who makes iPhone apps is unlikely to also write the code that manages the control systems in your local power plant.
A web developer creates software that is accessed via a web browser like Chrome, Safari or Edge. You’ll commonly hear web developers referred to as Front End , Back End or Full-Stack developers.
Front End / Back End Developer
A Front End developer writes code for the user-facing side of the internet, like the web app for an online banking website. Back End developers write code that runs on servers and databases, handling requests from the front-end application and providing it with data.
As an example, a front-end developer would write code for the web app you use when you use your computer to check your bank account balance – the screen that shows your account balance, the buttons and links to move between screens etc. A back-end programmer would be working on the software that manages the servers and databases that supply the front-end application with data – for our online bank example this would be your user details, the actual balances in your accounts etc.
Full Stack Developer
It’s certainly possible for a developer to have knowledge of front and back-end web development, and these people are known as Full Stack developers. But as the size and complexity of a software application increases you’ll often find that many people are working in specialized roles.
Mobile App Developer
Mobile app developers create the apps that you download from Google and Apple’s app stores onto your smartphones and tablets. Mobile app development is a separate skill from web development, using different frameworks, tools and programming languages.
A software developer that can make mobile apps will not automatically be able to make web apps, and vice versa. Some mobile apps are self contained, storing all data locally on the app. If the mobile app does need to communicate with external servers and databases then the mobile app developer will usually work with the Back End developers to get the two pieces working together, in a similar fashion to how front end developers work with back end devs on web apps.
Development work is very logical in nature and you need to be very methodical and explicit when working with computers to make sure they operate in the way you intend – a computer will do exactly what the code tells it to do, not what you want it to do.
Software development roles tend to appeal to people who enjoy problem solving, building things, and in many cases, performed well in subjects like math or physics when they were at school.
Developers will spend a large part of their day working on their computer and most development jobs are not customer-facing. The roles tend to attract people who do not need a lot of social interaction within their work day, but it’s wrong to think that you can simply put your headphones on in the morning and ignore the world until you sign out again at night.
Developers work in teams and will be expected to contribute during meetings and pair programming sessions (where two developers work together, with one writing code and one reviewing code for potential issues).
Software Developer salaries
Software is the product in most modern tech companies, so it probably comes as no surprise that people who can build software are in very high demand.
A good developer, with experience, can be fairly selective about where they choose to work. The roles can pay very well, with developers at established tech companies in the USA often making hundreds of thousands of dollars per year in combined salary and stock options or grants.
While it’s obviously helpful to have a degree in software engineering, the high demand and low supply of developers has led to many companies dropping any previous formal education requirements. The lack of a degree won’t always count against you, so long as you have a way to prove you are capable of doing the work. Ideally this would come from previous industry experience, but when you are starting out examples of applications that you have built or projects you have contributed to can help you stand out amongst the crowd.
It’s not for everyone
It’s very important to understand that software development is not the kind of job that will appeal to everyone – even if the money can potentially be very appealing.
If your personality doesn’t tend towards more solitary, puzzle-solving style work, or if you need a lot of social interaction within your day then you may struggle to enjoy a career as a software developer and should consider some of the other important non-coding roles within tech.