Skip to content

Instantly share code, notes, and snippets.

@v0lkan

v0lkan/engineer.md

Last active May 15, 2020
Embed
What would you like to do?
The Evolution of a Software Engineer

This gist outlines the change in the depth and breadth of the tasks and responsibilities of a software engineer as she continuously improves herself.

I created this to supplement a discussion in an internal slack group; then I though the rest of the world might benefit from this too.

Contributions are always welcome.

Junior Engineer

  • Knowledge
    • Demonstrates a fundamental knowledge of technical specialty.
    • Writes code, completes programming and assists with the debugging of applications.
  • Productivity
    • Demonstrates the ability to learn quickly.
    • Initiates self tasks.
    • Is proactive.
    • Exhibits good prioritization of self tasks.
    • Exhibits good critical thinking.
    • Good-enough planning and estimating self work.
    • Can handle medium level problem solving on his/her own.
  • Quality of Work
    • Applies a test-driven approach.
    • Applies the concepts of CI/CD.
    • Mindful of making minimal cross-cutting concerns.
  • Collaboration
    • Is responsive.
    • Communicates effectively with peers.
    • Has willingness to learn from others.
    • Demonstrates curiosity to understand what other teams are doing.
  • Leadership
    • Demonstrates eagerness to proactively develop skills.
    • Contributes to team morale.
    • Manages self successfully.

Engineer

  • Knowledge
    • Maintains, modifies and enhances existing software, and participates in development and testing of new software application programs.
  • Productivity
    • Demonstrates the ability to work independently.
    • Understands self as well as team’s tasks, prioritization, and is able to maintain focus on key deliverables.
    • Accurate in planning and estimating work.
    • Proactively shares ideas on a team level.
    • Starts dealing with high level of complex problems without help.
  • Quality of Work
    • Achieves completeness in implementation.
    • Understands the notion of clean code and refactors and augments tasks along the way.
    • Very mindful of self work in terms of the impact on quality concerns.
    • Understands customer’s needs in terms of quality.
  • Collaboration
    • Promotes collaboration within the team.
    • Able to improve performance through feedback helpful to others.
    • Understands what other teams are engaging in.
  • Leadership
    • Owns tasks till delivery.
    • Add passion and excitement to team’s spirit.
    • Holds himself or herself accountable for his/her work.
    • Adds innovative ideas to the team’s goals.

Senior Engineer

  • Knowledge
    • Works within general practices to identify the product’s needs and potential enhancements; designs, develops, tests, and implements end-to-end solutions.
  • Productivity
    • Proactively shares ideas and collaborates on group level.
    • Familiar with a broad set of tools and technologies.
    • Leverages code-reuse as best as she can (including “open source”).
    • Handles complex problems and starts helping others.
  • Quality of Work
    • Highly focused on the customer’s success.
    • Designs for testability in mind.
  • Collaboration
    • Open and expressive.
    • Reviews her work and others’ work, and able to give effective feedback.
    • Willing to tackle any work necessary to get stuff done.
    • Has solid presentation skills.
    • Has a good understanding of cross-team activity.
  • Leadership
    • Has clout within the team.
    • Contributes effectively to a positive team morale.
    • Aligns personal efforts with business goals.
    • Provides feedback on product’s design and usability.
    • Proactively seeks opportunities to make the product better.

Staff Engineer

  • Knowledge
    • Plans design, develops, and implements new ideas and products.
    • Leads multiple projects or a major critical project.
    • Involved in cross-team groups, reviewing software’s impact on them.
  • Productivity
    • Adapts to changing priorities and situations.
    • Can rapidly prototype.
    • Influences goals beyond his/her group.
  • Quality of Work
    • Builds for interoperability.
    • Works proactively with the support teams, understanding their needs and wants.
    • Promotes an environment of security and quality in the product.
  • Collaboration
    • Communicates effectively across engineering teams and guides discussions with product people and other teams to make the product better.
    • Provides visibility into the team’s activities.
    • Proactively facilitates cross-functional groups to solve issues and problems.
    • Demonstrates a high tolerance to constructive feedback.
  • Leadership
    • Helps recruit top talent.
    • Holds on to a vision, while not being afraid to disrupt the status quo.
    • Has clout within the entire engineering org.
    • Responsible to provide effective feedback on the product’s strategy.
    • Thinks systematically.
    • Hold himself/herself responsible for the team’s work.
    • Gracefully handles pressure.
    • Mentors others inside the engineering group.

Principal Engineer

  • Knowledge
    • Advises and performs highly-complex research, designs and develops complex software architectures even with insufficient/unclear specifications.
    • Generally serves as an expert, providing management with technical guidance.
  • Productivity
    • Proactively builds and influences the company goals beyond his/her own organization.
    • Is the “go to” person to resolve complex cross-team problems.
  • Quality of Work
    • Drives discussions on building quality into specific products and integrated systems.
    • Promotes a quality environment outside his group, and evangelizes best practices.
  • Collaboration
    • Communicates effectively within engineering and across other departments and with customers when necessary.
    • A broader knowledge and familiarity with the products, teams, enabling him/her to articulate the product’s needs and technical challenges on a company level.
    • Demonstrates high self-awareness of impact on the product.
  • Leadership
    • Has clout across the company.
    • Aligns the team efforts with the business goals.
    • Looked at as the “content leader” inside the company.
    • Helps drive community involvement within the company.
    • Leads relevant feedback on the company’s roadmap.
    • Mentors and educates others in the company.

Distinguished Engineer

  • Knowledge
    • Industrially recognized as a guru and a thought leader.
    • Advises the senior management and provides a broad technical direction.
  • Productivity
    • Prolific with innovation, ideas.
    • Is disruptive.
    • Has extremely visible external communications.
    • Influences goals beyond the company, on an industry level.
  • Quality of Work
    • Makes significant long-term investments towards quality, informed by other departments outside the engineering group.
    • Promotes a quality approach and thinking on a company level not only within the current product, but also across a wide spectrum of products that the company produces.
  • Collaboration
    • Communicates effectively with executives.
    • Cooperates with partners and other stake holders to make sure the product value is maximized.
    • Has vast understanding of the Company’s products enables him/her to influence trends and strategically impact the business as well as represents the company at outside events.
  • Leadership
    • Establishes differentiators through innovation.
    • Has clout within the external technical communities.
    • Holds himself/herself accountable for major architectural decisions.
    • Looked at as the content leader both inside and outside the company.
    • Drives community involvement, speaking at events, organizing events and tech-talks.
    • Educates others in the community.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.