Jasper

JavaScript, Assessment of Skills with Peer Evaluation and Review

Jasper provides an API, and engine, to cycle through challenges that will hopefully help identify areas of knowledge or learning opportunities in the user. The challenges are designed to increase in difficulty (or obscurity) as you answer more.

The Problem

I don't like most interview questions.

  • What is your biggest weakness?
  • Why are manhole covers round?
  • Talk about a time when you failed.

I think interviews for front-end developers are broken. Questions are asked and stories are told; the truthy-ness of those stories is completely up to the interpretation of the interviewers. Wouldn't it be better to simply work with the candidate for a while and get real experience with that person?

This Solution

Jasper attempts to fix the above problem by providing a tool for use in various ways. One way to user Jasper is to include it on a website as an easter-egg to be found by developers. People like to find things and most people like a challenge; developers especially will rise to a challenge to prove their skill. Another way to use Jasper is to include it in an interview where a candidate and another person - or two - can work through the challenges presented. By doing "real" work with someone, a better feel for how working with them might actually be once they are hired.

Hopes And Dreams

I think interviews should involve some typical every-day stuff. I think that this would help the candidate relax a little since it should be an activity they are completely comfortable participating in.

  • Code review of some of the candidates' own code
  • Whiteboard some problems (possibly current real problems the company is having)
  • Writing some code

To that end, I hope that this library can evolve into a tool that will help us break out of some of that wasted time in an interview. Besides, a lot of questions can be answered indirectly through just working with them rather than them telling a story about their perception of a past event.

Jasper Levels:

Objective of each level in Jasper.

  1. Open the browser's JavaScript console
  2. Call `Jasper` function with a string argument
  3. Functions as a arguments
  4. Throw an Error
  5. Object literals
  6. JSON string
  7. Function's `arguments` object handling
  8. Write a closure
  9. Execution context (this) of a function
  10. Augmenting the prototype of an object
Help Out!

Talk about #Jasper, making a suggestion:

The Name Jasper

The name comes from, JavaScript Activity, Skills Peer Evaluation and Review. It's a stretch I know but the name "Jasper" is what first came to mind and then I tried to create an accronym after-the-fact so leave me alone. If you don't like it, suggest something better.

Thank you to...

Calvin Bushor, Luke Camilleri, and Vivian Pennel

... for your contributions so far. I am looking forward to where this project takes us.