Java Spring Boot Developer
Interview Date
May 7, 2024
Result
Implied Selected (Positive tone, thorough rounds)
Difficulty
Medium to Hard
Rounds
3 rounds (Technical Round 1, Technical Round 2, Managerial Round)
Drive Type
Off-Campus (Experienced Hire, 3+ YOE)
Topics asked
Detailed experience
College: Not Specified
Interview Date: May 7, 2024
Interview Type: Off-Campus (Experienced Hire, 3+ YOE)
Result: Implied Selected (Positive tone, thorough rounds)
Difficulty: Medium to Hard
Rounds: 3 rounds (Technical Round 1, Technical Round 2, Managerial Round)
Topics Asked: Java 8 features, `equals` and `hashCode`, `static` and `final` keywords, HashMap internal working, Collections (List vs ArrayList), race condition, callByReference, CallBack, interface vs abstract class (after Java 8), overload vs overriding, Spring Boot annotations (`@RestController` vs `@Controller`, `@SpringBootApplication`), connecting multiple databases, Singleton Design Pattern (thread-safe), Builder Design Pattern, concurrent package, Callable vs Future, Spring MVC, POJO, REST API creation, Spring Security OAuth2.0, API communication (App-to-App, backend-frontend), Request vs Path params, `@GetMapping`, PUT vs PATCH, GET vs POST, Hibernate, JPA, foreign key mapping, unit testing, behavioral questions.
The interview process began with a recruiter contact via Naukri, leading to scheduled interviews. There was no online test.
Round 1 (Technical - 1 hour 17 min): Started with introductions and a discussion of the candidate's projects for about 10 minutes. A coding question was asked: "Find the second largest element in the array." The candidate initially provided an O(n log n) solution, then optimized it to O(n) using two loops, and finally to a single-pass O(n) solution. The interviewer then modified the question to also return the index. Numerous Java and Spring Boot questions were asked, covering topics like Java 8 features, `equals` and `hashCode` implications, `static` and `final` usage, HashMap internals, various Collections, race conditions, callByReference, CallBack, `interface` vs `abstract class` (post-Java 8), and overloading vs overriding. Spring Boot questions included differences between `@RestController` and `@Controller`, `@SpringBootApplication`, and connecting multiple databases.
Round 2 (Technical - 1 hour): Conducted by the same interviewer. Questions included Singleton Design Pattern (code implementation and making it thread-safe), Builder Design Pattern (usage in projects, code implementation and explanation), concurrent package, Callable vs Future. Spring Boot topics covered Java Spring MVC, `userController`, data creation using POJO, creating REST APIs for `getEmployee()`, data mapping, Spring Security OAuth2.0, situational API communication, `RequestParam` vs `PathParam`, `@RestController`, `@GetMapping`, different mapping methods, and differences between PUT/PATCH/GET/POST. Questions on taking more than 50 records using `getAPI` and Hibernate/JPA mapping with an `Employee` class example, and unit testing were also asked.
Round 3 (Managerial): Before this round, the candidate filled a document to check their mindset. Questions were straightforward and revolved around "Why Dassault?", career goals (e.g., why looking for a third company in 3 years, why left previous firm), and managerial aspirations (e.g., desired manager traits, preference for smaller teams).