Oracle interview prep · updated Oct 2026

Oracle Software Engineer Interview Questions

Software Engineer 8 questions

A software engineer at a company known for its database, its cloud infrastructure and the Java language works on systems that customers run for many years, often on older versions. Prepare to reason about how a database recovers from a crash, which index fits which query, a memory leak in a long-running Java service, keeping a standby copy in another region, and a query that got slower after an upgrade. What to show here: careful engineering on systems customers keep for years. Each question below has what the interviewer is checking, an answer frame and a sample spoken answer to adapt.

Behavioral

1. Tell me about a time you fixed a bug in a product where customers were still running versions several years old. How did you decide which versions got the fix?

What they are checking
Checks whether you can work in a long-lived codebase with several supported versions and make a careful backport.
Answer frame
  1. Describe the bug and which versions had it.
  2. Explain how you decided where to fix it.
  3. Show how you adapted the fix to older code and tested it.
  4. Share what you learned about long support.
Sample spoken answer

“In my last job we found a bug where a report lost rows at a year boundary. The code had changed a lot between the current version and the two older ones customers still ran. I fixed the current version first, with a test. Then I checked which older versions were still supported and had the bug, and ported the fix by hand, because the surrounding code was different. Each port ran the full test suite for that version. I wrote a release note in plain words for customers. It took longer than the fix itself. The result was your result.”

Red flag to avoid

Weak answers fix only the latest version and tell customers to upgrade.

Behavioral

2. Describe a time the real cause of a bug was in a layer below your code, such as a driver, the runtime or the database. How did you prove it?

What they are checking
Checks whether you can go deep with evidence and avoid both blaming the lower layer too soon and ignoring it.
Answer frame
  1. Describe the symptom and your first assumptions.
  2. Explain how you ruled out your own code.
  3. Show the smallest program that reproduced the problem.
  4. Share the fix or the workaround and how you reported it.
Sample spoken answer

“A batch job sometimes wrote wrong values into a numeric column, but only on one server. I assumed my code was at fault, so I logged the values right before the write, and they were correct. I then wrote a program of a few lines that inserted a known value through the same database driver, and it reproduced the problem on that server only. The driver version there was older and handled a certain precision wrongly. I upgraded the driver, added a check that all servers use the same version, and reported the case to the driver team with my small program. The result was your result.”

Red flag to avoid

Weak answers blame the lower layer without a reproduction, or never look below their own code.

Technical

3. Explain how a database uses a write-ahead log to recover after a crash. Why is the log written before the data files?

What they are checking
Checks whether you understand durability and recovery, which is central to database engineering.
Answer frame
  1. Describe the log as a sequential record of changes written before the data pages.
  2. Explain commit as the log being safely on disk.
  3. Walk through recovery: redo committed changes, undo uncommitted ones.
  4. Mention checkpoints to limit recovery time.
Sample spoken answer

“Every change is first written as a record in a log, and only later are the data pages updated on disk. A commit is complete when the log records are safely on disk, which is a fast sequential write, while data pages can be written later in a cheaper order. After a crash, recovery reads the log. Changes that were committed but not yet in the data files are redone, and changes from transactions that never committed are undone. Because the log has everything, no committed change is lost. Checkpoints write out dirty pages regularly, so recovery only needs to replay the log from the last checkpoint.”

Red flag to avoid

Weak answers describe the log as a backup, or cannot explain why writing it first makes commits safe.

Technical

4. Orders are searched both by exact order number and by a range of dates. Which index type fits each search, and why?

What they are checking
Checks whether you understand the difference between tree indexes and hash indexes and can match them to query shapes.
Answer frame
  1. Explain a tree index as sorted, which supports ranges and ordering.
  2. Explain a hash index as a direct lookup for equality only.
  3. Match the date range to a tree and the exact number to either.
  4. Consider a single tree index and column order.
Sample spoken answer

“A tree index keeps keys in sorted order, so it can find the start of a date range and read forward, and it can return rows already ordered. A hash index turns a key into a bucket, which is very fast for an exact match but useless for a range, because nearby keys sit in unrelated buckets. So the date range needs a tree index. The order number lookup could use a hash index, but a tree index works nearly as well and also serves sorting and prefix searches, so in practice I would use trees for both. Column order matters when one index serves both conditions.”

Red flag to avoid

Weak answers suggest one index for everything and cannot say why a hash index fails for ranges.

Technical

5. A Java service that runs for weeks uses more memory each day until it is restarted. How would you find the leak?

What they are checking
Checks whether you can diagnose a leak in a long-running Java program with tools and evidence.
Answer frame
  1. Confirm it is a leak by watching memory after garbage collection over time.
  2. Take heap dumps at intervals and compare what grows.
  3. Follow the references from the growing objects back to their holder.
  4. Fix, and add a memory check to the tests or monitoring.
Sample spoken answer

“First I would confirm it is a real leak by watching memory in use right after each garbage collection. If that low point climbs day after day, something is holding on to objects. Then I would take heap dumps a day apart and compare them to see which class grows. The dump also shows the chain of references that keeps those objects alive, and at the end of the chain there is usually a static map, a cache without a limit, or a listener that is never removed. I would fix that, and add a long-running test that watches memory so the leak cannot return.”

Red flag to avoid

Weak answers increase the heap size or schedule a nightly restart and call it solved.

System Design

6. A customer wants a copy of their database in another region that can take over if the first region fails. How would you design the replication, and what is the trade-off between waiting for the copy and not waiting?

What they are checking
Checks whether you understand synchronous and asynchronous replication, failover and the risk of losing data.
Answer frame
  1. Ship the log records from the primary to the standby and apply them there.
  2. Compare waiting for the standby before commit with not waiting.
  3. Design failover and how to avoid two primaries.
  4. Plan for the old primary to rejoin.
Sample spoken answer

“I would send the primary's log records to the standby, which applies them and stays a close copy. If the primary waits for the standby to confirm before it commits, no committed transaction is ever lost, but every commit pays the distance between regions, and the standby's trouble becomes the primary's trouble. If it does not wait, commits stay fast, but the last moments of changes can be lost in a failure. Many customers accept a small loss for speed, and some cannot. Failover must be decided by a third party or a quorum so that both regions never think they are primary. The old primary rejoins as a standby.”

Red flag to avoid

Weak answers copy files on a schedule, or do not mention the risk of two primaries.

Scenario

7. After upgrading to a new version of the database, a customer says one critical query is now much slower. Nothing else changed. What do you do?

What they are checking
Checks whether you can handle a plan regression after an upgrade with method, and give the customer relief quickly.
Answer frame
  1. Get the query, the old plan and the new plan.
  2. Compare them and find where the estimate went wrong.
  3. Give quick relief: statistics, a hint or pinning the old plan.
  4. Find the root cause and report it.
Sample spoken answer

“I would ask for the exact query and the execution plans before and after the upgrade. Comparing them usually shows the difference, such as a join method that changed because the new version estimated the number of rows differently. For quick relief I would check that statistics are fresh, and if the plan is still bad, pin the old plan or use a hint so the customer's business is not waiting on our investigation. Then I would find out why the new version chose that plan, reproduce it on our side, and either fix it or document the change clearly for other customers.”

Red flag to avoid

Weak answers say the new version is better and ask the customer to rewrite the query.

Why this company

8. Why do you want to engineer systems at a company whose customers keep running its database and applications for many years?

What they are checking
Checks whether you value long-lived, carefully engineered systems and understand what that demands.
Answer frame
  1. Say what long-lived systems demand from an engineer.
  2. Link it to work you have enjoyed.
  3. Name the technical areas that draw you.
  4. Say what you want to learn.
Sample spoken answer

“Most software I have worked on was replaced within a few years. A database or a finance system runs for decades, and every change must respect what customers built on it. I like that discipline. It rewards careful design, thorough testing and honest release notes over quick wins. My best work so far was making a storage layer recover correctly after crashes, and I found that I care about that kind of correctness. The areas that draw me here are recovery, replication and query planning. I want to learn how these are engineered at a scale my past projects never reached.”

Red flag to avoid

Weak answers give reasons about the brand and show no interest in long-term correctness.

Salary questions come last

No figures on this page: pay depends on the level, the city and the offer in front of you. When the offer comes, the free salary negotiation script helps with that part.

For the call itself

The questions above are the prep. On the real call, ClapAssist helps with the ones you did not practice.

ClapAssist is an AI interview assistant for Mac and Windows. It listens to the interview on your computer and shows you what to say, in short lines you can read while you talk. Your live interview audio and screen are never stored. Your resume and notes are saved to your account so the app fills them in on any computer. It is hidden from screen share on every plan, including Free; only you can see it.

Download with 10 free minutes
Mac and Windows · Stays out of screen share · No card