Part of the Bench interview process is a pair programming exercise where you will have an opportunity to pair program with one of our engineers to demonstrate your ability to write code and to collaborate with others. Since we expect our prospective employees to lead busy lives, we do not have a take-home exercise that you would work during your own time and subsequently extend during our pairing exercise. Additionally, we do not like the pressure placed on candidates by simply dropping into an exercise and being given a problem to solve without any lead time.
Therefore, the Bench code exercise is going to be based around an existing code base. You are free to look at the code base at your leisure prior to the interview to familiarize yourself with the existing code. The challenge is described below. You will have 45 minutes - 1 hour to work on the code with one of our engineers. The expectation is NOT that you will finish the exercise but rather to see how you think, how you interact and how you approach the code to solve the problem. Please note that if you spend the entire interview refactoring the code with the purpose of making the exercise easier to achieve, this is perfectly acceptable.
ℹ️ You have the option of either working with the NodeJS or React version of the exercise. They represent the same system, but run independently of each other so you can focus on the one you choose.
The Bench Basic Financial Management System is a simple system meant to help small business owners manage and track their finances. It was initially built to very tight deadlines and requires some tender loving care to improve. Fortunately, the original team left you in good shape with some automated testing!
Currently, the system consist of a React frontend or NodeJS REST backend API with an in-memory database. The current features are:
- List all transactions
- Add a transaction
- View a simple income statement
Our Product Managers talked with small business owners about features they'd ❤ to have. The problem they run into is that there are no accounts (financials products like a chequing account) in the system yet. The business owner is the direct user of the application and they should be able to do the following actions:
- Create an account (e.g. chequing or savings account)
- Add a transaction to an account
- Show balances per account
In the pair programming session, you will work on some of the features listed above. The structure of the session will be like this:
- 5-15 minutes of examining the existing code base to identify problems
- 35-40 minutes of pair programming
- 5-10 minutes of reflection on the process
- It is worth preparing by looking at the code before you come into the interview; a portion of the interview will be focused on identifying the challenges with the existing code base.
- Please make sure that it runs on your machine. You will be sharing your screen during the interview.
- It might be helpful if you have an idea of an implementation approach.
- If you choose to implement the assignment on your own time, there will be further enhancements available, but we will neither give you bonus points nor an easier ride if you choose to do this.