Jeff Barr's Blog

Things I Like..

My First 12 Years at Amazon.com

Twelve years ago today I drove to Seattle and started working at Amazon.com. Today seems like a good time to tell the story of how and why I joined the company and to retrace my career path to date.

I have been an Amazon customer since the fall of 1996. My first order was a book called PC Roadkill:

PC Roadkill Order

The First Web Service

In early 2002 I was happily self-employed. I had a nice consulting business and made a good living working with a wide variety of early Internet and web services companies. Several of my customers were preparing for a future where web services (discovered via UDDI and accessed via SOAP) were commonplace. At that point in time, however, working examples were few and far between. There were some simple demo services that could return a stock quote or a weather forecast, package tracking from UPS, and a limited bookkeeping service from Intuit. It was easy to talk about the promise of web services but there was very little to actually show. I must have drawn diagrams like this several dozen times (this is taken from a presentation that I delivered in late 2002):

Web Service Mode

All that changed in the spring of 2002 when the very first Amazon.com Web Service (as it was called at the time) emerged in beta form. This simple service offered SOAP and XML interfaces to the Amazon product catalog and allowed developers to earn revenue through the Amazon Associates program. I became aware of this service, signed up for the beta, and downloaded the SDK. I wrote some simple PHP applications to try it out, and then built and briefly distributed a PHP library to simplify access to the data. I was impressed and intrigued and sent them some feedback and offered to meet with them to share my feedback in person.

At this time I was also running Syndic8, a directory of RSS and Atom feeds. Syndic8 included a fairly comprehensive web services API built on top of the XML-RPC protocol.

The product manager responded quickly and was happy to meet with me and to listen to my feedback. He also invited me to a modest developer conference that they were planning to conduct later that spring.

Developer Conference

The conference was held on the 6th floor of the Pac-Med building. Once a Marine hospital, this imposing edifice dates back to 1933 and sits on a prominent piece of land on Seattle’s Beacon Hill. It turned out that “modest” was an overstatement. There were either four or five guests, including Allan Engelhardt , who is still involved in what is now AWS. One of the other attendees was under the age of 18, and came to the conference from Germany.

The attendees were outnumbered by the Amazon employees. We sat and listened as the speakers talked about their plans to build on their success and to expand their web service offering over time. One speaker (it may have been Colin Bryar but I am not sure) looked to the future and said that they would be looking around the company for other services to expose in the future.

This was the proverbial light-bulb moment for me! It was obvious that they were thinking about developers, platforms, and APIs and I wanted to be a part of it. I turned to Sarah Spillman (who later married Colin Bryar) and said “You need to interview me for a position here.” She was happy to hear this and told me that recruiting was one of the goals of the conference.

Jeff Bezos made a cameo appearance. He spent a few minutes with each of the guests and expressed his gratitude for our attendance. Later that summer, Jeff’s prescient quote formed an important part of the press release:

We’re putting out a welcome mat for developers — this is an important beginning and new direction for us. Developers can now incorporate Amazon.com content and features directly onto their own websites. We can’t wait to see how they’re going to surprise us.

I left the conference and drove home, not realizing that I had just seen the future and that I would get to be a part of it!

Interview, Hiring, Coming On-Board

Later that week, the recruiting coordinator got in touch to initiate the hiring process. The first step was a phone screen. Given my development background, I was quizzed on C, C++, and even had to write some SQL over the phone. I must have done fine and they scheduled an in-person interview. I met with Colin, Sarah, Larry Hughes, Carl Christofferson, and Rob Frederick. Sarah actually asked me if I knew what Amazon.com did and if I had ever made a purchase! I expressed surprise that she would even need to ask, and she told me that many candidates knew nothing about the company and had yet to shop online.

I was hired as a Senior Developer on the Amazon Associates team, reporting to Larry Hughes and reported for work on August 19, 2002. At that point the nascent web services effort was joined at the hip with the Associates program, sharing management and marketing leadership. My primary responsibility was a set of daily reports that tracked the growth of the Associates program. However, Larry also gave me the freedom to spend a little bit of my time (10% or so) helping out the web services team as I saw fit.

The service was growing by leaps and bounds. I wrote some monitoring tools to make sure that it was healthy, built some sample code, and also helped out on the developer forums where possible.

First Talk

A few months in, I was asked to speak at a conference. This was presented to me as “None of us want to do it and you are the new guy, so we are dumping this on you.” Little did they know that I actually enjoyed speaking at conferences and that I was happy to accept their offer. I am fairly certain that this was a Seybold conference and that it was held in San Francisco, but I cannot find the presentation or any information about the conference.

The talk went well and they booked me for a couple of other conferences in early 2003. Again, I enjoyed spreading the word about technology and was comfortable in front of an audience. I also distributed a very simple SDK on a small CD:

AWS SDK CD

Becoming an Evangelist

In early 2003, Sarah and Larry met with me. They said “We have been searching for a Web Services Evangelist for months, but it appears that you are already doing the job. Would you like a new role?” The job sounded intriguing but would require a lot of travel. I checked with my wife and my children to make sure that this would be acceptable, and it was. I accepted the position and the title change (to “Web Services Evangelist”) became effective on March 24, 2003!

I brushed up my PowerPoint skills and decided that my goal was to simply spread the word about AWS to developers all over the world, raising awareness and encouraging them to build applications. Eleven years later, that’s still my job description. My early travels took me all over the US, to Japan, and to the UK (Hello, Slough!).

AWS Emerges

Jeff Bezos and the “S Team” (the Senior VPs reporting to him) saw the potential for infrastructure services and put Andy Jassy in charge of the effort in 2003. Andy had built several other Amazon businesses from scratch and was ready to do it again. Andy shared early drafts of his “vision document” with me and I provided him with lots of feedback. The label AWS, once used to describe the service which provided access to the Amazon product catalog, became an umbrella term for a set of infrastructure services.

Andy’s vision document outlined a broad collection of services and a long-term roadmap to build, promote, scale, and charge for them. I discussed various aspects of developer relations and product marketing with Andy and Drew Herdener and we decided to create the AWS Blog in late 2004. At that point, blogs were primarily used for personal self-expression and it was up to me to choose the best content, voice, and style. As I said in the “Welcome” post:

We plan to provide you with useful information about AWS, products built with AWS, web services development tools, interviews with successful AWS developers,case studies, and information about the web services industry.

I had no idea that this simple communication vehicle would become my primary work product a decade (and over 2000 posts) later.

Lots of Opportunities

The decade has flown by and I don’t have the time or the space to cover it in depth. We launched the Simple Queue Service in late 2004, Amazon S3 in early 2006, and Amazon EC2 later that summer.

I am proud of what I have accomplished, but I know that there’s a lot more to do. I have written over 2000 blog posts, one AWS book, and have earned six patents. I have traveled the world and have appeared in front of tens of thousands of people, and I drove across the United States for the AWS Road Trip and was the host of almost one hundred AWS Report videos.

I have been promoted several times and am now Director of AWS Evangelism. I have had opportunities to manage people, but I am not very good at it and strongly prefer to be an individual contributor (IC). Fortunately, there’s a place for senior ICs at Amazon (me, James Hamilton, and Werner Vogels, to name some public examples) and there’s an IC ladder with another rung or two for me to climb in the future!

Looking Ahead

Twelve years in, it is clear that joining Amazon was the right thing for me to do. It is hard to imagine another place to work that would be more fun, more rewarding, or that would allow me to have a greater impact on the world. As it says on that CD, “Work hard, have fun, make history!”

Links for Sunday, February 23, 2014

  • Leaflet – “An Open-Source JavaScript Library for Mobile-Friendly Interactive Maps.
  • Yelm Earthworm & Castings – “Red Wiggler, Red worms, Worms-Eisenia Fetida, Worms, Organic Soil & Produce,Vermiculture, Worm Composting.
  • Making Root Beer At Home – “We will set up a fermentation in a closed system and capture the generated carbon dioxide to carbonate root beer. You may of course adjust the quantities of sugar and/or extract to taste
  • Hugh Howey: My Advice to Aspiring Authors – “To begin with, you need to write. This seems axiomatic because it is. The only way to amass a pile of words into a book is to shovel some every single day. No days off. You have to form this habit; without it you are screwed.
  • LEGO Engineering – “The aim of this site is to inspire and support teachers to go beyond the basics in bringing LEGO-based engineering to all students.
  • Robot2: LEGO MINDSTORMS EV3: 12 Bonus Models – “The LEGO Group has just revealed the 12 official bonus models that you can build with the LEGO MINDSTORMS EV3 31313 set. They were designed by members of the LEGO MINDSTORMS Expert Panel, and they.re officially endorsed by LEGO. Some of them also appear on the EV3 packaging.
  • Links for Friday - LEGO

    Long-time readers of this blog know that I like to collect and share links that are of interest to me. With the blog’s rebirth, I am resuming this practice. On some days I’ll just throw out random links. On other days I am going to try for a theme. Today’s theme is LEGO.

  • Crowkillers: Jennifer Clark’s JCB JS220 Track Excavator – “Now you can build the ultimate LEGO pneumatic model, the JCB JS220 tracked excavator designed by Jennifer Clark. This model has almost 1700 parts and features 13 pneumatic actuators and pumps, 5 motors, and all the functions you’d expect from a scale model of the real thing.
  • RobotC – A C Programming Language for Robotics – “ROBOTC is the premiere robotics programming language for educational robotics and competitions. ROBOTC is a C-Based Programming Language with an Easy-to-Use Development Environment.
  • SR 3D Builder – “ new way to create your Lego models with PC.
  • Gizmo’s Freeware: Best Free Lego Building Software – “Fancy clicking some virtual bricks together on your PC? Over the years, the Lego toy brand has become increasingly oriented towards prebuilt models making it more difficult to think outside the predesigned blocks. But on a computer you can let your fantasy rip without having to shell out for designer components. And Lego building programs are a spatially intriguing experience for youngsters of all ages.
  • The Great Ball Contraption – “Welcome to the Great Ball Contraption (GBC) website. Here you will find information regarding some of what it is and what some of us are currently working on. There are always several projects currently ongoing, and many of them are finished.
  • LEGO GBC Module: Ball Factory ver.2 – “I added some improvements to the ball factory module, because the former module didn’t support 1.0 balls/s.This new module can carry at 1.3 balls/s.
  • PV-Productions: GBC-8 Published – “It has been a while since my last GBC. But I have made a new one with new modules in it – See more at: http://pv-productions.com/gbc-8-published/
  • My Personal Productivity Tips

    Over the years I have developed a set of productivity tips that seems to work well for me. I have shared them with my coworkers from time time with positive results, so I figured that they would make for a good post to get my blog back up and running. Once again, these work well for me. I am not religious about any of these; if you were to shadow me around for a week or two you would undoubtedly find me breaking each of them at one time or another. I have tried to illustrate each tip with an example or two of how I put it to use in practice.

    Here’s a quick summary of what I have to offer. The tips themselves are described in more detail later in the post:

    • All Of Your Minutes Are The Same
    • Pay Bills as They Arrive
    • Find Joy in Being Productive
    • Enjoy Living Life
    • Keep a TODO List
    • Ensure that Done is Really Done
    • Put it On Your Calendar
    • Keep a Clean Desk
    • Learn and Use Shortcut Keys
    • Keep a Worklog and Good Notes
    • Re-Read The Fine Manual (RRTFM)
    • Don’t Lose Your Keys
    • Always Be Learning / Charging
    • Get Double Value From Your Efforts
    • Stay Balanced
    • Shape and Customize Your Environment
    • Be a Half Step Ahead

    All Of Your Minutes Are The Same

    I try to treat all of my minutes as the same precious entities that they are. I don’t believe that I have “good” minutes when I am productive, and “bad” ones when I am not. In practice, this tip means that I try to take care of little things are they come in to view, rather than setting them aside where they might be forgotten.

    Pay Bills as They Arrive

    This tip is a direct consequence of the previous one. I still receive a fair number of paper bills in my mail box. I fetch the mail, recycle as much as I can right away, unsubscribe from stuff that I don’t want by using the Paper Karma app, put all magazines into my reading pile, and then immediately schedule all bills for online payment. This tip avoids late fees, piles of paper, and makes sure that I am on top of my financial situation.

    Find Joy in Being Productive

    It is possible to classify a lot of tedious stuff that must be done every day or week as boring. I don’t. Instead, I find fulfilment in expeditiously managing all of the routine stuff so that I have more time to be creative.

    Enjoy Living Life

    A lot of people seem to think that their life will change in some fundamental way if they suddenly or eventually become “successful,” whatever that is supposed to mean. They envision days filled with caviar, champagne, and private jets, not realizing that they still need to handle the everyday realities of life. I believe that this attitude leads to long-term dissatisfaction and to a life spent pursuing a fantasy lifestyle that does not actually exist. I try to simply enjoy being alive and doing what I enjoy.

    Keep a TODO List

    Over the years I have tried and ultimately discarded many different systems and tools for managing my TODO list. I used to track my tasks, calendar, and my days in a large Day-Timer. I used Emacs Org Mode for a while. Today, I keep a long-term TODO list as a draft-mode Outlook message. This list contains items that I want to do over the course of the upcoming hours, days, and weeks. Every morning, I examine the list, adding new items and reordering existing ones to reflect changing priorities. I also keep a handwritten list for smaller items.

    Paper TODO

    I do not obsess over my list, and I know that I will never get to the end of it. I will confess that I have managed to train myself to feel really good about checking off an item from the list. I’ll often put a couple of simple (yet entirely necessary) items on the list in order to have something worthwhile to do if I need a break from the bigger items. I also like to break large items into smaller, bite-sized items that I can push forward when I need some quick victories.

    Ensure that Done is Really Done

    Once again building on earlier items, I don’t check something off of the list until it is well and truly done. I don’t consider my paper bills to be actually paid until I have deposited them in the mail drop of our community mailbox and filed away the residual paper.

    Put it On Your Calendar

    When someone asks me to do something, I need to allocate time for it in order to make sure that it will actually get done. For work-related items, I estimate the amount of time required to do the work, and then I reserve that time on my Outlook calendar, marking it as Busy and Important. I also paste the original email and other necessary files into the appoinment to create a nice, self-contained “object” that I can just open up when the time comes to work on the item.

    Keep a Clean Desk

    I try to rid my desk of clutter and distractions. Besides my computer, my goal is to have my TODO list, one pen, one glass of water, and my phone close at hand. I’m not quite there yet, but that’s my goal.

    Learn and Use Shortcut Keys

    I strongly prefer the keyboard to the mouse, and sometimes tell myself that having to use the mouse is a “bug.” I will even navigate through menus using the appropriate keys on occasion. This tip, more than some of the others, is certainly a personal preference, but it definitely works for me.

    Keep a Worklog and Good Notes

    For long-running projects, it is a good idea to keep a log of what you did, and how you did it. This is great for development projects; you can track successes, failures, obscure commands that took you 30 minutes to discover, and much more.

    For my now-dead Syndic8 website, my worklog grew to over 34,000 lines over the course of 11 years. Here’s an early entry:

    Syndic8 Worklog

    My one-time colleague Mark Dalrymple took my suggestion to heart many years ago; he documented his model in Logs is Logs.

    Re-Read The Fine Manual (RRTFM)

    When I first started working with computers, my time at the keyboard was often limited to an hour or less per day. In order to satisfy my curiousity, I became an inveterate manual-reader. I would explore interesting commands and functions offline and then plan ahead so as to be able to make the most of my time at the keyboard.

    After I learned the language or system, I would always read the manual a second, third, or even fourth time. This allowed me to make sense of more complex features that I didn’t understand the first time or two. I have noticed that many people spend all day in their chosen text editor without bothering to learn how to take full advantage of it. Go back and read the manual again!

    Don’t Lose Your Keys

    I hate to spend time looking for my car keys. In general, I try to make certain kinds of things so routine that I don’t have to think twice about how do to them.

    When I arrive home my keys go into a designated container on my desk (I realize that the existence of this container conflicts with an earlier tip). When packing up after giving a conference talk, I unplug my laptop’s power supply, and put it into my messenger bag before doing anything else.

    Always Be Learning / Charging

    Be curious, and read something intersting every day. Never wonder about things, dig it, search, and figure out what’s going on. Take some online courses, learn a new human or programming language, or go back to school.

    On a related note, be sure to keep all of your devices charged up. My colleague Scott Barneson refers to this as ABC – Always Be Charging.

    Get Double Value From Your Efforts

    I have found that it is often possible to do something once and get credit for it twice! I’m not cheating, I am creating interesting synergies between my work, personal, and school lives.

    For example, I had always wanted to drive across the United States, stopping in interesting cities and giving AWS talks every night. As I was wrapping my time in the University of Washington’s MCDM program, I realized that trip could form the basis for an independent study project. The resulting web site and final report simultaneously satisified my work and school requirements. I also got a lot of first-hand experience with S3 Website Hosting and video processing.

    If you are taking on a new work project, see if you can use it as an opportunity to learn a new programming language or framework.

    Stay Balanced

    My day job (writing the AWS Blog is surprisingly unstructured. Every day, I start out with a blank page and work to fill it with words and pictures that describe our offerings. I have found that I need to balance my unstructured job with other activities that are very structured. Lately, I have enjoyed building advanced LEGO Technic sets containing thousands of pieces. There’s something reassuring about being able to follow directions that result in a defined product at the end.

    Shape and Customize Your Environment

    This tip can take on a variety of forms. For me, it means that I fine-tune the settings on my tools and applications in order to make them work the way that I want. My .emacs file dates back to the late 1980’s; the shortcut keystrokes therein are now second nature to me.

    Similar recommendations apply to your physical working environment. Fine-tune your desk, car, office, and phone with affordances and tweaks to make them work the way that you want. I suspect that 3D printing will make customization of this time even more commonplace. The trick is to recognize friction points and to see what you can do to work past or around them.

    Be a Half Step Ahead

    This may very well be my strangest tip; it is definitely the hardest one to describe. The idea here is to anticipate the next step of something that you do, and to do it as early as possible, preferably in conjunction with the prior step. The best example that comes to mind is sitting in my garage! I drive a manual transmission car. After I pull in to my garage and set the parking brake, I shift in to reverse before killing the engine. This leaves my car all set up and ready to go; I can start it up, let the oil circulate, and then let out the clutch to be on my way.

    I hope that you have enjoyed these tips, and that you are able to make use of them (suitably adopted).

    Links for Saturday, January 11, 2014

  • 5’ and 3’ Ends of DNA – “What do we mean when we talk about the 3’ and 5’ ends of DNA or RNA?
  • aws_S3_imagetag – “An octopress plugin to upload files to AWS S3 account and Provide a tag to reference the files in your views.
  • Cruise From Seattle: Cruise Alaska… And Beyond – “Seattle is the homeport for cruise ships that voyage to Alaska and around the Pacific Northwest. Cruisers can experience wildlife and unspoiled water views while skimming the Pacific Ocean and inland waterways.
  • Style Shapes – “Styleshapes.com is a creative fashion 3D Designers community. We feature most astonishing 3D Printed Fashion pieces and link to their authors stores where the actual items can be bought! We decided to create a home for all creative fashion designers starting with 3D printing to have a place to share their 3D designs and gain more exposure and appreciation that they need so much at the start!
  • Blogging Has Resumed

    I had planned to resume my longstanding personal blogging regimen several months ago. The summer and the fall were very busy due to the AWS re:Invent conference and a large-scale kitchen renovation. both of these items are now in the past and I am once again ready to blog on a regular and frequent basis!

    This blog is now statically hosted on Amazon S3. The content is written in Markdown and turned into HTML by Octopress. The static blogging model obviates all of my scaling and security worries, and will let me focus on writing new and interesting content. I still have to sand off a few rough edges before the new hosting model is complete. I need to install a theme and I need to decide how I want to handle comments.

    With this new burst of excitement and energy, I will also be changing the focus (if there ever was one) of this blog to reflect my current interests.

    You’ll read a lot less about virtual worlds, news feeds, and syndication (I have nothing to do with any of these topics at present), and some more about cloud computing (above and beyond what I write in the AWS Blog, LEGO (especially Technic), and home-made pizza.

    After graduating from the University of Washington’s MCDM program last year, I decided to continue my education and applied to the Professional Master’s Program in Computer Science (PMP for short), also at the UW. I was accepted and am starting my first class today.

    Blogging Will Resume This Week

    After spending the past three years in the UW’s MCDM program (one class per quarter), I graduated last week. I now have a lot more free time and I plan to use some of it on this blog.

    As soon as the last of the dust settles I’ll resume blogging with a review of my time in the program. I also plan to port this blog to Octopress and to resume my regular link posts.

    Future topics include Raspberry Pi, Arduino, Lego, and 3D printing.

    Links for Monday, January 14, 2013

  • NYC Resistor: Vector Display Introduction – “Vector displays are now mostly historical oddities — old arcade games like Asteroids or Tempest, or ancient FAA radar displays — which gives them a certain charm. Unlike modern raster displays, the electron beam in the CRT is not swept left to right and top to bottom for each row in the image. Instead the beam is steered to a point and traces the lines of the displayed image.
  • Jan Monschke: Genetic Algorithms – “A problem-solving technique that works like natural evolution. Literally!
  • National Park Service: Visiting the Hoh Rain Forest – “The Hoh Rain Forest is located in the stretch of the Pacific Northwest rainforest which once spanned the Pacific coast from southeastern Alaska to the central coast of California. The Hoh is one of the finest remaining examples of temperate rainforest in the United States and is one of the park’s most popular destinations.
  • Tim O’Reilly: It’s Not About You: The Truth About Social Media Marketing – “n short, the secret of promotion in the age of social media isn’t to promote yourself. It’s to promote others. Success comes when your success depends on the success of your customers, your suppliers, your end-users, and when you spend more of your time thinking about them than about yourself. You can even promote your competitors. In the early 90s, we distributed to booksellers a bibliography of all the best books on Unix – our competitors’ as well as our own. Our theory was that if we helped booksellers to buy the best books, the sales of the entire category would grow.
  • Engadget: Arduino Micro Shrinks Your Favorite DIY Platform Down to Ridiculous Proportions – “With the Arduino Leonardo, everyone’s favorite hackable microcontroller turned a new page. Now it’s time to bring that simplified design and slightly expanded feature set to the rest of the family, including the itty-bitty Arduino Micro. The tiny, embed-friendly board was designed with help from Adafruit Industries, one of the biggest players in the DIY market.
  • Links for Wednesday, January 2, 2013

  • Makeblock – “Makeblock is an aluminum extrusion based construct platform,provides integrated solution cover mechanical, electronic and software aspects. It can be used to bring your creations to life. With Makeblock you can make professional and stable robots, machines or even art-ware. It’s super easy-to-use. The only limit is what you can think of.
  • Epic Tinker – “Our memories of our first electronics projects were fond ones. These experiences sparked imagination and creativity (and, well, sometimes it’s just sparks and magic blue smoke), but we learned from these experiences each time, and it helped develop the inventor and innovator in each of us. We learn by doing, trying, experimenting. It doesn’t matter if you are making a LED blink for the first time, or if you are a seasoned tinkerer, we hope you enjoy your projects and the wonderful memories they help create.
  • A Lego a Day: New Lego train Coming in 2013 -10233 Horizon Express – “And it’s awesome looking! I have a fascination with trains that I can’t quite explain. I don’t have a desire to have a huge train layout, or even to motorize them, but I do love the Lego trains. I’ve bought several of them here and there. I think I really like the size and scale of them. And I feel they use the latest and greatest building techniques. You can learn a LOT about building from these Lego train sets.
  • Links for Friday, December 28, 2012

  • KHK Stock Gears – “8399 types of Stock Gears for Robots.
  • Welcome to RobotShop U.S.A. – “RobotShop, the World’s Leading Robot Store for Personal and Professional Robot Technology. Here you will find personal robots, professional robots, robot toys, robot kits and robot parts for building your own robots.
  • Norris Labs – “My name is Steve Norris. This is my personal web site. Here you will find a collection of robot projects that I have built over the past few years. You are free to use the schematics, diagrams and source code to build your own version for non-commercial use.
  • Minds-I: All Terrain Robots – “The MINDS-i’s vision results from the belief that the world of competitive robotics can and should do more, and the fervent desire to stimulate young minds and bring that excitement beyond the classroom
  • ATOP – “Atop is an ASCII full-screen performance monitor that is capable of reporting the activity of all processes (even if processes have finished during the interval), daily logging of system and process activity for long-term analysis, highlighting overloaded system resources by using colors, etc. At regular intervals, it shows system-level activity related to the CPU, memory, swap, disks and network layers, and for every process (and thread) it shows a.o. the CPU utilization, memory growth, disk utilization, priority, username, state, and exit code.