Sharing the interview process for a Fresher Java Backend Developer position at a certain fintech company (half a month ago):
Round 1: CV scan (if you pass, move to round 2) Round 2: Phone interview where HR runs a brief OOP test and an English test (if you pass, wait for the team to review your CV before round 3, face-to-face) Round 3: Go to the office to interview with HR and a tech lead sitting together, with the following set of questions (I only remember 95% of the questions that day) (The interview is in Vietnamese, folks)
- Greeting and general self-introduction
- Overview of your study and work history
- OOP:
- Compare abstract class vs interface
- Compare abstract vs inheritance
- Test case: can you implement method logic inside that class? Why?
- When implementing an interface or extending an abstract class, do you need to override the methods? In which cases not?
- Do you need to re-implement methods when extending a parent class?
- Compare the @Override annotation/method overriding vs overloading
- Java core:
- Give an overview of the basic collection interfaces
- Compare list vs set (performance, principle, use case, why use)
- Compare LinkedList vs ArrayList (performance, principle, use case, why use)
- Compare ArrayList vs an ordinary dynamic array (use case)
- What is the difference between Integer and int (type, instance or variable, memory saving ...)
- Pass-by-value & pass-by-reference (equals() vs ==: which kind of comparison, why they differ, and when to use each)
- Have you worked with Java files? (I said not yet, so we skipped)
- The static keyword in Java (use case, why use it -> what is a static method for)
- There were more questions, but they were easy and I've completely forgotten them
- Design patterns
- What is MVC? Explain each part
- Classify the types of design patterns
- Present whichever design patterns you know: singleton, DI, repository, factory, MVC
- Database
- How do you connect to a database? What does it involve?
- How many kinds of joins do you know? Explain them (inner, left, and right)
- Compare and explain the concepts of MongoDB vs MySQL
- Others:
- How do you use beans in Spring, and why use beans (XML + annotations; it's a plus to also explain how a Spring app executes)
- Compare GET vs POST, and POST vs PUT
- Why use POST to create and PUT to update? Can they be swapped? (I only half-answered this one)
- Why are GET and POST not enough that PUT, DELETE, and the rest were invented?
- Which framework do you use to manage the database (Hibernate vs JDBC)? Compare the two and their use cases
- How do you manage transactions/caching? What do you use?
- Firebase SDK overview
- Asked about the tools/GUIs you have used, such as MySQL Workbench, Sourcetree, Trello, ...
- Asked how you manage git and whether you have any templates
- Asked about concurrency & multithreading (I had just studied event sourcing, so I got asked, hehe)
- Test case: many simultaneous requests that you don't want to synchronize (process in order) - what then? (queue + event sourcing, hehe -> explain it a bit)
- Asked whether you have ever used Thymeleaf; if not, how do you do the FE? (I answered ReactJS and they only asked for a quick overview)
- Which way have you used authentication vs authorization? (a short explanation and what you did with it and how is enough)
- Then asked whether you have learned Spring Security (I had just finished a free course, so they only asked for a quick overview of the concepts)
- Do you write tests? (I said I write unit tests, then they asked how, and when they asked about MockMvc I said I had only just looked into it and not applied it)
P.S. I studied Electronics and Telecommunications (ĐTVT) until the end of year 3 (you could say slightly off-field)
While I'm at it, I'll also share some questions from an interview about 2 months ago at an outsourcing company in HCM
Fresher Java Backend
Round 1: CV screening Round 2: IQ test + English interview with HR. Mostly normal conversation. Round 3: Interview with 2 leads
- First, a self-introduction, the school projects you did, and questions about the technologies used, how you implemented them, and what you used them for
- OOP:
- The concept of inheritance, with a concrete example of inheritance
- Polymorphism in Java (the concept, and the 2 kinds of polymorphism in Java)
- Overloading vs Overriding
- Abstract class vs Interface
- Java core
- Some specific declarations with the static keyword (roughly: applying the keyword to methods and variables - is it allowed in this case / what is it for)
- The same as above for the final keyword
- Compare ArrayList and LinkedList, and when to use each
- What are Set and Map, what are HashSet and HashMap, and when to use them
- How do you understand primitive types in Java?
- Design Pattern:
- The MVC model
- Take a login page as an example: describe how MVC operates when a user logs in through the login page
- Database:
- Distinguish the WHERE and HAVING clauses
- The types of joins in a database, followed by a concrete example (what result do you get when applying this join to 2 tables with this data)
- What is a transaction, what is it commonly used for? What happens when a transaction fails?
- Miscellaneous:
- Commonly used HTTP methods, their concepts and differences
- When implementing the controller, do you use POST or GET for login, and why? Could you use GET?
- Given some code snippets, write on paper the output after running them
- A few more questions on JPA and Hibernate that I don't remember well
See also: Fresher Backend Interview · Oracle Interview Gandhinagar · Interview Questions