Thursday, August 26, 2010

Amazon Web Developer Interview

There are a lot of things to talk about to test technical skills in an Rails web developer interview. There are many Rails topics that could be covered - just to name a few, topics could include Routes, Migrations, Testing, Fixtures, Gems/Plugins, Authentication, 3rd Party Tools and services, Named Scopes, Rails 3.0. Nested Attributes, Observers, Counter caches, Tagging, Delayed Worker Jobs, Email.

The nice thing about Rails, as it is open source and quite elegantly architected, it's easy to also discuss common web design patterns at a higher level - like REST, Model View Controller (MVC), Authentication, DB performance, Querying strategies, Caching strategies, etc. without talking about Rails specifically.

I interviewed with Amazon recently - it was a phone interview for a Senior Ruby on Rails Developer. I talked with one of the members of the team that uses Ruby on Rails for their app. Rails at Amazon is pretty rare and I was intrigued.

The phone interviewer had two questions for me. The questions weren't about Web Development or Ruby on Rails, but I expected that. Amazon is known to be consistent with their technical interviews - they ask about big O notation, memory usage, performance, etc. Here's what we talked about in my interview.

Implement a Fibonacci method so f(0) = 0, f(1) = 1, and f(n) = f(n-1) + f(n-2)

def f(n)
n <= 1 ? n : f(n-1) + f(n-2)

def f(n)
a = 0; b = 1
n.times { a, b = b, (a + b) }
return a

After the methods were written and I sent them to the interviewer by email, we discussed the Order (big O notation) of the methods. The order of the second Fibonacci method is linear the first method's order is exponential.

We then had a discussion about the following...

Given an array of integers, return all integers in a particular range.

Web developers hardly ever write algorithms like these in their daily work and the questions may seem unrelated or outdated. If you did write a method like this, you'd want it to be readable and maintainable for other developers and could give a little on performance and memory. We discussed the performance issues and memory usage for these methods. In practice, performance issues for a web application are often due to slow queries or slow web pages and multiple requests to the server.

Keep in mind - Amazon technical interviews are not meant to gather your practical experience for the job, they are intended to test your CS fundamentals and the questions provide a standard that all interviewees can be measured against. Amazon is comparing apples to apples this way, even if they aren't necessarily the skills you'd use on the job.

If you pass the technical phone interview, you will be invited in for a longer set of interviews, and those tend to cover job related skills.

If you are interviewing at Amazon, I recommend you look over the Amazon interview questions posted on Glassdoor. They have many examples that will give you a good idea of the questions and how to answer them.


  1. Sounds like their interview process hasn't changed much since I interviewed (and worked) there!

  2. For example, suppose you are a property dealer in a city and you want to build a website so as to attract potential customers through it.

  3. In summary cross browser compatibility is one of the key issues that arise when developing a brand new website or custom website application.Kttp

  4. Considering the fact that the program is available for a free download and that you could also find free online learning resources, there really is no excuse for not trying it out. ldainteractive

  5. This is genuinely an awesome read for me. I have bookmarked it and I am anticipating perusing new articles. Keep doing awesome!
    Web Development

  6. The key reason we have spent time learning a number of technologies is to able to pick and choose the bits we like.

  7. tattoo supply The first case of a syphilis being transmitted by a tattoo came in 1853. The artists ink was drying up so he spit in it, transferring the disease.

  8. Find a good web app developer today isn't easy. Especially if you don't know what specific skills and experience he should have.

  9. Hi Mate,

    Your writing shines! There is no room for gibberish here clearly you have explained about Amazon Web Developer Interview. Keep writing!

    I had the misfortune of picking up a pair of "AWS Activate" headphones. I had a brief listen on site where I picked them up and briefly wanted to die, but it was noisy so I figured I'd give Amazon the benefit of the doubt and try them at home in isolation. AWS Training USA

    I read multiple articles and watched many videos about how to use this tool - and was still confused! Your instructions were easy to understand and made the process simple.

    Thanks a heaps,

  10. NayHoh,

    11/10!! Your blog is such a complete read. I like your approach with Amazon Web Developer Interview. Clearly, you wrote it to make learning a cake walk for me.

    Unfortunately, AWS IoT has a big problem with bridging to any broker other than mosquitto. Without shared subscriptions, it is nearly impossible to create a bridge that can withstand a heavy load. Ideally, our front end through AWS IoT will have 1-500k publishes at any one time, and subscribing to '#' and forwarding those messages to our backend broker is impossible - the throughput is not nearly high enough for one connection and it creates a single point of failure. If the pipe breaks, the service breaks. AWS Training USA

    Excellent tutorials - very easy to understand with all the details. I hope you will continue to provide more such tutorials.

    Kind Regards,


  11. Ni Hau,

    I genuinely do look forward for the time where you post some new write ups. Your blog make me feel so educated! Continue soaring and writing please.

    I have happily been using S3 & EC2 for several years and, of course, expected some learning curve with what I wanted to achieve, though I found it always took about twice as many steps as I would have hoped to do many things. AWS Tutorial

    Super likes !!! for this amazing post. I thinks everyone should bookmark this.


  12. Howdy Mate,

    A really interesting, clear and easily readable Amazon Web Developer Interview article of interesting and different perspectives.I will clap. So much is so well covered here.

    I am trying to connect to ECS through ArcGIS Cloud Builder on Amazon Web Services. I have installed the Cloud Builder on my laptop, get authorization to use ESRI AMI,
    AWS Training created group, user, got the access key and the secret access key but when trying to connect to AWS using Cloud Builder with I get the following message:

    But nice Article Mate! Great Information! Keep up the good work!

    Thank you,
    Irene Hynes