How to Pass Amazon Online Coding Test

Introduction

If you are sitting for the onsite interview,  please check this blog on how to pass amazon onsite interview.

A few years ago, I managed to successfully pass the Amazon online coding test. It was extremely challenging. In this blog, I am explaining how I prepared my self for it.

Purpose of the Coding Test

The purpose of the online coding test is to identify candidates who may do well on the onsite interview. It basically measures how good of a problem solver, and a coder you are. There are some questions to judge whether you are the correct cultural fit for the company.

Exam / Test

Amazon uses an online coding tool for the test. Your recruiter will send you a link to the exam. You can always follow the link and look around to get familiar with the tool. You should be even able to do some practice tests. You can take an exam in most of the popular programming languages (like Java, C++, Python, Ruby…).

The test has two coding questions.  You will have 90 mins to complete both questions. After 90 minutes tool will auto submit your code and close the window. The tool should provide few tests, which you can use to validate you code. You can always add extra tests to improve the accuracy of your algorithm.

Cultural question is given after the coding exam. These questions are MCQs and not timed.

Preparation

Brush up your algorithm knowledge before the test. I would recommend Sorting, Searching, Hashing, Tree Traversal, Graph Traversal, and Dynamic Programming algorithms. Get familiar with data structures like Linked Lists, HashMaps, Trees. Do not waste your time looking at too complex data structures/algorithms like the red-black trees.

Language – Choose Wisely

If you are familiar with several languages use the one with most API support. For example, if it’s C vs Java, choose Java. This will help you to save time.

Be ready to take the full advantage of language-provided data structures and algorithms. For example, if you are planning to code with Java, get familiar with the Java Collections framework. Get familiar with data structures like Maps, Lists, LinkedHashMap, Priority Queues, TreeSets, and TreeMaps; and the methods available in the API classes.  Also, check utility methods available in the Collections and Array classes; also Comparators.

Learn to Calculate Time / Memory Complexity

You are usually asked to provide the time/memory complexity of your code. So another area of study if you don’t remember how it is calculated.

Practice Practice Practice

The practice is the key. Do as much as practice questions you can. There are several online web sites which provide practice algorithmic questions. Make the best use of them.

Start your preparations as soon as you got the message from the recruiter. Generally, the link to the coding test expires within 1 – 2 weeks.

During the Exam

You can access the internet during the exam. You are allowed to use your own IDE. This useful because it compiles a bit faster and provides auto suggestions. But the risk is if you couldn’t submit your code on time, you don’t have anything to show.

Time is Precious

50% of the exam is about time management. Problems you get are complex enough to make it difficult to finish both within 90 minutes. If the first question is an easy one, don’t spend too much time on it. Finishing both questions is far more important than brushing up the code of the first problem.

If you are running out of time, prioritize the important bits of the algorithm. For example, if you are going to implement a sort, you should prioritize the Comparator since it’s going to be to the core logic of the program.

Write Good Code

This is the first time Amazon is going to see your code. So try to give the best first impression. Follow basics; use meaningful variable/method names, move the redundant code to functions. Try to create classes instead of using complex collections. Write comments where needed. Try to output the best program you can.

Do not Brute Force

You may be tempted to solve some problems by brute force. But try to provide an optimal solution as possible. Brute force solutions will not raise any eyebrows. So only be used as a last resort.

Cultural Questions

After coding questions, you will have to answer a questionnaire which evaluates whether you are a good cultural fit for Amazon. Don’t worry this questionnaire is not timed. Try to be your self and answer honestly. If you and company are not going to be a good match, it’s going to be a bad move for both the parties.

Also, don’t trust the tool too much save your work continuously as you progress.

Finally

Personally, I took about 3 weeks to prepare my self for the coding test. So start early and give your best shot at it.

Investing Guide for Solo Investors

invest

Seven Key Rules

Keep following seven rules on your mind, on your desk and on the wall of your bedroom if possible. Read them at least once a week. When you are making an investment use this rules to evalute the quality of the investment.

  1. Always try to minimize loosing money. This involves making investments with minimal downside risks.
  2. Focus on acquiring and holding stocks with consistent dividend growth so the revenues can be compounded.
  3. Stocks are never undervalued. Stock is today worth what investors willing to pay for it, no more no less.
  4. No more than 20 symbols. Hard to keep track more than 20 companies. At least Half of them with high dividend pay companies.
  5. Evaluate each investment twice an year
  6. Have a predefined exit criteria for all the holdings.
  7. Always have a pool of cash ready

Numbers to Consider

  1. Company should have a high dividend yield. At least higher than the inflation.
  2. Consistent, moderate dividend growth – High dividend growth rates are not sustainable. Financial statements can be deceptive. Executives work goes to make them attractive for investors. But the dividend payment always tell the truth. Consistent growth of dividends is the hallmark of a good company. See at least 5 years of history.
  3. Debt / Capitalization should be less than 50%
  4. Coverage of at least 3 : 1. Cash flow of the company after taxes should be at least three times as the interest it pays
  5. Consistent, moderate annual earning growth 5 – 10%
  6. Payout ratio less than 60%
  7. Low Price / Sales ratio – Price of a share divided by the sales per share. Very fist prerequisite of business is revenue. If  revenues are high compare to the stock price, profitability can be easily increased though cons controls and increased productivity. Minimum price to sales ration of 1.5.
    1. Low P/E Ratio – must be at minimum. This value should be less than the reciprocal of the long-term bond rate. If bond rate is  5% –> 100 / 5 = 20 –> PE value should be less than 20. If the price of the company is above this level. Then the stock is expensive. Evaluate the PE value of a stock relative to the PE value of the market. If a stocks PE has been 125% of the market, but now it sells at 80% of the market, there is a good chance that it is under valued at the moment.
  8. Buy shares less than it’s book value. Book value does not represent intangible values of the company such as the brand name.
  9. Growth in cash reservers or investments made by the company
  10. Less volatile sharp rice. Can calculate the standard deviations of the share price to find this.

Measurements of the Quality

  1. Company has Performed well during the troublesome economic environments
  2. How well acquisitions are absorbed and integrated into the company –> smart acquisitions
  3. Do best to avoid new businesses. Look for companies with long-term consistent moderate growth, long-term dividend yields, long-term growth of yield.
  4. Look for a company that produce real goods or services which serves peoples needs, has a reliable user demand. Avoid reseller companies.
  5. What you should really buy is a competitive advantage. Try to identify the competitive advantages a company has over others.
  6. Look for growth kickers. That could be selling for a low performing division or a new sub division with great potential

General Guidelines

  1. Information available to everyone is not valuable anymore. PE ratio is not valuable as it was before
  2. TIme of max optimism is the best time to sell. the time of max pessimism is the best time to buy
  3. Don’t confuse genius with a bull market
  4. A list of stocks that you want to earn but which are not representing correct value at the moment. use this list during next correction/crash to buy

 

Selling Strategy

Sell when the dividend does not make sense to hold it for long team. make the decision based on the dividends. If we know that dividends are not going to keep rising, then it is time to sell. When dividends are affected, so is the share price.

Also when the share price increases it’s fair value, and the dividend yield relatively smaller to the other shares

One year goes with dividend increase. See the reason is one time occurring. If it fails two consecutive years, may be it is a good time to sell.

Document selling decisions and analyze them annually

If a company grows really fast with keep increasing sales, if those sales comes from the consumer credit, that may not be a sustainable business. When the debt cycle turns, customers will not be able to consume services as often.