Tip 1: Set achievable goals. To start, two questions per day is good enough. This will keep you motivated to keep going.
Tip 2: If you have any interview scheduled, Always read the interview experience, check for its recently asked questions, and practice it well.
Tip 3: Don't forget to check the top 100 or top 50 interview questions related to the tech stack you deal with in your current job; in my case, it was spring boot, java, Kafka, Redis, and SQL
Tip 1: Emphasise the impact of your current work.
Tip 2: Keep it short, crisp and include all the relevant key words & stats.
There were 5 MCQ questions and 1 DSA problem.
Given a sample code, which design pattern is being followed?
Tip 1:Read about all the design patterns.
Tip 2: You should be aware of when to use which pattern and why
The MCQs were based on following topics -
Class, interface question
Design Pattern
REST API or SOAP API
JSON Response Body in API response
Database related question
The given linked list is 1 -> 2 -> 3 -> 2-> 1-> NULL.
It is a palindrome linked list because the given linked list has the same order of elements when traversed forwards and backward.
Can you solve the problem in O(N) time complexity and O(1) space complexity iteratively?
This round started with the introduction, followed by the overview of the work I do in my role currently along with the tech stack I use.
Then I was given a DSA problem
After this, I got a series of basic springboot/design related questions -
Q1: Name the annotation of spring that you have used.
Q2: What is the purpose of @componentScan?(Learn)
Q3: What is the difference between @Controller and @Service annotation.(Learn)
Q4: What is the purpose of @PostConstruct and @PreDestroy in spring.(Learn)
There were follow-ups around the same like give a scenario in which we can use these annotations and so on.
As the product of elements can be very large you need to return the answer in mod (10^9+7).
Try to do this without using the division operator ‘/’, in constant space. The output array does not count as extra space for the purpose of space complexity analysis.
Tip 1: Practice medium-hard level problems from platforms like codingNinja
Tip 2: Must read recent interview experiences and go through recently asked questions
Design and implement URL shortening service, service that takes long url and generates
short and unique url. (Learn)
Basic features of the app:
Returns a URL that is shorter than the original
Must store the original URL
Newly generated URL must be able to link to the stored original
Shortened URL should allow redirects
Must support custom short URLs
Must support many requests at once
Bonus features:
Unit Tests
URLs with an expiration period
Production Ready Code.
Tips:
Make assumptions wherever the requirement is not clear.
Think about what the application needs to be production worthy and ready for
deployment.
Think about what other features can be provided as feature enhancements.
Expectations:
State the assumptions
High level components/micro services and interaction between components
Data design
Technology stack and datastore choices
Implementation of at least one POST/PUT API
Tip 1:Clearly state your assumptions before presenting the solution to ensure everyone is on the same page.
Tip 2: Your design and implementation should incorporate fallback mechanisms at every possible juncture, as they test these scenarios.
Tip 3:Don’t overlook adding validators; interviewers often test these to assess your ability to think and implement independently.
Tip 4: Ensure your code is production-ready, adhering to SOLID design principles and maintaining cleanliness. Include all the necessary test cases and logging.
Dedicate effort to crafting the High-Level and Low-Level Designs; investing in these aspects is appreciated and noticed by the interviewers. In my case, the hiring manager explicitly appreciated for my effort to create the LLD/HLD designs
There were 2 interviewers.
One of them asked me to design a chess board design. (Learn)
After this, I got a DSA problem from another interviewer —
Given an array consisting of N integers. In one move, We can choose any element in this array and replace it with any other number. Find the longest possible length of consistent segment.(Learn)
Input: arr[] = {2,3,3,3,3,1}
Output: int = 6
During the third round, the barrage of questions was so extensive that there wasn’t sufficient time for the interviewers to delve into my ongoing projects. The primary focus of this round was centered around that aspect. Conducted by a senior Software Development Engineer, this interview revolved around the Low-Level Design (LLD) of the system, I was involved with. Using visual aids, I illustrated the LLD and then faced a series of inquiries. These ranged from inquiries about the rationale behind utilizing specific technologies like Kafka and MongoDB to a scenario-based inquiry on how certain situations were handled.
Furthermore, the interviewer presented a hypothetical scenario and inquired about its resolution. From a customer perspective, I elucidated the end-to-end flow, providing an illustrative example. I also elucidated the involvement of upstream and downstream teams, detailing their roles and when they come into play and contribute to the process.
Then, he asked a series of spring boot related problems like -
Q1: Which annotation is used to initialise a springBoot application?(Learn)
Q2: What all annotations @SpringBootApplication contains internally.(Learn)
Q3: What is the purpose of @EnableAutoConfiguration. (Learn)
Q4: What will happen if we replace the @Controller with @Service annotation. (Learn)
Q5: What will happen if we write @ComponentScan along with @SpringBootApplication. (Learn)
There were a lot of follow-up questions on these along with spring lifecycle.
Describe the whole architechture of the project you currently work on?
Tip 1: Always be aware of the whole E2E architecture of the project u work in and where exactly your work goes.
Tip 2: Along with knowing about your team, you should also be aware of all upstream services/teams that depends on u and downstream services/teams that u are dependent upon.
Tip 3: Try to use platform like https://excalidraw.com/ where you can draw and explain parallely. This make it easier to convey your point
This was more of a behavioral round and proceeded as expected, involving extensive discussions regarding my previous projects and addressing conflict scenarios.
Later that same evening, I received an acceptance call, and we enthusiastically conversed about the upcoming steps.
Tell me about the complete project cycle. For if a new project idea comes, how does its execution happen, and where do you get into the picture with the real-life scenario
Tip 1: Pick the most significant project you worked on and explain its whole lifecycle from product to prod
Here's your problem of the day
Solving this problem will increase your chance to get selected in this company
Which SQL keyword removes duplicate records from a result set?