**Job Location: Berlin, Germany.
** All rounds were remote(Skype/Google Meet)
Round1: Take home coding round - 1 algorithm question, 1 SQL query
Round 2: 15 min video round - technical+going over resume
Round 3: 1 hour technical live coding on coderpad -1 algorithm question + 10-15 SQL queries with difficulty level of basic(select,project,min,max) to medium(joins,group by-having)
Round 4: 4 hours video round(3 x 45 min + 15 min break) Breakdown is as follows:-
4.1 Algorithm Design-
4.1.1 Standard Questions ,Easy to Medium, Leetcode practice helps a lot.
4.1.2 Code review - Good to know basic coding practices and architectural patterns esp. MVC, project folder setup, Separation of Concerns.
4.2 Database Design: Given a scenario, design its database with various tables, variety of relationships. Once done with the design, you will be asked some questions pertaining to joins, sub-queries. Prepare it very well.
4.3 Behavioral round: It's basically to get to know the candidate better and how have been his/her previous experiences. Some questions about the role in project, the team size and project life cycle, Agile methodologies.
4.4 System Design: Given a scenario, design the system e.g. Parking lot, URL shortener, Chat application. Only 1 will be asked. Major focus is on concepts of distributed systems viz. scalability, load balancing, eventual consistency, ACID vs BASE, relational vs NOSQL DB, caching layer and algorithm e.g LRU. Try to explain in easy words and then go for technical details.