Round 1
Questions:
I was asked to code on an IDE and ran the test cases that the interviewer wanted me to run.
Candidate's Approach
No approach provided.
Interviewer's Feedback
No feedback provided.
Round 2
Questions:
- Design a connection pool system that can provide a connection from a connection pool, which could be of any kind (e.g., thread pool, DB connection pool).
- Write a cache.
- Java multithreading concepts: Threadable, Runnable, Callable, Future, and CompletableFuture.
- Solid principles.
- Handling cyclic dependency between two classes with annotations.
- Write the code for the singleton pattern, explain double locking, and discuss the use of volatile.
I was focused on identifying the API for the connection pool and wanted to map out the classes on a whiteboard, but the interviewer wanted to code it straight away. I feel more comfortable mapping out classes, interfaces, and relationships on a whiteboard, but this approach may have worked against me since the interviewer preferred to go back to the IDE. I started the cache question, but the interview shifted towards Java and Spring Boot.
Candidate's Approach
No approach provided.
Interviewer's Feedback
No feedback provided.