How does an interview with QA engineers go at Tinkoff?

Svetlana Aristarkhova
IT’s Tinkoff
Published in
11 min readFeb 20, 2024

Hello! My name is Svetlana Aristarkhova, I am a senior quality assurance engineer at Tinkoff. I’ve translated the narrative detailing the interview process at our company. You can access the original article via the following link: https://habr.com/ru/companies/tinkoff/articles/686996/
Enjoy your reading experience!

Let’s agree that the terms “tester”, “QA” and “engineer” are synonymous and are used to diversify the style. Professionally, we build teams of full-stack QA engineers, but the ideology will be touched only briefly. The article will be useful to those who are interested in processes in large companies, see their future as a QA engineer, or want to get a job specifically at Tinkoff. If this is you — welcome to the cut!

Selection stages

First of all, we are looking for a specialist for Tinkoff. The selection of the team takes place after the successful completion of all the selection stages. We are currently recruiting engineers for three different streams.

Web is a stream that covers everything related to testing websites, their backends, admin panels and the web ecosystem. QA engineers in this stream ensure a high quality front end of personal accounts, public portals like tinkoff.ru and a variety of user interfaces that are only visible inside.

Mobile is a stream that involves testing mobile applications and the services required to run the applications. This stream is for candidates interested in testing mobile applications and the services behind them.

Backend stream ensures the quality of the work of the systems that are not visible to the client. Neither the performance of the web part, nor mobile applications, nor other complex parts of the ecosystem that work with data can do without it.

Tinkoff has four selection stages for QA engineers: preliminary interview, hard skill interview, technical interview and team fit interview. Here is how they look like in the table:

7–14 days for all stages

The first stage is an interview with a recruiter at Zoom. Our specialist will ask you about your work experience and the projects you have been involved in. You may also be asked about your motivation, attitude to and expectations of the company, technical interests, location, etc.

The recruiter will ask you a series of entry-level technical questions to understand how you and the company fit together. For each stream we have a pool of simple questions, something like a technical baseline that all QA engineers should know.

There will definitely be a question: “Where do you see yourself in N years?” We used to ask about five years, but five years is a very long time, so now we ask about two years. It is important to us how a person thinks and where they want to grow professionally, because we are in it for the long haul.

There are people who try to enter IT as QA with the aim of becoming a developer or specialist in another field. It is often said that testing is an easy way to start an IT career. We do not share this view and do not welcome it.

At the end of the interview, the recruiter will ask you to rate your professional level on the basis of three recruitment streams. Depending on the answers, we select the priority section of the technical interview. For example, if a specialist says they are good at backend, but so-so at mobile and web, we will send them to interview in the appropriate backend stream, giving priority to the selected stream.

If it is difficult to decide which direction to take, we will send you for an interview on two streams and choose the most effective one — where you were able to answer more questions and where the skill level is higher.

The second stage is a hard skill interview, which takes place over one of three streams in a Zoom call and lasts 1.5 hours. The testing section is conducted by existing testers of the appropriate level. To communicate with juniors, we invite middles, and for middles, senior testers. We try to ensure that the interviewer is one grade older.

For hard skills interviews we have a guild of interviewers whose job it is to conduct interviews according to our standards of professionalism. First we interview for Tinkoff and then for the teams where the tester will work.

The Guild is made up of active QA engineers who divide their time between testing and interviewing. They hold technical sessions and find colleagues (in the broadest sense of the word) — for their team or neighboring teams.

The guild is also made up of three streams: web, backend and mobile testing specialists. We invite an interviewer depending on the tester’s profile. Their job is to ask in-depth questions about the stream in which you have the most experience and knowledge.

At this stage we ask technical questions about the tools used in a particular stream: autotest frameworks, infrastructure building systems. For example, which scenarios specific to each stream does the candidate know, how does he analyze the system under test and what specific knowledge does he have. It is assessed how well the candidate has the relevant knowledge.

The result will be an assessment of how well you did in the hard skills interview. If something went wrong and you couldn’t answer the questions, we will give you feedback on what skills you need to improve and what you need to read. If everything goes well, even if not to the expected standard, we will continue to communicate and move on to the next stage. We will talk about questions from the hard skill interview in the next part of this article.

The third stage is technical. It is divided into two blocks: QA theory and programming of 45 minutes each.

Quality assurance theory tests theoretical knowledge: how to build a test pyramid, how to build a test model, how to write test cases, where to store them, what testing is, what is worth testing and what is not, how to organize functional testing of the application.

We can talk about non-functional testing: load testing, performance testing, security testing — anything that is not directly related to the functionality of the application, but is related to the technical properties of systems. This section is conducted by the same engineers as the hard skills interviews, so it may be the same interviewer for the hard skills interview and the QA theory. Or they may be different.

The second block is programming. This block is the most intimidating because we require candidates to be proficient in a programming language.

In fact, the block is only scary in name: we’re not asking for complex patterns or designs, mastery of algorithms or anything else. We propose to implement a simple function that does a simple thing.

For example, making a copy of a string in which every word starts with a capital letter is a basic task for anyone starting to learn a programming language. It’s described in every programming book, training course or video. We suggest solving several such tasks to diversify the possibilities and avoid them appearing in the public space. All tasks are simple with actions on a string, a number or something similar.

The essence of this block is to understand that the candidates are not afraid of programming and how they are technically ready for what they have to work with. This is a strategic objective.

We want our testers to become full-stack QA engineers. By fullstack, we mean that testers can not only manually check the functionality of services, but also automate these checks to minimise manual intervention, leaving time for complex and interesting tasks, project development and professional growth.

Automation requires knowledge of a programming language, so we check this at the outset. If a candidate knows a programming language at a basic level, they are a good candidate for us. If a candidate is comfortable writing code, they are a good candidate for us. If a candidate has spent all 45 minutes solving a few problems, they are a good fit for us. We are willing to invest in the training and development of such people, to show them how teams works and to provide them with development materials.

Those who pass the technical interviews are invited to final interviews with the teams. The hiring team members review the results of the previous stages and make a request to meet the candidate.

There may be more than one round of interviews if more than one team is looking for such a specialist.

Each meeting lasts about 30 minutes. The purpose of these meetings is not to test knowledge, but to communicate and check the compatibility of the candidate and the team. Future colleagues get to know each other, discuss the characteristics of the project and specific tasks.

The interview consists of two parts: the first part is to ask questions about your current or previous work and your professional experience; the second part is to talk about the team so that an interesting candidate is placed in the right team. We also answer any questions that arise.

We are prepared to discuss what worries the candidate and what he or she lacks in their current job. At the final meeting we agree whether the candidate is a good fit for us and we for them. We want the candidate to feel comfortable working in the proposed team and the team to get immediate results.

If all goes well, the recruiter will set up an offer meeting with the selected team and discuss salary, numbers, projects, responsibilities, schedule and other work issues in detail.

After the offer meeting, the tester has time to think and make a final decision.

Sometimes it happens that a candidate needs time to complete things at his previous job. We are ready to wait and we hope that if he leaves our team in the future, he will take the transfer of affairs just as responsibly and take a long break.

What is assessed at hard skill and technical interviews

At these stages you will need to demonstrate your knowledge of stream-specific technologies and tools, quality assurance theory, and do some live coding. All questions are designed to assess the depth of answers, so there is no need to cram in definitions: the interviewer has the opportunity to move away from the direct answer and ask the candidate to expand on terms or solve a small thought experiment. To make it clearer, I will give examples of questions and tasks that can be found in the sections.

The purpose of the Hard Skills interview is to test the candidate’s knowledge of the technology stack, tools and testing practices in the stream they have chosen. Questions can be either completely stack specific or from related areas. For example

  1. What is the difference between testing a mobile application from a desktop one, from a web one?
  2. How do versions of the HTTP protocol differ? How are HTTP request methods different?
  3. What is a microservice? What are message brokers?

We ask classic SQL questions about JOIN and provide tasks for writing simple queries. We can also ask in-depth questions about optimising queries to data processing systems for specialists applying for high QA positions.

The purpose of the QA Theory and Practice section is to test the candidate’s knowledge of quality assurance, their ability to work with artifacts, techniques and approaches used in our profession. We ask:

  1. Software development methodologies, their advantages and disadvantages
  2. Shift Left and Shift Right Testing practices
  3. Tasks like “You have discovered a defect in your functionality. What are your actions?”

This is not an exhaustive list, but many issues have been discussed repeatedly in specialised forums, communities and literature.

The purpose of the programming section is to test knowledge of basic data structures, syntax and the ability to write code in the language specified in the CV. Here are some sample questions:

  1. An apple costs A dollars and B cents. Determine how much money you need to pay for N apples. The program receives three numbers as input: A, B, N, and must output two numbers: the cost of the purchase in dollars and cents.
  2. Find all the shelves in the library on which Remarque’s books are located.
using System;
using System.Collections.Generic;

public class Program
{
public static void Main()
{
var shelves = new Dictionary<string, string[]>
{
{"shelf 1", new string[]{"1984", "Three Comrades"}},
{"shelf 2", new string[]{"To Kill a Mockingbird", "A Hero of Our Time"}},
{"shelf 3", new string[]{"And Then There Were None", "All Quiet on the Western Front"}}
};

var books = new Dictionary<string, string>
{
{"1984", "George Orwell"},
{"Three Comrades", "Erich Maria Remarque"},
{"To Kill a Mockingbird", "Harper Lee"},
{"A Hero of Our Time", "Mikhail Lermontov"},
{"And Then There Were None", "Agatha Christie"},
{"All Quiet on the Western Front", "Erich Maria Remarque"}
};
}
}

3. What will be written to variable a?

s = 'iamstring'
a = s[3:5:1]

For each section, the candidate’s detailed answers are collected into a result card. Hiring managers are guided by these results before calling a candidate to meet the team.

Specialist card at the beginning of the selection
Card filled in with the candidate’s answers

During a technical interview, candidates answer questions and score points, then the interviewers write their report and submit it to the recruiters.

Then the interviewer prepares a summary and sends it to the recruiter, who then sends feedback to the candidate.

Timing: how long do the stages take?

The initial phone interview lasts 30–40 minutes, after which the recruiter sends answers to technical specialists. The recruiter will return a few days later to invite you for a hard skills interview. The date and time of the interview will depend on the candidate’s preference.

The hard skill interview lasts up to 90 minutes, after which the interviewer immediately sends feedback to the recruiter. If everything goes well, we call you to the next stage — a technical interview. Here the date and time also depend on the wishes of the candidate, and the interview lasts 1.5 hours — 45 minutes for each section.

You will receive feedback on a technical interview the same day. You will then be invited to a final interview to meet the teams and choose the project you want to join. This usually takes one day, but can be more. The offer is then agreed and an offer meeting is arranged to give you the numbers and discuss the role. Further you will be given time to make your final decision and prepare for your first day.

IT Recruitment Roadmap:

Telephone interview → Choice of interviewer → Hard skills interview →
Choice of interviewer → Technical interview → Meeting with teams →
Choice of team to join → The offer meeting

On average, 27 calendar days elapse from initial conversation to offer.

We talked about QA at Tinkoff on our page (follow the link: https://www.tinkoff.ru/career/it/qa). Send us your CV if you are interested. If you have any questions, let’s discuss them in the comments.

--

--