I am a software geek, starting at high school with an accidental fall into computer science. Programming in school was in BBC BASIC, although at home I used Turbo Pascal as well as some 6502. It turned out I didn’t entirely suck at it so I decided to stick with it. At college (6th form, or ages 17-18 for the non-British reader) we had a teacher that decided we should learn something we could actually get paid for which meant COBOL running on a Digitial Equipment Corp (DEC) micro-VAX.

During the same time I got a summer and weekend job and when the IT manager learned I was not only studying CS but also learning COBOL he let me loose on their ageing Burroughs mainframe; so I can say with only minor truth-stretching that I have been paid to write COBOL. The company moved from this old system slowly to a departmental mini-computer based on the Pick operating system which was a strange experience (don’t recall the computer make though).

University continued the VAX experience but with the addition of a new language, Ada, which I still like even though it really isn’t fashionable to say so out loud.

My first full-time job was with the now defunct ICL Retail Systems (when looking for something from the ICL days I found this embarressment). Mostly this was C and C++ (Glockenspiel and Zortec on OS/2) although some tools were written in Modula-2 with some experimental Modula-3 usage. This was a great 6 years, I learned so much not just as a professional programmer but also about how to work in teams and the fact that there are always people smarter than you to learn from and so much to learn. I also got to do some exploratory Ada work, also wrote a fun paper entitled Ada-95: A guide for C and C++ programmers which eventually turned into a book. Through this I got to meet some of the leading lights in the language’s design including John Barnes who was very generous with his time as reviewer.

Having moved to the US in 1998 for a brief stint at Microsoft I joined Rational Software in Redmond WA. After Rational’s aquisition by IBM I lived in North Carolina for a period where I worked on a number of developer tools efforts as well as standards. I was active in the architecture of the very cool jazz project, which led to the formation of the Open Services for Lifecycle Collaboration group. I was also a member of the IBM Software Group Architecture Board which was a lot of fun with some really super-smart people!

I have been at Amazon now since 2009 and currently I am a Senior Principal Engineer working across all of the North America Consumer business with a current focus on Amazon Fashion, or softlines as it is often termed. Oh, and yes, we are hiring 😉 For all the geeks in fashion, here’s my STEM+fashion shirt on Zazzle.

Amazon Fashion Offsite

I have also worked on various parts of the back-end of the retail web site as well as the migration of Amazon Fresh into the amazon.com site. Anyone at Amazon can usually find My office by looking for the flags…

Office Flags

Having joined in 2009 Amazon is now the longest I have stayed in one company in my career. Interview candidates often ask what do you like about Amazon?, but the question they should ask is what has made you stay at Amazon for ~10 years?. What I like is a very point-in-time question and probably very context specific whereas, in general, why you stay somewhere tends to be more enduring traits such as culture and the other people a company attracts. What I like right now is the ability to work on really diverse projects such as the drop or working on product discovery for core fashion. The reason I stay is that I work with really smart and dedicated people both on the technical and business side and that the speed of innovation and the scope of things that we haven’t even thought of yet means I cannot imagine running out of cool and hard problems.

On a more fundamental level there are two things I would point people at to help them understand why Amazon is somewhat unique and not only attracts but retains good people.

  1. Our Leadership Principles, and
  2. The Principal Engineer Community.

Many companies have mission statements, values, principles, or other material that they believe distills their company ethos into pithy wall art. Unfortunately having been at a number of such companies I can confidently say I not only have no idea what they are now, I don’t know that I ever knew what they were or even where to go find them. At Amazon the leadership principles are not a hand-out at orientation, they are part of everyday conversation, they are a shared understanding of what we value and how we work. They are also set up in tension so they can help in decision making to understand how to make trade-offs.

The second big difference from previous experience is the truly global and cross-organizational nature of the Principal Engineer (PE) community. We are expected to work across teams, to help be the connective tissue to help deliver large scale systems comprised of services delivered by two pizza teams. Teams can reach out at any time and ask for principal help and will find domain experts, technical depth, and mentoring available – sometimes more than you expected!


I don’t have one online, but my LinkedIn and Google Scholar profiles should cover things pretty well. Patents are listed in those sites, but also cached locally here, as is my personal writing in bibtex form.

Standards Involvement

There’s some old Point of Sale (PoS) device standards work, but it’s hard to even find references to that work online now. Here’s what does remain.

  • Object Management Group (OMG)
  • World Wide Web Consortium (W3C)
  • RosettaNet (now at GS1)
  • Collaborate Planning, Forecasting, and Replenishment (CPFR)


ICL was a really fun place to work at that time, their VME systems were doing well, they had a range of Unix systems and a big commitment to open systems. However, they never saw an engineering problem they couldn’t develop an expensive and over-engineered solution for! My personal favorite was the DRS 300, a machine that came in modules, each one in a solid chassis that you could use as a step-stool, you strung them together using SCSI cables (even though none of the inner components were ever actually SCSI. They clipped together side by side and you put a blanking plate on each end.

DRS 300

The result was people with 5’ of these damn things across the top of book cases and honestly it ran a version of SVR4 sucky slow.

Related Posts