Round 1: Exploratory call "What is your role?" What is the structure of a team? "What is your working philosophy?" "How do you build your team?" "How do you handle high performers and low performers?" He also explained the working culture, vision, and growth plan. He also explained the product, its challenges, the plans for this project, and the role he is hiring for.
Round 2: System design and technical architecture
Design a system that aggregates the news from different channels and allows users to login and subscribe to different categories of news. Users should be able to subscribe and unsubscribe to different categories. The expectation was to cover different aspects like legal, compliance, functional, and non-functional aspects. Key decision making factors were data base choices, schema, fault tolerance, handling the use case of celebrities, reducing read and write operations, filtering, and transformation of news.
Round 3: System design and technical architecture
You are receiving events from mobile and other devices (like a user click event) , design a system that will retrieve and process these events and support queries like "get the history of the number of clicks per hour over the last 24 hours." Design fault tolerant, scalable, HA , low latency etc, etc very theoretical :) Follow-up: • How will you design the client SDK and avoid event loss if server is down • How will handle the event time assume clients are in different geography. • What data bases you will use and what will be schema? • How will you handle the reconciliation when you want to recorrect the numbers. • How will you support different aggregation
Round 4: LLD/Coding
Design a solution that has a list of available ports. Each port is identified uniquely by its port ID. This application supports two operations. 1) Get free port which return the free port and mark it occupied, 2) release the port for given port id. This need to maintain the information of available port and free port and ensure query and free operations are happening in O(1) time. Interviewer was relatively new and did not provide the clear expectation from the round. Expectations was to discuss the different approaches, algorithm and data structure before deciding the final solution and then write the working code. I was told that this is LLD hence started focusing on abstraction and took some time to code. However later I got to know that interviewer was expecting just working code so he can increase the complexity.
Round 5: Tech Product Partnership
This was 30 min interview with product VP of the rippling. She made me comfortable from very start and overall interview was smooth and interactive. Some of the questions she asked were
• What are your successful and challenging product partnership?
• How do you approach the stakeholder?
• How do you plan the projects and align it with team and their growth?
• What are you looking into new role?
Round 6: Engineering Management fundamental
• How will you introduce yourself to new team if get hired? (basically what value add you bring to company)
• How do you plan the growth of the your team, what documents you write?
• How do you plan the projects, talk about the long term planning and execution planning?
• What are the thing you want to take from current company and what are the things you want to leave?
• Why are you planning to change?
Round 7: Coding round Question :
Design and implement an object oriented Excel Spreadsheet. You are building a library that a frontend team may use to surface a spreadsheet to some users. Don't worry about storing the data durably in a database. We want this to be a MVP library that can be expanded in the future if necessary. All data can be stored in memory. Clarification points after discussion : • We need to be able to view the spreadsheet, with both the raw and computed values shown. This does not have to look like a real spreadsheet, as long as the values are clear when printed. • There is a maximum of 26 columns, and K rows. In our test cases, let’s use <= 100 rows, but we should plan for bigger spreadsheets. • We need to support integer values and formula values for the plus operator but in future we might have more operators. His focus was to • Understand the data storage choices like whether to use 2D array to store values or some other DS as multiple cell can have null values. (I used Hashmap with combination of column id and row id as key) • Understand how data will be computed, storing the computed value or computing the value at the time of display. I initially chose the computation at the time of display but his point was to compute the value during upsert operation. • How change in one cell will impact other cell where particular cell is referenced as part of Formula • How do we optimize the processing of upsert operation