When I joined eBay 12 years ago, the way I learned the ropes was easy: all the engineers sat together in what was basically a very large conference room, and all I had to do was walk up to the guy or girl whose initials were on a piece of code and ask him or her what’s what. And everyone was so nice about it!
Fast forward to today’s eBay, with a code base of 50 million lines of code and an architecture that is the topic of conference keynotes: people are still just as nice as they were back then and will happily answer all your questions, but that model really doesn’t scale so well. We’re hiring the best and the brightest, and when they join us they have a lot of questions. What do we do?
The answer is eBayTech 101, our onboarding program for all new software engineers – and managers – in product development and quality engineering.
- We provide an overview of key business metrics and goals: eBay users worldwide trade about $2000 in goods every second. How does what we do as engineers influence the company’s success?
- We explain our product development life cycle: 100,000+ lines of code change on average when we release every week. Agile? You bet!
- We talk about our platform technologies: our proprietary DAL (data access layer) and how it scales to handle 100 billion database transactions per day; CAL, our Centralized Application Logging infrastructure that makes it very easy for engineers to detect exceptions (and patterns) and follow them all the way to the version of code – and line of code – that caused them, and many other such frameworks.
- We talk about data: used to be, all we had was one Oracle instance in the 90s. How did we grow? And how did we scale? What other database technologies are we using now?
- We share some unique challenges an e-commerce marketplace faces: why is it harder for eBay to offer a shopping cart than for other e-commerce sites? How do you design a search engine that is able to handle constant updates to more than 200 million active items for sale? What are the latest improvements in ranking that the Search Science team is working on?
- We write code and unit tests. We learn about the tools eBay uses to help keep code clean: code coverage tools, static code analysis tools, dependency management tools, all running in continuous integration builds. We profile the code for performance (how do you do 4 billion page views per day?). We do code reviews and learn about best practices.
- And of course, everyone gets to use our product and interact with our customers. We all list an item for sale on eBay, and when it sells we ship it! We invite buyers and sellers to come and talk to us about their business on eBay, how they use the site, and what we can do better.
The full program takes about three weeks, and we’re constantly improving and changing it to meet the needs of our newest co-workers. The idea of course is still the same as 12 years ago: engineers teach engineers – a great recipe for success.