Technical Career Track
This technical career track defines what we value as a software development culture in AVEVA Operations Information R&D. The document describes the
opportunities for technical growth in terms of levels, and while levels are important, they do not define the way we
relate to each other in Software Development. For example, a Principal Technologist is not by definition more “correct”
when discussing technical design with a Member of Technical Staff - II. The Senior Member of Technical Staff, by virtue of having earned
that level, will typically bring more experience and perspective to a discussion, but all voices have equal merit. In
fact, a Principal Technologist should be adept at bringing in perspectives from other developers and helping guide
discussions.
The levels are important to the relationship between leaders and technical contributors at this organization. A key
responsibility of a leader is to help find opportunities for developers to grow and demonstrate their skills in order to
progress their careers. Moving from one level to another is a way to advance your career, whether at this organization or
a future job after this organization. The levels and associated skills should be transferable.
Technical Levels
There are six roles within the technical career path, from Member of Technical Staff to Distinguished Technologist:
- Member of Technical Staff
- Member of Technical Staff - II
- Senior Member of Technical Staff
- Principal Technologist
- Partner Technologist
- Distinguished Technologist
Level Categories
There are many ways to categorize the attributes that make a developer successful, but these four categories are particular to our organization’s software development culture. These categories represent the key areas of development and mastery of software development at each level.
Technical Skill [T]
Have you been seeking to improve your craft? Have you become an expert and/or gained expertise in multiple technical areas?
Productivity [P]
How does your work align with the overarching goals of AVEVA Operations Information R&D? How reliably and consistently have you delivered complete work items? How large and complex a feature or capability have you proven capable of owning? How efficiently do you work with other departments? How well do you understand tradeoffs between velocity and technical debt?
Empathy [E]
How receptive are you to outside feedback on your work? How broad of a perspective do you consider when making decisions? Can you independently identify stakeholders who will be affected by your work and proactively incorporate their viewpoints into your technical designs? To what degree do you prioritize the team’s needs over your own?
Influence [I]
How effectively have you communicated your team’s challenges, their importance, and solutions? How effectively have you been able to resolve conflicts? Have you raised the level of your team through design documents, coding standards, reusable components, and best practices? Have you effectively communicated within your team and across teams? Have you developed other developers’ skills through mentorship, code review, and technical feedback?
Level Descriptions
Each description has two parts, a high-level description, and common attributes.
Attributes are tagged by four categories: (T) Technical Skill, (P) Productivity, (E) Empathy, and (I) Influence. As outlined in the FAQ, these attributes aren’t an exhaustive checklist but rather a guideline for behavior we would expect from someone at that level. The attributes listed for each level are also cumulative. Individuals are expected to exhibit attributes of all levels up to and including their current role.
Member of Technical Staff
Goal is to gain experience. Individual-focused and working on proficiency. Typically works with some amount of support and guidance. Receptive to and learns from feedback from their team.
Attributes
- Solid foundation in core technical principles. [T]
- Working knowledge of their technical domain (e.g. Asp.Net, database design, API design). [T]
- Asks for help and guidance when appropriate. [T, P, E]
- Rapidly refines and improves their skills based on feedback. [T, E]
- Can follow team processes, documentation, best practices, and code style guides. [T, P, E]
- Effectively uses development tools. [P]
- Takes pride in their work. [T]
- Completes small, well-defined bug fixes and tasks efficiently. [T, P]
- Seeks advice on how to approach and prioritize development efforts. [P, E]
- Effectively communicates status of work to team. [P, I]
- Displays humility and a willingness to learn and ask for help. [P, E]
- Gives thoughtful feedback on pull requests, R&D designs, and features. [T, I]
Member of Technical Staff - II
Goal is to become a fully independent individual contributor. Requires a moderate amount of support but developing independence and responsibility. Beginning to grow and learn from developers on other teams while at the same time requiring less guidance from members of own team. Can meaningfully contribute to projects of larger scope and complexity than Member of Technical Staff.
Attributes
- Can own well-scoped stories of medium complexity from technical design through completion. [T, P, I]
- Has made non-trivial contributions to systems and features in production products or services. [T]
- Ensures technical work is well-socialized and easy for team members to understand, extend, debug, and maintain. [T, E]
- Identifies and completes smaller tasks with greater efficiency than a Member of Technical Staff. [P]
- Proficient in AVEVA Operations Information R&D development tools and best practices (e.g. defensive programming). [P]
- Independently and proactively follows team processes. [E]
- Can identify differing goals and views within the team and still work effectively (including product and design where relevant). [E, P]
- Understands the larger picture for their team and approaches problems from a more holistic perspective, rather than just applying band-aids to symptoms. [T, E]
- Knows when to seek advice of more senior developers for planning and designing before writing code. [P, E]
- Able to identify and communicate problems in existing or proposed code, processes, and design. [I]
- Provides thorough and timely code feedback for peers. [I]
- Communicates assumptions and gets clarification on tasks, scope, and expectations up front to minimize the need for rework. [P, I]
- Proactively provides useful and accurate technical feedback and clearly communicates technical decisions to fellow developers. [I]
- Can guide another developer through a component which they are familiar with. [I]
- Takes ownership and responsibility for their work, including supporting it in production and recognizing when it should be refactored or removed. [T]
Senior Member of Technical Staff
Goal is to execute complex work items with minimal support and guidance. Solid individual contributor and works well independently. Demonstrates maturity of thought and craft. Incorporates perspectives spanning the entire development organization.
Demonstrates developing leadership and influence at the team and program level. Reactively finds gaps and areas of improvement in technology and team process and surfaces them to team or program.
Attributes
- Recognizes, articulates, and makes technical decisions / trade-offs around multiple dimensions (scaling, reliability, performance, maintenance, etc.) that have an impact on their team. [T]
- Able to discuss technical alternatives rationally and impartially, can accept criticism of design, and assess technical costs and trade-offs. [T]
- Writes code that can be understood, used, extended, debugged, and maintained by the rest of the organization. [T, E]
- Scopes and stages work into well-defined milestones. [P]
- Persistent in the face of roadblocks; dispatches them efficiently, pulling in others as necessary. [P, I]
- Takes the initiative to fix issues as they arise. [P]
- Regularly delivers software on-time and is constantly working to make accurate estimates and deliver on those estimates. [P]
- Assertive, not passive or aggressive in communication. [I]
- Able to effectively resolve conflicts. [I]
- Communicates technical work through design docs and tech talks. [T, I]
- Proactively identifies problems with requirements (e.g. lack of clarity, inconsistencies, and technical limitations) for their own work and adjacent work and communicates these issues early to help course-correct. [I, E]
- Fully resolves problems with requirements within their own team. [I]
- Is considered an authority within their team and/or program and is sought out for guidance in these areas. [T, I]
- Identifies areas for improvement at team level in technical systems or processes and follows through until issue is acknowledged. [P, E]
- Leads a few, small scale, small impact initiatives with independent follow through to resolutions. [T, P]
- Seeks exposure beyond team. [T]
- Communicates efficiently and effectively within team, and department. [I]
- Takes an active role in recruiting new team members and new developers in general. [E, I]
Principal Technologist
Goal is to execute large-scale features and initiatives with minimal support and guidance. Continues development of Senior Member of Technical Staff traits with focus on larger projects and initiatives. Capable and productive as both an individual developer and leading technical direction for a team.
Demonstrates established leadership and influence at the team and program level. Proactively finds gaps and areas of improvement in technology and technical processes and leads team to addressing them.
Attributes
- Has owned and delivered multiple features of high-complexity and/or scope. [T, I, P]
- Can work in areas of the codebase outside of their own core competency with minimal guidance. [T]
- Acts as an effective technical mentor for one or more junior developers. [T, I]
- Identifies other development teams that will be affected by their work and proactively works to align goals. [P, E]
- Can effectively identify and communicate project scope, complexity, and expectations across functions (e.g. Product, Design, Documentation) [P, I]
- Plans projects that best use team resources available while delivering a product that meets AVEVA Operations Information R&D standards. [P]
- Can adapt to moving product and business requirements. [E]
- Considers both technical and business needs when planning development work. [E]
- Proactively provides confident technical guidance across team. [T, I]
- Understands security development lifecycle posture and promotes awareness on their team. [I, P]
- Takes an active role in recruiting new team members and new developers in general. [I, P]
- Is responsible for a team’s continuous improvement of SDL practices. [T, I, P]
- Is considered an authority within the company and is sought out for guidance in these areas. [T, I]
- Identifies areas for improvement at program or team level in technical systems or processes and drives resolutions in collaboration with teammates. [P, E]
- Leads a few, medium scale, medium impact initiatives with independent follow through to resolutions. [T, P]
- Broadening abilities beyond team. [T]
- Participates in Operations Information R&D research projects. [T]
- Communicates efficiently and effectively within product development. [I]
- Provides input to Engineering Managers on the technical competence and growth of team members. [T]
Partner Technologist
Goal is to leverage technical depth and breadth to have a broad impact on this organization. High-performing individual contributor with maturity and influence to set a technical vision for their assigned program and lead toward execution of that vision. Raises the level of their associated teams by creating processes, tools, and systems that increase the productivity and output of the teams around them. Incorporates viewpoints and perspectives of broad groups across the company to ensure that development work is well-aligned with the business. This role requires time spent working at this organization to do well: it requires a deep understanding of architecture and demonstration of leverage and impact across multiple initiatives. A Partner Technologist reports directly to a Software Development Department Lead, and is independent of any specific development team, instead having a program-level focus.
Attributes
- Identifies key problem areas where technology can drive broad organizational impact. Fully owns solutions to these problems and can be counted on to follow through. [T, P, E]
- Inspires and motivates the team through their work - both in depth of technical quality and breadth of contributions. [T, I]
- Shows persistence in leading the teams in their program toward execution of goals. [I, P]
- Understands the entire architecture of AVEVA Operations Information products and services; able to recognize, articulate, and make technical decisions / trade-offs around multiple dimensions (scaling, reliability, performance, maintenance, etc.) that have an impact on many development teams. [T, I, E]
- Demonstrates ownership of a broad technical surface area across the development organization. Sets vision for how technical systems can evolve both in terms of R&D design and the way the systems deliver business value. [T, I, P]
- Takes the initiative to work outside of their area and comfort zone. [T, E]
- Skilled at making decisions outside core technical competencies. Can manage scope and identify a technical roadmap for vague or ill-defined problems. [E, P]
- Regularly evaluates current technology and technical standards; promotes new technologies, best practices, and process improvements. Prioritizes organizational needs over personal preferences. [T, I, P]
- Has led the design, implementation, and deployment of multiple complex systems or features, including breaking down work for others. [T, P]
- Reduces the complexity of projects, services, and processes in a manner that guides the broader team toward more effective and productive delivery of software. [P]
- Identifies priorities relevant for the development team and the goals of this organization. Keeps development work well-aligned with both short and long-term product and business initiatives. [E]
- Understands tradeoffs and makes informed decisions around productivity and technical debt. Demonstrates good judgment in thoroughness of design and implementation by differentiating strategic long-term technology investments from shorter term experiments. [P]
- Incorporates the perspectives of stakeholders across the company into a complete picture of technical alternatives and tradeoffs for a project. [E]
- Engaged in the technical development of developers on and outside the teams that contribute to their program, including more senior developers. [I]
- Seen as a role model and mentor to every technical member of every team that contributes to their program. Sets the bar for technical excellence. [I]
- Stays abreast of technical development from outside of this organization, educates coworkers on relevant improvements, and integrates the developments as appropriate. [I, E]
- Brings the right people together to solve problems. [I]
- Listens and guides debates to help reach a consensus; once a decision is made, clearly communicates and backs that decision. [I, E]
- Can recognize failing products or services and when to escalate risk appropriately. [T, P]
- Can foresee potential product or service design pitfalls and minimize negative impacts. [T, P]
- Supports and encourages continuous improvement of SDL practices for all teams in a program. [I, P]
- Communicates efficiently and effectively department-wide. [I]
- Takes an active role in recruiting new developers to AVEVA. [E, I]
Distinguished Technologist
Goal is to set technical direction for products and services through vision and execution. High-performing technical leader. Broad vision and technical maturity at the highest level. Raises the level of the organization, seen as a thought leader and teacher. Brings new and meaningful perspectives from across the industry to this organization.
Attributes
- Has owned and delivered multiple mission-critical, high complexity products or services with a large impact on both this organization’s business and technical direction. [T, P, I]
- Responsible for the complete life-cycle of high impact products or services: initiation, design, implementation and maintenance.
- Understands the entire architecture of AVEVA Operations Information products and services and how they interact. Able to recognize, articulate, and make technical decisions / trade-offs around multiple dimensions (scaling, reliability, performance, maintenance, etc.) that have an impact spanning most or all development teams. [T, I, E]
- Allows the entire development organization to deliver value more efficiently by identifying and implementing fundamental process improvements or mentoring other developers. [P]
- Successfully encourages and motivates other developers to work outside their comfort zones. [I]
- Ability to identify a vacuum (important unowned project, etc.), and ensure the vacuum is filled. [I, E]
- Identifies strategic technical projects that enable this organization to grow as a business and leads the team in executing them. [E, I]
- Participates in curating the technical direction and vision for their program/service and/or department. [T, I]
- Recognized across the company as a key technical leader. Considered an essential resource for important technical decisions. [I]
- Recognized as a key technical resource both inside and outside of this organization. [I]
- Defines and promotes cybersecurity posture. [P, I]
Career Timeline
It is a common question for developers to wonder how long it takes before they are ready for the level above their current one. The following section provides a framework for reasoning about the progression of a contributor through the levels defined in the technical career track. Assuming a developer is on a path of constant progression and growth, a model career timeline should roughly look like the following:
- Member of Technical Staff to Member of Technical Staff - II: ~1 year
- Member of Technical Staff - II to Senior Member of Technical Staff: ~2-3 years
- Senior Member of Technical Staff to Principal Technologist: ~3+ years
- Principal Technologist to Partner Technologist: ~4+ years
The timeline is more rigid at the lower levels than at the higher ones:
From Member of Technical Staff to Senior Member of Technical Staff, the goal is first to become a fully independent individual contributor and then to gain the ability to execute projects with minimal support and guidance; this is a progression that should be natural and achievable by all developers at this organization.
At the higher levels (Senior Member of Technical Staff and above), the timeline becomes open-ended: those levels recognize the development of a sense of initiative and identifying opportunities that will have a high impact. This might require a significant amount of time and effort to demonstrate. For some developers, this leap may not happen; many developers will not progress beyond the level of Senior Software Developer and this should not be interpreted as a negative.
Here are the principles that underpin the timeline presented above:
- Time alone is not a sufficient condition for progressing through the levels of the ladder.
- Every promotion from one level to the next is a recognition that a developer has already been solidly operating at the higher level.
- Each transition takes longer than the previous one because of the increasing scope and impact of the work, which are not linear either. A strong developer will have to demonstrate sustained performance over longer periods of time to achieve a promotion to the next level.
- Finally, this guideline is a rule of thumb and, as all rules do, it has exceptions. We sometimes need to honor exceptional performance and achievements by tracking a developer through the ladder on a faster timeline than the one presented above.