Tip 1: Aim for consistency by solving at least one problem daily.
Tip 2: Focus on building strong fundamentals
Tip 3: Focus on Object orineted and low level design concepts and design patterns
Tip 1: Keep your resume concise. A one-page resume is ideal, but if you have a lot of experience, you may need two pages. Make sure to highlight your most relevant skills and experience, and be sure to proofread your resume carefully before submitting it.
Tip 2: Be specific. Don't just list your job duties. Instead, focus on your accomplishments and the results you achieved. For example, instead of saying "Managed a team of 10 employees," say "Increased team productivity by 15%."
I was given Stock Brokering system to design and code.
User can buy and sell stocks
User can create multiple watchlist containing multiple stocks.
The stock price is decided at the Stock Exchange. And the Last Traded Price of a Stock is updated every 2 Sec.
Implement using in-memory Data Structures.
Expectation of this round was to come up with a design using Design Principles and Design Patterns.
I came up with command design patterns and then interviewer asked me if you have to design the whole system along with the Stock Exchange , which design patterns to be used ? I came up with Observer design pattern. He was convinced with the approcah and i moved to the coding part.
In coding part the primary focus was on the structure and flow of the code instead of the implementaion logic. In code review interviewer asked me different questions related to concurrency, Exception Handling, Singleton class etc.
***Tips/Answers for Solving these Problem/Problems***
Tip 1: Listen carefully the requirement of the problem and clarify by asking as many questions as possible
Tip 2: Break down the larger components into smaller
Tip 3: Highlight your assumptions



You are given an array containing both negative and positive numbers. you are supposed to remove exactly two elements from any end such that the sum of remaining elements is maximum, and finally return the indices of the elements to remove.
Imagine you're building an alerting solution for an API. The API processes requests. In case too many requests come in a short period of time, we want to notify the oncall.
We should send a notification after a request if any of the following is true:
- there were more than 3 requests in the last 1 second
- there were more than 25 requests in the last 10 seconds
Given a sorted array of timestamps (in seconds) of arriving requests, compute how many notifications need to be sent out.
Example:
[1,1,1,1,1,2,2,2,3,3,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,15] -> 4
Here I've marked the requests that would trigger the notification:
[1,1,1,(1),(1),2,2,2,3,3,3,(3),4,4,5,5,6,6,7,7,8,8,9,9,10,(10),15]
I started the discussion by suggesting a queue data structure and handled both the conditions by maintaining a queue of objects. The object will have an internal count of request which will handle the first condition and the queue size will handle the second condition. Though my solution satisfied the current scenarios but would fail eventually when it comes to scaling. The interviewer was looking for a scalable and production ready code. He suggested to maintain n-queues for n-condition to which I argued that it wouldnt be space optimised if millions of requests are coming up in this case. He asked me to believe that his solution doesnt have any trade-off which was kind of distressing since system design rounds are supposed to be open to discussion.
***Tips/Answers for Solving these Problem/Problems***
Tip 1: Ask Questions to clarify the requirements
Tip 2: Be loud while explaning your thought process
- Tell me about the most challanging situation you have worked on
- Situation of conflict with Senior or teammate?
- Why AiDash ?
- What are your Next 2-3 year Goals?
- Reason for Switch

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