LeanKit Fizzbuzz 101 - Javascript Edition
Wut?
This repo serves as the starting point for developers to complete and submit a simple project in order to be considered a candidate for employment at LeanKit. It is designed to allow our teams to evenly evaluate the technical capabilities of developers in the following ways:
- Repeatable: Every candidate starts from the same point and is tasked with performing the same tasks.
- Relevant: The aspects of the project utilize the same types of technology and patterns you'll see in our applications.
- Complete: While the project is simple, it does allow one to complete a small number of tasks in a reasonable time frame while using common technologies in a way that is not completely arbritrary.
This project uses the self-contained version of Jasmine and should be wired up enough to allow you to get going without a lot of effort. If you run in to problems, try and solve them. If you get stuck or think there is a flaw in the setup or docs, submit an issue.
What am I supposed to do?
Fork this repo into your own GitHub account. If you don't have one, you should get one. They're free, and all the other kids are doing it.
Note: If you fork this repo it will be associated with your GitHub username and people will be able to see that. People like your current employer, for example. We're not trying to scare anybody off, and we expect that people may want to perform the tasks outlined for no other reason that funsies. If privacy is a concern, and you're interested in submitting your work for consideration of employment, feel free to download the repo as a zip, complete the steps, and send it to us.
- Look at the specifications defined in the
fizzbuzz.spec.js
file in thespec
directory. You're on the hook to provide working, testable versions of the four specifications listed by writing code in thefizzbuzz.js
file in thesrc
directory. - You'll notice that the first specification has been completed for you and is working as expected, according to the spec defined. Open the
SpecRunner.html
file located in the project root to verify. Click the "Spec List" link to view the, well, "List of Specs". The spec titledshould return "fizz" when the function argument is divisible by three
should show as passing and be green. - Did you see the second spec titled
should return "buzz" when the function argument is divisible by five
? It's red because it's broken. Fix that test and rerunSpecRunner.html
to verify. - Specs #3 and #4 have been defined for you and describe desired functionality out of the system. Implement those specifications based on your understanding of the requirements described, and get them passing. Make sure to follow Red/Green/Refactor.
- Look at the
index.html
file located in the project root. Javascript references have been added for you to both jQuery 2.1.3 from Google's CDN andindex.js
located in thesrc
directory. index.js
has a predefined$(document).ready( function() {});
for you. Write code in this function to display the responses returned from thefizzbuzz
function for all integers from1
to100
(inclusive) on theindex.html
page when it loads.- When you're done, submit a pull request back to this repo from your fork. We'll check out the code and get back to you.
- If you make it past step #8, then you'll either come to the office or we'll get together online to do an initial code review of your submitted pull request. After that you'll be asked to implement another feature or two live and interactively. Don't worry, they're not designed to trick you or make you feel uncomfortable. You'll be able to use whatever resources are available and appropriate. We just want to see you write code live in front of our eyeballs, and to get a chance to chat while you're doing it.
Interested? SHOW US TEH CODEZ!