Skip to main content

Career in software engineering : Roles to know

when someone starts a career in software engineering there are plenty of options. Although most graduates have the same degree, everyone starts in a different role.


  • Developer / Coder - Engineers in this role get a chance to actually implement and write software. At the start of a career mostly it is about fixing defects in existing software then taking small changes to the software and eventually getting to the point to handle and implement more complex changes. 

  • Quality analysts / Quality engineers - Engineers in this role test and automate software. This is a challenging role where one has to know about the full functionality of the software and test accurately so the software built is of high quality. This role also involves the automation of test cases and preparing a test suite that can be run and detect issues automatically.

  • Release Engineers - Once the software is built and tested release engineers are responsible for pushing a set of code to production. A production is a place where actual software resides. Most of the time they also write code to build pipelines and flows which takes of whole process in just a click. Release engineers are responsible for tagging/versioning and making sure all changes are in for the software.

  • Production support - Once software is in production it is ready for use by end customers. End customers can face issues with the software or can face issues with the environment where the software is running. Production support engineers make sure all environments are up. They address issues based on the severity of the problem. They are the first point of contact for any troubleshooting. There are several categories in prod support as well where Database admins , Web admins , Infra admins, and other technical support people work together on solving real-time issues. If everyone is facing issues there can be also problems with code where defects are raised and fixed.

There are other important roles as well that go along with the above roles.

  • Product Owners:- Responsible for setting up the product/software. They are responsible for prioritizing features and new functionality of software.

  • Product managers:- Product managers handle the whole team who works on the software. In this role managers continuously work with product owners and teams to complete features on time. They take care of budgets, team members count, capacity planning, and collaboration with other teams on timelines.

  • Software architect:- Mostly responsible for design of the product/software. This role deals with the implementation at higher level. This role involves with working with product owner , product manager and team for challenges and implementations.Architect also involes with other architects of the product in reaching to the common design and common technologies. Architect create dependencies and feature requirements with other teams. Architect is go to go person for the team for any challenges and technical answers.

  • Scrum master :- In agile scrum master is responsible for scheduling meetings , working on the timelines , taking scrums , planning  and refinement meetings.
In some projects we have other roles like where each role carry  broader set of tasks

  • Devops engineer :- This role inline with release engineer role but does lot of other operations in today's cloud world.

  • Data engineers :- This role starts picking up with more data involved in the software systems. They are responsible for writing code on collecting , cleaning , analysing and extracting data. They also involve in building dasboards for analysis and showcase to business team. With AI/ ML coming into picture they are also responsible for building models and algorithms for predictive analysis.

  • Database engineers:- Now a days developers do these tasks as well but in some software where database is large and require focus there are set of people who work on schema designing , data partioning ,backup , recovery , mitigation and maintaing database systems.

  • UI/UX engineers :- They are responsible for building User interface for the software. now a days most of the time developers directly work with UX team in implementing user interfaces.

Comments

.

Popular posts from this blog

Selection Sort in JAVA

What is selection sort? It is a sorting technique that is based on the partitioning of array into two parts, sorted and unsorted. The process is:- 1) Find minimum element in unsorted array. 2) Swap the element at the end of sorted array. when i=0 we don't have any sorted array so element will be replaced from first element later the sorted array end will growas the index. Steps:- underline elements are sorted array, the length is increasing with each minimum element added at the end. minimum element11 11 25 12 22 64 minimum element12 11 12 25 22 64 minimum element22 11 12 22 25 64 minimum element25 11 12 22 25 64 minimum element64 11 12 22 25 64 Program:- package sorting ; public class SelectionSort { //function to print array public static void print ( int [] arr ) { for ( int i = 0 ; i <= arr . length - 1 ; i ++) System . out . print ( " " + arr [ i ]); System . out . printl...

Topics to Start - preparing for Data Structures and Algorithms

Learn in a different way :- Strings stacks and queues heaps searching hash table sorting recursion dynamic programming greedy algorithms graphs tree Binary Search Tree Linked List Array Parallel programming and concurrency design problems system design availability and scalability  Below topics are good to have object oriented programming language details ( java , python) object oriented design tools ( bash , git , maven , jira , jenkins , docker , kubernetes) database