
The PayPal OA included several very basic multiple-choice questions. The coding section had four problems, consisting of three easy ones and one medium, with a total time of 80 minutes.
I am really grateful for the tool Linkjob.ai, and that's also why I'm sharing my entire OA interview experience here. Having an undetectable AI assistant during the interview is indeed very convenient.

This question was a typical “grouping + aggregation + filtering + sorting” problem, a combination of basic SQL operations. The task was to select students whose total marks were at least 500, return their student ID and total marks, and finally sort the results by student ID in descending order.
My approach was very straightforward. First, I grouped by student ID to calculate the total marks for each student using the SUM function. Then I applied a filter to keep only the groups with total marks greater than or equal to 500, using HAVING instead of WHERE because WHERE filters rows, while HAVING filters grouped results. Finally, I sorted the results by student ID in descending order. Each step was basic SQL syntax, and there were no hidden traps.

This question tested basic Java abstract classes and inheritance. The task was to create an abstract class Employee with four abstract methods (set/get salary, set/get grade) and one concrete method label. Then, create two subclasses, Engineer and Manager, which implemented the abstract methods and had their own salary and grade attributes.
My solution was clear. First, I defined the abstract class Employee with the four abstract methods and implemented the concrete label method as specified. Next, I implemented the Engineer and Manager classes, both inheriting from Employee, with private salary and grade attributes. I implemented the abstract methods to simply assign and return these attributes. The problem was a pure syntax exercise on abstract classes, inheritance, and method overriding. As long as the syntax was correct, it was straightforward.


The core of this problem was counting and sorting. It required counting the frequency of each item in the transaction records, then sorting according to specific rules, and finally formatting the output. The sorting rules were clear: first by transaction count in descending order, and for items with the same count, sort alphabetically by item name.
My solution followed three steps. First, I counted the frequency using a hash table, where the key was the item name and the value was its count, iterating through the transaction array once. Second, I sorted the items according to the rules: first by count descending, then by name ascending, which required a custom sort. Third, I formatted the sorted pairs into the string format specified in the problem. The logic was straightforward, but careful attention was needed to get the sorting order correct.

At first, I almost misunderstood the problem, thinking that each roll operation reset the string. After reading carefully, I realized that the roll operations accumulated: for each roll[i], the first roll[i] characters were cyclically incremented (a→b, z→a), and subsequent characters remained unchanged. Each operation built on the previous result.
My approach was to calculate the total number of rolls per character first, then apply them all at once. For example, if roll = [3, 2, 1], the first character was affected by all three rolls, the second character by the last two, the third by only the last, and the rest were untouched. A naive implementation iterating through each roll and affected characters would have been O(m * n), which is too slow. I used a difference array to calculate total rolls in O(m + n). Then, for each character, I applied the total roll using ASCII arithmetic: (original_char_ascii - 'a' + total_rolls) % 26 + 'a'. The key insight was to accumulate total operations first and then process each character, avoiding repeated traversal.

I have to say, Linkjob AI is really easy to use. I used it during the interview after testing its undetectable feature with a friend beforehand. With just a click of the screenshot button, the AI provided detailed solution frameworks and complete code answers for the coding problems on my screen. I’ve successfully passed the test, with the HackerRank platform not detecting me at all.
The PayPal HackerRank assessment was a focused evaluation of foundational skills, with difficulty ranging from beginner to intermediate. The style matched PayPal’s emphasis on solid engineering fundamentals. The total duration was 80 minutes, and even with nine questions, the time felt more than sufficient. The assessment covered four core areas: basic SQL, Java object-oriented fundamentals, and two programming problems.
One thing that stood out was how practical and grounded the questions were. Nothing felt abstract or disconnected from real-world scenarios. The difficulty ramped up smoothly, starting with simple SQL and Java OOP warm-ups before moving into slightly more involved programming tasks that still relied on fundamentals.
Assessment Format
The assessment took place on the HackerRank platform and followed the standard timed, single-attempt format:
Working Environment:
The programming questions were completed directly in HackerRank’s browser-based editor, and the SQL question allowed executing queries against sample data.
Scoring Logic:
Scoring appeared to depend on how many test cases were passed. Each question included hidden test cases beyond the samples, so edge-case handling was important.
Time Management:
I spent around twenty minutes completing the SQL and Java questions, then used another thirty minutes to finish the two programming tasks.
These belong to entry-level foundational assessments.
The problems are based on real business scenarios and evaluate mastery of core SQL syntax. There are no complex joins or subqueries, following the sequence group → compute → filter → sort is usually enough to arrive at the correct solution efficiently.
The encountered questions focused on concepts such as abstract classes, inheritance, and method overriding.
They typically require implementing class structures according to given requirements. The logic is straightforward: abstract classes cannot be instantiated, subclasses must implement abstract methods, and attributes should be encapsulated. These are “memory-based + rules-based” questions with minimal logical difficulty.
These were basic-to-intermediate logic tasks centered around hash-map frequency counting + custom sorting.
The structure generally involves data aggregation, multi-criteria sorting, and formatted output. The logic flow is clear, though attention to sorting priorities and edge cases is necessary.
These were basic-to-intermediate, optimization-oriented problems testing efficient accumulation of operations and cyclic character transformations.
A direct brute-force simulation may lead to timeouts, so a more efficient approach is needed to compute total operations for each position before applying transformations in one pass. The challenge lies not in the logic itself but in maintaining awareness of time complexity and avoiding repetitive traversal.
There is no need to memorize complex joins, subqueries, or window functions. The focus is on mastering the essential combination of GROUP BY, aggregate functions such as SUM or COUNT or AVG, HAVING, and ORDER BY. These form the core of SQL questions in the PayPal OA.
It helps to practice a few problems centered on grouping, aggregation, filtering, and sorting. Intro-level SQL problems on LeetCode or HackerRank’s SQL Easy section are sufficient. The goal is to clearly understand the sequence group, compute, filter, sort and avoid confusing WHERE with HAVING.
The emphasis is on four core concepts: abstract classes, inheritance, method overriding, and encapsulation.
Key rules include: abstract classes use the abstract keyword and cannot be instantiated, subclasses must implement all abstract methods from the parent class, and attributes should be private with access through getters and setters. There is no need to practice advanced polymorphism or nested interfaces. Writing a few simple structures such as a base employee class and its subclasses is enough to reinforce the patterns.
The main tools worth mastering are hash maps for frequency counting and key value storage, difference arrays for optimizing range updates, and ASCII based string operations.
Hash maps are useful for tasks such as frequency counting and sorting based on key value pairs using structures like Python dict or Java HashMap.
Difference arrays help optimize repeated range increment or decrement operations by computing total operations for each position without brute force traversal.
String operations often involve converting characters to and from ASCII values, handling cyclic increments such as z to a, and practicing string concatenation or array to string conversions.
Five to eight problems per category are enough. Choose HackerRank problems in Easy to Medium difficulty that match specific patterns.
SQL problems with only single table grouping, aggregation, filtering, and sorting
Java OOP questions that focus on abstract classes and inheritance
Coding questions involving frequency counting, basic string operations, or array range optimization, while avoiding complex dynamic programming or greedy algorithms
Recommended sources include HackerRank’s SQL Basic, Java Basic, and Problem Solving sections filtered to Easy Medium difficulty, as well as simple LeetCode problems tagged with hash table, string, or array.
Hidden test cases in the PayPal OA often target boundary conditions. While practicing, pay close attention to scenarios such as:
Empty inputs, such as an empty transaction list
Extreme values, such as strings of length one or roll indices equal to the string length
Cyclic boundaries, such as handling z to a transitions or operations that wrap every 26 steps
For every problem solved, it helps to pause and ask whether any edge case was overlooked.
The goal is not only to solve the problem but also to evaluate whether a better solution exists.
Check whether sorting rules are implemented in the correct priority
Compare brute force solutions with optimized ones using techniques such as difference arrays
Review SQL logic to confirm proper use of HAVING instead of WHERE when operating on aggregated results
Keeping a short list of common mistakes, such as reversed sorting rules or incorrect boundary handling, makes last minute review much more effective.
Use HackerRank Practice Mode and set a timer. Try completing one SQL question, one Java OOP question, and two coding problems in one session to match the PayPal OA format.
This helps build familiarity with the browser based editor, which has limited auto complete, and trains time allocation. A reasonable distribution is five to ten minutes for SQL and Java questions each, ten to fifteen minutes for each coding problem, with a final ten minute buffer for review.
Before the test, practice interacting with HackerRank.
For SQL problems, practice writing queries, running test cases, and checking expected output
For coding problems, practice using standard input and output methods such as Java Scanner or Python input, testing custom cases, and reading compile error messages such as syntax errors or out of bounds issues
This prevents losing time during the actual assessment due to unfamiliarity with the interface.
One to two days before the OA, avoid heavy problem solving. Instead, review:
Core syntax such as GROUP BY or HAVING in SQL and Java rules for abstract classes and inheritance
Essential tools such as hash map frequency counting, difference array optimization, and ASCII character transformations
Previous mistakes, especially edge cases, sorting rules, and syntax errors
Staying mentally fresh is more effective than cramming.
I chose Python, Java, and SQL. Two of the questions specifically required Java and SQL. For questions without restrictions, my first choice was Python because it is more concise, expressive, and allows me to implement solutions faster.
Yes, I used built-in functions like sorted() and collections.Counter. PayPal’s platform allowed standard libraries, which made my code cleaner and faster.
Insights From My 2025 Oracle Software Engineer Interview
A Look Into My 2025 Palantir Interview Experience
Current OAuth 2.0 Interview Questions I Faced in 2025
ES6 Interview Questions That Helped Me Get Hired in 2025
My Authentic Experience as a Roblox Software Engineer in 2025