Geektrust creates coding challenges to help developers showcase their skill and for companies to get a sense of how a developer would write real world code.
From the inception of Geektrust, we’ve been creating our own coding problems. Over the last few months, we extended our approach and reached out to our developer community members to create coding problems for us.
Context of the Geektrust Coding Problems:
To allow for consistency in our coding challenges, we are following the theme of “As a startup you are building an XYZ system” and the problem is centered around that.
The idea is that we want to create coding problems that are set in some real world context so that (1) it is interesting for developers to solve and (2) they get to showcase their skill in an appropriate way irrespective of which coding problem they choose.(3) the problem and solution cannot be found online to null plagiarism.
You can use this problem as a baseline to understand what we mean by the above. [login to view URL]
What do we look for while creating a coding problem:
Ability to write clean code. Which means the problems should have:
(so that we can check if they have identified the right ones and named them clearly)
The domain objects should have some behaviour
(so that we can check if they’ve modelled the behaviour of these objects correctly)
The different domain objects should interact with each other
(so that we can check how coupled their code is)
A little bit of complexity in some of the requirements
(so that we can check for how they handle algorithms and data structures)
Deterministic outputs which can be read from a CLI
(so that we can test their code as soon as they upload)
Logic that does not require any third party libraries to implement
(so that we can check how well they have implemented the logic).
Please note, problems should NOT:
need access to databases or web/application servers (in case of backend problems) or integrate with any external 3rd party systems.
The process of submitting a coding challenge
Proposal - Write a short description (shared via Google doc) that summarizes the problem and what the developer will solve for. This will be vetted by the Geektrust team and feedback will be provided and proposal approval will be done.
Creation - Once a proposal is approved, the problem can be fleshed out in detail including 1 to 2 sample input and outputs and submitted for problem approval.
Test Cases - create 5 to 10 sample input and outputs which cover all test cases including edge cases.
Go live - once this is done, Geektrust will move this to our website