Engineering Job Ladder

Individual Contributor Track
Software Engineer
1
Software Engineer I
2
Software Engineer II
3
Senior Software Engineer
4
Staff Software Engineer
Individual Contributor Track
Reliability Engineer
1
Reliability Engineer I
2
Reliability Engineer II
3
Senior Reliability Engineer I
4
Senior Reliability Engineer II
5
Staff Reliability Engineer
Manager Track
Software Engineering
1
Engineering Team Lead
2
Director of Engineering
3
Sr. Director of Engineering
4
VP Engineering
Persado General Ladder 2 3 4 5 6 7

Individual Contributor Track - Software Engineer

Level / Title / Experience Role and Competencies

Level

1

Title

Software Engineer

Experience

0-3 years

Role Highlights

  • You build small to medium sized well defined features
  • You investigate and fix bugs, write tests.
  • You communicate progress, identify blocking issues.

Domain Expertise

  • You ask questions to support your own continuous learning.
  • You learn from your own research and from those around you.
  • You seize opportunities to increase your knowledge.
  • You begin to understand the underlying OS and infrastructure your code runs on.

Programming / Problem Solving / Delivery

  • You understand scope of work before taking on tasks.
  • You recognize when you don't yet have the experience or knowledge to solve a problem and reach out to other engineers for help or guidance.
  • You prepare to work on new tasks by planning an approach ahead of time and confirming it's well thought out.
  • You write clean and readable code.
  • You verify your work by writing tests as well as the old fashioned manual way.
  • You collect and incorporate feedback (such as code reviews) to ship your work.
  • You follow your team's best practices to bring your work to production.
  • You take ownership of your work after it's released and quickly address issues as they arise.
  • You participate in your team's planning and are learning to estimate how long work will take.

Communication

  • You are learning to collaborate with team members in various roles (e.g. other engineers, PMs, designers)
  • You know when to keep digging and when to ask for help. You know when you are stuck and need to be unblocked.
  • When you learn something new, or figure out the solution to a problem, you let the team know and write documentation that helps others when they encounter similar issues if applicable.

Level

2

Title

Software Engineer

Experience

2-6 years

Role Highlights

  • You build medium to large scale features, sometimes with not-so-well-defined requirements.
  • You give higher-level status updates.
  • You help mentor new hires.
  • You understand why the things we build are important to the business.
  • You collaborate with Product to give early feedback about user stories and sometimes fill in the blanks.

Domain Expertise

  • You understand the technical concepts necessary to do your job effectively and are aware of industry trends in your domain.
  • You have a good sense of where to find answers and are able to grow your own knowledge both with and without guidance.
  • You have an intermediate understanding of the underlying OS and infrastructure your code runs on.

Programming / Problem Solving / Delivery

  • You are able to read, comprehend and evolve other people's code.
  • You almost always prefer the simpler solution over the “clever” one.
  • You gravitate towards solutions that have the least amount of moving parts.
  • You utilize new technologies, patterns, and the domain expertise of fellow engineers to supplement your own skills.
  • You are learning to break down large problems into smaller, more manageable ones.
  • You have strong debugging skills, allowing you to determine source of issues in unfamiliar code or systems.
  • You estimate accurate timelines for tasks and deliver work at a steady, predictable pace to hit your deadlines.
  • You pay close attention to code execution performance.
  • You identify important tradeoffs, balance short-term needs with long-term goals, either independently or with your team.

Communication

  • You collaborate effectively with your teammates, both a mentor and a mentee, and with others outside your team, and with people in other roles (e.g. PMs, designers, managers).
  • You are able to take in vague requirements and ask the right questions to ensure they are clarified.
  • You have a sense for when and how to appropriately and effectively offer feedback.
  • You seek out and receive constructive criticism well and do not express territorialism over your work.
  • You actively participate in interviewing and provide thoughtful feedback.

Level

3

Title

Senior Software Engineer

Experience

5-10 years

Role Highlights

  • Your work extends to many parts of a product or system and sometimes across systems.
  • You deliver projects independently or by leading your teammates to do so.
  • You enable other engineers on your team to be successful.
  • You sometimes challenge why the things we build are important to the business and can present alternatives.

Domain Expertise

  • You have strong, well-founded opinions about how to build software in your domain, but you're adaptable and open to new ideas.
  • You closely follow industry trends relevant to your domain and understand how to apply them to your work as appropriate.
  • You share your knowledge with your coworkers.
  • You have a strong understanding of the underlying OS and infrastructure your code runs on.
  • You have accumulated a sizeable amount of knowledge but it finally dawns on you that percentage-wise your knowledge is declining ;)

Programming / Problem Solving / Delivery

  • You are able to identify and solve issues even when they are not in your domain.
  • Your technical planning has shown to reduce failure scenarios and identify edge cases early on.
  • You break down complex problems into smaller, more manageable ones, and help others to do the same.
  • You are adept at making decisions that involve a significant number of factors and have broad implications.
  • You can collaborate on planning large amounts of work with reliable estimates of time, effort, and risk, and you help ensure your team can hit deadlines.
  • You ensure performance and scalability are baked into your solutions and your team’s solutions.
  • You understand how multiple projects - worked on by you and others - intersect and ensure minimal friction in their release.
  • You work effectively at a variety of speeds: fast when risk is low and time is tight; more deliberately when a cautious and coordinated process is warranted.
  • You know when to deviate from standard practices.

Communication

  • You quickly extract core issues from discussions and meetings. Your presence makes meetings more productive.
  • You are adept at giving and receiving constructive feedback and you both give and receive feedback clearly and with empathy.
  • You explain technical concepts clearly and with patience, and adjust your communication based on the audience. You offer help when asked, but you also know when to step back and let others work things out on their own.
  • You're an attentive and empathetic listener. You ensure that everyone you're working with gets a chance to share their thoughts and that they're heard.

Level

4

Title

Staff Software Engineer

Experience

8+ years

Role Highlights

  • You choose new technologies.
  • You have deep technical expertise in a business-critical area.
  • You do serious research to evaluate and test options.
  • You understand the implications and trade-offs of reliability, scalability, operational costs, ease of adoption, recruiting, etc.

Domain Expertise

  • You use your expertise to improve Persado's capabilities in your domain.
  • You actively share your knowledge and seek opportunities to teach others about your domain.
  • You thoughtfully and practically introduce concepts and technologies from the industry to solve important problems.
  • Work you have done or that is based on your expertise has consistently been successful. Your expertise helps projects and teams achieve and exceed their goals.

Programming / Problem Solving / Delivery

  • Your solutions are consistently successful across multiple dimensions, including performance, scalability, robustness and maintainability.
  • You create architecture that does not rely on you personally, and is robust against single points of failure, both in terms of systems and people.
  • Your architectural proposals are informed by industry literature and you are able to develop enough domain expertise in the problem space to understand technological tradeoffs at a sufficiently deep level.
  • You are able to look ahead 6-12 months to identify areas of greatest need for a particular large system or project, and turn this into a roadmap with actionable milestones.
  • You bring together the work of multiple teams and individuals into a cohesive, achievable plan that aligns with goals and deadlines.
  • You devise, apply, and share novel and nuanced ways to ensure the quality, production readiness, and continued health of complex systems.
  • You incorporate awareness and understanding of work happening outside your team to minimize surprises and make projects more likely to succeed.

Communication

  • Your documentation ensures that systems/architectures can be maintained or built upon by people who were not originally involved in building them.
  • You help disparate groups of people collaborate, identify common goals, and reach consensus. Your facilitation skills keep conversations productive.
  • You adapt your language to meet the needs of various levels of technical and non-technical audiences. Others seek you out because you're approachable, respectful, and they know they will learn from you.
  • You not only practice mindful communication and active listening in your interactions but encourage these practices in others.

Individual Contributor Track - Reliability Engineer

Level / Title / Experience Role and Competencies

Level

1

Title

Reliability Engineer

Experience

0-3 years

Role Highlights

  • You contribute to resolving issues that have defined solutions, while learning how services should be operated sustainably, reliably and efficiently.
  • You take specific direction from your teammates to understand the systems in scope for your team and to contribute to the team's maintenance and automation efforts.

Domain Expertise

  • You understand the basics of OS, networks and hardware and can quickly debug basic system issues.
  • You are learning to understand a typical full stack application (client/load-balancer/frontend/backend/DB) and use the right tools to troubleshoot system issues.
  • You ask questions to support your own continuous learning.
  • You learn from your own research and from those around you, seizing opportunities to increase your knowledge.
  • You primarily focus on improving your craft as an SRE

Programming / Problem Solving / Delivery

  • You understand the scope of work before taking on tasks.
  • You recognize when you don't yet have the experience or knowledge to solve a problem and reach out to others for help or guidance.
  • You prepare to work on new tasks by thoughtfully planning an approach in advance, and by confirming its validity with your team.
  • You write clean and readable code.
  • You verify your work by testing it yourself before asking others to review it.
  • You collect and incorporate feedback (such as code reviews) to ship your work.
  • You follow your team's best practices to bring your work to production.
  • You take ownership of your work after it's released and quickly address issues as they arise.
  • You participate in your team's planning and are learning to estimate how long work will take and how to prioritize tasks that add the most value.

Communication

  • You are learning to collaborate with team members in various roles (e.g. other SREs, software engineers)
  • You know when to keep digging and when to ask for help. You know when you are stuck and need to be unblocked.
  • When you learn something new, or figure out the solution to a problem, you let the team know and write documentation that helps others when they encounter similar issues if applicable.

Level

2

Title

Reliability Engineer

Experience

2-6 years

Role Highlights

  • You execute on defined projects to achieve team-level goals.
  • You independently define the right solutions or use existing approaches to solve defined problems.
  • You prioritize the right things and when necessary you propose appropriate scope adjustments.
  • You effectively participate in the core processes of your team, including recommending and implementing process improvements.

Domain Expertise

  • You understand operating systems, networking and hardware well enough to debug system issues and identify system bottlenecks.
  • You begin to understand how systems fail and work with teams to reduce the risks.
  • You are able to contribute towards making common software delivery processes safer and more efficient using established tooling such as containers or deployment pipelines.

Programming / Problem Solving / Delivery

  • You translate ideas into clear code, written to be read as well as executed.
  • Your code is free of glaring errors - bugs are in edge cases or design, not mainline paths - and is well documented and well tested with appropriate use of manual vs automated tests.
  • You code with both high throughput and appropriately high quality.

Communication

  • You can effectively collaborate to get work done.
  • You work with your manager to manage conflict with empathy and cooperation in mind.

Level

3

Title

Senior Reliability Engineer

Experience

5-8 years

Role Highlights

  • You independently identify the right solutions to solve ambiguous, open-ended problems.
  • You independently identify and deliver solutions that ensure the resilience and reliability across multiple systems.
  • You actively level up less-experienced members of your team by helping them with their craft, providing guidance, and setting a good example.

Domain Expertise

  • You understand operating systems, networking and hardware well enough to quickly debug complex issues and identify the major system bottlenecks.
  • You are able to identify opportunities to improve system’s reliability such as utilization, scalability, efficiency and drive the implementation.
  • You know how complex distributed systems fail and look for ways to protect the software and system.
  • You contribute to interviewing and assessing candidates to help us build a diverse and talented team.

Programming / Problem Solving / Delivery

  • You write code that addresses the heart of the matter, avoiding over-engineered solutions, but that is also appropriately flexible, reusable, efficient and adaptable to changing requirements.
  • You have a strong awareness of the ecosystem of tools and libraries available to you.
  • You ensure high code quality in code reviews.

Communication

  • You avoid blame and solve the right problems, disagreeing and committing when necessary.
  • You proactively share information so the right people are informed and aligned.

Level

4

Title

Senior Reliability Engineer

Experience

7+ years

Role Highlights

  • You autonomously deliver multi-phase, cross-team reliability efforts.
  • You are an expert at identifying the right solutions to solve ambiguous, open-ended problems that require tough prioritization.
  • You actively level up less-experienced members of your team by helping them with their craft, providing guidance, and setting a good example.

Domain Expertise

  • You deeply understand and can improve the reliability of most of the systems utilized at Persado.
  • You can prioritize fixing major system reliability issues and with appropriate levels of failure for the long term roadmap vs daily problems.
  • You contribute to interviewing and assessing candidates to help us build a diverse and talented team.

Programming / Problem Solving / Delivery

  • You write code that addresses the heart of the matter, avoiding over-engineered solutions, but that is also appropriately flexible, reusable, efficient and adaptable to changing requirements
  • You have a strong awareness of the ecosystem of tools and libraries available to you.

Communication

  • You foster effective communication across teams and promote inclusivity.
  • You tailor your message to your audience, presenting it clearly and concisely at the right level.

Level

5

Title

Staff Reliability Engineer

Experience

10+ years

Role Highlights

  • You save the planet from alien invasions.

Domain Expertise

  • You have laser eyes.
  • You can fly at supersonic speed.
  • You have supermassive strength.
  • You can time travel.

Manager Track

Level / Title / Experience Role and Competencies

Level

1

Title

Engineering Team Lead

Experience

4+

Role Highlights

  • You have the technical skills of a Senior Software Developer.
  • You can manage a team of up to 8 developers.
  • You can handle all aspects of the product(s) you own - planning, development, deployment and maintenance.
  • You collaborate with Product and QA to make sure releases go on time with the highest quality in mind.
  • You take responsibility for the code your team deploys to production.

Leadership / Management / Planning

  • You have the ability to positively impact your team and motivate them to achieve their goals.
  • You help your team make sure user stories have no missing or contradicting pieces.
  • You ensure user stories are reasonably priced and communicate potential planning conflicts early on.
  • You give your team the autonomy to choose their work and do their work.
  • You are able to delegate the right tasks to the right people when needed.
  • You are capable of identifying the most high-value tasks and keep your team focused on them.
  • You and your team are able to consistently execute drama-free deploys to production.

Communication

  • You have regular and effective 1:1 meetings with your team.
  • You make sure mentors have regular 1:1 with their mentees.
  • You regularly communicate accurate status of the product or projects you own to all stakeholders.
  • You contribute ideas and suggestions to the product managers constructively.
  • You do not have an "us vs. them" mentality with other stakeholders and you make sure no one in your team does as well.

Level

2

Title

Director of Engineering

Experience

10+

Role Highlights

  • You have the technical skills of a Staff Software Developer.
  • You are able to manage 2-3 developer teams.
  • You align the activities and projects of your team(s) with company goals.
  • You mentor team leads and identify developers who are capable and willing to become a team lead.
  • You help remove barriers, both between your own team(s) and also between them and external teams they work with.
  • You ensure a certain level of consistency across processes, best practices, and tools used by your teams.

Leadership / Management / Planning

  • You are able to identify headcount needs and handle the recruitment process as well as decide when to let people go.
  • You help manage resources and priorities across teams and move resources between teams when necessary.
  • You ensure that your team leads remain aligned to identify and coordinate changes made within one team that will impact components used by others.
  • You allow your team leads the autonomy to make decisions both within their teams and between themselves, acting as a mediator or tie-breaker, with executive decisions being rare.
  • You work with your team leads to design and document high level architecture for epic-level requirements or “greenfield” applications they will own, and you empower them to decide lower level implementation details using the higher level architecture as a guide.

Communication

  • You conduct regular and effective 1:1 meetings with each of your team leads.
  • You make a conscious, occasional effort to gather feedback from some of the individual contributors on your teams.
  • You regularly report an accurate status of your teams and related projects to all stakeholders.
  • You help educate the Engineering team as a whole, or empower the team members best suited to do so, with regards to any newer technologies and tools that are being internally adopted.

Level

3/4

Title

Sr. Director of Engineering / VP Engineering

Experience

15+

Role Highlights

  • You have the technical skills of a Staff Software Developer.
  • You are a team builder.
  • You enable the overall culture and values of the engineering team.
  • You make sure products are built according to business goals and that they are shipped on time.
  • You make sure the entire engineering team has all the resources they need to continue their education and hone their skills.
  • You are dying to code but don’t have much time for it :(.

Leadership / Management / Planning

  • You decide how to hire, what kind of people you hire and how to retain good talent.
  • You actively participate in mentoring new and existing engineers.
  • You ensure your team has the right processes and tools to be effective.
  • You collaborate with heads of other teams on the long-term roadmap of the company.

Communication

  • You provide technical guidance to the engineering team as well as non-engineering stakeholders.
  • You work closely with the heads of Product Management, Sales, Marketing, and other groups and make sure the teams are working together well.
SRE job ladder is based on the SRE job ladder by Dropbox

Written on December 17, 2019 by Yoni Baciu, VP Engineering