About Blind Audition

The first phase of our hiring process involves a small coding problem. We use this as a form of blind audition in an effort to reduce bias and increase diversity. We have found that keeping our process blind for as long as possible leads to a better evaluation of candidates based on their skills. What that means is the hiring team who evaluates your submission will not see your name, email, picture, gender, ethnicity-related information, social network profiles, resume or any other personally identifiable information before evaluating whether to proceed along to the next stage.

Problem Statement

We are passionate about unit testing, Test Driven Development (TDD), and writing clean production code and hope you are too.

This problem is designed to take between 20 minutes and 2 hours but you can spend however much you'd like. Our goal is not to get a lot of code written, but to get a good idea of your coding style. Please use C# or JavaScript and document any necessary frameworks/dependencies in some form of readme.

The gist of this exercise is to produce an interactive numerical calculator with some simple capabilities. Order of operations is one thing we require. Your program does not require a graphical user interface but needs to provide an interactive execution shell that would support the examples below (note that spaces should be ignored). Additionally we require that you implement the calculator using the Command design pattern https://en.wikipedia.org/wiki/Command_pattern.

We would like it to support the following operators,

+, -, *, /, 1/x, and x!

C - for clear previous number

A - for all clear

Q - for quit

Here are some calculations we might expect of your program:

2+2= 4                     -5 * 5/3= -8.3333333333

-5 * 5/3= -8.3333333333    5! / 12 A + 9 = 9

7 + 8 C + 7 = 14           -5 * 5/3= -8.3333333333

+5= 9                      -5 * 5 - 15 / 3 = -30

 

Ready to Apply?

After you click 'Apply Now' you have 14 days to submit your results.