The CodeSignal library of over 4000 questions covers a huge range of topics, but for the rare instances where clients have very niche or specialized needs, sometimes it might not be enough. For these cases, the platform includes a handy built-in UI for creating your own tasks!
There are currently 5 kinds of tasks that can be created through the UI:
1. Algorithmic – For a single function task, the interface allows us to write a detailed (markdown supported) description for the overall problem, as well as the inputs and outputs. For the inputs and output, we support all primitive data types, as well as some basic data structures like arrays, binary trees, and linked lists. Supplying a reference solution will allow us to generate random tests, which can really speed up the task generation process. By default, these kinds of algorithmic tasks will support all 38 programming languages available on the platform (though we can configure a test to be limited to a select few languages).
2. Quiz – These multiple choice questions are a great way to get a quick signal of the candidate’s knowledge related to a particular language, framework, pattern, or principle. They’re also one of the quickest types of questions to produce; simply enter the problem description and fill in the list of possible answers (which will appear in randomized order). Markdown is supported for both the question and answers, and copy-pasting will be disabled for the candidate (as an anti-cheating measure).
3. Free-coding – As we’ll see in more detail in episode 21, these kinds of tasks provide a problem description and a coding window, but no automated tests. These tend to be a good choice when there will be someone to observe the candidate live or watch the replay. Since there aren’t any built-in tests, these tend to be very straightforward questions to develop; basically just write the description in the markdown-supported text area.
4. Free-text – As seen in episode 18, this type of task is purely text-based, so it’s one of the few types that doesn’t provide an IDE. So we can create one of these by simply typing in a description (which supports markdown for images, code blocks, links, etc).
5. Free-frontend – These are just like free-coding questions, but with an HTML, CSS, and JS file. There’s also a preview window for rendering the result. And since the problem description is markdown-supported, you could easily include an image as a mock-up.