As of Sept. 7th this year, I’ve worked at Amazon for five years. I’ve heard people say that a year at Amazon is worth two at most other companies, and while I’m not sure the exchange rate is correct, the principle is. I’ve learned more in the past five years than in over a decade of programming that came before it. I’ve worked with some of the smartest people in the world, and gotten to work on some amazing projects, only a few of which actually worked out. This is my half-assed attempt to distill those five years full of work and learning into a bulleted list.

Like all such endeavors, it is doomed to failure. That’s never stopped me before.

  • Strive to be afflicted with more important problems. Always seek out problems you don’t know how to solve. Eventually you’ll end up working on problems that no one knows how to solve.
  • Seek out people who know more than you. Learn from them, but don’t be afraid to challenge them. You’ll usually be wrong, but you’ll always learn. And sometimes you’ll be right. And then they will learn.
  • You are a terrible judge of your own abilities. Instead of wondering how far you’ve come, focus instead on where you’re going next.
  • Even the best make mistakes. Hold people to high standards, but be empathetic and forgiving of fallibility. And don’t be surprised when the people you idolize turn out to be less than perfect.
  • Have guts. Any group that punishes you for fighting the good fight isn’t worth being part of.
  • Figure out what you want to work on next before you’re ready to lay down your current project.
  • Admit that your works will be there long after you leave. Don’t let them hold you back. Build them with others in mind so that they don’t hold others back after you leave.
  • Don’t fear failure. Anyone who always succeeds is either a liar or is straining to hold themselves down in the bush league.

I don’t know how many more years I’ll choose to stay at Amazon. But I am absolutely certain that those years will make me a much better hacker.

Disclosure Notice