Software Engineers Growth framework
February 17, 2021   ·  14min

In these days ProntoPro renewed the Growth framework for Software Engineers. If you are wondering what a Growth framework is, well, you can think of it as a tool - hence the word "framework" - that helps employees to progress in their career within the company - hence the word "growth". It is also referred to as "career path", or "career ladder", or "competency matrix".

The reason why we decided to setup a new framework is because our needs changed over time and we realized that the old framework was no longer a fit to us. In particular:

  • We scaled up from 5 Engineers to 20+ Engineers in the last 4 years
  • We moved from functional silos teams to cross-functional teams
  • We gradually stopped focusing on quantitative KPIs - such as velocity - in favor of qualitative KPIs - such as impact

Why is a Growth framework important?

We believe that a Growth framework should provide a solid answer to the following questions:

  • How am I performing?
  • What areas do I need to focus on to get even better at my current job?
  • What future opportunities are available to me?
  • How do I need to grow to reach my career goals?
  • How does my company ensure a calibrated compensation plan?
  • How does my company make sure to hire the right people and onboard them properly?

We tried to keep those questions in mind the entire time while writing down the new framework.

On giants’ shoulders

At the moment of its creation, the new framework was inspired by the following companies and tailored to our current structure and foreseeable future growth needs: Artsy, Basecamp, Buffer, CircleCI, Etsy, Fog Creek, Foursquare, Kickstarter, LeadDev, Looper Insights, Medium, Meetup, Notion, Rent the Runway, Soundcloud, Spotify, Square, Travis, Urban Airship.

If you are wondering why we could not just copy and paste the Growth framework of one of those well-known companies, the reason is that the framework must address the very needs of the company and you surely know how those needs might differ from one company to another. If you are curious about this topic I suggest you to listen to this podcast featuring Tim Olshansky, at the time of writing EVP of Product & Engineering at Zenput.

The framework

Tracks, levels, and roles

The career path is organized into two tracks: the Individual Contributor track and the Manager track.

Each track is made of five levels.

A role is the intersection of a given track with a given level.

Individual Contributor track

  • Junior Software Engineer
  • Software Engineer
  • Senior Software Engineer
  • Principal Software Engineer
  • Chapter Lead

Manager track

  • Junior Software Engineer
  • Software Engineer
  • Senior Software Engineer
  • Staff Software Engineer
  • Tech Lead

KPIs

All roles share the same five KPIs, no matter the track or the level:

  • Product
  • Technology
  • People
  • Process
  • Area of impact

Each KPI has five steps, describing the level of expectations for that KPI.

Each career level has distinct expectations in terms of KPIs. Those expectations are represented by a given step. The higher the step number, the bigger the expectations related to it. The Senior Software Engineer, for example, is expected to be at least at the second step of the Technology KPI: specialize.

The same concept applies to tracks. Staff Software Engineers and Principal Software Engineers, for example, are on two distinct career tracks. Yet, they share the same KPIs with different expectations.

We believe that sharing the same KPIs across career levels and tracks ensures consistency, simplicity, and flexibility to the framework. It is easy, indeed, to move up the career levels or even switch from one track to another. Also, it gives us a clear and complete picture of our performance, no matter the role we cover.

Roles expectations

I - Junior Software Engineer

  • Product: -
  • Technology: -
  • People: learn (1)
  • Process: follow (1)
  • Area of impact: individual (1)

II - Software Engineer

  • Product: enhance (1)
  • Technology: adopt (1)
  • People: support (2)
  • Process: enforce (2)
  • Area of impact: team (2)

III - Senior Software Engineer

  • Product: design (2)
  • Technology: specialize (2)
  • People: mentor (3)
  • Process: challenge (3)
  • Area of impact: team (2)

IV - Principal Software Engineer

  • Product: own (3)
  • Technology: master (4)
  • People: mentor (3)
  • Process: adjust (4)
  • Area of impact: engineering (4)

IV - Staff Software Engineer

  • Product: evolve (4)
  • Technology: evangelize (3)
  • People: coordinate (4)
  • Process: adjust (4)
  • Area of impact: multi-team (3)

V - Chapter Lead

  • Product: evolve (4)
  • Technology: create (5)
  • People: coordinate (4)
  • Process: shape (5)
  • Area of impact: community (5)

V - Tech Lead

  • Product: lead (5)
  • Technology: master (4)
  • People: manage (5)
  • Process: shape (5)
  • Area of impact: engineering (4)

Evaluation

1. Does not meet expectations

The requirements of the KPI step expected for a given role are not fulfilled.

2. Meets some expectations

Some of the requirements of the KPI step expected for a given role are fulfilled.

3. Exceeds some expectations

All requirements of the KPI step expected for a given role are fulfilled and some of them are exceeded.

4. Exceeds most expectations

Most of the requirements of the KPI step expected for a given role are exceeded.

Promotions

In ProntoPro promotions are descriptive, not prescriptive: we promote Engineers when they have fully demonstrated that they are performing at the next level. Promotions do not unlock new responsibilities; the new responsibilities and increased scope come first and then we recognize it with a promotion.

In particular, in order to get a promotion to a new career level, an Engineer should demonstrate a conscious, comfortable, continuous, consistent competency in the next career level, defined as follows:

  • Conscious: Having devoted intentional effort to the endeavor,
  • Comfortable: without being overly stretched,
  • Continuous: for a reasonable period of time,
  • Consistent: reliably and evenly,
  • Competency: meeting all the next level criteria.

The examples listed in every KPI step are provided to help give a sense of what type of behaviors we would expect from someone at that step. The examples are not specific criteria that must be met; instead, they help paint a picture of what type of things someone might do when they have achieved that step. You can exhibit different behaviors and achieve different tasks of similar complexity, scale, or impact, and still achieve a step.

Conclusions

The new framework will be effective in ProntoPro starting from March 2021 and we are definitely looking forward to using it and improving it over time.

If you have comments, curiosities, or doubts, please feel free to get in touch with me via Linkedin. I would be happy to have a chat with you about it.

KPIs levels

Finally, here is a detailed description of all our KPIs levels, might you be interested in it.

Product

1. Enhance

You successfully design and push to production small-to-medium features and bug fixes to improve and extend the product.

You approach tasks by first identifying their constituent parts and then breaking them down into smaller challenges.

You are capable of prioritizing tasks, avoiding getting caught up in unimportant details.

You know when to ask for help to get yourself unblocked.

You learn to develop your productivity and organizational skills.

2. Design

You autonomously design and implement medium-to-large size features.

The features you deliver are well-baked and consistent with the product requirements.

You scope and stage work into well-defined milestones to avoid a monolithic deliverable.

You proactively identify problems with requirements (lack of clarity, inconsistencies, technical limitations) for your work and your teammates’ one, and communicate these issues early to help course-correct.

You focus on reducing the product’s tech debt while adding new features to the product.

You proactively fix issues before being assigned to them.

You possess empathy with ProntoPro’s users and use that empathy to guide decision-making.

You are persistent in the face of roadblocks: you effectively remove them, pulling in others as necessary.

3. Own

You own the technical excellence of the product.

You are known for drama-free feature launches.

You take the lead in directing and implementing solutions to significantly complex and unscoped problems.

You regularly deliver software on-time and constantly work to make accurate estimates and deliver on those estimates.

You fully understand the tradeoffs between technical, analytical, and product needs; therefore you lead to solutions that take all these needs into account.

You are consistently able to reduce the complexity of projects and services to get more done with less work.

You partner with Product, BI, Design, and QA to drive requirements that take into account all parties’ needs.

4. Evolve

You plan and execute large and complex deliveries, taking into account dependencies on other features or teams.

You quickly break down complex problems into solid solutions, knowns, and unknowns, to get solid resolutions faster.

You effectively manage multiple tracks of work at the same time and can prioritize effectively.

You can understand the hardest, largest, and most ambiguous problems which affect the whole business and breaks down and solves them effectively - bringing others in when necessary.

You evolve the technical architecture to address ProntoPro’s most important needs and support future product requirements.

5. Lead

You are a loyal partner to the Squad’s PM.

Your work creates a significant and lasting impact on ProntoPro’s business and Engineering goals while enabling many other teams to reach their goals as well.

You identify technology strategic growth opportunities that enable ProntoPro to grow as a business.

You identify the areas of greatest need for our product and create plans to improve them.

You anticipate technical issues at the product level and make architectural and design decisions to avoid them.

Technology

1. Adopt

You have a broad knowledge of core technical concepts.

You actively learn and adopt the technical skills, tools, and best practices defined by the team.

You write correct, clean, and idiomatic code.

You write tests with adequate code coverage.

You are self-sufficient in at least one large area of the codebase with a high-level understanding of the other areas.

2. Specialize

You demonstrate a broad knowledge of industry trends and standards, our infrastructure, and our delivery system.

You write code that serves as an example for other Engineers.

You are capable of defining appropriate performance and testing metrics and targets.

Your work extends to many parts of our infrastructure.

You have end-to-end responsibility on projects of increasing complexity and contribute to common code.

You understand and make well-reasoned design decisions and tradeoffs within your area of competence.

You are the go-to person for one or more technologies and take initiative to learn new ones.

You are capable of providing on-call support for your area, including systems that you are not familiar with.

You provide technical advice and weigh in on technical decisions that impact the team or the company at large.

You identify and proactively tackle technical debt before it grows into debt that requires significant upfront work to resolve.

3. Evangelize

You are an expert on large sections of our infrastructure and technology stack.

You can solve large-scale or undefined problems that may affect the whole Chapter.

You shape broad architecture and ship multiple large services, complex libraries, or major pieces of infrastructure.

You create sweeping improvements in stability, performance, and scalability across major business-critical systems.

You can recognize and make design tradeoffs with respect to the whole infrastructure.

You organize and hold internal talks and workshops to improve technical skills within the Engineering Area.

You give a tangible contribution to technology-related guilds.

4. Master

You are seen as a role model and technical mentor to every member of the Chapter.

You deeply understand our architecture and our business and can articulate clearly the scaling and reliability of the limits of that area.

You research, create proofs of concept, and introduce new technologies that are widely used either by internal or external teams.

You play a key role in innovating the Chapter technology and effectively contribute to its growth.

You identify areas that ProntoPro can share effectively with the outside world and guide the creation of content and communication around these areas.

You communicate the awesomeness of the ProntoPro technical community externally via talks, events, blog posts, and open source projects.

5. Create

You set technical direction.

Your technical decisions have a direct impact on the long-term success of ProntoPro.

You play a key role in developing a multi-year technology strategy for complete and critical areas of the business that encompass multiple systems and teams.

You anticipate broad technical change and ensure that ProntoPro is always ahead of the innovation curve.

You make sure the Chapter is aligned on the chosen direction in major areas of technology, drive the consensus to the adoption of this direction, and use this direction to inspire Engineers.

You level up the entire Chapter by identifying missing knowledge gaps and removing those missing gaps through talks, workshops, initiatives, code reviews, and more.

You supervise the recruiting process, making sure that the candidates fit our technical standards.

People

1. Learn

You quickly learn from others and consistently step up when it is required.

You are a collaborative, helpful, and curious team member.

You are effective in communicating your work status to the team.

You communicate assumptions and get clarification on tasks upfront to minimize the need for rework.

You provide well-articulated comments in Squad ceremonies and suggest solutions where appropriate.

2. Support

You proactively support other team members and help them to be successful.

You clearly communicate technical decisions, through written documentation and talks.

You participate extensively in code reviews and help others via code reviews and pairing.

You have effective cross-functional communication: you can work well with Product, Design, BI, QA, as necessary.

You solidly represent the Tech department when interacting with other departments, defending our standards, and safeguarding our middle-to-long term roadmap.

You handle feedback in a constructive way and do your best to learn from them.

You comfortably communicate complex issues, and large pieces of work, to diverse audiences inside the Organization.

3. Mentor

You mentor others to accelerate their career growth and encourage them to participate.

You improve the overall quality of engineering done on your team and consistently take steps to support the success of your teammates.

You multiply the effectiveness of others by facilitating cross-team work.

You align your team’s work with ProntoPro’s business and engineering priorities to realize the meaningful impact.

You listen and guide debates to help reach a consensus; once a decision is made, clearly communicate and back that decision.

You give timely, helpful feedback to peers and managers.

You give a tangible contribution to people-related guilds.

4. Coordinate

You are seen as a role model and mentor to every technical member of the Squad.

You coordinate your team on complex projects, planning the execution and acting as a multiplier for their impact and productivity.

You facilitate meetings and discussions involving the Squad, collect actions, and chase/follow up on these.

You identify and propose strategies around technical problems affecting your team, communicating standards, and getting buy-in on solutions.

You are a natural teacher, both formally and informally. You adapt your mentoring style to the individual.

5. Manage

You consistently take steps to support the growth and success of both engineers and non-engineers across ProntoPro.

You provide effective feedback and manage the team members’ performance, expectations, and level of happiness.

You clearly communicate a personal 6-12 months growth strategy to each of your team members and lead them in identifying further strategic areas for development.

You motivate and celebrate big and small wins for the Squad, and individual team members' achievements.

You play a key role in the recruiting process, making sure that the candidates fit our Squads and our workflow.

Process

1. Follow

You follow the existing team processes and defend them as necessary.

2. Enforce

You enforce the team processes, making sure everybody understands the benefits and tradeoffs.

You identify process problems, proposing sound solutions to fix them.

3. Challenge

You challenge the team processes, looking for ways to improve them.

You are consistently able to reduce the complexity of processes to get more done with less work.

4. Adjust

You solve important process problems, coordinating with others as necessary.

You give a tangible contribution to process-related guilds.

You organize and hold internal talks and workshops to improve the workflow within the Engineering Area.

5. Shape

You constantly research and experiment for new and better approaches for all aspects of development workflows. You are internally seen as a thought leader on the subject.

You shape the team processes according to the context, listening to feedback, and guiding the team through the changes.

You define the vision and strategy that inspire engineers across departments to solve ProntoPro’s thorniest, most intractable problems related to processes.

Area of impact

1. Individual

You focus on yourself and improve your own skills.

2. Team

You make an impact on your Squad and Chapter.

3. Multi-team

You make an impact on multiple Squads or Chapters.

4. Engineering

You make an impact on the entire Engineering area.

5. Community

You make an impact on the tech community.