Skip to content

Instantly share code, notes, and snippets.

@josephhainline
Forked from adkron/developer_levels.md
Last active December 17, 2015 13:10
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save josephhainline/5615481 to your computer and use it in GitHub Desktop.

Entry

  • Passion
    • Wants to learn
    • Eager to learn
  • Professionalism
    • Communicates in a respectful manner when interacting with co-workers
    • Actively engages in pairing when given the opportunity
    • Receives constructive criticism well
  • Aptitude
    • Can learn a new language with little help
  • Understands basics to a Language
    • Language comprehension
    • Understanding of programming languages and compilers
    • Knows language syntax
    • Competent in at least one language - able to complete a story
    • Able to follow instructions without hand holding
    • Conversant on basic software organization, algorithms, and data structures
    • Can create an array
    • Can create a string
    • Can write working code
    • Understands language constructs
  • Can navigate tools
    • Good problem solving
    • Basic IDE understanding
    • No need for tool specific knowledge

Mid

  • Work independently
    • Codes what is asked of them
    • Able to lead a story to completion when pairing
    • Competent in more than 1 language
    • Shipped a project
    • Able to follow along with a stronger developer
  • Professionalism
  • Can write a test
  • Beginnings of design
    • UML for white board discussions
    • OO Design Patterns
    • Fundamental understanding of principles of software design
    • Understanding of design/architecture change impacts
    • Drives local design
    • Understands code idioms
    • Understands SOLID design principles
  • Problem Solvinng
    • Thinks through complex problems
    • Can work and solve problems with minimal direction
  • Pair Leadership
    • Mid-level pair leaders
  • Continued Self Education
    • Keeps up on Tech
    • Familiar with several frameworks and technologies and can explain strengths and weaknesses
    • Reads and follows external resources in the community
    • Open to new methodologies

Senior

  • Understands cost/benefit
    • Can professionally push back on bad requirements and offer alternatives
  • Tech Leadership
    • Get a basic understanding of new technology as needed
  • Mentoring
    • Helps teach design and syntax to new developers
  • Drives change
  • Abstract Problem Solving
  • Testing
    • Can write tests with no guidance
    • Understands different testing approaches
  • Breadth of project types
  • Design/Architecture
    • Can recognize trade offs in design
    • Helps discover what to build
    • Understands proper pattern use
    • Understands SOLID, YAGNI, Demeter, etc.
    • Helps others discover architecture
    • Drive choices to minimize futre pain in change
    • Can view the system as a whole and know where lines can be separated
  • Leadership
    • Able to lead an entire software project life cycle
  • Complete Systems
    • Can write complex systems alone
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment