My experience of interviewing for the position of QA – engineer at Tinkoff

Hi all! I would like to tell you about my interview at Tinkoff, where I decided to try my hand, despite several stages of selection.
To get into Tinkoff, you must pass at least four sections: preliminary interview, profile interview, technical interview (programming and testing theory), and introduction to teams. The second section takes place in one of three directions: testing mobile applications, backend or web applications.
First stage – this is a standard conversation with a recruiter, including questions about work experience, projects, plans, desired location, information about the company, etc. From the non-standard – a few easy technical questions that do not require a detailed answer. At this stage, I announced that I write autotests in JavaScript, but would like to do backend testing. HR assured me that the programming language is not important, and despite the fact that Java is used in my chosen field, I can easily retrain through Tinkoff’s internal courses. This was unreliable information, which I found out before the last stage – meeting the team.
Second stage there was a specialized section in the direction I had chosen – backend. The interview began with questions about the differences between a relational and non-relational database, DELETE and TRUNCATE, and the definition of a primary key and a foreign key. Next, we needed to write several SQL queries in the online-IDE. The first three were elementary (adding, updating, deleting a record), and one query was more complex – using JOIN, grouping and a nested query.
There were questions about logging (tools, log levels), types of authorization, sessions, types of API (REST/RESTful, SOAP, their differences), caching and cache invalidation, as well as CI/CD (continuous integration, delivery and deployment, source pipeline launch, artifacts).
A significant part of the questions were about HTTP requests/responses (structure, versions, methods, headers, status codes). For example, about the principle of operation of HTTPs, idempotency of methods, how the server can find out that JSON was sent in the request, etc.
This section concluded with questions about the differences between monolithic and microservice architectures, message brokers, and features of Apache Kafka.
First block third stage is a testing theory. Here I was presented with a payment form indicating the agreement number, the “Pay” and “Cancel” buttons, a field with the payment amount and a drop-down list where you can select the linked card. It was necessary to list all possible checks for this form, applicable test design techniques, objects to mock, what unit, integration and end-to-end tests could be written for this form. There were questions about technical debt in testing, scrum, shift left and shift right testing practices.
The second block of the third stage was programming. This is what I was most afraid of. 40 minutes were allotted to solve two problems: the first was very simple, the second required a little thought. I decided everything silently, and this was my mistake, since in such interviews it is a plus to speak the decision out loud.
Tasks:
1.Write a function that takes two arguments – a word and a letter. The function must count how many times this letter occurs in a given word and return the resulting number of occurrences. And the same thing is case insensitive.
2.Write a function that will return trueif the input array int contains 3 or more consecutive numbers anywhere.
After going through three stages, I almost relaxed, since the most difficult part, as I thought, was over. But it was not there. It turned out that working in backend teams requires knowledge of Java, and my experience in JavaScript is not suitable. And the opportunity to retrain in courses is given to a few and is very rare.
Therefore, on the advice of HR, I decided to take another specialized section – web application testing. Here, many questions duplicated the section on the backend (API, HTTP, SQL, but without writing queries, CI/CD). It was necessary to talk about PWA, protocols, browser architecture. Questions were asked like: “What happens after sending a request through the address bar? What will you do if you see a white screen? How to find out which side the error is on: the client or the server?” It was necessary to talk in detail about the Chrome Devtools tabs, where we should not forget about geolocation override. A practical task is to write an XPath to search for an element by full and partial text match. This section was completed with questions about transactions, deadlock, Docker, Kubernetes and their components, SPA and SSR, monitoring tools, and basic application metrics.
I can say that at Tinkoff they test candidates’ knowledge very carefully, but in the end, the decisive role is played by the ability to prove oneself at the final stage – getting to know the team, where the results of technical interviews have no value. It is also confusing that the Tinkoff recruiter was not sufficiently aware of the processes in the company, which is why she had to undergo two specialized interviews.