Tip 1 : Read about the basics of both HLD and LLD. Need to know best practices of writing API's.
Tip 2 : In the machine coding round, always ensure you know why a particular data structure is chosen to solve the problem, why not the other one?
Tip 3 : In the machine-coding/design round ensure you have covered all the object relationships to execute the functionalities required by the problem.
Tip 1 : Make sure to highlight your projects which match the field of work in which you have applied (Like Infrastructure, Platform development, Automation)
Tip 2 : Make sure your Github/LinkedIn links mentioned in your resume are up to date.
This was a machine coding round and I was allowed to use the internet to look for syntax (if need). The problem was a mix of LLD + Coding. The focus was more on OOPS, LLD, and are you able to provide working code for the same.
Algorithms/Efficiency was more of low priority to be checked in the same.
I was asked to design the Splitwise app APIs in my favorite language using the editor of my choice. Design Splitwise like API's with following functionalities -
1. Create User
2. Create Group
3. Add user to group.
4. Add Bill to a Group.
5. Get balance/settlement of a group.
6. Get balance/settlement of a user.
7. Allow configurable option to simplify the debts of users in a group.
Additional: 1 user can be part of multiple groups, 1 group can have multiple users and multiple bills.
Step 1 : Defined the entities
Step 2 : Define their relationships, identify 1-to-1 and 1-to-many relationships.
Step 3 : Define the database and how it will perform the operations.
Step 4 : Define the classes, methods, and their relationships using the suitable framework (in my case I used python with Django).
Step 5 : Write the code for individual methods to finish the code.
Step 6 : Write unit-test cases using a suitable testing framework.
It was more focused on HLD and do I know the internals of the components I am using in design. The design has to cover all the scenarios from solving the problem to maintainability, reliability, and scalability.
Design a logging pipeline solution for the application instances in the following scenario -
1. Apps running on VM's
2. Apps running on Kubernetes, but log collection agent running as daemon sets.
3. Apps running on Kubernetes, but log collection agents running as sidecar containers.
Tip 1 : Think about each component and why is it required in the flow.
Tip 2 : Think about various ways logs can be generated/emitted.
Tip 3 : Ensure each component is scalable and provides either Active-Active or Active-Passive HA.
This round was with one of the Directors of another team, the purpose of this round was to check the compatibility in the team.
It was more of a behavior round to dive more into my experience.
1. Describe an experience where showed leadership qualities in your team.
2. Describe an instance where you have worked as a team.
3. Describe an experience where you have not agreed on something with your manager/mentor. How did you resolve the conflicts?
This round was with one of the co-founders and CTO of the organization. This aim was to check the compatibility, interest in the organization and to answer any queries and type of work.
1. What is your objective in this new role?
2. Where do you see yourself in the new role?
3. How do think Groww will help you in your career?

Here's your problem of the day
Solving this problem will increase your chance to get selected in this company
What is recursion?