Skip to content

Instantly share code, notes, and snippets.

@pricees
Last active August 29, 2015 14:17
Show Gist options
  • Select an option

  • Save pricees/3ea319a72e07345fe2da to your computer and use it in GitHub Desktop.

Select an option

Save pricees/3ea319a72e07345fe2da to your computer and use it in GitHub Desktop.
What I might look for in different levels of hires
=====
Jr. Programmer
=====
Languages
- Has a language she wants to master
- Can read, describe basic program flow given a code sample
- Can write basic elements of a program
- Knows the basic building blocks, terminology of the language
- Has idea of other popular languages that might complement this language
Work Ethic / Culture fit
- Pragmatic
- Responsible
- Asks questions
- A sponge, excited to learn anything and everything
- Interested in how-to, not necessarily why?
Continuous Learning
- Reads books, blogs
- Can follow recipes or tutorials to use new libraries, features
Other Characteristics
- Understands, can describe 3-tier architecture
- Knows what "clients" are, can name a few
- Understands basic logic: t/f, && || !
=====
Mid Engineer
=====
Languages
- Learning a new language/framework a year
- Can lead projects in at least 1 language
- Knows enough of each language in stack to localize bugs (html, js, sql, ruby?)
Work Ethic / Culture fit
- Open-minded but forming opinions
- Interested in how-to and why
- Knows, approximately, where to find answers to questions
- Interested in learning current "best practices"
Continuous Learning
- Learning a new language/framework a year
- Reads books, blogs, or attends meetups, online courses
- Can follow recipes, tutorials
- Learns by exploratory code, reading source, documentation
Other Characteristics
- Understands fullstack architecture(s)
- Can sense code smells, when something doesn't look right, knows refactoring
- Can identify abstractions
- Decent testing experience
=====
Sr. Engineer
=====
Languages
- Knows how to learn a new language
- What questions to ask
- What needs to be learned to accomplish task at hand
- Can lead projects from "git init" to "live"
Work Ethic / Culture fit
- Mentors the less experienced
- Learns from the more experienced
- Pushes team
- Leads where necessary
- Makes self available wherever possible
- Deep-dives on problems to understand root cause where applicable
- Keeps current with industry "best practices"
- Fun to be around (you might come into the office just to work with him)
Continuous Learning
- Active in meetups
- Subscribes to newsletters, watches videos, online courses, etc
- Active on IRC channels, USENet/other groups, active blogger
Other Characteristics
- Can mentor on software development lifecycle
- Asks hard questions about caching, scaling, security, etc, when deploying
- Understands atomic units of computers and considers them in development: memory, cpu, processes, etc
- Data structures, algorithm knowledge
- Knows what she doesn't know
- Assimilates data
=====
=====
=====
Bonus points for:
- contributing/maintaining open-source libraries
- conference talks
- writing books
- any activity that pushes ideas, debate forward
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment