Thank you for considering NinjaRMM as your future home. In this repository you'll find some of our screening materials that we expect you to complete. The folder structure is explained below.
Take your time when completing these test materials as accuracy is important. Feel free to use whatever reference materials you need in order to complete and answer all of the questions. Incomplete submissions will not be considered. You should begin by creating a fork that contains your name as you'll need to submit this as a pull-request once you are done.
The repository is broken down into the individual steps we would like for you to complete. Each subfolder step1 -> stepN contains an individual piece of test material. We expect that the solution for each step will be contained as a subfolder, for example for step2 we ask you to write some basic C++ code for us. Ideally you would structure that folder so that the source code is contained in a subfolder called "src" so {root}/step2/src/* would contain your answer.
You are free to use whatever compiler/platform you are most comfortable with. You may also use an online C++ compiler such as http://cpp.sh/ if you wish, if you do so please be sure to make a note of it as a comment in your code.
Take a look at the Requirements.txt
file in the step1/
directory. The document will contain an explanation of the code that we are expecting to see. It involved writing some basic classes and demonstrating your understanding of class hierarchies, virtual methods, templates, standard containers, and resource managment.
Take a look at the CodeReview.cpp
file in the step2/
directory. In this step we ask you to review some code that came directly from the code you'll be working with if you join the team. Look over it carefully and provide feedback as you would in a standard code review.
Take a look at the CodeChallenge.cpp
file in the step3/
directory. This contains the last and final coding challenge. We expect that you will modify the code in CodeChallenge.cpp to meet the requirements outlined in the comments contained within that file.
Once you feel you have everything in a good spot, please submit your answer as a pull-request against this repository and notify your contact that you are complete. We'll review it as soon as possible and get back to you.
Please make sure all of the following are checked:
- The code compiles and runs without errors
- There should be meaningful feedback provided for the sample code in the code review.
- Provide a README.txt in the base folder with your full name and anything you would like us to know. This helps us to correlate your resume to your screening. Failure to complete the above will be treated as an incomplete submission.
We will close out your pull request once we notice your submission and begin review as quickly as possible.
Happy coding!