Types Of Software Engineers And How To Decide Which One To Be

Part II of the 'Becoming A Software Engineer' Series


9/11/20234 min read

types of software engineers
types of software engineers

Welcome back to the Series 'Becoming A Software Engineer' where I go over 10 key questions I had to ask myself (and answer), in order to successfully transition from a Pharmacist to a Software Engineer. In case you missed the previous post, you can view it here!

In this post, we'll be looking at the following question:

  • What Type Of Software Engineer Do You Want To Be?

In order to choose what type of Software Engineer you want to be, you must have an awareness of the different types of Software Engineers. It's important to understand the tasks they do on a daily basis and consequently, what type of person would suit these. We'll have a look at these below:

Back-end Engineer

📄Role Description: Engineers the logic and algorithms of the software.

🧵Skills Required: Knowledge of databases, APIs, and caches. Knowledge of programming languages such as Java, Python etc. Algorithmic thinking, system design.

❓Is This Role for You? If you're fascinated by data management, enjoy tackling complex problems related to server-side operations, and want to have a significant impact on an application's performance, a back-end engineering role might suit you.

Front-end Engineer

📄Role: Develops the user interface (UI) - this is what we see on the software. For example, a front-end developer at Instagram is responsible for turning the template design into a working design we can interact with.

🧵Skills Required: HTML, CSS, Javascript, front-end frameworks, knowledge of UI/UX principles, responsive design knowledge, accessibility design knowledge.

❓Is This Role for You? If you have a keen eye for design, enjoy crafting user experiences, and find satisfaction in creating polished interfaces, a front-end engineering role might be your calling.

Full-stack Engineer

📄Role Description: Full-stack engineers bridge the gap between front-end and back-end development. They have the skills to work on both the user interface and the server-side components, making them versatile and capable of handling various aspects of software development.

🧵Skills Required: A combination of front-end and back-end.

❓Is This Role for You? If you enjoy the idea of being involved in every stage of the development process, have a diverse skill set, and are excited about learning and mastering various technologies, a full-stack engineering role could be a great fit.

QA Engineer

📄Role Description: Ensure that software meets the highest standards of quality before release. They design and execute tests, identify defects, and collaborate with the development team to deliver reliable and user-friendly products.

🧵Skills Required: Understanding of the testing process, testing frameworks and test automation libraries/tools. High attention to detail. Knowledge of a programming language e.g. Python, Java etc

❓Is This Role for You? If you have a meticulous nature, enjoy uncovering potential issues, and take pride in delivering flawless software experiences, a QA engineering role might be a great match.

DevOps Engineer

📄Role Description: Combine software development with the operations side. Ensure systems can be built, deployed, and integrated efficiently.

🧵Skills Required: Familiar with CI, CD principles and tools. Understanding of containerisation. Familiarity with bash and other programming languages such as Python.

❓Is This Role for You? If you're interested in the intersection of development and operations, enjoy optimising processes, and want to contribute to building and maintaining robust, scalable systems, a DevOps engineering role might be a perfect match.

Data Scientist/Engineer

📄Role Description: Responsible for developing, testing, and maintaining the infrastructure necessary for data storage and processing.

🧵Skills Required: Core skills for a data engineer include knowledge of SQL, programming languages such as Python or Java, data modelling, ETL (extract, transform, load) processes, and cloud computing platforms

❓Is This Role for You? If you're passionate about data, enjoy deriving meaningful insights from complex datasets, and want to contribute to data-driven decision-making, a role in data engineering or data science might be the right fit.

Cyber Security Engineer

📄Role Description: Responsible for developing and implementing security measures, monitoring networks for security breaches, and responding to incidents as they occur.

🧵Skills Required: Knowledge of cyber security principles and practices, familiarity with relevant laws and regulations, proficiency in programming languages such as Python or Java, and experience with security-related tools and technologies such as firewalls, intrusion detection systems, and vulnerability scanners.

❓Is This Role for You? If you're passionate about safeguarding sensitive information, have a strong ethical compass, and enjoy staying one step ahead of cyber threats, a cybersecurity engineering role could be an exciting and impactful choice.

Cloud Engineer

📄Role Description: Responsible for deploying, managing, and maintaining applications and services on cloud platforms. They ensure scalability, reliability, and security of cloud-based solutions.

🧵Skills Required: Understanding of cloud platforms e.g. AWS, GCP, Azure, security, infrastructure.

❓Is This Role For You? If you're intrigued by the flexibility and power of cloud technologies, enjoy building and optimizing cloud-based solutions, and want to contribute to the future of technology infrastructure, a cloud engineering role might be a perfect fit.

Deciding On The Right Role For You

Now that you know what types of software engineering roles are available, how should you go about deciding which one is for you 🤔?

  • Make a list of your key skills and interests, then look at which role closely matches up to these. Are you more creative🎨, are you very logical🧠? Being able to map your existing skills and interests with the role description may make it easier to identify what role you'll thrive in the most.

  • Have conversations with people in these roles to identify what their day-to-day routine looks like. Schedule coffee chats and phone calls and ask questions to enable you to get a feel for what the role entails. Reading about roles is good but getting personal insights through conversations 📞with people actually in the roles is unmatched!

  • Don't be afraid to get your feet wet in a few roles before choosing one. The thing I love about tech is how broad it is. There are a vast number of roles, each offering new and exciting learning opportunities. Don't feel like you have to choose a role and stick to it (especially in the beginning). Try your hand at a few things 🧑🏼‍🎨 and use this to identify ones you enjoy.

I sincerely hope that this post has made your decision of what SWE to become slightly easier. Subscribe here to get updates on each new blog post. Keep an eye out for the next post in this series!

Until then,


connect with ruthfultech
connect with ruthfultech