Skip to content

Latest commit

 

History

History
330 lines (264 loc) · 26.9 KB

engineering_bands.md

File metadata and controls

330 lines (264 loc) · 26.9 KB

Engineering Job Bands

Band Overview

Our job bands are listed below in order of experience level. Band levels (which maps to pay scale) is indicated by numerical values in parentheses.

NOTE: Scopes, skills, experiences, behaviors, and mindsets of the lower bands cascade up into the higher bands.

Engineers

Engineering Management

Role Overview

Roles are mixed in to the engineering bands, providing more specialized scopes, skills, mindsets, and behaviors.

NOTE: Scope should change, but experience and mindset should not.

Bands

Engineer I (Band 1)

Scope

  • You will write readable code, adhering to language, framework, and style-guide conventions. You follow good coding principles such as DRY, well scoped functions, and small commits.
  • You will provide consistent, sufficient, and comprehensive test coverage.
  • You will fix bugs and associated tests, backfilling coverage starting with a failing test for each of the bugs to be fixed.
  • You will complete stories as part of a larger project.
  • You will actively participate in and contribute to team process including planning, standups, and retros.
  • You will maintain ticket state and keep stakeholders apprised.
  • You will produce constrained, focused, fully articulated pull-requests.
  • You will participate in on-call rotation, using the experience to learn from more senior engineers and understand our systems.

Skills & Experience

  • You possess a rudimentary understanding of computer science fundamentals: data structures, methodologies, and strategies.
  • You have practical knowledge in the specific programming language(s) and framework(s) used by your team.
  • You are capable of diagnosing problems, planning and applying fixes.
  • You are motivated to learn new technologies and techniques and demonstrate an ability to turn these learnings into new skills and experiences quickly.
  • You can communicate your understanding of a problem and your proposed solution.
  • You are familiar with deploying working software.
  • You have a good handle on the development processes we employ (Scrum, Kanban) and associated tools we use (Git, Jira, Confluence).

Behaviors & Mindset

  • You are emotionally mature & humble. You care about being effective over being right. Ideally you’ve made major changes and decisions in your life and learned from the results.
  • You geek out about how cool software is, inhale articles and books on the subject, and enjoy trying out different languages, technologies, and methodologies.
  • Your focus is primarily at the syntax level, focused on code clarity and readability.
  • You are becoming increasingly comfortable with the confidence that testing brings to your coding.
  • You ask for reviews of the code you're writing and feedback on the work you’re doing.
  • You seek out mentorship and soak up opportunities for learning.
  • You are focused on making only new mistakes and being able to articulate what you learned.
  • You are hungry and driven to contribute and provide value to your team and to the product and organization. You set aggressive milestones for yourself and do extra to meet them.
  • You are fine-tuning your communication skills: you are an active listener and are able to articulate your thoughts/feelings. You regularly provide updates and ask for help quickly.

Engineer II (Band 2)

Scope

  • You will own a small component or project, guiding it from inception through completion in a timely manner.
  • You design solutions to medium complexity problems, managing simplicity, completeness, performance, and risk-tolerance.
  • You will seek and incorporate reviews; handle testing, instrumentation, deployment, and monitoring.
  • You will provide thoughtful, constructive code reviews.
  • You will take on mentorship of more junior engineers, highlight their accomplishments, and help them find their way in the organization.
  • You will participate in an on-call rotation, applying your expertise to solve problems where you’re familiar, or helping to find the right person to solve the problems where you’re not.

Skills & Experience

  • You have a background and experience in software development — a Computer Science degree (or comparable) and several years’ working experience in non-trivial software development.
  • You possess a deep understanding of computer science fundamentals: data structures, algorithms, and strategies.
  • You have in-depth knowledge of multiple programming languages, frameworks, and/or specialized systems. You are able to discern and articulate the relative merits of each.
  • You have knowledge of how the internet and networking works (i.e. DNS, HTTP, TLS, Certificates, etc) and the tools and services that enable people and devices to connect to services (e.g., browsers, CDNs, proxies, etc).
  • You have some knowledge of and experience with how systems work at scale (e.g. threads, virtualization, configuration management, load balancers, caching).
  • You are skilled in managing your time and the projects you lead or are a part of and can leverage processes, ceremonies, and tools to do so.

Behaviors & Mindset

  • You're championing quality through your own coding practices.
  • You are actively working to hone your craft and be a better programmer.
  • You seek to learn more about the organization, our business, and problem domain.
  • Testing is a natural part of your workflow; you feel better when you're shipping a test. You guarantee your software and are the first to know if something is amiss.
  • You enjoy participating in and providing feedback on design and code reviews. You're socializing and testing your designs for components/modules before cutting code.
  • You are accountable: if you ship something you own it from inception to production.
  • You are collaborative: you work with other engineers on solutions that cut across teams/technologies.
  • You can work independently: you manage your own time efficiently with a strong sense of prioritization.
  • You can manage your workload: you communicate frequently and honestly to stakeholders and yourself about the work you commit to.
  • You are fast-paced: you love the speed of and impact you have in startups. You set aggressive milestones for yourself and do extra to meet them.

Engineer III (Band 3)

Scope

  • You may take on a Technical Lead role on a project, for a particular component or area of the codebase, or for your broader team.
  • You find innovative solutions to complex problems.
  • You will take on an ownership stake in the work of your entire team.
  • You will proactively improve the lot of engineers on call by creating automated tasks, writing runbooks, and ensuring all errors appearing in logs are actual errors rather than simply living with “some we can ignore.”
  • You will contribute to open-source projects on behalf of the organization.
  • You will participate in hiring as a technical interviewer.
  • You take initiative and pitch in. You jump into areas that need your help, you leave code better than when you found it, and you actively contribute to your team’s or the engineering org’s priorities.
  • You are comfortable spiking or creating an MVP in order to ensure we learn quickly, and understand the appropriate tradeoffs to make to do so.

Skills & Experience

  • You have a deep understanding of various pieces of our codebase.
  • You can explain our application architecture, infrastructure, and codebase to others.
  • You have a good understanding of how each component, service, and process affects user experience and system performance.
  • You are a systems thinker. You think about how your designs will affect other aspects of the service and how it will evolve in the future.
  • You have experience building transactional applications at scale. You’ve worked w/ APIs (REST, JSON/HTTP, GraphQL) and know how the server-side works — if you didn’t build it yourself.
  • You’re a skilled manager of the projects you lead or are a part of. You can organize and lead processes, ceremonies, and tools to do so (e.g. sprint planning sessions, standups, task tracking boards, risk plans.)

Behaviors & Mindset

  • You're championing quality throughout your team.
  • You have a passion for scale and performance. You think people deserve access to their data in milliseconds and feel slow web pages are an insult. You worry about what happens when we have 100x more customers, but are practical and experienced to know how to solve what you need to right now.
  • You test components and microservices comprehensively — both in isolation and across internal systems and external services.
  • You're leading design conversations and proposing design specifications for components, interfaces, and services.
  • You're bringing more to code reviews than review, actively raising the bar for code quality, scalability, and confidence.
  • You are accountable not only for your own work, but for those of your teammates.
  • You are someone with extremely high standards. You’re practical and know perfect is the enemy of good, but you aspire for us to be great.
  • You are an owner. You feel personally accountable and responsible and know seeing the problem is less than half of it. You look for problems and inefficiencies and find elegant solutions to them before they become major issues.
  • You stay on top of risks. As our organization becomes commonplace around the world, the products and services we provide and data we store will be more and more valuable. It is your job to make things highly available, performant, and secure as appropriate.

Staff Engineer (Band 4)

Scope

  • You will own large components, systems, or projects, coordinating and communicating with teams and leads across the organization.
  • You will design solutions to high complexity problems, with high-availability and high-reliability in mind.
  • You will instigate design discussions and facilitate engineering-wide learning.
  • You will represent engineering across the organization.
  • You will be the primary driver of resolving production issues, holding post-mortems, and owning long-term fixes.
  • You will take on independent greenfield projects with an eye to furthering the products and services of the organization.
  • You help decide when it is appropriate to spike or create an MVP in order to ensure we learn quickly, and can rally the team around the appropriate tradeoffs needed to do so.

Skills & Experience

  • You have a deep understanding of the landscape of our codebases, components, and services.
  • You have a mastery of your primary languages and frameworks.
  • You are up to date with the landscape of technologies and techniques and able to evaluate their impact on the organization and its products and services.
  • You understand and drive techniques for improving engineering productivity.
  • You are experienced with a wide variety of development approaches, patterns, and implementation styles.

Behaviors & Mindset

  • You are actively seeking out opportunities to teach and mentor fellow team members.
  • You are actively pushing back on over-engineered solutions. Conversely, you are advocating for improving under-implemented solutions.
  • You are quick to revisit past assumptions - the solution that worked 'then' may not be the right solution for 'now.'
  • You help determine team goals, KPIs, and projects necessary to deliver on those goals / measure KPIs.
  • You actively contribute to motivating and growing the team. You're asked to provide performance feedback and input on opportunities for individual growth.
  • You are a picture of responsibility and accountability. The organization depends on you.
  • You play a key role in hiring and promoting the organization as an employer.

Principal Engineer (Band 5)

Scope

  • You will facilitate our most impactful architecture, language, framework, and component decisions.
  • You will proactively dive into teams or projects that need guidance or resources.
  • You will take on projects balancing strategic importance to the business and long term importance to our technical foundations.

Skills & Experience

  • You are known inside the engineering organization and outside as a master of your primary languages and frameworks.
  • You are able to represent the engineering organization to the outside world.
  • You are an authority in multiple technical disciplines, languages, frameworks, and systems.
  • You demonstrate a unique and extraordinarily effective problem solving perspective and approach.
  • You are capable of developing entirely new implementations of industry solutions: data structures, frameworks, libraries, services, hardware, etc.

Behaviors & Mindset

  • You are an evangelist for the engineering organization and the work we do in the interest of helping us hire/retain fantastic engineering talent.
  • You are a key member and decision-maker in the engineering leadership team. Your opinion will carry significant strategic weight.

Engineering Manager (Band 4)

Scope

  • You drive great execution. You work with the team to enable execution including implementing appropriate processes, setting appropriate expectations, managing risks, managing resource allocation (aka managing the balance of scope/schedule/resources), and removing blockers.
  • You develop a quality playbook for your teams and area(s) of ownership, including standards for pull requests, code reviews, testing, and monitoring.
  • You ensure the team owns the operation of data, systems, and apps in production. You drive resolution of critical issues, root cause analysis-driven actions.
  • You drive hiring, motivation, growth with everyone in your team. You develop and calibrate a thorough understanding of employees’ motivations, strengths, and growth opportunities. You work to align opportunities for personal growth with prospective impact to the organization. You provide constant, real-time feedback to the team. You create a self-managing team.
  • You ensure the team continuously improves. You establish goals and KPIs for the team and/or technical scope, set up processes to ensure we continually track and learn, and drive priorities to improve. You orchestrate improvement using root cause analyses, postmortems/retrospectives, and other processes.
  • You cultivate a great culture where team members can do their best work. You promote ownership and accountability, high I/O, learning and teaching, good decision making, and a push for very high standards.
  • You build relationships. You build, maintain, and invest in relationships inside and outside of the org, and ensure the team does the same. You promote transparency through regular updates on priorities and status.
  • You ensure the team has clear goals, roadmaps, and priorities that are well informed by and socialized with partners and peers across the organization. You work end-to-end to ensure we minimize technical and functionality gaps between teams.

Skills & Experience

  • You are a rapid learner that quickly ramps on new languages, frameworks, and systems.
  • You have a strong understanding of Envoy's data, application, and systems architectures.
  • You are a systems thinker: you think end to end about how designs and changes affect the overall service, architecture, codebase, and users, and how it will evolve in the future.
  • You understand and drive techniques for improving productivity.
  • You understand and drive techniques for leading projects.
  • You are experienced with a variety of growth and leadership strategies, tactics, and scenarios.

Behaviors & Mindset

  • You act with and teach appropriate urgency when the situation calls for it. You feel personally accountable and responsible. You look for problems and inefficiencies and find elegant solutions before they become major issues.
  • You are high I/O, emotionally mature, and humble. You are a good, deep listener. Likewise, you share info proactively and effectively. You care about being effective over being right. You accept feedback willingly, seeking opposing points of view.
  • You are an open-minded learner. You live to learn new things, like staying up to date on new technologies, tools, and techniques. You are inspired by what's possible as well as what people inside and outside Envoy know, and eager to incorporate the best. You experiment, challenge status quo, and take appropriate risks.
  • You are empathetic, happy when helping others succeed. You drive and facilitate clarity when there's ambiguity in what's needed.
  • You are uplifting. You encourage and shine a light on the team, individual players, and outstanding work. You raise the visibility of the team’s work within the organization. You mentor employees (on their team or across the organization), encouraging and guiding them in leveling up.
  • You invest; you make wise, informed decisions about where you invest your time and help the team determine how to best allocate their time.
  • You maintain extremely high standards while being practical. You know perfect is the enemy of good, but aspire for great.
  • You live and model Envoy values.

Director of Engineering (Band 5)

Scope

  • You masterfully handle the scope of the Engineering Manager band and do so where and when needed, for example in the interim while we are hiring or growing a manager.
  • You may have more than one team under your purview. You drive great execution of these teams and/or projects. Optionally, you may lead a foundational, risky, or trailblazing project for the organization to completion.
  • You architect repeatable, scalable processes, ceremonies, and methodologies that enable teams to autonomously set appropriate expectations, manage risks, manage resource allocation (aka manage the balance of scope/schedule/resources), and remove blockers.
  • You facilitate & drive technical roadmaps and significant technical decisions, and the execution of the decisions with the full buy in, help, and support of the team.
  • You ensure your teams are continuing to get better, through goals and KPIs, retrospectives, and priorities to improve. You help set aggressive, aspirational, and inspirational goals that helps the teams unlock their best work.
  • You drive staffing and budget planning for your areas of ownership. You ensure your teams are aligned to best accomplish the goals defined by and set forth for your team. You ensure teams have what they need to execute on delivering high quality software.
  • You grow leaders at every level of your org. You diagnose and improve motivation both individually and at scale within your team(s). You ensure our standards remain high for both culture and talent.
  • People see you as reliable and credible across the organization and trust you to lead large scale initiatives. You are a partner that helps make things better. You are conscientious and do the right thing. You cultivate these same behaviors in your teams and multiply the effectiveness of others.
  • You actively contribute to and/or lead Engineering-wide and Envoy-wide strategies, changes, improvements.

Skills & Experience

  • You have mastery over the skills listed for Engineering Manager
  • You have broad and deep experience with a significant number of teams, projects, codebases, systems, and situations, and (optionally) companies and have gained insights and patterns you can apply to a diverse set of situations.

Behaviors & Mindset

  • You embody and model the Manager Behaviors and Mindsets.
  • You view yourself as a teacher and servant leader to your team.
  • You embrace the “First Team” concept and make decisions considering the bigger team 1st.

Unlimited (Band 6)

We aim to not have a "capped" organization. At this level of experience and seniority, you can pretty much call yourself whatever you want. You have an exponential impact on the organization and/or industry.


Roles

Technical Lead

Scope

  • You will be responsible for creating and maintaining the delivery plan for a product, project, or codebase.
  • You will fully own the technical direction, architecture, and engineering KPIs for the project and associated code.
  • You will manage the deliverables, priorities, and risks of the project.
  • You will coordinate with other teams (typically Product, Design, and Support) as needed to bring the work to conclusion.
  • You will run an inception for the project, bringing together key stakeholders and core team members to define scope; set goals (and antigoals); assess risks; identify personas, roles, and activities; and produce an initial backlog of stories.
  • You will lead agile ceremonies for the core team, including: storytime, sprint planning, standups, weekly discussion and retrospectives.
  • You will drive the project's stories through estimation, selection for development, review, testing, deployment, and acceptance.

Skills & Experience

  • You have successfully managed small-scale projects. You can organize and lead processes, ceremonies, and tools to do so (e.g. sprint planning sessions, standups, task tracking boards, risk plans.)
  • You have led design conversations and proposed design specifications for components, interfaces, and services.
  • You have successfully managed your own workload, particularly work involving coordination with other team members.
  • You are able to communicate clearly and concisely both to technical and non-technical audiences about scope of, methodologies employed in, and state of a project.
  • You are able to discern when it is appropriate to spike or create an MVP in order to ensure quick learnings and can rally a team around the appropriate tradeoffs needed to do so.

Behaviors & Mindset

  • You are actively pushing back on over-engineered solutions. Conversely, you are advocating for improving under-implemented solutions.

Data Engineer

Scope

  • You will build, utilize, and support tools that enable us to become even more data-driven than we already are.
  • You will partner closely with anyone and everyone across the company to build dashboards and extract insights. The goal is to teach folks how to fish, not fish for them. That can come through building the 1st rev, helping with more advanced queries, dashboards, and views, or simply pairing and teaching.
  • You will do linear regression, machine learning, and stochastic modeling where appropriate to find insights and enhance our products.
  • You will drive quality into our data pipeline and ultimately data, be it through good standards, in-depth and helpful reviews, data validation methods, anomaly detection and alerting, multivariate experiments w/ proper control group(s), partnering with engineering on data storage and logging, well-thought out ETL, and clearly and succinctly documenting where and how funky 3rd party data becomes our clean, gold-standard set.
  • You will facilitate decisions on standards, frameworks tools tools, build versus use, and best practices. We try and keep our data and tools simple, clean, readable, and consistent to maximize our time on the organization’s problems.

Skills & Experience

  • You have a background and experience in data analytics and/or data science, and several years’ working experience in non-trivial data environments.
  • You have a strong proficiency with constructing efficient SQL (no select *'s!) and ideally can program in R and/or Python (w/ Numpy, Scipy).
  • You have experience with algorithms, tools, and techniques for data mining, linear regression, machine learning.
  • You have a knowledge of and experience with where the data comes from and how it makes it through the pipeline into a query result or interface. You’ve worked 1st hand (or in close partnership with an engineer) with various data storage technologies, pipelines, ETL, and visualization systems at scale. We use PostgreSQL, Redshift, Looker, DBT, Stitch, Split.io.

Behaviors & Mindset

  • You are adamant that data don’t lie. You are passionate about finding the insights and “truth” that data can give: it’s a key reason why you get up every day.
  • You are a big picture, systems thinker. You think about how the whole is a sum of many parts and how we can properly measure them end to end such that we have the per context for insights.

Operations Security Engineer (“OpSec”)

(Forthcoming)

Scope

Skills & Experience

Behaviors & Mindset

Systems Engineer (“SysEng”)

Scope

  • You will build and support infrastructure for global enterprise scale, capable of thousands of requests per second.
  • You will support our culture of “you build it, you <watch, run, secure> it” through support and tooling that scales with a rapidly growing eng team. This includes: dev tooling with CI/CD pipeline; testing systems and environments; infrastructure services (the latest/best from Heroku, AWS, or even GCP); monitoring; alerting tools and methodologies; security services and tooling.
  • You will use external services whenever they make sense: we don’t need (or want) to build everything in-house!
  • You support a little bit of tech for our employees, when and where appropriate.

Skills & Experience

  • You have experience with Heroku, AWS, GCP, and/or an equivalent cloud services provider. (It’d be a surprise if you didn’t at least play with AWS and GCP these past few years.)
  • You have experience with scale and performance. You think people deserve access to their data in milliseconds. You worry about what happens when we have 100x more customers, but are practical and experienced to know how to solve what you need to right now.
  • You have experience building and deploying development environments using some combination of bash scripting, Docker containers, and the like.
  • You have experience with security systems, techniques, and tools. As our organization becomes commonplace around the world, the data we store will be more and more valuable. It is your job to make our storage practices a no-brainer for our customers.

Behaviors & Mindset

  • You are an advocate for the triumvirate of efficiency, stability, and reliability.

License

CC BY-SA 4.0

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.