I saw a post on LinkedIn by a Lead Software Engineer of Truemeds hiring for backend engineers (SDE I/II/III/Lead) and shared my resume over email. I got an email after 8 days saying that my profile was shortlisted for interview rounds, and the first round would be taken by BarRaiser (third-party). The Truemeds HR called to schedule an interview the next day itself.
Round 1 - BarRaiser (1.5 hours)
The key focus areas mentioned were:
- Database
- Java Internals and Springboot
- Coding and Problem Solving (Java)
- DSA
The interview began with introductions, describing tech stacks and a high-level flow of the current project that I am working on. Then he moved to the focus areas.
Database
- SQL vs NoSQL Schema difference.
- What is Normalisation?
- Role of Group By and Having Clause.
- How does MongoDB handle large datasets?
- Difference between LEFT JOIN and INNER JOIN.
- A user table has the last login date as a column. Write a SQL query to find all the users who have been inactive for more than 90 days.
Java Internals and Springboot
- Role of API Gateway in microservices.
- Purpose of Container orchestration.
- Explain an orchestrator service.
- Concept of generics in Java.
- What is a circuit breaker in microservices?
- How to configure to integrate JPA in Spring Boot?
- What are inner classes? Explain their types.
- What is an anonymous class?
- Difference between shallow copy and deep copy.
- Purpose of @SpringBootApplication annotation.
- @AutoConfiguration annotation.
- What do Lombok annotations offer?
- What are starters in Spring Boot?
Problem Solving/DSA (Java)
- LC 283. Move Zeroes
- Stack and Queue difference
- GFG Implement Stack using Array
Although in the mail it was mentioned the interview was for 90 minutes, it was wrapped up in 70 minutes. I faced internet issues a couple of times, and thankfully it did not affect the interview. In the end, I asked for feedback, and he said to read more about distributed systems, and the rest was good. Overall, I felt the interview went positively. Although I read numerous posts on Leetcode beforehand about people's negative experiences with BarRaiser as a third-party interviewing company, I was fortunate to have a good experience. It probably depends on the interviewer to interviewer.
Round 2 - Technical Discussion (1 hour)
- LC 11. Container With Most Water
- Stream API - groupingBy
- HashMap and LinkedHashMap
- How to solve deadlock using threads in Java?
- try/catch/finally block concepts
- @Repository use in Spring Boot.
- What happens if we replace @Repository with @Service in the DTO class?
- Which is better between @Autowired and constructor injection?
- To write some REST API endpoints.
- How to insert and get data in Elasticsearch?
- How to handle 1M users trying to hit an endpoint?
- How does Redis work?
- How to use pagination in Spring Boot?
- How can we solve circular dependency in Spring Boot?
- How can we see all logs of microservices in Spring Boot in a single place?
- Explain @Transactional and @Profile annotation in Spring Boot.
- SQL query involving GROUP BY and HAVING.
This round was average, according to me. Although I was able to solve all the coding problems, I was unable to provide the expected answers to some of the conceptual questions. Also, I had a hard time understanding the interviewer's accent.
After 1 week followed up with HR to know that they would not move ahead with my candidature.