HackTheRounds Interview Experiences
Oracle Software Engineer Interview Experience (2026) - HackerRank OA, Rotated Array, Photo Layer, Offer
Oracle SWE loop: HackerRank OA with stock max profit, bank loan EMI, and stream packing; phone screen on top K expensive tickers; four onsite rounds including r
By Anonymous ยท 2026-04-04
Background
Oracle does not get talked about as much as the FAANG shops on interview forums, but the bar on their core engineering teams is higher than people expect. I applied in February for a Software Engineer role on the Oracle Cloud Infrastructure team, had about three years of backend Java experience at a mid-size SaaS vendor, and got the OA link within a week of submitting through the careers portal. The whole cycle took roughly five weeks end to end and ended with an offer.
Timeline
- Week 0: Applied through Oracle careers site, no referral
- Week 1: HackerRank OA invite, 90 minutes, three problems
- Week 2: Recruiter phone screen, scheduling for technical loop
- Week 3: Technical phone screen with a senior engineer
- Week 4: Virtual onsite, four rounds back to back
- Week 5: Offer call from recruiter
Total: about 5 weeks.
Online Assessment (90 min)
Oracle runs the OA on HackerRank with three problems, and unlike many OA pipelines the difficulty curve is not flat. The first problem was a classic max-profit variant. Prices of a stock across N days, pick one buy day and one sell day to maximize profit, never take a loss so return 0 if no positive profit exists. Single pass tracking the running minimum and updating a best-profit variable. O(N) time, O(1) space. The constraints mentioned N up to 10^8 which was a hint to not even think about the O(N^2) brute force.
The second problem was a loan comparison between two banks with tiered annual rates across different year slabs. You apply the EMI formula per slab, carry the remaining principal forward to the next slab, and sum up monthly payments. The tricky part was handling the slab boundaries correctly when the total term did not divide evenly across slab lengths. I burned about fifteen minutes debugging an off-by-one on the final slab before I realized I was recomputing the monthly rate with the wrong year count.
The third problem was a stream-packing question. A sequence of incoming packets, each repacked into the largest power-of-two size that fits, with the leftover accumulating into the next packet. Return the largest repacked size seen across the stream. I kept a running carry and used bit manipulation to find the highest power of two not exceeding the current size. Watch the output type. The prompt said return a long because the intermediate carries can exceed 32-bit range.
[[problem/583?company=20|Jump Game II]] was on my prep list the week before and the greedy instinct it builds was what got me through the EMI slab transitions.
Phone Screen (45 min)
A senior engineer from the platform team, one problem. Given a time-ordered stream of trade events, return the top K most expensive tickers seen in the last W minutes, with efficient updates. I walked through a naive scan first, then upgraded to a sliding window over the timestamps paired with a sorted multiset keyed on price. Interviewer pushed on what happens if W is huge but trades per second are sparse. I talked through lazy deletion from the heap versus a proper indexed priority queue. We ended with a O(log N) per insert, O(log N) per query version, and he seemed satisfied.
[[problem/600?company=20|Top K Expensive Stocks in Time Window]] is almost exactly this problem and I wish I had seen it in advance because the sliding-window-plus-heap pattern is reusable.
Virtual Onsite (4 rounds)
Round 1: Coding โ Rotated Array Search
Problem: Search for a target value in a rotated sorted array that may contain duplicates. Return a boolean.
I started with the standard binary search for the rotated case, then the interviewer added the duplicates twist. The key insight is that when nums[lo] == nums[mid] == nums[hi] you cannot determine which half is sorted, so you shrink both ends by one and recurse. Worst case becomes O(N) when the array is all duplicates, but average case is still O(log N). We talked through why the classical pivot-finding step breaks with duplicates and why you cannot fall back to a standard binary search by first finding the pivot index.
[[problem/584?company=20|Search in Rotated Sorted Array II]] is the exact problem.
Round 2: Coding โ Photo Layer Reordering
Problem: Given a list of photo layers with IDs and a sequence of operations (bring to front, send to back, delete), maintain the layer order and support O(1) front queries.
I reached for a doubly linked list plus a hashmap from ID to node. Bring to front is unlink then push to head. Send to back is unlink then push to tail. Delete is straight unlink. All O(1). The interviewer asked about crash recovery if the list got corrupted. I talked about serializing a snapshot every N operations plus replaying a tail log, which was more than he was looking for but he seemed to appreciate the systems angle.
[[problem/601?company=20|Photo Layer Reordering]] maps directly.
Round 3: System Design โ URL Shortener at Oracle Cloud Scale
Problem: Design a URL shortener that can handle a billion URLs with low-latency reads.
I started with the basic flow: hash the long URL, store a mapping in a KV store, redirect on read. Then scaled up: 62-base encoding for shorter keys, sharded KV store, read-through cache with Redis, write-ahead log for durability. The interviewer pushed on collision handling and on what happens when the same long URL is submitted twice. I went with a dedupe-on-write hash index and he accepted that. We spent the last fifteen minutes on analytics: how do you count click-throughs per URL without killing the write path. I suggested async ingestion via Kafka with a rollup job and he nodded.
Round 4: Behavioral
Standard stuff. Tell me about a time you disagreed with a manager. Tell me about a project that slipped and how you recovered. How do you handle code review feedback you disagree with. I stuck to the STAR format and made sure every answer had a concrete numeric outcome. No coding in this round.
Result
Offer came about a week after the onsite. The recruiter was upfront about band and comp. I negotiated a small sign-on bump after surfacing a competing offer from another cloud shop and they moved within two days. The turnaround from onsite to offer was faster than I expected.
Tips
- Know the HackerRank IDE quirks. Oracle runs OAs on HackerRank and the editor has slightly odd autocomplete and no vim mode by default. Do at least two practice problems on the actual platform before the real thing.
- Think in longs for Oracle OA output types. Two of the three OA problems I got had outputs that overflow 32-bit. The problem statement will say `long` but it is easy to miss under time pressure.
- Study rotated-array variants with duplicates. The vanilla rotated-array binary search comes up everywhere; the duplicate version is Oracle-flavored and distinct enough to trip you up.
- Practice linked-list-plus-hashmap designs. LRU cache is the prototype, but Oracle likes the pattern in many forms: photo layer reorder, tab history, recently-viewed queues.
- For system design, bias toward durability concerns. Oracle is a database company and their interviewers will push on write-ahead logs, replication, and crash recovery more than on horizontal-scaling handwaves.
- Do not skip behavioral prep. My onsite behavioral was 45 minutes of real questions and the interviewer was scoring me against a rubric. Have five concrete stories ready with numeric outcomes.