Home > Amazon, Personal > Things I’ve learnt in the past year at Amazon

Things I’ve learnt in the past year at Amazon

Well, Time seems to fly with one of those out of service mach-3 planes these days. It’s already been more than a year since I tricked Amazon into thinking I know shit. To commemorate this grand event, I thought I’d bring this blog back from coma to post something.

This one year has probably been the best in my life so far. You might think that’s exaggerating, but try throwing in a couple of years of wasted childhood, a rural high school and four years of struggling to pass in college and you’d see my point.

But it’s not just me, ask anyone working for Amazon Chennai and they’d tell you the same thing. The brain power here is astounding. Everyone is a rock star. It’s a warm, fuzzy feeling to know that you’re probably the dumbest person in the crowd.  To really tell you how cool Amazon is, I’ll have to write a 1000-page book with a 100 page appendix on why each character is cool.

But I digress.

Coming back to our headlines today, these are a list of lessons I learnt the hard way (that’s a fancy way to say that I was caught with my pants down). These mistakes were caught by highly trained individuals. Do not attempt to repeat them at home, or anywhere else.

  1. Keep it simple.

    This is the first thing I learnt out of college. You don’t need to spend 4 hours writing code for an optimal implementation if can get a sub-optimal one working in 30 minutes. You will normally have 10 other things to worry about when you’re working on this one. Just get the easiest, right way to completion. Measure. Improve. Repeat as necessary.

  2. Relate every task to the goal

    It’s easy to lose focus on the larger picture when you’re lost in the woods of detail. Here’s a simple solution – Whenever you take any decision, see how it helps you progress in the overall vision.

  3. Always back assumptions with data

    Within Amazon especially, you’ll quickly learn that numbers are your friends. If you’re crazy idea has enough numbers to back it up, you’ll suddenly find that it’s not that crazy anymore.

  4. Never leave your code base worse than what it was

    I’ve seen real war stories based on this one. Even if you can’t improve the code base, try not it add more filth into it. Overtime the percentage of good code will push you to clean up the remaining filth

  5. Test – Code – Test

    I confess. I don’t practice this myself. Well, at least not exactly. It’s usually Code – Test – Code – Test for me. I usually write out simple happy cases and then use test cases to fill in my test cases. Now that I’ve preached it, I’m now forced to practice it.

Other random stuff:

  1. Java is actually a nice language. Thanks to Bloch. (Someone buy me the second edition 😀 )
  2. Zsh is awesome!
  3. Ruby is not bad. But I still like Python for some reason.
  4. Track the time you spend working. You’ll be surprised to find how amazingly inefficient you are.
  5. Planning is important. The plans themselves are useless.
Advertisements
Categories: Amazon, Personal
  1. September 28, 2008 at 4:22 pm

    I agree ZSH is awesome! I wrote a blog post on how to pimp up your zsh config here: http://www.prashblog.com/2008/08/zsh-for-productivity.html

  2. September 28, 2008 at 4:50 pm

    >> Track the time you spend working.
    Have tried to do exactly that in the past one month
    >> You’ll be surprised to find how amazingly inefficient you are.
    and yeah, found the inefficiency to be astonishingly high !

  3. September 29, 2008 at 9:36 am

    I’m struggling to follow 4 when people just leave their ‘clean’ code base to me (without comments or even an overview of what it tries to do). Before I can understand anything inside the black box, some features are expected out of it! In this situation, what can one average programmer like me do, other than making the code base worse ? 😦 Even later, there is no time to look back and clean up the code and if you do that, it won’t be considered as a part of ‘productive’ work.. 🙂

  4. September 29, 2008 at 12:50 pm

    @Sriram: I know it can be frustrating to see no comments but IMHO that’s still no reason for taking shortcuts. That doesn’t meant you can’t make shortcuts. It only means that those shortcuts you make will be *your* fault. You can’t blame anyone else for it 🙂

    As for going back to clean up the code, we all know that doesn’t happen. Ever!
    Just try to keep up one resolution – Every commit you make should improve the quality of the code by some quantum. No matter how small your improvement may be. I did this in the recent past and it seems to be working out so far.

  5. September 29, 2008 at 3:46 pm

    Very good points!

  6. September 29, 2008 at 5:15 pm

    How is it an assumption if you have data to back up a statement?

  7. September 29, 2008 at 5:17 pm

    @Prashant: precisely my point! 😉

  8. Pradeep
    September 30, 2008 at 2:46 pm

    One thing that I learnt during my 3 months at Amazon: “Dont trust documentation. Look at the code , it never lies!!!”

  9. October 8, 2008 at 11:49 am

    Cool points! You’ve only been one year at Amazon? Feels like you have been there forever 🙂

    I really like the irony of point one – While being interviewed, you are asked precisely the opposite 🙂 I know time and other constraints force to be so, but still 🙂

  10. July 20, 2011 at 5:16 pm

    I come and look at this post once in a while, to remind myself about these very good points.

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: