Career Ladder

Engineering Career Ladder

Inviqa supports progression starting in a linear fashion for those with no commercial experience (trainee) up to a senior level. From this point we allow you to branch into either managerial or technical tracks.

The tracks are not fixed, you are free to explore the managerial route and if it's not working out you can return to technical.

External Naming Equivalence

We work in an industry that struggles with naming and seniority has been devalued over time for many reasons.

To clarify how we see our roles according to common external perceptions:

  • Software Engineer I => Junior Software Engineer
  • Software Engineer II => [Mid-level] Software Engineer

Roles

Rank 1 - Trainee Software Engineer

A Trainee is a budding software engineer with a background ranging from no previous commercial experience up to the point of being a viable contributor to a project.

Their goal is to develop the skills required to join an Inviqa project team. They should be achieved via a mix of self studying, official training and shadowing other engineers.

This journey should normally take up to 6 months depending on their starting technical foundations.

A Trainee is not billable to clients.

Rank 2 - Software Engineer I

A Software Engineer I has enough skills to add value to a project.

They have fundamental language knowledge and can deliver basic code. They follow project procedures and conduct themselves professionally. They need plenty of guidance and are striving to learn at every opportunity.

They will be at least partly billable, depending on the project circumstances.

A Software Engineer I at Inviqa should be aiming to progress to a Software Engineer II within 2 years.

Rank 3 - Software Engineer II

A Software Engineer II at Inviqa has a broad technical grounding and is entrusted to produce quality code for sizeable tasks in a project team.

They are comfortable with their preferred programming languages & frameworks and composing software of medium complexity using modern development methods.

They are confident communicators internally and with clients.

They are still learning deeper on the technical side, whilst gaining confidence in sharing their knowledge to help others.

Upon reaching Software Engineer II, project work is fully billable.

Rank 4 - Senior Software Engineer I

A Senior Software Engineer I has a strong command of the languages they use and can deliver complex tasks end-to-end following good practice, with minimal oversight.

They have developed a focus on, but are not restricted to, specific frameworks and technologies and are competent in guiding others in the use of them.

They can be seen as a technical authority to less senior team members, taking technical ownership over small systems or areas of larger systems.

They support other team members regularly through reviewing their work, pair programming and promoting agile processes.

They have good judgement, often within a particular business domain and can articulate their points clearly both internally and externally with clients.

Rank 5 - Senior Software Engineer II

A Senior Software Engineer II demonstrates broad depth of technical understanding, with commercial experience in multiple languages, platforms and frameworks.

They are often seen as the delivery powerhouses on projects where they support TTLs in technical decision making, especially around software architecture.

Their breadth of knowledge makes them exceptional technical problem solvers and core contributors to the community through guidelines and communities of practice.

They are well-respected for their technical abilities and authority at Inviqa.

Rank 5 (Managerial) - Technical Team Lead

A Technical Team Lead is focused primarily on the management of a team of engineers on a project.

They own a project from a technical perspective throughout its lifecycle, from initial discovery through to setup, implementation and launch.

They are proven senior engineers, but do not need to solve every technical challenge, they elicit solutions and ideas from their team and encourage everyone to contribute.

The amount of time that a Technical Team Lead spends hands-on coding varies, but not more than 50%.

They build strong relationships with clients, giving them technical direction and ensure clear communication throughout the engagement.

They are experienced with Agile project processes and able to lead in the place of their Project Manager, both internally and externally with clients.

They are capable of identifying risks to the project, and of flagging those risks to their Project Manager.

Rank 6 - Principal Software Engineer

A Principal is a beacon of trusted technical knowledge within Inviqa.

They have transferable and also deep domain knowledge, often in multiple domains.

They exert technical influence across many projects, providing insight and guidance to TTLs and teams, helping inform on final solutions.

They are technical leaders, with wisdom to judge which of the latest tools and industry trends are worth exploring and relevant to Inviqa.

A Principal can be relied upon to join one of the more complex Inviqa engagements early on, define the technical approach, architect an outline solution and communicate it to the client. They will also wow the client in the process, symbolising the pinnacle of Inviqa's technology expertise.

There is a natural overlap between a Principal and a Software Engineering Manager, but the Principal's primary focus is on technology and tools whereas the Software Engineering Manager’s primary focus is on people and process.

Rank 6 (Managerial) - Software Engineering Manager

Software Engineering Managers are responsible for ensuring high engineering quality and consistency across projects through the management of Technical Team Leads and Senior Software Engineers, and through leading community-wide initiatives.

As well as being a line manager to support the growth of lead engineers, they hold them accountable to Inviqa principles and practices through being actively engaged with them and their projects. This could be by joining selected project ceremonies or more directly by pairing with team members. They use their judgement to determine which projects and teams need the most of their time.

They contribute to early engagements through their good communication skills, domain experience and knowledge gathered through oversight of multiple projects. They help to ensure we are winning work with a high chance of success, ensuring a good skills match and contributing to high-level estimation.

They are also part of the Allocation team, helping balance the needs and desires of our engineers versus those of the project and client.

They target an average of 30% chargeable work. They are flexible in how they deliver this. It could be fixed budget weekly oversight or involvement on a time-and-materials basis such as management oversight or deeper consultancy. They rarely apply their technical skills in solo hands-on tasks though, preferring to help and upskill the team at every opportunity instead.

A Software Engineering Manager works with a high degree of autonomy, taking initiatives from inception to completion, leveraging help from others as needed and always focusing on outcomes and the value. They need adept time-management and prioritisation skills to keep on top of their responsibilities.

They use their cross-project exposure to feedback to the engineering leadership team to guide understanding, improve consistency, develop and implement initiatives to improve the community for the future. A Software Engineering Manager has a natural overlap with a Principal Software Engineer, but their primary focus is on people and process whereas the Principal’s primary focus is on technology and tools.