Why should you spend time working on a test task to get the desired job? Isn’t it much easier to jump straight into a company that will hire you on the spot without assessing your skills in a meaningful way or at all? Well, you can certainly do that – the choice is yours... But we are not that company!
My name’s Dimitar and I’m one of the co-founders of Documaster.
I’ve been into computers and programming for about twenty-five years, so I’ve had plenty of time to work with various technologies and exchange ideas with countless people in IT. Undoubtedly, my understanding of what it means to be a great developer has evolved from my naive early ideas such as “real programmers don’t write comments – the code is obvious”, to my current perspective, which emerged when I became responsible for hiring developers and other technical people. Here is what I think a great developer is and why this really matters for Documaster.
To be a great developer, regardless of your programming language of choice, you must have a fine grasp of the different hardware components and how they interact, as well as understand how computer networks operate. You need to know the basic concepts of operating systems and concurrent programming, as well as how the frameworks you use actually work.
You must write robust code that performs well and is pleasant to read, and document your code concisely as comments or technical documentation. Likewise, you must be capable of reading and improving other people’s code, and helping your colleagues make their code better during code review. To ensure that you are building the right software, you need to communicate well with both technical and non-technical stakeholders to clarify any uncertainties when needed. Finally, to be a great developer you must have a decent overview of technology, its maturity and practicality, and select the most suitable technology to solve the specific problem at hand instead of blindly following the hype.
The list of skills I presented may not be comprehensive, but should give you an idea of what we look for in job candidates. If you want to join Documaster you will have to solve a technical task designed to showcase where you stand in terms of the skills we value so much. As you can read in the testimonies below, my colleagues find this part of the selection process extremely valuable.
“The job interview at Documaster has definitely been the most memorable I've had in my career. From the very start, I was encouraged to take my time with the technical task and present the best solution, instead of being bombarded with tight schedules and looming deadlines. This rather simple detail led to the most fun I've had when applying for a job! I had ample time to research the subject and apply solutions I deemed suitable. Most of all, it gave me time to reiterate and refine the solution until I was confident and satisfied with what I produced. The end result was me being certain that regardless of whether I would be selected for the position or not, I would still be happy with myself and with the fact that I learned so much in a field that I previously had not encountered in my career.”
“In your daily work, no one examines you on topics that you can just look up in the documentation. So why should a job applicant be put through a sweat-inducing technical interview testing how well they’ve memorized the documentation? You can provide a short and elegant solution to a task and at the same time show that you’ve really put the effort to create a good solution instead of just going through the motions.”
The task should take a few hours to complete, but this depends entirely on your experience and motivation to show what you are capable of. You can work on the solution from home. Surely, we cannot test all skills we’re interested in, but we’ve put in significant effort to design tasks (for the different technical positions) that can give us a pretty good idea how well you are doing and in what areas you need to develop further.
“What I enjoyed the most is that you had crafted your own task instead of using a ready-made one from the Internet. I also liked the fact that the task focused on a real-world use case instead of on a well-known problem.”
Just as important, the task will tell you what kind of company we are. If the task feels boring or irrelevant, or simply not something you wish to invest time in, then we are most probably not the right company for you.
“I enjoyed the fact that I don’t have to write code while someone is looking at me as though I was in an exam. An exam-like situation would not have allowed me to focus and do the best possible job. The task was interesting. I worked on it from home and got acquainted with some of the technology that I would later use in the company. Of course, you can complete the bare minimum of the requirements but since the task is interesting you can go further which makes the task even more intriguing. A real-world technical task gives the company significant insight into your level of expertise, how you structure your code, what’s the quality of your code, whether you follow best practices, and how you communicate with colleagues (if you have questions about the task requirements).”
We believe in setting quality standards, even if that means we will hire less than other companies. But growing at any cost has never been on our agenda. It is unsustainable. We’ve always been interested only in hiring the right people with whom to build long-term relationships. And we’ve always wanted our new colleagues to feel that they’ve come to a place where quality is valued and their contribution really matters.
If you’re still reading, then maybe something in this post resonates with you, and you’re curious to find out more about how we do things. If that’s the case, you can always reach out to us for a chat. We would gladly take the time to talk to you.