Read our blogs for insights on our work, opportunities and career advice.

Ace your technical interview

Thank you for considering a career with Oracle! We have reimagined what the cloud can do for businesses, and are looking for creators who want to influence the future.

You are the builder here and, as such, we want to help you show off the best of your abilities throughout the technical interview process.  Know that we’ll be testing your coding skills and problem-solving abilities, as well as considering how well you’ll fit into our company culture. We want to see how you think, how you solve a problem, and how you embody our values.

How to prepare

Whether you’re a new coder or an experienced engineer, it’s always a good idea to do some prep work before a technical interview. We don’t expect you to spend days preparing, so we rounded up our best advice from Oracle engineers and made a list of (optional) resources that will help you get up to speed if you need a refresher.

Step 1: Refresh on core computer science concepts

Interviewers will present problems and coding challenges from an array of topics, so it’s best to re-familiarize yourself with coding principles such as:

  • Data structures: lists, stacks, queues, trees, hash tables, sets, tries, graphs
  • Algorithms: Sorting, Recursion, Searching, Graph and Tree algorithms, Dynamic Programming
  • Time and Space efficiency (big-O analysis)

Read up
Your own bookshelf, local library, or eReader likely has a number of books that can refresh your knowledge with a quick scan. Cracking the Coding Interview is certainly one of the most detailed guides available, but here are a few other recommendations from our engineers:

  • Introduction to Algorithms by Charles E. Leiserson is the classic, but could be augmented by any of the following: The Algorithm Design Manual by Steven S. Skiena, Algorithms (4th ed.) by Robert Sedgewick and Kevin Wayne, Algorithms by Sanjoy Dasgupta, Christos Papadimitriou and Umesh Vazirani or Jeff Erickson’s book-length algorithms notes.
  • Programming Pearls by Jon Bentley provides a great overview—and for those who really want to deep, there’s always The Art of Computer Programming by Donald Knuth!
  • Open data structures textbook is also a solid resource.

Tune in
You may also wish to watch lectures on coding concepts and distributed systems topics. Our engineers recommend:  

Step 2: Practice problems

Throughout the process, you’ll be presented with a problem to solve and asked to present a solution using code and, time permitting, create a test case. You can solve coding problems in whichever language you feel most comfortable, unless otherwise noted.  Many of the books above include exercises, as well as these sites: https://hackerrank.com, http://www.spoj.com, https://uva.onlinejudge.org.

Here are a couple examples from our engineers:

  1. Write a program that prints the numbers from 1 to 100. But for multiples of three print “Fizz” instead of the number and for the multiples of five print “Buzz”. For numbers which are multiples of both three and five print “FizzBuzz”.
  2. Given values of two values n1 and n2 in a Binary Search Tree, find the Lowest Common Ancestor (LCA). You may assume that both the values exist in the tree.

When you're practicing, try writing out solutions long-hand on paper. This better mimics the conditions of an interview in most cases, rather than using an IDE with code-completion. Things you struggle to remember are good things to review. Also, consider how you would communicate your work as you go; remember, we want to understand how you solve problems and not just see the code.

Step 3: Ace the interview

The big day has come! Now here are some additional tips to ace the live interview process.

  • Ask clarifying questions about requirements. If the question isn’t 100% clear to you, please speak up! Sometimes there are ways to dramatically simplify a problem if you can impose a restriction on input, for example.
  • Talk through your plan before jumping into code.  Remember, we're mainly trying to figure out how you think about solving problems, not just how you write code. We're looking to see how you tackle real-world problems. Communicate; think out loud. Make it collaborative.
  • If you get stuck, ask a question. It’s OK to speak up during the coding process if you’re not sure of the next step in the process.
  • Going with the simple, brute-force, sub-optimal solution and then iterating on it for time and/or space efficiency is perfectly acceptable.  In the worst case, having something working that you can give reasonable suggestions for improving beats having an incomplete implementation of the perfect solution.
  • Once you've written out something, take a moment to come up with a simple test case and walk through it, if you have the time.  Even if you don't have time to fully walk through a test run, take a minute to talk about how you would test your code.
  • With virtual interviews becoming the norm, here are bonus tips on how to nail the video interview.

Finally, remember that these resources are optional and to be used as you wish. However, if this list feels intimidating in scope, or something you’re not reasonably fresh on, feel free to request more time to brush up before continuing your interview process.

Eager for more? Check out these other resources on how to answer interview questions, avoid common interview mistakes, and read these top tips from our recruiter.

Join the discussion

Comments ( 1 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.