Skip to content
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
178 lines (120 sloc) 7.24 KB

Career Development


There are multiple levels for engineering roles. These are assigned on hiring and periodically reviewed by managers to check that the level is still appropriate or if a promotion is warranted. Any employee can ask for a review of their level, but these happen periodically anyway even when the employee does not ask for it.

According to our wage policy, each of these levels have a fixed salary that is the same for everyone in the same team and level, with two exceptions: 1) roles that have, inherently, a single member 2) the role of Distinguished Engineer. Salaries are updated whenever a promotion happens.

Individual Contributor

Individual contributors are essentially all engineers that do not exercise any kind of management activity. They are divided in levels where promotions happen based on each engineer’s merits without a limit of people being at any level.


Interns have fixed-time contracts to work on a given team or project. They are expected to be learning intensively and their performance is reviewed at the end of their term to decide if they get an offer to become a permanent part of the team, usually as Junior Engineers.

Junior Engineer

Junior Engineers are expected to be able to work autonomously on small tasks, fix any bug in a codebase they are already familiar with and even take ownership of the maintenance of small projects.

Juniors will usually be promoted from internships or hired at the end of their studies.

Engineer I

Engineers (I) are able to work comfortably on small tasks without any supervision. They have succeeded in working on mid/big size tasks and are able to understand the impact of their changes.

Engineer II

Engineers (II) are expected to work autonomously on most tasks, create projects from scratch and be involved actively in the design of new features.

Engineer III

Engineers (III) are expected to work autonomously on any tasks, and are expected to be able to mentor other team members in small/mid tasks.

Senior Engineer I

Senior Engineers (I) should be able to lead the design of full features, create and maintain any project. A Senior Engineer is expected to have significant specialized expertise in some areas, as well as be able to comply with high quality standards when coding. Senior Engineers are also expected to mentor other team members as needed.

Senior Engineer II

Senior Engineers (II) have outstanding performance and higher expertise in some important areas.

Senior Engineer III

Senior Engineers (III) have a long track of success as engineers within the company and are able to provide technical steering on large parts of our projects.

Distinguished Engineer

Distinguished Engineer is reserved for Senior Engineers with outstanding expertise in a strategic area, where they provide mentorship and decision-making advice. It is the highest level for individual contributor roles and should be awarded with great care.


Management roles in engineering have similar expectations as individual contributor roles in terms of engineering skills. They, however, imply managing a team or participate intensively in higher-level decision-making processes.

Due to the nature of these roles, they are obviously limited in number, so promotion is not automatically available on reviews and depends on the opening of a new position.

Team Lead

A Team Lead is equivalent to Senior Engineer II who also manages a small team of engineers (less than 10 people). A Team Lead is expected to be able to plan current and future work, provide mentorship, oversee progress of the team and, in general, be able to make day-to-day work smooth for everyone in the team. A Team Lead has also a major role in the hiring process (screening, initial calls, code challenge reviews, etc).

VP of Engineering

The VP of Engineering manages the engineering team on a daily basis. Being the following the primary responsibilities:

  • Focused on building and delivering products
  • Grows and manages the engineering team
  • Responsible for the practices and culture of the team
  • Assessing the time it will take to deliver features (or products)
  • Delivering quality releases on a schedule
  • Manager for the leads (this includes responsibility for quarterly one-on-ones)
  • Be part of pre/post sales when the customer requires it (occasionally customers require executive presence)
  • Delivering quarterly OKR’s for the engineering organization

Is responsible to keep the CTO up to date on decisions made that impact the way the team works and is structured; final decision power on these matters is with the VP of Engineering, but it’s expected that VP of Engineering seeks advice from the CTO when making big changes. The VP of Engineering is responsible to involve the CTO in major architecture / technical decisions that impact the product architecture.

Chief Technology Officer

The CTO is ultimately responsible for running the engineering department and providing global direction on development. Being the following their main responsibilities:

  • Have a strong vision, technology visionary of source{d}
  • Work on cutting edge prototypes for the future
  • Set the future technical direction of the company and products
  • Responsible for major long term impacting technical decisions
  • Deeply care about the quality of what we deliver and build
  • Define the product architecture

CTO has final say on the product architecture but VP Of Engineering decides how, when and by whom it is implemented. VPEng has decision making power over the day to day engineering questions that come from the leads.

CTO can never be a blocker to the VPEng, any decision can always be made by the VPEng to move delivering of product/OKR’s forward e.g. in the case of holidays or unavailability.

The CTO / VP of Engineering pair can be resumed in these two phrases:

“The CTO makes sure the technical approach is correct and the VP Engineering makes sure the team is correct.”

“The CTO makes sure we know what to work on in 6-12 months, and the VP Engineering delivers what we need to do right now.”

Appendix - Machine Learning Team
The following adds on bottom of the level descriptions to clarify the requirements for ML people.

Junior Engineer

Junior Engineers should have basic experience of applying ML algorithms. Besides, they should be able to obtain superficial understanding of the papers.

Engineer I

Engineers (I) should have certain scientific/ML areas of expertise. There should be an intuition of which ML algorithms work best in each case.

Engineer II

Engineers (II) should obtain an in-depth understanding of the read papers and efficiently implement ML algorithms from them. They are also expected to suggest improvements to the internal processes.

Engineer III

No special notes.

Senior Engineer I

Senior Engineer (I) should be able to suggest and develop new ML algorithms and write new papers.

Senior Engineer II

Senior Engineers (II) should have a track of remarkable ML achievements such as a series of successful projects at work, a recognized ML speaker profile, high rank on Kaggle, good papers or being an author of a popular ML library.

You can’t perform that action at this time.