Jobs Career Growth

Career Growth

Guiding Attributes

The following attributes appear at each step of growth within Avala. At each stage, they will have different characteristics, but this section will serve as a summary of what they mean, not what they are.

Communication

Communication at Avala is about being able to communicate difficult concepts simply. It's about understanding that clear is kind, and striving to bridge communication gaps between departments and organizations within Avala. Good communication is as much about what you communicate as how you communicate. A good communicator at Avala strives to use the correct communication channels as much as possible and informs others when there are more effective communication channels. A good communicator also strives to provide quality feedback quickly, clearly, and with empathy.

Execution

Execution describes someones ability to take an idea and turn it into reality. The speed, quality, cost/benefit, mental toll of team all play in to how good execution is. Good execution is seamless, and leaves the team and individual feeling graceful and confident.

Technical Skill

The technical skill attribute focuses on level of technical understanding and ability. This is mostly used to describe directly technical things, but can also be used to describe a deeper understanding of first, second, and third order effects of technical decisions.

Self-Awareness

Self awareness at Avala describes someones ability to understand how themselves and their team feels, and use that to increase the effectiveness of all other guiding attributes. A self aware person understands the importance of working on themselves first and ensuring that goals (both for themselves and team) are communicated. A self aware person also understands the impact that their actions, words, and body language have on their surroundings, and uses that understanding to positively impact their environment.

Engineering Ladder

This section outlines the potential paths at Avala. This is the bread and butter of this document, but it's important that all of the above be included because it is weaved into each of these roles at Avala.

The first four roles' (Necessary growth for later paths) attributes are required in any role beyond them, but past Senior Engineer 2, things move to an Individual Contributor and Management track. This ensures that there is room to progress at Avala for both engineers that would love to move to the people side, as well as engineers that want to focus on the technical side. Both are essential to Avala growth as a business, and you should feel empowered to choose either. As with most things in life, your decision is not final and you can move from one track to the other as long as you work to achieve the attributes.

The Extra Responsibilities section provides some extra responsibilities that enable you to demonstrate skills and ownership that can help as you grow along this path. Responsible engineer is not required. Being a Tech Lead is required to move from Senior Engineer 2 to Engineering Manager.

Necessary growth for later paths

Engineer 1

This person is highly motivated to grow as an engineer. They demonstrate an ability to understand and apply core CS fundamentals to real world problems. This person has probably built side projects, or will work on side projects soon. They are capable of learning new things quickly, and brave the fear of getting thrown in at the deep-end. They are focused on growth, learning about the teams processes, becoming more productive, and learning about and following engineering best practices.

Technical Skill
  • Ability to discuss broad core CS concepts
  • Built projects outside of Toucan and demonstrates ability to learn new technical skills through determination and resilience
  • Still learning about existing tools, resources, and processes with the goal of growing as an engineer
Execution
  • Building skills in productivity and collaboration tools such as GitHub, and editor of choice
  • Works with a mentor and their team to complete team projects
  • Becoming capable of completing well defined subtasks of a project independently, and occasionally small projects entirely
Self Awareness
  • Becoming comfortable with a single existing system within Toucans environment
  • Arrives on time to meetings, participates in code reviews even just to get more of an understanding, and honors other team commitments
  • Seeks out and responds well to feedback from peers mentors
  • Treats the team, our customers, and vision with respect
Communication
  • Communicates status effectively to the team through tools that the team can view asynchronously (favro tickets, RFC statuses, PR statuses and assignees, slack channels with requests for reviews)
  • Communicates using our Core Values as a lens
  • Seeks feedback on tasks, processes, and communication channels and handles that feedback well
  • Reaches out to the team proactively for help when stuck using appropriate communication channel
Engineer 2

This is a good engineer that is determined to become great. They are not scared by challenges, and in fact they view them as lessons to greatness. This person has already demonstrated that they are capable of taking well-defined tasks and completing them in a way that follows industry and company best practices with the help of a senior engineer. As an engineer grows in this role, it will feel like things aren't getting easier; that's because the challenges are getting harder. Progress here is in the scope, technical complexity, and time sensitivity of projects. This person consistently asks for help when they need it. They understand the importance of getting unblocked on a problem and realize that there is a balance in trying to work through something themselves, googling for answers, and asking their colleagues for help. This person is sharpening communication skills especially around delivering feedback.

Technical Skill
  • Seeks out opportunities to build proficiency for all relevant technical skills
  • Learns new areas of the codebase and new tech very quickly
  • Provides code reviews promptly and thoroughly that help the writer improve their skill set
  • Writes code that ships quickly and on schedule
  • Seeks out code reviews and successfully integrates the critical feedback from code reviews
  • Code review feedback rarely leads to a re-write before merging
  • Follows style guides and best practices frequently
  • Becoming comfortable diving into many areas of the codebase, not just a single area
  • Learns quickly and rarely makes the same mistake twice
  • Is able to grow and progress steadily with some but not constant feedback from more senior engineers
Execution
  • Makes steady progress in line with estimates
  • Knows when and how to ask for help to become unblocked
  • Trusted to own small to medium sized features from technical design to completion
  • Prioritizes tasks and avoids getting trapped in unimportant details through bikeshedding
  • Learning how to cut scope when necessary to meet core goals on time
  • Understands the end product they are building for their current project
Self-Awareness
  • Manages the responsibility of helping others, attending meetings, etc, without affecting the work they've committed to within the time frame they've committed to
  • Proposes solutions to problems in our processes or product
  • Guides conversations through past experiences in a constructive and helpful manner
  • Looks at all opportunities as a learning opportunity, and actively seeks out feedback on challenging projects using a growth mindset
  • Understands how their work fits into the larger picture, and uses that understanding to help formulate ideas when looking at project requirements
Communication
  • Gives both positive and negative feedback in a constructive way to co-workers and managers
  • Improves clarity proactively on tasks and minimize the need for rework at a later point
  • Describes the current status and impact of current project during standup in a way that is clear and understandable even for people outside of engineering
  • Uses the correct channels of communication, and looks for opportunities to have used an even more effective channel of communication with an emphasis on historical documentation for current and future team members where needed
  • Beginning to develop the ability to communicate technical concepts clearly and simply with non-technical team members
Senior Engineer 1

This engineer is seen as a goto person on their team for tough challenges. They are becoming confident in areas of the codebase and are capable of owning technical decisions for projects of moderate complexity. This engineer builds a lot of complex stuff quickly. They are capable of communicating roadblocks (technical and otherwise) to the correct person(s). They are capable of prioritization for themselves, and beginning to mentor others on prioritization and technical decisions.

Technical Skill
  • Understands large areas of the codebase and is seen as a goto person for multiple areas of the codebase. Uses this knowledge of the codebase to increase speed of development
  • Trusted to come up with technical solutions to tough open-ended problems
  • Mentors more junior members of the team to bring up the skill of the whole organization while still working on building mastery themselves
  • Code review feedback is sought after, respected, and often the source of others' learning.
  • Understands the impact of multiple implementations to the same problem and balances tradeoffs
  • Works in new areas of the codebase with some guidance
  • Understands our release process and handles releases for their own features. Fully understands our build systems: webpack, circleci, etc...
  • Systematically and quickly debugs issues
  • Understands the general broad architecture of the entire system
  • Up to date on industry best practices. Researches and proposes new technologies
Execution
  • Delivers projects in line with their estimations consistently
  • Breaks down large projects into smaller, deliverable chunks
  • Finds solution even in the face of roadblocks, but knows when and how to pull in others when necessary
  • Minimal direction and oversight required
  • Great prioritization skills both help guide the individual and team to work on what's needed most
  • Working to learn how to determine what is essential to a product release and flagging anything that may not be essential, especially as we near a deadline
  • Never gets trapped in bikeshedding. Makes trivial decisions quickly and decisively allowing for more energy to go to more important tasks
  • Trusted to own the execution of medium to large single person projects
  • Understands, and is able to communicate the bigger picture of the series of projects they work on
Self-Awareness
  • Manages the responsibility of helping others, attending meetings, etc, without affecting the work they've committed to within the time frame they've committed to
  • Proposes solutions to problems in our processes or product
  • Brings guidance to conversation through past experiences in a constructive and helpful manner
  • Looks at all opportunities as a learning opportunity, and actively seeks out feedback on challenging projects using a growth mindset
  • Understands how their work fits into the larger picture, and uses that understanding to help formulate ideas when looking at project requirements
Communication
  • Gives both positive and negative feedback in a constructive way to co-workers and managers
  • Works proactively to improve clarity on tasks and minimize the need for rework at a later point
  • Describes the current status and impact of current project during standup in a way that is clear and understandable even for people outside of engineering
  • Uses the correct channels of communication, and looks for opportunities to have used an even more effective channel of communication with an emphasis on historical documentation for current and future team members where needed
  • Developing the ability to communicate technical concepts clearly and simply with non-technical team members
  • Surfaces bad news quickly and clearly without hiding anything. Works to find solutions rather than pointing blame
Senior Engineer 2

This engineer demonstrates mastery in some of their key areas of focus as well as a broad understanding of our full stack. They are seen as a leader on their teams and an incredible individual contributor. They are able to balance both of those responsibilities at a very high level. They demonstrate excellent prioritization skills and are able to take an undefined project, plan it out and implement the plan. This engineer handles all of this in their role and is focused on beginning to have a bigger impact than just themselves. They are proactive in finding and fixing problems across teams, and work to make sure that their are systems in place to ensure their colleagues growth.

Technical Skill
  • Attained mastery in some technical skills, and has a solid understanding of our full stack.
  • Ships quickly and seamlessly because of their mastery
  • Life long learner that is constantly looking to learn new technologies and has a broad understanding of the technical landscape for relevant technologies
  • Trusted to solve tough, undefined problems that are both complicated and affect several areas of the codebase while understanding and clearly communicating the effects of potential technical solutions
  • Code reviews are highly insightful. While being kind, they address high level topics and are seen by the team as a form of coaching
  • Provides technical guidance on decisions that impact other teams or projects with limited information
  • Works in new areas of the codebase with little to no guidance
Execution
  • Track record of hassle free product launches
  • Mastered the ability to determine what is essential to a product release and cutting the scope of the project in a way that product feels comfortable with when the timeline is at risk
  • Trusted to own the execution of medium to large single and multi person projects
  • Coaches others on the team to develop prioritization skills and actively helps the team avoid feature creep
  • Capable of fully testing their own code and writing automation where it makes sense to test
  • Mostly ships code without regressions, and has a system in place for ensuring regression is minimal
Self-Awareness
  • Key player in setting direction for technical projects they are part of as well as influencing decisions upwards
  • Differentiates between nice to solve technical debt and must solve technical debt. Proactively works to tackle must solve debts before they grow out of control.
  • Understands the needs of different units of the business and can build technical solutions with those needs in mind, while communicating to the team why certain decisions were made and what factors went into them.
Communication
  • Plays an active and crucial role in upskilling our entire team through in depth, thoughtful, and kind code reviews, better documentation, and providing technical guidance or being a mentor

  • Works with staff engineers and architects to communicate engineering challenges upwards and provide feedback on projects that they are tackling to give a better view of how those projects will be used day to day
  • Interweaves other departments priorities with their own in order to create a product that improves the whole organization. This involves being clear on those priorities, as well as communicating decisions to a non technical audience
  • Has a track record of identifying and proposing strategies to technical problems affecting their team and getting buy-in on those from their team

Different paths to follow

Individual Contributor
Staff Engineer

This engineer is someone that is excited to tackle some of the hardest problems that need solutions quickly. They often are able to solve problems that are open ended even to senior leadership, and can clearly communicate the solution to the team and back to senior leadership. This person is sought out for help with tough challenges that teams may face, and looked to for technical guidance.

Technical Skill
  • Often sought out for technical guidance to tough, unclear problems because of their ability to anticipate issues from multiple parties beyond the engineering organization and makes architectural and design decisions to avoid them
  • Proven track record of building, implementing, and maintaining vast improvements in stability, performance, and scalability across systems that are critical to the business
Execution
  • Takes complex issues and making them simple, allowing them and the engineering organization to get more done with less work and reducing future tech debt in the process
  • Contributes to a large number of projects that are both core to Toucans success as well as side projects that help Toucan find new opportunities
  • Builds systems, tools, processes and patterns that act as a multiplier to the productivity and happiness of the entire organization
Self-Awareness
  • Trusted to shape broad architecture implementations
  • Responsible for shipping multiple large projects, or big pieces of infrastructure
  • Makes an obvious positive impact on the company's technical trajectory and seen as someone others on the team want to work with because of growth potential and kindness
  • Fully understands the importance of clarity and it's first order, second order, and third order effects
Communication
  • Seen as a mediator and someone that knows when and how to work across teams leading to more effective work for both teams.
  • Involved through active listening and guidance in debates in the effort to help reach a consensus. Can clearly explain why the decision that was made was made
  • Sets medium term technical direction by understanding what the next 6-12 months look like. Is able to prioritize necessary improvements and create a plan to make them happen
Architect

An architect is capable of taking any problem that teams may face, and with the consideration of business goals, help find a solution. They are comfortable working in ambiguity and understand when and how to make things clear from that ambiguity.

Technical Skill
  • Fully understands the architecture of major parts of our systems, and can clearly communicate it's limits, flexibility, scalability and purpose.
  • Makes decisions that can impact the whole system by breaking down decisions to be able to see the potential impacts
  • Helps prepare the engineering organization for the future by always staying ahead of the curve.
Execution
  • Confidently crafts architecture that allows for many potential futures without knowing what the future looks like
  • Track record of delivering large systems to one or more teams at a quality that inspires and motivates others
  • Take complex and undefined problems and turn them into potential solutions with trade-offs for each using a clear and well defined system
  • Debugs anything that the team encounters. Understands when and how to find help for the toughest challenges that an organization would face.
  • Ensures that Toucan's technology is in a good state proactively by setting milestones for the team and ensuring that all the goals are met
Self-Awareness
  • Inspires engineers to continually improve and gets team excited about the technical direction of Toucan
  • Understands that their decisions have a direct impact on Toucan and those decisions are critical in Toucans success as a business
  • Makes broad architectural decisions with very limited information about the future. Uses past experience, and relies on mentors to make the right decisions
  • Fosters strong relationships with product, design, and leadership
Communication
  • Understands the impact of their words and actions as a technical leader within the organization, and uses this to foster great mentorship
  • Communicates through action. Everyone on the engineering team sees them as a role model
  • Leads Toucans external developer communications through telling the world about the cool tech the team is building. External communications focus on technical projects and highlight the team members involved in making them happen
  • Crafts the direction of major areas of our technology by leading conversations and team consensus
  • Comfortable with ambiguity but capable of removing ambiguity for the team when needed
  • Fully responsible for communication from their team to stakeholders. Proactively communicates with team and shares this information with stakeholders
Chief Architect

This engineer ensures that our engineering team is empowered to make technical decisions that will have a positive impact for the tech but also for the business. They understand the subtle nuances between a people management role, and their role on the technical side. They strive to create an environment of growth for the technical staff, and present challenging opportunities for growth that align with business needs.

Technical Skill
  • Is amongst the most highly technically capable engineers as shown through experience on the team
Execution
  • Can handle an undefined problem, build a team, and solve even the toughest technical challenges while leveling up the skills of the team
  • Capable of viewing the companies priorities and using them to inform decisions at a team level on current projects
  • Balances long term technical priorities with organizations priorities.
Self-Awareness
  • While this person is incredibly capable, they are not isolated, nor do they view themselves as the only person capable of anything. They strive to share their knowledge with the organization
  • Can assemble a team that would deliver on business critical goals
Communication
  • Communicates tradeoffs and costs of critical company level issues with senior leadership regularly
  • Communicates deeply technical topics, tradeoffs, and decisions in a way that's understandable by the entire company
Management
Engineering Manager

This person is an engineer that is responsible for the people side of engineering projects. They are comfortable with management practices and are fully capable of delivering large projects according to plan. While this is mostly a management position, this person still jumps into the code base to fix bugs or build small features to ensure they have a good understanding of the codebase at all times without becoming a bottleneck for their team. This person is highly skilled in communication, and uses those communication skills to motivate their team, set clear goals, expectations, and requirements. They work very closely with product, design, and business to ensure that their team is and will be working on things in a way that meets all requirements. This persons prioritization skills are top notch. They consistently ensure growth of their team through in the moment feedback as well as weekly 1:1's with their team members. An engineering manager works to bridge the gap between product and their engineering team, making sure there is an open line of communication, and that all product expectations are met while ensuring that when product specs change, the changes are communicated and scoped appropriately to their team.

Technical Skill
  • Understands project management and is able to use a deeper understanding of product and business requirements and timelines to inform priority and delegation.
  • Understands that visibility is important and works to ensure that the teams work is able to be monitored in production
Execution
  • Contributes to bug fixes and small features while balancing the responsibility of managing a team
  • Clears roadblocks for their team proactively
  • Comfortable managing and mentoring team members of different skill level and areas of focus
  • Leads the delivery of major initiatives on clear timelines
  • Leads weekly 1:1 with team members
Self-Awareness
  • Determines necessary headcount for their team based on scope and timeline of project
  • Motivates the team to focus on the highest impact projects while showing the team how to prioritize and delegate well
  • Works directly with product to manage the scope and get clear expectations of deliverables for the technical side of the product roadmap.
Communication
  • Communicates necessary context and requirements of projects to the team in a way that is both clear and kind
  • Delivers both positive and negative feedback quickly with respect and genuine care
  • Communicates timeline, scope and any major concerns to other stakeholders
  • Identifies areas of technical debt and using goals and priorities from all company departments is able to prioritize eliminating this debt if proved worthwhile.
Engineering Director

This person is a strong leader and sets an incredible example of our values to their organization. They show that working across teams and departments is not only suggested, but required. Their communication skills are amongst the best at the company and can very clearly describe the most technical concepts to non technical team members. They are responsible for setting the goals of the team and ensuring that the team is aware of those goals. This person spends a non trivial amount of their time researching new tech to ensure that their organization is always at it's best.

Technical Skill
  • Continually raise the technical competency of their organization by training or hiring or both.
  • Always up to date on new technologies that could be applicable to their organization
  • Works with architects and their organization to ensure that the architecture and business needs align. Does this by asking questions and ensuring that their organization understands the goals and needs.
Execution
  • Directly works in the codebase to help debug mission critical systems if necessary
  • Finds new processes for building a high performing engineering organization with a focus on people and works to get their organization to adopt the process
  • Active member in the recruiting, feedback, training, and career development processes within their organization.
  • Responsible for headcount planning and forecasting for their engineering organization
  • Ensures that their organization supports new technical innovation while adhering to high code standards
Self-Awareness
  • Upskill senior staff within their organization proactively
  • Understands the balance between technical debt and business goals and strives to create an organization that can prioritize and balance the two, while finding ways to reduce technical debt given the same amount of time
  • Builds highly motivated and functioning teams within their organization
Communication
  • Works with teams other than engineering to create clear implementation plans
  • Highly skilled in communicating very technical concepts to business stakeholders. Also highly skilled in communicating very business oriented objectives to a technical team
  • Uses experience and strong communication skills to collaborate with all stakeholders
  • Works with their organizations to set goals based on the business and technical needs of their organization

Extra Responsibilities

Responsible Engineer

A responsible engineer is an engineer of any skill level that is capable of owning a project. This involves extra responsibility than normal through the form of increased historical documentation and increased code standards. It also is a promise to the future that they are capable of answering questions around the decision making process for code.

Technical Skill
  • Fully understands the nuances of the project and task at hand
Execution
  • Plans, and implements project using RFC's and getting team buy in
  • Documents decisions for historical reference
Self-Awareness
  • Understands the lasting impact of being a responsible engineer: they own the project, and people will ask them questions in the future
  • Writes high quality code that inspires others working in that area of the codebase in the future
  • Reduces technical complexity to ensure it's easy for anyone to understand which reduces their need to answer questions in the future
Communication
  • Proactively communicates status on their projects.
  • Sees the value in their projects for a user, and uses that understanding to prevent scope creep
Tech Lead

This person is most likely a Senior Engineer 1 that is looking to see what the responsibilities of a Senior Engineer 2 or Engineering Manager look like. Acting as a tech lead is not required for moving from a Senior Engineer 1 to 2, but is required to move from Senior Engineer 2 to Engineering Manager. When directly managing, this person handles much of the personal side to engineering on top of their other responsibilities. They handle weekly 1:1's, as well as conversations around career progression. They are excellent communicators and delegators. This is also an incredible time to establish great relationships with business, product, design, data, etc... This engineer is capable of giving feedback quickly and clearly for both positive things and areas of improvement.

Technical Skill
  • Fully understands the nuances of the project and task at hand, and how changes in one area of the codebase will affect other projects
Execution
  • Delegates tasks effectively and ensures their completion without micromanaging (Balance delegation without abdication)
Self-Awareness
  • Increases the productivity of the whole team through motivation and ensuring everyone has everything that is needed
Communication
  • Makes decisions for the team
  • Helps their team progress in their careers
  • When acting as manager, expected to have weekly 1:1's with their team, quickly provide helpful, clear and kind positive and negative feedback. Helps team work with the engineering manager or director to help upskill them.

Inspiration

While this Engineering Ladder is specific to Avala, it is also meant to be very clear (both internally and externally). The aim of this document is to provide clarity, so this should reflect not only what Avala believes, but what is represented in the market. This engineering ladder is comprised of industry standards from Tesla, SpaceX, Khan Academy, and Medium and have been modified, consolidated and applied to Avala's engineering ladder in a way that is both clear and fits Avala's needs as an engineering organization.