Skip to content

Instantly share code, notes, and snippets.

@Qais-Haidari
Forked from logkcal/1-sde-iii.mkd
Created January 28, 2022 05:48
Show Gist options
  • Save Qais-Haidari/10198de846b4dc11c52236c34405f8be to your computer and use it in GitHub Desktop.
Save Qais-Haidari/10198de846b4dc11c52236c34405f8be to your computer and use it in GitHub Desktop.
Software Engineering Role Descriptions

Keywords: distributed system architectures, networked services, technical analysis, prototyping(?), high-quality functional specifications, consensus, short-term solutions and long-term implications, and pragmatic solutions.

SDE

Technical

You have industry-leading technical abilities. You demonstrate a breadth and depth of knowledge in the following disciplines:

  • You recognize and adopt best practices in software engineering: design, testing, version control, documentation, build, deployment, and operations.
  • You write high quality, maintainable, and robust code, often in Java or C++.
  • You solve problems at their root, stepping back to understand the broader context.
  • You develop pragmatic solutions. You build flexible systems without over-engineering and choose simple, straightforward solutions over more complex ones.
  • You understand a broad range of data structures and algorithms and know how, when and when not to use them.
  • You recognize and use design patterns to solve business problems.
  • You understand how operating systems work, perform and scale.
Business

You build software for the business' sake, not for the technology's sake. To this end, you have the following characteristics:

  • You have an understanding and empathy for the company's customers and business objectives, particularly those aspects relevant to your team and your division (where "division" is however far up you need to go in your organization to include about 150 people).
  • You continually align your work with the company's business objectives and seek to deliver business value.
Leadership and values

You work in a team, driving things forward and exhibiting the following characteristics:

  • You collaborate to ensure that decisions are based on the merit of the proposal, not the proposer. When none of the proposals is the obvious winner, you are still decisive and commit to the team’s decision.
  • You continue to move forward in the face of ambiguity and imperfect knowledge. You do not suffer from “analysis paralysis”.
  • You build good working relationships within the team and with others across the company
  • You proactively support knowledge-sharing within the team and across your division.
  • You communicate clearly both verbally and in writing with your team and with other groups. You listen effectively.
  • You help recruit the very best people for the company through active participation in the overall recruiting process.
  • You embrace the company's SDE and leadership principles

SDE II

An SDE II exhibits all of the characteristics of the company's SDE. This role description summarizes what is expected of you as an SDE II, and outlines the capabilities that you must demonstrate to progress to the SDE III level.

What you do

You are a significant contributor to your team and to your department. You solve complex and broad business problems with simple and straightforward solutions, applying appropriate technologies and software engineering best practices. You build solutions that scale and perform. You do things properly and thoroughly the first time and you improve your systems with each iteration. Your team trusts your work. You are considered knowledgeable in certain key areas by others on your team, and they look to you for assistance in those areas. You participate fully and constructively in the planning of your team’s work. You help to evolve your team’s practices, constantly looking for improvements. You work with relevant personnel across the company on project issues, and you seek to share knowledge across the company's developer community. When confronted with discordant views, you foster constructive dialogue and seek resolutions in a professional way.

Moving to SDE III

You will be considered for promotion if you have consistently demonstrated the following:

  • Your technical knowledge is broad and deep, typically ranging from front-end UIs through to back-end systems and all points in between. You have deep hands-on expertise with many disparate technologies.
  • Your knowledge of the company's business and infrastructure is sought out by others in your division.
  • You have played a leading role in the implementation and deployment of a successful enterprise-level system.
  • You have good knowledge of the work done by other teams within your department and proactively help other teams.
  • You think in terms not just of code but of architecture, and you communicate your ideas effectively to others within your division.
  • You influence and drive software engineering best practices within your division.
  • You influence your team’s technical and business strategy by making insightful contributions to the team’s priorities and approach. You make a significant contribution to team planning.
  • You get a lot done. You work very efficiently and routinely deliver the right things.
  • You harmonize discordant views, find the best way forward and convince your team.
  • You demonstrate resilience and navigate difficult situations with composure and tact.
  • You actively mentor more junior members of the team, improving their skills, their knowledge of our systems, and their ability to get things done.

SDE II

  • takes problem and creates design.
  • estimate time to implement design.
  • starting to understand the architecture and knows what drives their systems.
  • works within current framework. Beginning to make systems simpler.
  • code reviews should be uneventful.
  • depth/breadth orientation may come into play.

SDE III

  • do solve big problems with a lot of ambiguity.
  • do estiamte time to implement software designs.
  • do think in terms of architectures and code.
  • do consistently simplify overall system design.
  • do spend time on code review.
  • do decide on a depth/breach focus.

Principal SDE

  • go beyond requirements.
  • create architecture and solve problems for long term.
  • spend time on teaching and reviewing code.

Principal Examples for Breadth, Depth and Blended

The following are examples for Principal roles with an emphasis on breadth, depth or blended. These are not meant to be all encompassing, but rather give a picture of the role.

Principal – technical breadth

Bob has broad experience designing, implementing, and operating large scale enterprise systems. He is well respected by the engineers in his department and across the company for the quality of his designs and code, and his breadth of knowledge, which ranges from core computer science fundamentals to enterprise system architecture. He has a deep understanding of the inner workings of his department's software. He also has a big picture view and is often relied on for his end-to-end understanding of the overall system. This includes the structure and interactions of the system's upstream and downstream dependencies, at both a technical level and a business level.

Bob plays a key technical leadership role within his department. He is accountable for the quality of the software owned within his department, and plays an oversight role for all of the various services and projects within that scope. He takes a leading technical role in the biggest and most complex project. For these projects he has direct technical ownership and serves as the lead architect. He contributes some code, but avoids putting himself on the critical path for any component given the other demands on his time.

While Bob is an experienced and skilled coder, coding has become a minor part of his job. He does spend time reviewing code, and is sought after for his thorough and sometimes demanding reviews. But most of his time is devoted to architecture, design, and leadership (both technical and non-technical).

Bob owns and pushes the strategic technical roadmap for his department. He has a strong vision for where they are going, and has successfully gotten the engineers and leaders on board with his vision. His department’s software continues to evolve as new business requirements are introduced and the software debt from the past is incrementally paid off. He makes sure the right forward progress is happening and that it is consistent with that vision.

Bob often serves as the representative for his department when working with other technical teams or PMs/TPMs for cross-team initiatives. He is relied on as the technical expert for his area in these discussions. He influences the approach taken for these initiatives and in doing so helps other teams with their designs. While he is an advocate for his own department in these discussions, he also takes a company-wide perspective, and strives to deliver solutions that are optimal for the overall business.

Bob is also operationally focused, and has a high bar for operational excellence. He is a vocal participant in his department's weekly metrics review and will often follow up offline with individual teams when he wants to gain a deeper understanding of an operational issue. He seeks to find higher level learnings and patterns from these issues so that they can be leveraged to improve the operational posture of other systems within his group as well as across the company. As a key leader in his department, Bob works in close collaboration with his Director. He is a part of her leadership team, and works with that team to help guide the organization. This includes strategic planning (including OP1 preparation), setting goals, evaluating talent, participating in Organizational Leadership Reviews, and contributing to career development.

Principal – technical depth

Alice is an acknowledged expert in fault-tolerant stateful distributed systems. Alice is sufficiently familiar with all of the important ideas in the field, that she can treat those concepts as a toolkit, with known engineering assumptions, risks, limitations and trade-offs. Alice can combine the core concepts to solve enterprise-level business problems.
For instance, Alice is very familiar with the concepts of logical time and causal-ordering, the various dimensions of eventual-consistency, the concept of distributed consensus, the FLP impossibility theorem, the CAP theorem, failure-detection, the 'replicated-state machine model', Paxos, the various kinds (guarantees) of multicast protocols, virtual synchrony, anti-entropy, probabilistic methods such as gossip, various standard models of database and transactional replication (both logical and physical), etc.

Alice has recently led the development of industrial-strength systems which heavily rely on some of the core ideas. Alice's work includes architecture, sub-system design, coding, and verification (by both reasoning and sophisticated testing).
Alice also has useful high-level knowledge of many of the most important research and industrial systems that benefit from the core ideas, e.g. Isis/Horus/Ensemble/Spread, Dynamo/DHTs, FAB, S3, GFS, Chubby, BigTable, Bayou, BDB-HA.
Alice has deep practical (hands-on) technical expertise with one or more relevant technologies or systems that are in-use at the company (or which could be brought in to the company) to solve an enterprise-level problem. e.g. Tapajos/TOPPS, S3, SABLE, BDB-HA, InnoDB.

Alice is able to compare and contrast various competing ideas and technologies at a very deep level, to evaluate technical and business benefits and risk-exposure. For instance, Alice can identify inherent performance or scaling limits, the characteristics and risks of various failure modes, and the estimated cost of implementation and projected future maintenance.
Alice expends significant effort to stay current on the state-of-the-art in her area of expertise.
Alice is able to innovate in the area of her expertise, e.g. to synthesize combinations of ideas to construct systems with new, useful properties. A real-world example would be SimpleDB's synthesis of total-ordering (via Lamport clocks) with a causal-order group multicast, to improve messaging efficiency and bound the size of book-keeping state that would otherwise need be retained indefinitely during certain partial-failure modes.

Alice understands and advises the company on how the ideas and technologies in her field can interact with other relevant technologies to achieve high-level business-goals. For instance, she can advise on how to use various types of replication to support the scale-out of query-processing or workflow systems. Alice is able to explain complex concepts from her domain of expertise to other members of her team (and the company at large), to ensure that the team/company fully understands the system that they are building and running.

Principal – blended

Carla is an expert in distributed systems in general and has a very deep understanding of fault-tolerant, stateful, distributed systems. Carla tends to be involved with larger “system infrastructure” efforts, such as S3 or EC2. She likes understanding the big picture – both from a technical and a business point-of-view – and having a good understanding of all the sub-systems involved. She tends to be involved with all the major technical discussions and design reviews occurring across all the teams that belong to the department she is in. She often leads the discussions and design reviews during the early phases of a major undertaking. Occasionally during such early project phases she will dive deeply into a particularly difficult problem that comes up and focus almost exclusively on that problem until it has been addressed to her satisfaction. An example might be to determine the expected durability statistics that several competing storage configurations would have for a geo-scaled storage service.

Once the overall design for a larger undertaking has reached a certain level of maturity, Carla likes to pick a particular piece to dive deeply into for an extended period of time. She likes the challenge of working on complex technical problems that require sophisticated solutions, such as the highly available lock/consensus sub-systems that are at the heart of many modern strongly-consistent replicated services. She also likes the satisfaction of being intimately involved with the coding of her solutions and “making them real” in that way.

When working deeply on something Carla will track what’s going on in her department, but will typically get involved only in the more important technical discussions and design reviews. Sometimes broader issues will assume sufficient importance that Carla will put her “deep” project on hold for a while and go back to playing the role of a broad Principal in order to ensure that the overall technical direction of her department is heading the right way.

Keywords: distributed system architectures, networked services, technical analysis, prototyping(?), high-quality functional specifications, consensus, short-term solutions and long-term implications, and pragmatic solutions.

TPM

Technical

You have appropriate technical skills and experiences for the role. You demonstrate a breadth and depth of knowledge in the following disciplines:

  • You understand the basic principles of distributed system architectures and networked services.
  • You produce high quality functional specifications that business and technical stakeholders can easily understand.
  • You help solve technical problems with urgency by helping technical teams reach consensus by asking the right questions, and offering solutions.
  • You always consider the short term needs of the business and long term implications of any decision.
  • You design pragmatic solutions. These solutions are flexible and forward-looking, while remaining simple and straightforward. You understand a broad range of techniques for conducting technical analysis that includes data mining and prototyping and when to use them.
Business

TPM delivers products that meet our business needs. As a result you have skills that include the following:

  • You have an understanding and empathy for our customers (both internal and external) and business goals, particularly those aspects relevant to your team and your division.
  • You are a master of communication.You relentlessly strive to ensure that the right information is delivered to the right audience about your programs and projects. This communication clearly articulates scope, timelines, owners, risks, mitigation and successes.
  • You deal with technical and business ambiguity while delivering clarity of vision for your projects and programs.
  • You are a strong self-starter and therefore have the ability to drill into business data and research results to identify clear direction and focus for your projects and programs.
  • You have a proven ability to make tradeoffs using sound business intelligence to keep your projects moving. You keep your projects and programs aligned with our business objectives as new and improved data or direction becomes available.
Leadership and values

You are a focal point in team of talented people and exhibit the following characteristics:

  • You collaborate to ensure that decisions are based on the merit of the proposal, not the proposer.
  • You continue to move forward in the face of ambiguity and imperfect knowledge. You do not suffer from "analysis paralysis."
  • You build strong and sustainable working relationships within the team and with others across the company.
  • You proactively support knowledge-sharing within the team and across your division.
  • You continually listen to all members of your team to help them be successful in their role.
  • You help recruit the very best people for the company through active participation in the overall recruiting process.
  • You embrace the company's leadership principles.
Personal

You display the following personal behaviours, in keeping with the competencies referenced above:

  • PROACTIVE: You display energy and initiative in solving problems. You follow all possible avenues to get the job done.
  • ADAPTABLE: You undertake a variety of tasks willingly. You switch from complex to routine tasks when required. You adapt quickly to new technologies and products. You work effectively with a variety of personalities and work styles.
  • QUALITY: You demonstrate appropriate quality and thoroughness in your work.
  • INTEGRITY: You act with personal integrity at all times.
  • PROFESSIONAL: You work within your team's process. You confront problems (even when outside your own domain), propose solutions, take ownership through to resolution or ensure a clear hand-off. You have a positive, can-do approach to work.

TPM I

TPM I exhibits all the characteristics of a TPM. This role description summarizes what is expected of you as a TPM I and outlines the capabilities that you must demonstrate to progress to the TPM II.

What you do

You coordinate the development and deployment of technology to solve our business problems. The solutions you help create will generally require input and guidance from team members. You are responsible for ensuring decisions and plans are driven to completion. You work towards team goals, using TPM best practices. You proactively and continually improve your level of knowledge about our business, platform and relevant technologies. You use this knowledge to help our team to deliver our program or project. You communicate professionally with our team and others in our division, knowing when to contribute and when to listen. You work with senior TPMs for guidance and review, to ensure your work is accurate and thorough as you strive for excellence.
The scope of your projects as a TPM I should include the following:

  • You manage 1-2 projects within a single development team.
  • Your primary responsibility is to drive the project to completion by managing schedules, risks, and mitigation plans.
  • You spend most of your time working directly with the engineers and managers on your team clarifying design, development, test and deployment schedules, and working through day to day issues within the scope of your team.
  • You work with your team's management chain to review all significant project changes or risks that arise on your projects.
Moving to TPM II

You will be considered for promotion if you have consistently demonstrated the following:

  • Your knowledge of our business and platform has significantly increased in breadth and depth since you started as a TPM, and you've become more effective at applying it. Your new knowledge has benefited the team.
  • Your work is consistently of a high quality and you require little or no guidance by team members, though you still solicit collaborative input appropriately.
  • You are comfortable working across teams and can influence their direction appropriately for your programs or projects.
  • You contribute to the evolution of your team's best practices recommending changes in processes for program and product management.
  • You can communicate clearly and unambiguously about projects or programs and are comfortable communicating with team members at a higher level than you.
  • You confidently and competently impart business justification or expertise to developers, customers, and other team members.
  • You have established good working relationships with relevant personnel across the company.
  • You adapt much more quickly to new projects or programs.
  • You recognize discordant views and take part in constructive dialogue to resolve them.
  • You confidently represent your team to other parts of the company.

TPM II

TPM II exhibits all of the characteristics of an experienced Technical Program or Product manager. This role description summarizes what is expected of you as a TPM II, and outlines the capabilities that you must demonstrate to progress to the TPM III level.

What you do…

You are a significant contributor to your department and to the company. You help drive resolution of complex technical problems across a number of teams and components with simple and straightforward solutions using project and program management best practices. You do things properly and thoroughly the first time and improve relationships with your partners across the company with each program you work on. Your team trusts your work. You are considered knowledgeable in certain key areas of the company's platform by others on your team, and they look to you for assistance in those areas. You participate fully and constructively in the planning of your team’s work. You help to evolve your team’s best practices. You work with relevant personnel across the company on specific project or program issues, and you seek to share this knowledge through concise and appropriate communication with stakeholders. When confronted with discordant views, you foster constructive dialogue and seek resolutions in a professional way. The scope of your projects as a TPM II should include the following:

  • You manage 1-2 cross-team projects that generally span fewer than 10 teams across the company.
  • You review system-level technical designs and make the case for improvements when appropriate
  • Your primary responsibility is to drive your projects to completion using cross functional project management best practices.
  • You spend an equal amount of time working with people inside your team and with relevant points of contact in other groups.
  • You focus heavily on cross functional communication to ensure key decisions and status surrounding your projects is clear to all.
Moving to TPM III

You will be considered for promotion to TPM III if you have consistently demonstrated the following:

  • Your knowledge of the company's platform is extensive and covers all aspects of a customers experience with our platform. This typically means that you understand how the majority of workflows work within the platform and understand in detail the architecture of your department’s systems.
  • Your knowledge of company's business and infrastructure is sought out by others in your division.
  • You have played a leading role in managing the delivery of large cross functional projects spanning teams and divisions in the company.
  • You have collaborated to define core business objectives in order to deliver the best product, program or project with the most efficient use of company resources.
  • You may make decisions about what projects get approval for completion and in what priority order across the company.
  • You interact with senior management and leaders across the company to conclude on priorities and direction.
  • You influence your team’s technical and business strategy by making insightful contributions to the team’s priorities and approach. You make a significant contribution to team planning.
  • You get a lot done. You work very efficiently and routinely deliver the right things.
  • You harmonize discordant views, find the best way forward and convince your team.
  • You demonstrate resilience and navigate difficult situations with composure and tact.
  • You actively mentor more junior members of the team, improving their skills, their knowledge of our systems, and their ability to get things done.

TPM III

TPM III exhibits all of the characteristics of an experience Technical Program or Product manager. This role description summarizes what is expected of you as a TPM III, and outlines the capabilities that you must demonstrate to progress to the Principal level.

What you do

You play a leadership role in your team – they look to you for advice on the technical and business issues facing them. You are right, a lot. You get a lot done. You manage medium to large programs or projects that could be significantly cross functional. You work efficiently and consistently to deliver the right projects on time and to budget. You have an company-wide view of how your programs or projects impact the bottom line and you consistently think about how to improve our ability to deliver large cross functional projects at the company. Your work and your approach to work are exemplary – you drive best practices and set standards for Technical Program Management for your team. You provide advice and mentoring to other TPMs on how best to approach new projects or problems. You show vision and good judgement when making technical and business trade-offs between your group’s short term and long term business needs and the needs of the company as a whole. When confronted with discordant views, you find the best way forward and convince your team. You are vocally self-critical. You demonstrate resilience and navigate difficult situations with composure and tact. The scope of your projects as a TPM III should include the following:

  • You manage multiple cross functional projects that span more than 10 teams at the company.
  • You define or review the systems-level technical design of your projects and balance near term business need with long term implications for the company.
  • Your primary responsibility is to drive projects to completion using cross functional project management best practices.
  • You spend much of your time rationalizing technical requirements and business priorities in cross functional teams.
  • You manage cross functional communication to ensure all business and technical stakeholder’s needs are aligned.
Moving to Principal…

You will be considered for promotion to Principal TPM if you have consistently demonstrated most of the following:

  • You have played a leading role in the design, implementation, and delivery of several business critical enterprise-level, or large cross functional projects.
  • Within your department you exert technical and business influence over multiple teams, increasing their productivity and effectiveness by sharing your deep knowledge and experience.
  • You play a significant role in the career development of others, actively mentoring individuals and the community on advanced technical issues and helping managers guide the career growth of their team members.
  • You operate with autonomy and show creativity and high judgment in decisions with both technical and business implications.
  • You regularly interact with senior management or executive levels on matters concerning business alignment, global project planning and corporate priorities.
  • You are skilled at functionally decomposing complex problems into simple, straight-forward solutions.
  • You are a leader in recruiting efforts and you always work to raise the bar.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment