Allegro Tech & Data
The recruitment
process
1. Devskiller task
The first stage of our recruitment process serving as a initial verification of technical knowledge.The further verification is conducted during the next stage.
The link to the Devskiller is valid 3 days. Your tasks will comprise of few elements.
Multiple choice test questions regarding the JVM environment (you get a point only if all your answers are correct).
Open questions on various subjects regarding safe communication and threads.
Code review during which you add your comments – we focus on good programming practices.
Programming– writing tests for the proposed class. In addition to the quality and coverage of cases, we also check their readability and focus on extensibility.
Tips
Before you start solving the tasks, read the instructions and pay special attention to preparing the necessary tools such as git or IDE.
You have 90 minutes to complete the task (you can go to the link earlier and read the instructions, but from the moment you click “Start the test”, the clock starts and you cannot stop it). If you run out of time, you can optionally add your “to-do list” at the end, i.e. write what else you would like to add in the code.
It is better not to open other tabs in the browser during the test. Devskiller sometimes interprets this as a desire to cheat and blocks the given answers from being edited.
2. Technical talks
This part of the conversation is focused on verifying the knowledge needed for the daily work of the engineer over a single service. We talk about good practices in programming, language details and frameworks you know. We care not only about the quality of the code, but also about the performance and records of our services, so you can expect questions about the operation of technology used. We often ask also to review the code reflecting our daily software production process.
What do we check?
- Good programming practices – TDD, Solid
- Knowledge of the basics of programming languages – Java
- Commercial: threads and pools of threads
- HTTP servers and customers
- Asynchronous processing
- JVM: Java Memory Model, GC algorithms
Materials that may help
- Robert C. Martin Clean Code: A Handbook of Agile Software Craftsmanship
- Scott Oaks Java Performance: The Definitive Guide:
- Getting the Most Out of Your Code
- Adam Dubiel – Powrót do podstaw: wątki
- Adam Dubiel – Klienci HTTP: bohaterowie systemów rozproszonych
- Adam Dubiel – Przychodzi request do usługi
Tips
In addition to hard knowledge, we are also looking for a deeper understanding of the issues, so even if you are not sure of the answer, it is worth referring to your experience.
2.1. Discussion on algorythm- and architecture-related subject
In this part, together with a technical recruiter, you will design a distributed system that meets specific business requirements. The conversation requires tackling the issues of scalability, performance, monitoring stability and security.
What do we check?
- Logical thinking,
- Ability to collect system requirements
- Knowledge of the proposed technologies,
- Knowledge on monitoring, implementing, launching, scaling and maintaining applications in production
- Product approach (understanding for whom and why we solve the problem)
Materials that may help
If you want to prepare better for this conversation, we encourage you to read the following items.
- Sam Newman: Building Microservices: Designing Fine-Grained Systems
- Martin Kleppmann: Designing Data-Intensive Applications: The Big Ideas Behind Reliable,
Scalable, and Maintainable Systems
Tips
An hour-long conversation to design a system is very little time, so for us it’s more important to get to know your way of thinking and looking for solutions than to see the final outcome.
Don’t be afraid to think out loud. If you feel that you have hit a dead end and don’t know what to do next, communicate it clearly. Together with the recruiter, you will find a way out of this situation.
- Think about the scale of the designed solution.
- Analyze alternative technologies.
- Generate ideas, propose solutions and analyze the pros and cons.
- Think about the scale of the designed solution.
- Analyze alternative technologies.
- Generate ideas, propose solutions and analyze the pros and cons.
3. Meeting with a leader and recruiter
This is the last stage of the recruitment process, conducted by a person from HR and a Team Leader/Team Manager working in the area to which you have decided to apply.
During an hour-long conversation, we discuss three aspects that are important to us:
First, we want to get to know you better. At the very beginning, we will focus on you, your motivation to change, we will verify the previous experience and examine the competences that are extremely important for us at Allegro to be able to work effectively and achieve ambitious goals. We will also focus on your expectations towards Allegro.
Secondly, we want you to get to know us better, so we will tell you about the work culture. The Leader/Manager will introduce you the area to which you have decided to apply. You will find out what solutions our development teams are working on and how they deal with challenges. We will discuss technical aspects, but also those related to the organization of work.
Thirdly, working at Allegro gives you many opportunities and benefits – we will tell you about them all!
What do we analyse?
- Innovation
- Cooperation
- Goal setting
- Analysis and scaling
- Leadership
What do we analyse?
We use a behavioral interview (STAR method).
In fact, it’s a conversation about your experiences
and work situations.
Tips
Prepare for the interview – go through your CV again, remind yourself of the projects you have implemented, think about the scope of your responsibilities.
Use examples when answering questions. Recall situations that confirm your experience.
Refer to data, at Allegro we make decisions based on numbers.
Don’t be afraid to ask! Remember that this conversation is also for you, and we want you to assess whether Allegro is really a place where you want to develop.
Remember about the structured form of providing information. More is not always better. We have an hour reserved for this interview, and a lot of topics to discuss.
Don’t get stresses! We just want to get to know you better!