The below titles describe seniority along four main axes:
Skills (knowledge) and scope: (Airship value Grit)
- Technical skills
- Domain knowledge
- Contribution level and scope of work
Collaboration and communication: (Airship values Collaboration, Diversity)
- Collaboration and interaction within and outside the team
- Communication both internal to team and external to cross-functional team
Leadership and mentoring: (Airship value Integrity)
- Independence and self-direction
- Coaching and mentoring
- Culture impact within the team and across the company
Customer success: (Airship value Customers)
- Product curiosity
- Customer focus
- Product and market landscape knowledge
Expectations for each role along these dimensions are additive, which means you are expected to meet expectations for the role you are in and all the ones below your title.
Most industry ladders focus almost entirely on the first of these four and expect anyone showing signs of good mentoring or leadership to move directly into management. This approach often takes very capable, happy engineers and turns them into mediocre, unhappy managers. That's bad for everyone involved.
Engineers focused on their individual contributions within a technology or team focus.
Entry level engineer, building experience working closely with mentors
- Basic CS skills and some knowledge of coding in one or more languages.
- Focused on learning our stack, best practices, and codebase.
- Writes clean code and tests, iterating based on feedback. Participates in code reviews and technical design.
- Works on scoped problems with guidance.
- Able to present and discuss work with other engineers, and receptive to feedback and coaching from the team.
- Effectively communicates work status to teammates, program manager and manager.
- Proactively asks questions and voices concerns or need for clarification from teammates and management.
- Shows independent initiative and problem-solving, and respects team and company values.
- Has a project/team-level impact.
- Objectively evaluates whether they’ve met their goals.
- Ships features with limited but measurable impact to customers and other teams.
- Commits to and completes tasks within the expected time frame, holding themselves accountable.
- Builds estimation skills and continues to learn tools and technical stack.
- Participates in on-call rotation with support from their functional team.
A competent engineer with limited experience, able to work well with others and build or improve important features with minimal guidance and oversight.
- Capable in one or more core problem domains: e.g., web, mobile, data, or systems programming.
- Focused on expanding proficiency in our code base with a solid understanding of some areas.
- Proficient with their team's recommended development tools.
- Familiar with testing best practices, core development tools and can write code that their team feels is reasonably maintainable.
- Scopes and implements project-level solutions with moderate guidance from senior members of the product team.
- 2+ years of relevant experience.
- Provides detailed code reviews for teammates. Helps document idioms and best practices.
- Reliably attends meetings, and proactively communicates in advance when they will be absent.
- Communicates clearly and collaborates professionally with teammates and peers.
- Escalates blockers quickly, clarifying product requirements and sharing assumptions.
- Seeks feedback to improve and receives it well.
- Identifies quality and reliability issues in systems they maintain. Seeks input from teammates and outside experts on systems and feature design.
- Inspires teamwork. Trusts teammates and assumes good intent. Able to voice concerns in a constructive manner. Can disagree and commit.
- Can help new hires and associate engineers get up to speed with the team's coding style and existing code base.
- Consistently delivers systems and features that provide significant value to customers and other teams.
- Able to collaborate with senior project members to break down tasks, plan, estimate, and cut scope to ship on time.
- Responds to escalated customer issues and incidents in a proactive, timely fashion delivering good quality fixes.
- Takes ownership of customer issues and participates in on-call rotation.
Experienced engineer, able to work independently on significant features, acts as a mentor to other engineers and actively looks to improve the product and identify areas for improvement.
- Proficient with Airship engineering stack and Airship’s preferred tools and style.
- Able to design interfaces and reusable components for their project/team.
- Independently scopes and implements solutions working with team leads and other senior members.
- Works with the team lead and architect to make well-reasoned design decisions that take into account potential issues, scaling and reliability concerns, maintenance trade-offs, and appropriate levels of abstraction.
- Debugs expertly within their primary focus area.
- 5+ years of relevant experience.
- Builds relationships cross-functionally with outside teams.
- Communicates technical issues and decisions clearly and proactively to a cross-functional audience.
- Offers constructive code reviews, demos, talks, and recommendations to help their team and others be more productive and ship a better product. Suggest solutions to problems impacting the team.
- Participates in interview panels for positions on the same team, providing detailed and useful feedback.
- Consistently helps new hires and more junior engineers to "level up" and become more proficient over time.
- Helps to maintain and improve quality across the stack continuously.
- Accountable end-to-end from planning to deploy. Embraces iterative product development.
- Trusted to do what they say they will do and communicate promptly if there is an issue. Embraces significant challenges and can handle open-ended problems and ambiguity well.
- Understands customer needs and motivations. Understands how engineering projects contribute to business goals.
- Estimates methodically, based on iterative learning. Sets realistic deadlines and cuts scope as needed working with other senior members of the project team. Mitigates risk by shipping frequently and limiting change.
- Takes on a significant share of on-call duties, 5Y review, and other "housekeeping" tasks.
Staff level engineers expand their influence beyond their functional area and team to a larger engineering influence.
A technical leader. An individual who helps plan new features, identify shortcomings and systemic needs of the product. Provides planning and guidance to the team on best approaches. An expert in multiple areas / technology focuses. A greater focus on planning and leadership vs coding.
- Able to design and contribute to systems in numerous areas of the product.
- Facilitates technical decision making, leading work that affects one or more complex systems and mission-critical areas.
- Consistently delivers code that sets a high standard for quality and maintainability.
- Can quickly estimate tasks and has a long proven track record of delivering on time.
- Can successfully plan and execute projects involving multiple developers and complex requirements, prioritizing strategically.
- Defines, documents, and evolves best practices for development in their team's area of focus.
- Works with cross-functional stakeholders effectively to solve problems and make decisions.
- Facilitates inclusive and productive discussion around complex issues.
- Trusted to always share status with all stakeholders and proactively remedy communication issues.
- Sought out as a mentor and provider of technical guidance, kind coaching.
- Goes the extra mile to support their team and others.
- Willing to take on the grungy work needed to get things done.
- Participates in interview panels for positions in a variety of engineering roles.
- Motivates and empowers teammates to achieve a higher level of performance.
- Builds consensus for decisions and helps maintain resilience in periods of change.
- Helps define hiring standards and practices.
- Helps to identify key gaps in product offerings and functionality that will drive significant revenue and customer excitement.
- Tackles hard debugging, incident response, and reverse-engineering tasks.
- Pragmatically plans minimum viable infrastructure for product launch.
- Avoids monolithic deliverables and breaks down complex tasks quickly.
- Uses analytics and product understanding to inform decisions and measure customer impact.
An experienced technical leader. An individual proven to find issues before they happen and advocate for best practices across the engineering organization. Holds themselves personally responsible for the durability and maintainability of the system. A respected voice in all technical discussions and a role model to other engineers. In this role, the breadth of responsibilities greatly increases while the depth decreases.
Management Equivalent: Manager
- Understands deeply the entire architecture for a major part of our business and is able to articulate clearly the scaling and reliability limits of that area.
- Contributes to architecture decisions, considering implications to other systems across the company.
- Capable of debugging the hardest problems that the team encounters.
- Quickly breaks down complex problems into potential solutions, knowns, and unknowns, in order to get to solid resolutions faster.
- Focused on technical decision making, Can effectively sell their ideas to other engineers.
- They have a substantial track record of creating major improvements in large business-critical systems around stability, performance, and scalability.
- Defines, documents, and evolves best practices for multiple teams across the company.
- Can influence without requiring reporting authority to do so. Can effectively facilitate cross-functional team work and are influential beyond your individual functional group.
- Consistently in demand for design and code review.
- Can drive groups of disparate interests to decisions. Clearly communicates and sees those decisions through to impact.
- Capable of setting and communicating short- to medium-term strategic direction for part of the technology stack, identifying areas of critical need based on future growth.
- Collaborate with product to hash out ambiguous requirements.
- Actively participates in conversations internally about the direction of major areas of the stack, drives wide-team consensus to the adoption of this direction, and uses this direction to inspire engineers.
- Seen as a role model and mentor to every technical member of your functional team
- Acts as a multiplier by building systems, authoring tools, or introducing policies or patterns that raise the level of productivity across engineering.
- Known for drama-free launches, and owns the technical testing and performance planning for those launches.
- Seeks to fully understand our customers and how they use our systems.
- Knows how to identify/classify potential problems as edge cases so that we don’t have to focus on them and keeps development on the sunny path.
- Finds the balance between doing it right and getting it done.
Principal and Distinguished engineers are focused on planning for the future. They contribute across the entire product ensuring the system runs smoothly, cost effectively, is easy to maintain and fulfills the needs of current and future customers.
A technical expert. Comfortable discussing technical issues on all topics and problem solving across the entire product space. Foresees and prevents potential system issues and advocates for growth focused maintenance of the code base. Provides guidance on best ways to solve problems, and mentors others in implementation of multiple solutions concurrently.
Management Equivalent: Senior Manager
- Helps make critical product architecture and design decisions working with peers and the architecture team. Designs for scale and reliability while thinking about the future of Airship’s stack and product direction. Can do critical R&D.
- Contributes to core technologies used by a variety of teams and shared across products. Core contributor to and maintainer of well-adopted libraries, design patterns, tools, and services. Builds or directs work on tools, frameworks, and projects that improve productivity for many colleagues.
- Maintains a vision of the overall technical direction of the Product lines and feature themes. Helps to define and build out standards for how product features and services are built throughout the company.
- Provides oversight, coaching, and guidance through code and design reviews.
- Expert in designing, implementing, and troubleshooting major portions of our production stack.
- Anticipates technical challenges, exploring alternatives and tradeoffs thoroughly.
- Persistently debugs the toughest issues through the entire stack regardless of environment.
- Collaborates with co-workers across the org to design and document how systems work and interact.
- Drives a meaningful discussion around complex issues to satisfy customer and business needs and communicates resolution.
- Regularly shares information and educates the team on new tools and design patterns
- Ensures adequate communication is happening among team members and stakeholders related to technical solutions.
- Listens and encourages healthy debate. Creates opportunities for teams to buy into proposed solutions and provide feedback.
- Recognized by engineers in multiple teams as an expert mentor and teacher. Leads by example and inspires others.
- Sets a positive example throughout the company for quality and responsibility. Routinely has an engineering-wide impact.
- Builds leaders within their domain. Spreads knowledge of critical systems to team members.
- Trusted to de-escalate conflicts and build consensus between team members about technical matters.
- Able to anticipate and quickly adapt systems and practices to changes in load, usage, and customer requirements.
- Can successfully plan and deliver complex, multi-team or multi-system, long-term projects, including ones with external dependencies.
- Considers larger company context and potential future implications between projects.
- Uses expertise in product space to make decisions. Identifies problems that need to be solved and advocates for their prioritization.
- Resilient to changes in product priorities. Able to reduce complexity and prioritize the most important work for the company.
A principal engineer who has repeatedly over years of experience demonstrated an expertise beyond measure on the product and always holds themselves to the highest standards, both technically and as a supportive team mate.
Management Equivalent: Director
- Deep and broad knowledge of both current and emerging technologies that affect the business.
- Focused on the highest impact, most critical, future-facing technical and product decisions providing guidance and advancing us technically towards business success.
- Creates a compelling technical vision with company-level impact, anticipating future needs. Plans and leads implementation efforts for major redesign, refactoring, and optimization efforts.
- Respected leader and contributor across the company.
- Comfortably communicates complex issues to diverse audiences inside and outside the company.
- Technical spokesperson to describe our stack and architecture to external teams catering details to appropriate audience.
- Often invited as a speaker to industry events. Maybe a published author on relevant technical topics.
- Takes a central role in decision making for both technical and organizational issues.
- Decisions have a direct impact on the long-term success or failure of Airship.
- Helps to reconcile engineering POV with other groups. Works with the exec team on high-level technical guidance.
- Sought out by other employees as well as external teams and individuals as a mentor and educator.
- Defines practices and processes that have an oversized, positive impact on the entire organization's output.
- An expert on the company’s platform, architecture, and workflow. Leads complex initiatives with long-term, strategic value.
- Demonstrates a deep understanding of customer needs and the competitive landscape.
- Able to estimate the impact of and lead efforts that significantly change product roadmap and footprint to meet customer needs.
- Looked to as a model for balancing product and engineering concerns. Trusted with any critical project or initiative.
Management Equivalent: Senior Director
Title bestowed only by action of exec staff. Candidates should show all of the characteristics and skills of a distinguished engineer, as well as being critical to the success, reputation, and technical excellence of the entire organization and not just technology. It is expected that this role will have influence outside the company with involvement in market assessment and M&A activities.
- The tech lead role is not a point on the ladder, but a set of responsibilities that any engineer may take on once they reach the senior level.
- You will be working with team members to identify areas for learning and helping them grow in these areas via project work, external learning, or additional mentoring.
- You will be responsible for the entire project and scale yourself by delegating work effectively without micromanaging.
- You should focus on the whole team’s productivity and strive to increase the impact of the team’s work product.
- It is not required that a Sr. or Staff Engineer should work as a tech lead to progress, but it is the most common way for engineers to grow to a Principal Engineer.
Architecture deals with the significant design decisions. These by definition are things that would be difficult to change (take a long time) or would have widespread impact throughout the system. The ability to distinguish between what is design and what is architecture takes experience and knowledge about the environment. It’s the Architecture Teams responsibility to help identify when architecture choices are being made and help steer them to an optimal outcome. We are trying to avoid any unintentional architecture and design that is unsustainable.
Why do we have an Architecture Team?
- To be helpful to Engineering.
-
- Communicating with the Architecture team to identify trends that need general solutions. Converge on uniformity.
-
- Bring examples and processes from other successfully run projects.
-
- Ensure that practices are sustainable. This means ensuring that we are applying/creating a standard wherever possible.
- Negotiate requirements with Product. Help guide requirements so they are actionable by Engineering.
-
- What does that mean?
-
- Who is asking for this?
-
- Would it satisfy the requirement if… ?
- To be helpful to Product Management.
-
- Challenge estimates from Engineering. Help identify risks in implementation.
-
-
- Why is this 3 weeks instead of 2 days?
-
-
-
- Would it simplify things if…?
-
-
-
- Could we do X now and Y later?
-
-
-
- X isn’t possible given the current speed of light.
-
How does the Architecture Team help?
- Being Involved in the project as early as possible. Even before the project is resourced with Engineers the Architecture team validates that’s feasible. Good software starts with good requirements. Applying Architecture after the fact isn’t a good position to be in.
- Being embedded in teams that are implemented features. This allows the Architecture Team member to have context as the feature develops. During the course of development requirements and solutions will change. The Architecture member is there to challenge for optimal outcomes, provider larger context and interface with Product.
- Meeting with the other Architecture members regularly. This is how we share broader context about what is happening with the state of development.
This is a variation of the Tech Lead role which has people reporting responsibilities (less than 4 people). This role provides exposure and experience to people who are interested in moving to the management ladder in future. You will be expected to meet all the above requirements for “Tech Lead” role and in addition:
- Undergo some form of management training at the company or outside.
- Conduct regular 1:1 meetings with your team.
- Provide feedback on career growth, progression towards goals, areas for improvement, and praise as warranted.
- You will be writing performance reviews and participating in company review cycles.
Good managers can do a lot to make their team successful, but part of successful management is learning to delegate and stop doing the technical work that you used to own. Day-to-day management work is very interrupt-driven, which makes it hard to consistently produce good code.
Leads a team of 3+ engineers; helps to set project scope and requirements; mentors new team members on both technical and organizational challenges
Sets team goals and direction; determines hiring needs and helps to lead recruiting and interview activities; conducts regular 1:1s with all team members; manages performance for entire team
Aids product team in setting project scope and schedule; keeps team focused on quality and regular releases; works with other team leads to find creative solutions to customer issues
Leads a larger (8+) team of engineers and/or managers; contributes to efforts that cut across teams and projects; improves quality of shared engineering processes such as hiring, planning, and operations
Identifies and develops emerging leaders; sets goals for team members and tracks progress against them; identifies and addresses key talent and skill gaps through hiring, training, and organization changes
Understands and shows good judgement in deciding between engineering and customer preferences, as well as speed vs. quality; educates and informs product, sales, and other roles on current engineering efforts, needs, and contributions
Sets cross-team direction and helps to define global engineering goals; identifies and manages programs to benefit entire engineering group; sets staffing and budget expectations for multiple teams and functional roles
Coaches and develops managers; helps to define performance measurement tools and management processes across engineering; conducts 1:1s as well as level-skip discussions on issues across the organization
Works with product and sales teams to broadly prioritize and scope work for customers; defines and restructures teams and initiatives as needed to best address customer needs
TBD
Owns success of engineering and cross-functional goals; works with other executive leadership and the board to define long-term initiatives; represents the company with vendors, partners, and industry groups
Identifies and addresses leadership needs for entire organization, including continuity and succession planning; owns medium to long-term plans for org growth; helps to set standards for how the entire org measures and talks about success
Able to establish and maintain strong relationships with customers' technical and marketing leadership; supports long-term deal-building and success via broad engineering efforts and priorities
Titles bestowed only by decision of exec staff and/or the board. Candidates should be exceptional in their experience, impact on the organization, and degree of sustained leadership and vision.