Skip to content

Instantly share code, notes, and snippets.

@bwnodak
Created April 6, 2015 21:05
Show Gist options
  • Select an option

  • Save bwnodak/64b1ec7f2323091ed837 to your computer and use it in GitHub Desktop.

Select an option

Save bwnodak/64b1ec7f2323091ed837 to your computer and use it in GitHub Desktop.
360-Review

360-degree Self Review

"Don't let obsolescence sneak up on you like a pair of tight pants."

Description

The purpose of this document is to identify the characteristics of a lynchpin software engineer. It serves as a template for self review to identify areas of personal strengths and weaknesses so that changes can be made to achieve personal goals in the industry.

This review should be conducted a few times each year to make sure progress is being made.

This document should be inspected for necessary changes with each review.


Industry Fit

  • Understands the computational problems faced by customers
  • Translates ideas and solutions into clear, readable code
  • Has logical and analytical approach to problem-solving

Range:

  • (Worst) Creates code only from well-defined requests
  • (Best) Conquers complex problems in elegant way with minimal production-level issues

Personality

  • Has right mixture of personal traits for working with a team to solve complex problems
  • Is friendly, approachable, and fun to work with
  • Passes the Sunday Test

Range:

  • (Worst) Total loner that can't work cohesively with others
  • (Best) Often the first programmer others turn to for help and brings out the best in the team

Expertise

  • Is familiar with industry trends and can identify emerging/promising technologies before they are mainstream
  • Has a keen sense for solving customer problems in the context of chosen technologies
  • Can be described as extremely proficient in at least one language
  • Is familiar with the full technology stack and can develope/deploy an application independently

Range:

  • (Worst) Very specialized with a narrow skillset, often dependent on others for assistance
  • (Best) Broad experience in different domains and platforms

Motivation

  • Cares about work
  • Shows enthusiasm for the problems at hand
  • Displays an interest and love for programming that extends outside the workplace
  • Has a record of completing passion projects or contributing to those of others

Range:

  • (Worst) Programs only for money
  • (Best) Implements interesting ideas in spare time

Maturity

– Knows and uses sound software development principles

  • Approaches problems as Agile
  • Employs design and architectural patterns where appropriate
  • Employs test-driven design
  • Refactors frequently, and constantly improves existing codebase
  • Is aware of shortcomings as a programmer and displays humility

Range:

  • (Worst) Total amateur
  • (Best) Black Belt Guru fluent in all best practices

Pragmatism

  • Understands what is possible within the context of the chosen technology
  • Appreciates simplicity and avoids over-engineering
  • Shows a strong understanding of the customer or product's business goals
  • Focuses efforts on understanding the fundamentals of a chosen technology

Range:

  • (Worst) Spontaneous, pie-in-the-sky dreamer
  • (Best) Self-driven pragmatic achiever

Cooperation

  • Listens
  • Accepts that other people could have better ideas
  • Supports team goals without hidden agenda
  • Shares ideas and knowledge with the team
  • Shows strong willingness to mentor junior programmers and help them achieve their goals

Range:

  • (Worst) Liability to the team
  • (Best) Team coach

Communication

  • Effectively communicates and exchanges ideas
  • Supports knowledge and decisions about the system with clear explanations
  • Is able to clearly justify design decisions
  • Can provide clear, concise answers to technical questions and answers (

Range:

  • (Worst) Cave-dwelling code monkey
  • (Best) System expert that can quickly bring others up to speed

Potential

  • Has professional goals
  • Has good learning skills and an ability to pick up new technologies quickly
  • Has curiosity for new languages, specifications, libraries, or frameworks
  • Displays adaptability and performs constant self correction

Range:

  • (Worst) Has reached his limits due to unwillingness to change
  • (Best) On a trajectory to reach his goals as the next programming star with zero changes

Vision

  • Sees the big picture for the product
  • Has foresight for problems not yet encountered
  • Understands the real world context of the product and the changing landscape
  • Aligns actions with team goals
  • Contributes to shared team vision of the product

Range:

  • (Worst) Only interested in programming
  • (Best) Team leader and product visionary

Bonus

  • Which characteristics are missing from this document? How would I be ranked?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment