Dear candidate, we are glad to see you soon at a pair programming session. You'll spend 1-3 hours with our developers working on a task and coding.
We would like you to shine and kindly suggest you to prepare the most convenient development environment to have a pleasant & productive exercise. Please prepare your computer with a pre-configured IDE & unit test framework of your choice, as well as git installed. Only pure .NET and C# will be used during exercise, no additional frameworks like ASP.NET, web, UI or command line. Only code & unit tests.
The task will consist of several requirements, which will be given to you one by one. CoverGo developers are playing Business Analyst roles and will provide you all information about requirements and will answer your questions. After you'll say the requirement is fulfilled, we'll give you the next one. While implementing a requirement, try producing the code of best quality, but also use minimum amount of code, which allows to implement the requirement. After all the requirements are implemented, you'll have some time for refactoring. After refactoring we'll have a technical discussion about your code and design decisions behind.
All the task requirements are pretty simple and could be implemented without data structures, algorithmic complexity knowledge or advanced math.
The success criteria for the pair programming are: the ability to write a good-quality code using best industry practices in a reasonable amount of time.
We are expecting you to demonstrate mastery in the following areas:
- Clean & Maintainable Code
- Test-Driven Development
- SOLID principles
- KISS principles
- IDE usage
- Design Patterns
Huge plus is you will demonstrate:
- Domain-Driven Development
- CQRS approach
- Event Sourcing
- Behavior-Driven Development