Interact

Engineering

🛠️ Full Stack Engineering Framework

Levels

1

2

3

4

5

6

About our engineering progression frameworks

The engineering progression framework is a tool that helps engineers and managers:

  • make development and career plans
  • talk about what we’re looking for from engineers in a consistent way
  • set a fair level of compensation

The framework is a compass, not a GPS.

It's meant to be helpful. It's not meant to be a rating system for humans, free from edge cases.

It is a very new concept at Interact, and it will likely change numerous times over the coming months, as we learn new things, and refine the framework, before settling down on a well agreed set of definitions and expectations.

While this is likely to change frequently as we get questions, requests, and feedback, we will not be tying levels to compensation brackets, until the framework matures, and becomes more solidified in Interact's setting.

This framework is focused purely on your as an individual, not creating a leader board of all the talent in the department - the key is individual development and progression.

So please, make sure to give us feedback, if something doesn't make sense, or you feel is incorrectly defined/categorised, inconsistent, or if you have any suggestions.

It's still largely a Work in Progress.

What's in it for you?

You will grow as an individual and professional, across the core competencies which underpin all great engineers, which will help you succeed as an Engineer in Interact, and also outside of Interact, in any future roles you undertake. Systematic personal and professional growth, will set you up for success, and make more Senior roles a possibility, and open up many new doors, as you gain the skills and competences required for these positions.

You will be able to get a very comprehensive picture of your competences, strengths, and weaknesses, and then systematically work with your Manager and Leadership, to grow across all facets. We will help structure work in a constructive way as opportunities arise, to help you grow in those areas, inline with your career aspirations, to help you learn, improve, and demonstrate your skills and evidence your growth.


The progression framework creates a deliberate process which can be employed for professional development, by allowing you to identify your strengths, weaknesses, and areas for improvement, and help you develop a stronger, more complete skillset as an Engineer.

It is aimed at helping you systematically improve, grow, and hone your skills, to become more effective at your role, and set you up for more Senior roles - not only within Interact but also outside - these skills and traits are universal in Engineering, and form a very strong foundation for anyone who wants to be successful in this field.

The facets are not specific to any language, framework, or technology, as they change frequently and are not related to your effectiveness or success. Instead, we focus on underlying traits that make great Engineers as successful as they are, regardless of the tech stack.

How does it work?

The framework covers all the things we’re looking for from engineers at Interact. We’re interested in these five elements:

  • Mastery - Your Interact knowledge and technical capability (backend, frontend, cloud etc.)
  • Impact - The size, scope, quality and value of what you deliver
  • Influence - How you change the world around you for the better
  • Comms & Feedback - How you interact with others, as well as capture and present information etc.
  • Leadership - How people around you become better and more impactful

We sort them into 10 sub-levels, and we try to give specific examples of behaviours we expect for each. Each of those levels may have a fairly wide salary range associated with it, and within each level you can progress in sub-levels, denoted by a single decimal place 1-10 eg. level 2.6. So even if you’re at level 3 for a couple of years, you’ll still be able to see that you’re moving forward. Basically, the more behaviours you show from your level, the more you’ll progress.

You overall level will be calculate by taking an average of your scores across all skills.

Your manager will work with you on this. None of it will happen mysteriously behind closed doors. You’ll agree what level of progression you’re going for and what you need to improve on with your manager. It should be clear how you’re doing relative to that at all times.

Your manager will be able to provide you with feedback, and suggestions on improvements, as well as material/training recommendations, where it is appropriate.

The route to progression is aimed at being evidence driven, rather than a checkbox exercise, to make sure it is meaningful, fair, and reflects our individual levels accurately, as well as give everyone a fair opportunity at progression. We want to focus on complete growth of you, as an individual. The changes to your levels, will be backed with evidence, and discussed with your manager to ensure they're are well founded and objective.

Things to keep in mind

  • There are many different ways to progress and be valuable to Interact as you grow, including deep technical knowledge and ability, technical leadership and people management. All are equally valuable paths in Interact's engineering team.
  • The framework represents a career’s worth of progression, people shouldn’t expect to fly up it in 18 months (although, we do encourage you to try 😁)!
  • Engineering progression isn’t an exact science and there will always be some ambiguity.
  • This isn’t a checklist – it’s possible to progress up a level without showing all the behaviours in that level.
  • All changes in scoring will be evidence driven and justified - evidence may be put forward by the Engineer, or by the Manager (or both)
  • There will be levels on top (eg. ‘Inventor of Android’ or ‘Author of Go’), but we won’t add them until we need them.
  • If you don't find the information you need here, please ask your manager.
  • It does not replace your job description, and assigned duties. Make sure to liaise with your manager if you have any questions. Your job description and formal responsibilities are defined by your role and title, rather than the progression framework.
  • Your levels reflect your point in time status, and are subject to change - eg. move up and increase as you get better and demonstrate the improvements, or reduce if you stop fulfilling your duties or become less effective.

Evidence

Since the framework is evidence driven to ensure objectiveness and fairness, it raises a question as to what constitutes evidence.

Evidence can be anything that you feel demonstrates your competence and application of certain skills to your job.

Examples

  • Comments on PRs around security implications, and OWASP best practice violation.
  • Confluence documentation you have produced to make your colleagues lives easier
  • New tool you have built to help automate/speed up certain aspects of your job
  • Commit/branch showing your mastery in performant and secure feature delivery
  • Notes detailing and demonstrating the considerations behind your work
  • Colleague feedback, peer recognition, feedback from other departments - eg. doughnuts rewards
  • Emails and correspondence (Teams chats) showing your ability to identify and proactively raise risks
  • etc.

As you can see there is no exact answer to this but it all revolves around demonstrating your prowess in different skills/traits on the framework.

Individual Contributor Path vs Manager Path

There are 2 core ways to progress at Interact for Engineering staff.

  • Individual Contributor Path
  • Managerial Path

This is designed to provide you with a choice on whether you want to remain hands on and continue to progress through the ranks, seniority, and responsibilities, while working on becoming an expert in your field without feeling like you must move into management to progress, or if you would rather assume a more Tech Team Lead position, get more hands off, and focus on coordinating, mentoring, setting direction, and facilitating, of teams and projects. Both are perfectly fine.

Both paths will have different associated job titles depending on the team and vertical you operate in.

The job titles in each direction may look like this. Different teams and areas of expertise may have different job titles more specific to their areas of expertise (eg. Architecture, SRE/DevOps etc.)


Individual Contributor Path

  • Junior Software Engineer
  • Software Engineer
  • Senior Software Engineer
  • Principal Software Engineer
  • Distinguished Software Engineer

Architecture Roles may look like this:

Minimum experience requirement: Senior Software Engineer

  • Solution Architect
  • Senior Solution Architect
  • Principal Solution Architect

SRE/DevOps Roles may look like this:

Minimum experience requirement: Software Engineer

  • SRE/DevOps Engineer
  • Senior SRE/DevOps Engineer
  • Principal SRE/DevOps Engineer

Manager Path

Minimum experience requirement: Senior Software Engineer

  • Junior Software Engineer
  • Software Engineer
  • Senior Software Engineer
  • Tech/Team Lead
  • Software Development Manager/....

We'll refine and expand these lists as we grow our department, and more expansion of roles becomes required.

Roles & Responsibilities

Each role comes with different formal expectations and responsibilities.

eg. Moving to a Senior Software Engineer role will come with new formal responsibilities and expectations like running projects, more stakeholder exposure, ensuring quality of outputs from team members, mentoring, formal responsibility for quality of code reviews, systematically contributing to documentation, as well as hands-on development etc.

You should discuss the direction you want to follow with your manager, and discuss the next role you want to work towards so that they can help you in moving towards that goal.

Areas in Engineering

We are exploring roles across many verticals, not just the Core Product Team.

Certain areas we'll be expanding over the coming months:

  • Core Product Team (more tech teams and Senior SE roles)
  • SRE/DevOps
  • Architecture/Platform
  • Security Engineers
  • Frontend/UX
  • plus more

Different areas will have different job titles, responsibilities and different number of openings at different levels as we scale our Engineering operation.

Job Titles and Levels

Keep in mind that the levels reflect a career worth of progression, and most active Engineers in the industry would naturally rank somewhere between levels 1 and 3, with the number of people getting increasingly small as the levels get higher.

We are specifically not assigning any levels to job titles, as they do not guarantee an automatic promotion, and do not require you to move to another role/position.

Each role, may have minimum level requirements, alongside other key requirements for the job, which are not overruled by hitting a certain average levels score, and naturally different roles will come with different formal responsibilities.

If you have a specific direction you want to pursue, you should discuss it with your manager to find out more about the requirements, pre-requisites, and create a plan to move forward in that direction.

Reaching higher levels and showing the determination and passion to improve, does give you a greater chance of securing more senior roles inline with your career aspirations and direction, as they become available as the business grows.

If you want to discuss pursuing specific roles which are not actively open, or you are concerned about the possibility of moving into a different path but are unsure if there are open positions (eg. there are many Tech Team Leads and you're not sure if there is a place to move into that level), just speak to your manager as Interact has a great track record of promoting from within, and roles may be opened for the right candidates even if not actively advertised.

Example - if we're not actively advertising a role for Senior Software Engineers, but you feel like you're got all the necessary skills, and meet all the requirements, you should definitely talk to your manager. We always look for the best talent, and want to allow you to be as effective as possible in your job. Interact has a strong track record of promoting from within.

eg. Progression in Core Product Team, vs Architecture Team, vs SRE/DevOps Team, vs Security Team, will all have different facets which are more relevant and will become pre-requisites for the roles. You may be more qualified for some vs others depending on your core skills and expertise.

Examples

  • (+) You're a Senior Software Engineer and have reached a high average level which also includes high scores on Leadership and Management, and you are interested in exploring a move to Tech Team Lead, in which case your level on relevant skills and traits, will be favourable when applying for the new role internally.
  • (-) You're a Senior Software Engineer and have just reached a high average level and you want to become a Tech Lead, but you have low level scores across the Leadership and Managerial skills. This may not be possible as these skills/traits are very relevant to this role and would form pre-requisites for the job. A move to Principal Software Engineer role would be a lot more possible, if the traits and skills demonstrate your technical prowess.
  • (+) You're a Senior Software Engineer and have just reached a high average level, and want to move to a Senior Security Engineer role, and you have shown great depth in the Security related facets which is well evidenced. This will be favourable when applying for the new role internally.
  • (-) You're a Senior Software Engineer and have just reached a high average level, and want to move to a Senior Security Engineer role, but while your average scores are high, you lack depth in the Security related facets - in which case the move would not be possible.

If you want to discuss specific roles which are not actively open, or you are concerned about the possibility of moving into a separate role (eg. there are many Tech Team Leads and you're not sure if there is a place to move into that level), just speak to your manager as Interact has a great track record of promoting from within, and roles may be opened for the right candidates even if not actively advertised.

Hope all of this makes sense and paints a clear picture on how progression works at Interact, but please do reach out if you have any questions.

It is very hard to communicate all facets and nuances in a single readable document, so this is not exhaustive by any means, and you should have a discussion with your manager if you require more detail on any specific role, so that they can work with you on getting the relevant information and answers.

Give us your feedback!

This is only the first version of our framework and we really want your feedback.

Keep in mind, this is a work in progress, and subject to change as we receive feedback, criticism, suggestions, and ideas.

The more feedback we receive, the faster we can refine it and solidify it.

We're particularly keen to add as many examples to the behaviours as possible, to further clarify them.


Skills

These are the categories and skills we assess every member of the team on. They are used to generate your overall level with respect to this framework.


Levels

NameDescription
0Non-existent expectations/mastery
1Regional Junior expectations/mastery
2Regional Mid-Level expectations/mastery
3Regional Senior expectations/mastery
4National Senior expectations/mastery
5National Elite expectations/mastery
6Global Elite expectations/mastery

Impact

NameDescription
Problem SolvingYour ability to blend lateral and methodical thinking along with experience, to approach problems and explore/create solutions.
DeliverabilityCan your work be shipped straight to production? How much external input do you need to go from idea to production?
ReusabilityHow reusable (and how easy to reuse) are your solutions? Does your design and code demonstrate good separation of concerns such that it can be easily repurposed?
VelocityThe ability to deliver work fast, on-time, and correct, even when under pressure.
PragmatismYour ability to balance technical excellence with business value and deliver solutions which are centred on customer value.
AdaptabilityYour ability to work across a variety of domains and using differing toolsets, coping well in any environment with the right support.
ArchitectureYour ability to consider and be mindful of a wide variety of factors from technology and deployment, to scalability and performance, relating to your solution design.
DiligenceThe ability to deliver undertaken work to a high level of quality, and level of supervision required to ensure you've covered all your bases when developing a solution.
Independent vs. GuidedHow autonomous are you when tasked with something new?
Big Picture ThinkingThe level of understanding how low-level tasks contribute to larger strategic plays, and your ability to connect the dots between implementation direction and long term business success.
CommitmentHow committed are you? eg. If your code breaks at 5pm, you'll stay until it's fixed.
TrustworthinessThe ability to be relied on as honest and truthful. Do you hide problems, or openly communicate about issues, and successes alike?
ReliabilityHow much can you be relied on to deliver on work, meet deadlines and solve time-sensitive issues should they come up? How much can the team rely on you to get them out of problems, or to resolve problems which you yourself cause?
PredictabilityConsistency in the deliverability, quality and velocity of your work.
Managing ComplexityYour ability to comprehend and navigate complex systems/technical ecosystems and necessary components correctly, in a timely manner, and with minimal supervision to deliver correct fixes/solutions.

Mastery

NameDescription
Frontend MasteryThe mastery of front-end technologies, from vanilla JavaScript to front-end frameworks spanning the dimensions of performance, reliability, flexibility, and application design, among others.
UX/Accessibility MasteryThe depth of knowledge of how users interact with products in the real world, and understand how accessibility affects these users. Are your solutions built around industry standards, and delight users at every turn?
Backend MasteryYour mastery of backend technologies, from service-based applications for big data processing, to coherent APIs layers, and are able to deliver solid, reliable, and scalable solutions which underpin the frontend and other presentation layers.
SQL MasteryYour mastery over data manipulation, retrieval, and understanding of the nuances of data architecture, queries, and how it all must fit together to deal with data in the most efficient, and most flexible way. Your ability to analyse the schema alongside the queries and execution plans, and feedback to the rest of the team to improve SQL efficiency and effectiveness.
ELS MasteryYour understanding of Search Engines, and ability to leverage ElasticSearch in simple ways, to solve complex problems at scale. The level of understanding and ability to correctly work with indices, aliases, analysers, shards, indexing, ingestion, templates and other search engine concepts, to solve problems, and ability to operate and design solutions with ElasticSearch at scale.
Testing & Automation MasteryEnsuring correctness of work, and reducing manual testing. Understanding of Unit Testing & UI Automation frameworks and best practice testing methodologies, and integration of them in your daily work. How well defined, thought-out, and well targeted are your test cases. Can they predictably, and reliably ensure your work is functionally correct for all releases?
Cloud MasteryAWS, Azure and/or GCP. The fluency, understanding, and experience in networking, server management, load balancing, high availability, security groups, bastions, distributed caching, content distribution networks, serverless, policy management, and other technologies. Ability to define and implement the most appropriate architecture for different solutions, which correctly balance the supportability, security, performance, reliability/maintenance, scalability, and cost-efficiency.
Security MasteryFluency and understanding of OWASP, SANS, NIST, NVD, CWEs, GDPR, ISO 27001, SOC2, HIPAA, CCPA, Cryptography, and Security & Privacy Best Practices, as well as ability to apply that knowledge to solutions, and incorporate it into the code & risk reviews.
Performance MasteryYour understanding of code performance (both execution and memory), master of performance profilers, and scalability of your solutions. eg. The Apollo Guidance Computer took us to the Moon, on a 2Mhz CPU and 32MB of RAM - do we really need GBs of RAM and GHz of CPUs to operate a dropdown?
Interact Solution MasteryYour knowledge of each component of our technology stack, from codebase to functionality, as well as historical trivia around implementation, decisions and use cases of Neutrino.
Graceful Design/Defensive ProgrammingYour ability to build code defensively in anticipation of failures, and ability to ensure that your code (as much as possible) doesn't introduce more bugs when things aren't quite as they should be.

Influence

NameDescription
Wider Tech Field ContextYour technical interest in areas outside Interact, and how much of your experience do you bring to projects at work. It is largely determined by your level of enthusiasm about new technological development, wider engineering trends, and hunger to learn new technology outside of Interact's context.
InfluenceThe amount of natural influence you exert over the rest of the team and department, to help those around you come up with better, well rounded decisions, solutions, processes, and grow in the process.
Data-DrivenYour ability to acquire factual, believable, and relevant data to drive your decisions in development, priority setting and overall decision making. The ability to use believability weighting when making decisions to maximise decision accuracy, and reliance on facts and data over opinions, and assumptions. This extends to decisions on the product, features, hosting, performance, scalability, usage levels, and other areas. How clearly do you state any assumptions and inferences in undertaken work, so that they can be internalised and validated by those around you when reviewing your work?
Dev AssessmentsYour ability to produce assessments that cover a wide variety of facets and are well-considered, when approaching tasks.
Code ReviewsYour ability to review code, identify problem areas, to avoid business issues, and constructively help others get better in their craft based on your feedback.
Risk AssessmentsThe level of understanding of the blast radius of changes you're proposing - eg. from number of customers impacted, to how likely the change is to occur, and any rollback steps, as well as security risks, support risks, and other potentially affected areas.
Team ContributionsDo people get better when they work with you? Are you interested in helping others out and developing talent?
Product/Business AwarenessThe level of understanding of our product, the market, and the wider business context within which we operate.

Communication

NameDescription
DocumentationYour ability to produce documentation that is thorough, easy to follow, and provides excellent context for the area you're exploring.
InsightBest understood in terms of how deep your knowledge of various domains is, and how frequently the team around you learns new things.
CommunicationHow good are your communication skills, eg. can you discuss technical and non-technical concepts with ease among all types of audience, and present the most relevant information in the most appropriate fashion?
Cross-Departmental InvolvementYour involvement and interest in contributing to departments outside of Engineering.
CuriosityDo you have a genuine interest in computer science, product development, and service implementation? This describes the level of detail you're interested in understanding, in the domains related to your position.

Leadership

NameDescription
Stepping UpHow comfortable and willing are you to address new problems and challenges outside your area of expertise. eg. You're excited to learn and see hard problems as a way to develop.
OrganisationYour ability to manage time and the tasks given to you, without being micro-managed.
People ManagementYour ability to set expectations for those working under you, and clearly communicate priorities, as well as managing workloads for your team, in a way which maintains morale and helps the individuals grow. Your team should feel that you're approachable, fair, and insightful.
PrioritisationYour ability to organise your work based on well-understood priorities and ability to build understanding of these priorities wherever details are unknown.
MentoringYour ability to develop the team around you against the skills in this framework. How much impact do you have, on those you mentor and work with, and how much do you contribute in developing team excellence.
Launch CommanderYour ability and experience in leading the launch or release of a major codebase. Are your communication and delegation skills excellent, and do you instil a high degree of confidence as the leader of such a process?
Process EngineeringYour ability to identify and conceptualise the fundamental forces which drive teams, and build/improve appropriate processes to help navigate the individuals and associated working groups to work more efficiently towards the common goals, break down barriers, and ultimately deliver success.