Rakuten - Java Lead Developer (Springboot)
Summary
My first round virtual interview for a Java Lead Developer role at Rakuten was a rapid-fire session covering SOLID principles, multithreading, data structures, Java streams, and exception handling. I rated the difficulty as Easy to Medium. Despite my lack of Spring Boot knowledge, I found the experience positive and valuable.
Full Experience
It was the first round held virtually.
It started with a basic introduction and little about current project, understanding the tech stacks
The interview lasted for about an hour and felt like a rapid-fire session, with questions coming one after another. It served as a quick recap of everything I’ve studied so far. In terms of difficulty, I would rate it as Easy to Medium.
Although I wasn't familiar with Spring Boot, which might be a deciding factor for rejection, overall, it was still a positive and valuable experience.
Interview Questions (12)
Explain SOLID Principles
Explain what the SOLID principles are.
Implement Thread-Safe Singleton Class
Write a code snippet for a Singleton class and ensure it is thread-safe.
Explain Volatile Keyword in Multithreading
Explain what the volatile keyword is in multithreading.
Modularize Monolithic Application using SOLID Principles
How would you make a tightly coupled Monolithic application modular using SOLID principles?
Implement Binary Search
Write the code to perform binary search in a sorted array.
Demonstrate and Correct Single Responsibility Principle Violation
Write code to show how the Single Responsibility Principle is violated and provide the corrected code.
Explain CountDownLatch
Have you heard about CountDownLatch? Explain it.
Time Complexity of Data Structures Operations
Give the time complexity for insertion, deletion, and search in HashMap, Binary Search Tree, and Linked List.
Compare Sorting Algorithms
Give the difference between Bubble sort, Insertion sort, Merge sort, and Quick sort.
Java File Reading with Custom Exception Handling
Write a Java function to read a file where if the file is not read, you throw IOException, if you don't find the file while reading throw FileNotFoundException, and also try to add one custom Exception for any other issue you face.
Filter and Sort Objects using Java Stream API
If you have a class Person having age and name as data members, please write the code snippet to fetch all the persons with age > 25 and in a sorted manner using Java Stream API.
Exception Handling in Java Stream API
How would you handle exceptions in the Java Stream API?