Amazon interview questions for software engineers

Amazon interview questions for software engineers

You may be an engineer with a genius for software, but that may not be enough to help you join the Amazon ranks. For the retail giant’s interview questions for a software engineer span the gamut – taking into account your technical skills for sure, but also looking at other facets of your personality.

Sobit Akhmedov, a software engineer who was recently contacted by a technical recruiter from Amazon, on his blog writes that the whole process “from being contacted to signing the contract took two months”. His three rounds of technical problems included object-related design, an algorithmic question and analyzing complexity for the solution given in the previous problem.

But there’s no set pattern for what the Amazon software engineer interview questions may be. We suggest you try these tips to ensure that you make the cut and land your dream job.

Make sure you practice for the interview

It may seem like you don’t need it, but a mock interview helps you learn how to answer difficult questions, work on your communication skills, develop interview strategies, and reduces your stress. Tigran Sloyan, CEO of CodeFights, advises uses real interview questions to practice. “The #1 mistake developers make when preparing for technical interviews is not practicing using real interview questions. As a great developer you often think 'this is what I do for a living and I am good at it' so it’s tempting to walk into an interview without much practice…[but] you need deliberate practice using the types of questions you are going to be tested on,” he says.

Do your homework and come prepared

Everyone expects an engineer who’s applied for a job with Amazon to be up to speed when it comes to technical skills. But don’t just rely on your skill set as an engineer to get you through. In an article, Dan Melnick, Chief Operating Officer at Reverb.com, says, "If you can nail the technical parts of an interview, such as a pairing code challenge, that’s great. But it doesn’t end there. The best candidates—who eventually go on to make the best team members—come prepared with smart questions that show that they’ve done their homework. Not only can this demonstrate that you understand tech’s broader impact on the company, it also showcases your communication skills.”

Show off the strategist in you

Dr John Sullivans, a professor of management at San Francisco State University and an acclaimed HR thought leader in Silicon Valley, in an article on Harvard Business Review, wrote: “In a 2013 Management Research Group survey, when executives were asked to select the leadership behaviours that were most critical to their organisation’s future success, 97% of the time they chose being strategic.” Refael Zikavashvili, cofounder at Pramp, which offers code interview prep, agrees. “The number one mistake software engineers make on their technical interviews is that they jump into code before thinking through the solution and explaining its correctness to their interviewer. To succeed in technical interviews, software engineers must break down the problem first andclearly communicate their approach to solving it prior to proceeding to implementation,” he advises.

Don’t be afraid to say you don’t know

It’s impossible for any one person to be a know-it-all. Saying a confident “I don’t know” tells the interviewer that you’re upfront and willing to admit to your drawbacks. Interview Cake Founder at Parker Phinney believes that “not saying 'I don't know' [is a mistake]…. Great candidates know there'll always be some things they don't know, so they just give a confident, non-apologetic ‘I don't know.’ (Bonus: throw in a 'but if I had to guess, I'd say X because Y').”

What you must know

Keen to see what kind of questions you might come up against when interviewing for the position of a software engineer at Amazon. Have a look and stay prepared:

• Given a list of integers, find the highest product you can get from three of the integers.
• Give an overview of the Amazon technology stack. 
• Print a tree in level order.
• Implement "File" Java class.
• Write a function to see if a binary tree is superbalanced.
• Given a binary tree and an integer S, print all distinct paths from root to leaves which sum to S. Describe the algorithm and implement it.
• Design a task execution service, which accepts tasks from clients and runs them and returns result. 
• Write a program to find the longest common subsequence in a sequence.
• How would you create an array given two sorted arrays?
• Integers are arriving at a rate of one on a socket stream. At any given time print k largest numbers. Describe an efficient algorithm and implement it in language of your choice.
• How do you find phone numbers of a given format inside large number of different HTML files?
• Given a stream of characters and a set of characters, find the shortest sequence in the stream containing all characters in the set.
• If a linked list is a loop, kth nearest points, sort two sorted linked list into one.
• Write a function for doing an in-place shuffle of a list.
• How do you design a TinyURL for a website? Design an algorithm and write sample code which generates TinyURL for a website.
• Think that 25k jobs are being applied for per second. Scale in such a way so we able to process as many jobs as possible per second. 
• Design a function that counts the number of occurrences of every character in a string.