Tip 1: Prioritize clarity over cleverness.
Tip 2: Learn branching strategies, rebasing, stashing, and how to resolve merge conflicts efficiently.
Tip 3: A deep understanding of your current stack will usually provide more value.
Tip 1: Include personal or academic projects that showcase problem-solving skills, technical expertise, and your ability to build functional applications.
Tip 2: List programming languages, tools, and frameworks relevant to the job. Prioritize core skills (like Python, Java, React, etc.) over generic ones, and support them with context from your experience.
The first round was an offline pen-and-paper test consisting of a total of 5 questions — 4 based on Data Structures and Algorithms (DSA) and 1 SQL question.
The DSA section included a mix of difficulty levels:
The SQL question tested basic to intermediate querying skills.
Overall, the round was designed to evaluate problem-solving ability, logical thinking, and understanding of core data structures.



Input: 'a' = [7, 12, 1, 20]
Output: NGE = [12, 20, 20, -1]
Explanation: For the given array,
- The next greater element for 7 is 12.
- The next greater element for 12 is 20.
- The next greater element for 1 is 20.
- There is no greater element for 20 on the right side. So we consider NGE as -1.
For each element, we want to find the first element to its right that is greater than itself.
A brute-force approach would take O(n²) time, but we can optimize it using a stack.
Use a stack to keep track of elements for which we haven't yet found the next greater element.
Initialize an empty stack to hold potential "next greater" candidates.
Create a result array initialized with -1s.
While the stack is not empty and the top of the stack is less than or equal to the current element, pop elements from the stack.
If the stack is not empty after popping, the top of the stack is the next greater element.
Push the current element onto the stack.


Input: ‘N’ = 5, ‘K’ = 4, ‘NUMS’ = [ 1, 2, 1, 0, 1 ]
Output: 4
There are two subarrays with sum = 4, [1, 2, 1] and [2, 1, 0, 1]. Hence the length of the longest subarray with sum = 4 is 4.
Use a hashmap to store prefix_sum : first_index.
Iterate over the array.
At each step, update the prefix_sum.



Initialize
visited[]: Tracks if a node was ever visited
recStack[]: Tracks nodes in the current recursion path
DFS Traversal
For each unvisited node, run DFS:
Mark node as visited and add to recStack
If not visited → DFS recursively
If in recStack → cycle found
Remove node from recStack after recursion ends
Find the second-highest salary from the Employees table. (Practice)



Let the given string be “(()())((”.
Here the valid parentheses substrings are: “()”, “()” and “(()())”. Out of these the longest valid string is “(()())” which has a length 6.
I initialized a stack, and for every character in the string, I pushed '(' onto the stack. Whenever a ')' was encountered, I popped the top element from the stack.
The interview was scheduled for 4 PM at the company office. The interviewer was a senior software engineer at the company.
Write the schema for inventory management for an E-commerce application.
Revisit the approach for the graph problem solved in the previous round.
I thoroughly explained the algorithm and explained using dry run.
The online interview was scheduled for 1 PM. The interviewer was the co-founder of the company.

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