... to Kueski's Backend Engineering Interview process!
Firstly, we want to thank you for giving this opportunity to see if your skills and our current openings match. We try to design the process to be interesting, informative and as stress-free as possible. In addition, we would be very happy if, at the end of the process, you and us have learned something new you did not know before.
The recruitment process has the following steps:
- Recruiter Interview: In this step, you will be able to talk with one of our recruiters, who will give you plenty of information about the position, the company and the process itself. The idea is that we get to know each other.
- Automated Technical Interview: On this step, we ask you a couple of questions (multiple choice or programming) to make sure that your technical skills match the position and the skill level that we are looking for at this time.
- Technical Phone Interview: Here you will be talking to one of our developers. At this stage we want to further evaluate some of the skills that cannot be evaluated in an automated test. Additionally, we want to get to know you, to understand what drives you and to get to know your strengths. This is also your opportunity to get to know in deeper detail our technology stack and any technical information about us.
- Challenge (Onsite or Online): At this stage, we will ask you to perform a 3 to 4 hour challenge (a small project) related to what you are expected to do in Kueski. The idea is to see your ability to implement a full project of your area of expertise by yourself. You will also have the time to discuss your project with a team of developers.
- Manager Interview: Whoof... Once all that is done you have finished with the technical side of things. This last interview is with the Manager (the person who you will be reporting to). On this interview, we want to understand what makes you happy, what are your interests, and in general know more about you (besides technology). It is also a good moment for you to learn how the team works and what are our expectations.
What do we evaluate for a Backend Engineering Position?
During the technical interview we look for specific skills. These skills are what you must have in order to ace the interview. If you are not a master of all of these, don't worry! We look for candidates who are "well rounded" and, even if there is a specific skill that they lack, we focus on the strengths you have in some of the skills. The skills we evaluate are:
- Design patterns: You should have used standard design patterns to build your code. You should be familiar with some of them and understand when is it beneficial to use one or another.
- Software Architecture: We are looking to see your experience in implementing systems with a good architecture. Including considerations for scalability and decisions on when to use certain architectural patterns.
- Programming Problem Solving Skills: We want you to show that you can solve given problems with programming. You should be able to come up with solutions logic by yourself.
- Databases: You should understand how to use data-bases. Specially SQL, but knowledge in SQL is also good. You should be familiar with indexes, transactions, etc.
- Concurrency: We are looking for a good understanding of concurrency principles and experience in how they should be applied to real world systems.
- Security: You should have good knowledge on the risks a modern system has. We expect good candidates to be aware of security issues in applications and how to shield their systems against typical and not so typical attacks.
- Code Quality: Because code is the basis of all the magic, we look for programmers that have a top sense of code quality, who can smell "code smells" from far far away, and who always push to provide the best version of their code, considering maintainability, readability and testability in mind.
- Software Development Tools: What development stack do you use? Are you a vi wizard? Do you write Makefiles with your eyes closed? Can you write Dockerfiles with one hand? are you a Maverick in the shell (maybe in more than one shell?). The more technology you use to make your programming life easier, the more efficient you are. This is the kind of skills we are looking for here.
As mentioned before, the process is thought with the objective to identify and spotlight your strengths. So, stay relaxed and enjoy the process. Also, feel free to ask for any and a lot of questions to everyone during the process.
It is very important for us that the process feels like a two way conversation. We believe that during an job interview, the candidate should also have the tools to evaluate the potential employer. We want to provide the tools for that!. So, do not hesitate to ask a lot of questions during every step o the interview.
Go for it!