# Career Titles and Levels in Tech

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.

## 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](#entry-level) Software Engineer or some
specialized field like [Frontend](#frontend-engineer),
[Backend](#backend-engineer), [Web](#web-engineer), [Mobile](#mobile-engineer),
etc.

You grow to [Mid-Level](#mid-level) Software Engineer, at this point you could
move to [FullStack Engineer](#fullstack-engineer), you usually start specialized
in some area.

After this you will grow to [Senior](#senior) and eventually to
[Principal](#principal), at those points you could change title to
[Architect](#software-architect) or [Tech Lead](#tech-lead), even to be
[SRE](#site-reliability-engineer).

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](#software-engineer) don't need to bother doing that.

In some companies the Tech Lead is the
[Software Architect](#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.