Hi Folks, I was interviewed recently at PayPal for the role of Backend Java developer (Software Developer). To give an overview, I have an experience of 2.5+ years of.
Round 1: OA(HackerRank) 3 medium-hard level questions based on dynamic programming and Strings manipulation. In all the questions, all test cases were passed. On the same day by evening, I was informed that I have cleared OA and they would be scheduling 3 or more interview rounds after a week. Each round would be an elimination round.
Round 2: DSA + Algorithms
- Given a board of m*n having characters ‘+’ and ‘0’, source, and destination. Calculate if we can reach from source to destination given that we cannot move to the ‘+’ cell (A traditional BFS/DFS problem). It was later modified to – we can exit from any boundary where boundary cell is 0, calculate min moves.
- Find intersection in multiple LinkedList when nodes can have duplicate values. We then discussed the concept of sequencing.
Round 3: Core Java coding + LLD
- Set s = new TreeSet<Object>()
Will this work? No, it will throw ClassCastException.
- Find the last 3rd node in LinkedList. I was later asked to write a generic code where we can find the last k element in any LinkedList.
- LLD : Login + SignUp + Profile page(REST API)
The design should support Authentication and authorization of users (I chose spring security). I had to define classes, methods, DB tables, and choice of DB (I chose MongoDB because it’s cheap).
Later I was asked questions about how will I handle multi-threading and scaling.
Round 4: Hiring Manager discussion
- Detailed discussion on Projects.
- Most challenging one
- Detailed discussion on features of Java 8
- Stateless REST
- Testing frameworks
- We use SonarQube for code quality checks, so questions related to that.