I am adding details below, about the role, location, etc.
Role: Senior Frontend Engineer
Designation: Senior Software Engineer
Location: Berlin, Germany
Interview Mode: Online
Result : Selected
Online Coding Test
The coding test was on the codility. The problem statement was pretty straightforward. It was a home take test for 3 hours.
“React-Node-based application to design a search box with auto-suggestion list on every keystroke.
Search Box Example
I have implemented it with the react and node and added the required test case.
The solution was accepted and In my opinion few things that we should care about while submitting a solution like this.
Implement basic required features
Write better Unit Tests (add multiple scenarios)
Write better comments in code for each function and complex logic
Related variable names (do not use foo, bar, etc)
Implement some technique for better Performance (used debouncing in keystroke event)
Always keep in mind, when the problem is complex in nature, It means evaluating your problem-solving skill and abilities to break down big problems into small ones and then solve them.
And when the problem is straightforward and easy implementation. It means they want to know “how beautifully and perfectly you can solve the problem. “ Because they are aware of it that this problem can be solved by a lot of candidates.
After this coding challenge, the next four rounds of interviews were scheduled after a week, These four interviews were on the same day back to back with breaks over, Google meet calls.
Solution Discussion: Round 1 (45 Min)
Inthis round, a senior software engineer was taking my interview, it was pretty easygoing, he made me comfortable by asking a general question about the day, and slowly he started to deep dive into the code that I have submitted in the coding challenge.
The main purpose of this interview was to understand my ability to explain the code that I wrote, and some of the tweak questions were:
what will happen if we removed imports?
How you can optimize the application further?
can you write your own debouncing method?
In general, the questions were easygoing, this round was mainly for evaluating that I have submitted the code and that I know how things work in react.
JavaScript Technical Interview (1 Hour)
In this round, two senior frontend engineer was taking my interview, it was purely JavaScript, From the ES6 feature to the JavaScript execution, event loop, they almost touch more or less everything. I am not adding those questions, however, I will add topics, so you can prepare well, understand the concept not only question and answer.
DOM Tree, DOM Parsing(with async, defer ), CSSCOM, FCP (first contentful paint), Time to interaction, rendering time, server-side rendering, Nonblocking and blocking loading
CSS Specificity, HTML 5 semantics elements, Web Accessibility(role, alt, aria-hidden, aria-labelledby, aria-describedby, reading with screen reader like VoiceOver, sprite vs SVG
JavaScript, types, functions, objects, prototyping
ES 6 map, object destructuring, filters, array.some
Builder Pattern, SOLID principle
Request header, cookies, clickjacking, Cross-site scripting
Webpack, minification, and bundling, bundle optimization
Apart from JavaScript, some questions were also on
Dockerization
CICD Pipeline
Automated Testing
Git Hooks
A wide variety of topics was discussed in detail, it was mainly to evaluate my experience and expertise in these topics.
System Design (1 Hour)
This round was scenario-based, A Senior Principle Engineer was taking this round. I was given a scenario that uses a load balancer for an HTTP request. And how we can optimize the database read-write operation in the same system.
Do not worry, it was mainly the discussion and drawing of the system architecture. For database read-write operation performance optimization, I represented something like this.
Database Read Write Operation
To be honest, from a Front end developer, I feel this was more to ask, but I still appreciate that only discussion and architectural diagrams were discussed that too not so details (how it's implemented, etc).
This was mainly to evaluate my understanding of the complete system (including server, loading, database) and common solution approach to load balancing, database operation, etc.
Discussion with Engineering Manager (45 min)
As you all know, this is not a technical discussion. The discussion with Engineering Manager was mainly to understand my personality about my teamwork capabilities. Some interesting questions I am adding it below.
What you will do immediately if your code breaks the production system?
What you will do if you are not feeling motivated to work?
How you will resolve team conflicts?
What is your idea about leading a team?
Are you comfortable working cross-functional team?
It was a very long day and these interviews back to back were crazy. But I appreciate each interviewer from Zalando