This repository holds coding challenges, solutions, and problem descriptions used to evaluate a person's coding ability.
We are practioners of Test-Driven Development (TDD). This practice represents a methodical approach to software development that forces a developer to incorporate good design into her/his software. A coder that uses TDD forces herself/himself to keep units of functionality small and de-coupled from other code modules. TDD is not a silver bullet that leads to perfect code, but it is a great practice that pushes coders toward great code.
TDD is also a practice that can be used regardless of the software development methodology that is used at any given company. We view TDD as a weapon in a developer's arsenal that travels from one company to the next. Traditionally TDD is thought of as an agile practice. To us, it isn't limited to shops that utilize agile methodologies.
The challenges and projects described below have this thinking about TDD in mind.
Each of the projects is listed below, with a brief explanation of their intended purpose. Each project contains a README file describing the project and the challenge(s) that are meant to be addressed.
Clearent uses these projects, along with others that are not posted, to evaluate a software developer's skill set. Because of this, solutions will NOT be posted.
This is a complete C# solution. A bug exists in the program that needs to be fixed, and not all of the code is properly unit tested.
This is actually an exercise for the reader. The intention is for someone to create a program to solve http://projecteuler.net/problem=4.
This is a set of directories, test files, and a Powershell script. The script attempts to identify certain files in the source directory and move them to the destination directory. A bug exists in the script, and additional functionality needs to be added.
In our industry, the relationship between merchants, ISOs, banks, and sales reps is a ragged hierarchy. Ragged hierarchies are challenging to store, write, and retrieve data efficiently. This directory contains data challenges around a ragged hierarchy.