Hack+Startup with Facebook: Joe Carrafa of Etsy
Joe Carrafa is a senior engineering manager at Etsy where he leads the Marketplace Operations Team. Joe has been involved in the creation of many of the company’s internal tools, and in this Hack+Startup talk, he describes exactly how these tools help Etsy run its business more effectively. All the good stuff below comes directly from Joe.
Most start-ups use internal tools — JIRA or perhaps Google Apps — and I see many of the best companies building their own. The common thread for all internal tools is that they make your life easier, but deciding when to invest dollars in buying tools and when to invest time in building them can be a tough choice.
Simple Solutions to Simple Problems
That being said, internal tools don’t need to be complicated. If you’re someone who frequently deploys code, writing a continuous script to automate the process will alleviate a pain point or two and make you more efficient. Similarly, if you find that other teams are constantly pinging you for the same report or task, you should write a command line script that you can run each time they ping you. It’s about letting the humans shape the tasks and letting the machines repeat them as often as necessary.
The Minimum Viable Product
Ultimately, when you’re a small company with limited resources, it’s important to focus on the minimum viable product. Spend your time building what you really need to make your company better and to set yourself up for success.
Tangibly, this means honing in on the ongoing, repetitive tasks. More specifically, you should always aim to reduce the amount of time you spend doing any single task. With the help of a script or application, you can almost always improve the quality and consistency of your results.
Pro tip: Don’t forget to be resourceful. Before you build, always consider the tools you already have at your disposal. It pays to adopt an “eat your own dogfood” mentality where you can effectively re-use the same tools across the different problems you encounter.
Controlling Your Environment
When you’re creating internal tools, remember that you’re not building them for the rest of the world: You have control over the people who are going to use them, you are familiar with what their day is like and, most likely, you know exactly how they’re going to utilize the tools before you create them. So, don’t get caught up in things like compatibility issues (i.e. making sure your app will run on IE6 if no one uses IE6 internally). Instead, spend your time making their process better. You control the environment, after all.
At Etsy, they've had a lot of success controlling the environment in which code is deployed. With the help of an internal tool called Pushbot — a push queue that effectively operates on a topic-based IRC channel — they have been able to avoid web sockets and lots of other things that can complicate the process of continuous deployment
Like at most companies, the developer-product interaction is particularly meaningful at Etsy. With over 120 engineers, there is a special emphasis on getting product out the door. Joe emphasizes that a cornerstone of the engineering philosophy is continuous deployment and testing.
There is an even bigger emphasis, however, on building things that are tied into the way the company works, rather than products that are simply hard to build.
In order for the dev team to be most productive, they need the following:
- StatsD — metrics that will help drive your framework — it will run timing calls with a 95% with a single call
- Testing Infrastructure — a good one so that people can run tests simultaneously
- Development Environment — a development database with virtual machines to make it scalable
- Codesniffers — to maintain the quality of your code
Your Marketplace Operations Team
While your company may call Marketplace Operations something else, Etsy’s Ops Team is responsible for one of the most crucial interactions, the one between the customer and customer support.
In the past, Etsy had been using a support system called RightNow to handle email. But, it was an imperfect solution that had to be run on a virtual machine. As the organization continued to expand, so did its needs. Teams had to be able to handle a larger volume of messages from a fast growing user-base.
Naturally, the Ops Team wanted more information at their fingertips about a given customer to do their job more effectively, but with a third-party tool like RightNow, there was very little the engineering team could do to accommodate this. Since the technology wasn’t built in-house, it couldn’t provide critical data like who the customers were or what their previous correspondences looked like.
So the team built a tool called Compass, a system that has remained preferable to any existing solutions in terms of features, ease of use and flexibility.
Justifying Your Own System
One of Compass’s core features is Buckets, which separates different types of inbound messages by category (Billing, Integrity, API, etc.). While it’s Gmail-esque on the surface, it encourages Etsy’s teams to treat messages like a task and stresses a particular workflow. This mentality of “read an email, take an action, and then move on” is pervasive because the engineering team made the conscious decision to build the product around the existing workflow of their Ops Team.
Two other crucial additions to Compass were the knowledgebase, a sort of GitHub for customer communication best practices and the inclusion of specific, actionable user information in the Ops team interface.
While your killer features may vary, it’s important to identify what your team is really itching for and then build accordingly.
Preparing for the Future
Etsy’s now at a point where its 40 Ops Team members are managing 10,000 inbound weekly emails. But as they continue to grow, the hope is to leverage Compass and other internal tools in order to have the same size team handle the increased volume of customer requests. To do this in your own company, to scale well on the human capital side of the business, you’ll need to create technology that’s fundamentally designed to help people be more productive. This is why Joe describes successful internal tools as the intersection of people and technology.
- Be resourceful: Consider what you already have in front of you, how you could use it to solve the current problem and go from there.
- Processes: Focus on processes over technology. Before you build something, talk in detail with the person you’re going to build it for. That way, you can pinpoint the best way to make their lives better/jobs easier.
- Environment: You don’t need to waste your time worrying about compatibility. You’re in control.
- ROI: Focus on the areas of your business that will generate the most in return for the leverage that tools can provide.
- Scalability: As you find success you will need to be able to do more with the same resources — building powerful internal tools is one way to get the leverage you need as your business grows.