#
Designing a good technical test
Our goal as a product lead company and engineering team is to build the best Event marketplace for both Organisers and Suppliers.
One of the core company values is to make it memorable. We care deeply about the candidates we interview and we know we are better together. We want to grow with the candidate and give the candidate a fair opportunity to express how they work with our hiring process.
#
There's not enough time to do a perfect job
In an ideal world we would spend a week or so with each candidate assessing their skills and seeing how they work/think with different stakeholders and problems.
Unfortunately we nor do the candidates have the time/resources to do the above. Instead we have to rely on basic heuristics to determine whether a candidate is suitable for the team or not.
The technical test is a small part of the hiring process, among other things we want to know; does the candidate have the right engineering skills to join our team?
#
Our current process
For context this is our current process:
graph LR
A[CV Screening] --> B[Screening Call with Engineering/HR] -->|completes tech test| C[Test walkthrough with Engineering] --> D{Hire?}
#
Our current test
Our current tests scope is fairly large taking around 4 hours to complete for a senior engineer with our specific technologies. If candidates have similar experience in competing technologies it can take a senior engineer 5 - 7 hours to complete.
For intermediate or junior engineers we've had test times between 8 - 10 hours.
Pros:
- The test is a real problem in our business domain
Cons:
- It is a big time commitment for a candidate who is working on our test, unpaid. We may be missing out on candidates who work full-time and do not have 4+ hours to spend on a tech test after work.
#
Designing a new 1 hour test
In order to waste less time both for candidates and our hiring efforts we need to create a new 1 hour tech test that still embodies solving a real problem here at AddToEvent.
We need a tech test that is:
- Small enough that candidates can complete within 1 hour
- Provides a framework for the candidate to demonstrate engineering skills
Example questions the test should help us answer:
- How the candidate handles feedback or critcism both positively and negatively?
- How fast does the candidate pickup new concepts?
- What does the candidate do when they don't know something?
- Where is the candidates knowledge gaps?
- How does the candidate justify their decisions when challenged?
- What are the candidates values?
- How does the candidate communicate with the team?
#
A 1 Hour Test Proposal
We could have a Gitlab repository that has a scaffolded NestJS project within it containing a few challenges such as:
- Failing Unit Tests
- Failing E2E Tests
- A bug in one of the Endpoints where a sequence of promises fails to resolve
- Adding an additional flag to an entity (based on environment variable?)
- Creating a new entity / controller endpoint
After the candidate has completed the test they should raise an MR to the Gitlab repository for a member of the team to review and comment on.
CI/CD should be setup so we can and the candidate can validate their changes work.
#
Do we want to use the same domain problem?
To Discuss.
#
How much documentation should we write for this theoretical service?
- Should there be Product Design input?
- How in-depth should we go with what is currently built? A video walkthrough of what is built maybe?
To Discuss.