This is a repetitive question and the answer usually vary between companies, some companies may have more levels or different titles, or even different meanings to each title and level.
This article will list them with an usual description for each one.
Originally published at https://sergiodxa.com/articles/career-titles-levels/
Career Paths
Usually engineers have two possible career paths, the Engineer Way and the Management Way.
The Engineer Way
You start usually as Entry-Level Software Engineer or some specialized field like Frontend, Backend, Web, Mobile, etc.
You grow to Mid-Level Software Engineer, at this point you could move to FullStack Engineer, you usually start specialized in some area.
After this you will grow to Senior and eventually to Principal, at those points you could change title to Architect or Tech Lead, even to be SRE.
If you move titles you could lose your seniority but you usually never go back to Entry-Level, this mean if you are Senior Software Engineer you could move to Mid-Level Software Architect and then grow again to Senior Software Architect, same with SRE
The Management Way
Another possible career path is the management way. It starts the same way but after reaching a Senior level the Software Engineer migrate to management roles. This could start with being Tech Lead, then Software Engineering Manager, VP of Engineer and at the end CTO.
Levels
Levels are appended to a title, some companies have two or three levels, bigger companies add more levels reaching up to ten levels at most the biggest ones, but note there is no limit, you could keep creating levels and use them to justify bigger salaries.
Entry-Level
An Entry-Level is someone with minimum knowledge about their area. This is also known as Junior. Everyone starts being a Entry-Level at some point in their career and will eventually grow to the next level.
The Entry-Level are expected to have a bigger level member of they team to mentor them and guide him on how to do they job and teach them best practices.
Mid-Level
When the Entry-Level are ready to work alone they become Mid-Level, also known as Semi Senior. The Mid-Level is expected to have enough experience to be assigned to a task and work mostly alone without being guided.
They could, and probably should, have a bigger level member of its team to mentor them.
Senior
The Senior are a team member with enough experience to not only work without guidance but also start contributing with decision taking. They are expected to mentor other team members and work in helping them be more productive.
In most companies this is the higher level you could achieve in a single career path.
Principal
Usually after reaching a Senior level most people, doesn't matter the title, migrate to Management roles, if they don't then the next level is Principal. A Principal is expected to have knowledge across the project and whatever they use to create it.
In engineering they are also usually Architects.
Titles
Software Engineer
A Software Engineer, also known as Software Developer is someone who can create a piece of software, this is usually coding, creating the architecture, diagraming, and more. A Software Engineer could have specializations.
Frontend Engineer
A Software Engineer specialized in the Frontend of an application, they work in the client-side code, this title is usually related to the Web but it could be any kind of Frontend Developer.
The technologies used depends on the platform they work, in Web they are HTML, CSS and JS.
Another names are UI Engineer and Frontend Developer
Backend Engineer
A Software Engineer specialized in the Backend of an application, they work with server-side code using technologies like Ruby, Python, Java, Node.js. This title is usually related to the Web.
Another name is Backend Developer.
FullStack Engineer
A Software Engineer capable to work in both client and server side, but they tend to have a predilection to one of those areas creating Frontend Engineer capable to work with Backend or Backend Engineer capable to work with Frontend, instead of a real FullStack.
Another name is FullStack Developer.
Mobile Engineer
The Mobile Engineer are Frontend Engineer specialized in Mobile platforms, they also tend to sub specialize in Android or iOS platforms.
Another names are Mobile Developer, Android Developer, iOS Developer, Android Engineer or iOS Engineer.
Web Engineer
The Web Engineer are Software Engineers specialized in the Web platform. They tend to specialize in Frontend mostly but they could be Backend or FullStack Web Engineer.
Another names are Web Developer, Web Programmer or Web Application Developer.
Desktop Engineer
The Desktop Engineer are Software Engineer specialized in the Desktop platform. They also tend to sub specialize in Window, Linux or Mac platforms. Some Web Engineers move to Desktop using tools like Electron.
Another name is Desktop Developer.
Software Architect
The Software Architect are the person in charge of taking high level decisions about a product, in most companies this is a one-time per project title, after a project starts the Software Architect migrate to a Software Engineer role.
This title is also usually given only to a Senior or Principal Software Engineer.
Site Reliability Engineer
A Site Reliability Engineer, or SRE, specialize in being sure the site, usually a product, is always available to use. They work with server to configure tools like load-balancers. They tend to only exists in companies with millions of users who needs to support that scale of load and be highly available.
Another names are Operator Engineer or Infrastructure Engineer.
DataBase Administrator
The DataBase Administrator, or DBA, is a kind of SRE specialized in databases, they work optimizing the database structure, they queries used to interact with it and replicating and scaling the database to support high load, they are also in charge of creating backups of the data and ensuring they works and are up to date.
Language Engineer
They are Software Engineers specialized in a certain languages, some examples could be Ruby Engineer, JavaScript Engineer, Python Engineer, Java Engineer, etc.
They could also specialize in a platform instead of a language, like the Web Engineer or Mobile Engineer, or a tool like Electron Engineer, Angular Engineer, React Engineer, Rails Engineer, etc.
Another names are Language Developer, Tool Developer, Tool Engineer, Platform Developer or Platform Engineer.
Tech Lead
A Tech Lead is the leader of the technical part of a product, they take decisions and help team members to work more and better. They define code standards and configure tools to be used in the project so Software Engineer don't need to bother doing that.
In some companies the Tech Lead is the Software Architect, CTO or VP of Engineering, these is specially common in companies with small engineering teams without a CTO.
Quality Assurance Engineer
The Quality Assurance Engineer, or just QA, is a kind of Software Engineer who is in charge of creating automated tests and verifying the quality of the product doing manual tests. They report the bugs they found to the rest of the Software Engineers so they could fix them or they just fix them.
Final Words
Those are some of the titles and levels you could find in this industry, again they could change between companies, some companies may have different meanings to each one and even different career paths, most only reach Senior and then the only way to continue growing is becoming a manager.
But this will give you a general idea of what could be expected as possible paths.
Top comments (0)