Lightning fast code searching made easy
Technical articles and stack decisions from Hound by Etsy
Macramé: Untangling the Knot on the Etsy Android Listing Screen
Easily the most important and complex screen in the Buy on Etsy Android app is the listing screen, where all key information about...
How We Built The Deals Tab in Swift UI
Behind the Scenes - A Glimpse to Tax Calculations
In the past, sellers were responsible for managing and fulfilling their own tax obligations. However, more and more jurisdictions...
The AR Measuring Box: Etsy's answer to Big Tape Measure
A little while ago, Etsy introduced a new feature in its iOS app that could place Etsy sellers' artwork on a user's wall using...
The So-fine Real-time ML Paradigm
Introduction Each year, Etsy hosts an event known as “CodeMosaic” - an internal hackathon in which Etsy admin propose and...
Leveraging Real-Time User Actions to Personalize Etsy Ads
Introduction Personalization is vital to connect our unique marketplace to the right buyer at the right time. Etsy has recently...
The Problem with Timeseries Data in Machine Learning Feature Systems
Introduction The Feature Systems team at Etsy is responsible for the platform and services through which machine learning (ML)...
From Image Classification to Multitask Modeling: Building Etsy’s Search by Image Feature
Etsy announced the arrival of a powerful new image-based discovery tool on Etsy’s mobile apps. The ability to search by image...
How We Built a Multi-Task Canonical Ranker for Recommendations at Etsy
There are more than 100 million unique listings on Etsy, so we provide buyers recommendations to help them find that one special...
Barista: Enabling Greater Flexibility in Machine Learning Model Deployment
Machine learning (ML) model deployment is one of the most common topics of discussion in the industry. That’s because deployment...
Docs-as-code at Etsy
The question of documentation—not just formats and standards, but the tools and processes that can make documenting code a normal...
Scaling Etsy Payments with Vitess: Part 3 – Reducing Cutover Risk
Between Dec 2020 and May 2022, the Etsy Payments Platform, Database Reliability Engineering and Data Access Platform teams moved...
Scaling Etsy Payments with Vitess: Part 2 – The “Seamless” Migration
Scaling Etsy Payments with Vitess: Part 1 – The Data Model
At the end of 2020, Etsy’s Payments databases were in urgent need of scaling. Specifically, two of our databases were no longer...
Adding Zonal Resiliency to Etsy’s Kafka Cluster: Part 2
The first time I performed a live upgrade of Etsy's Kafka brokers, it felt exciting. There was a bit of an illicit thrill in taking...
Adding Zonal Resiliency to Etsy’s Kafka Cluster: Part 1
In 2018, with its decision to choose Google Cloud Platform as its provider, Etsy began a long project of migration to the cloud....
Improving Support for Deep Learning in Etsy's ML Platform
Introduction As new machine learning (ML) techniques continue to advance and provide the promise of better performance, platform...
Mitigating the winner’s curse in online experiments
Experimentation plays a central role in how we test and deploy new ideas at Etsy. Not only does it provide teams with a scientific...
Understanding the collective impact of experiments
Autonomous experimentation is an integral part of Etsy’s product development cycle. Each team designs and runs its own experiments...
Being a Dynamic Leader
When we think about how we grow our people as leaders, our focus is often simply on getting them promoted. But promotion isn’t...
Managing and Leading Globally Distributed Teams
When I started managing globally distributed teams shortly after the 2008 economic crisis, I never would have predicted that it...
Making The Indian Rupee Work For Humans and Databases
As a global marketplace, Etsy offers support for a few dozen international currencies. Recently we decided to add the Indian rupee...
Deep Learning for Search Ranking at Etsy
Until recently, search ranking at Etsy was powered by a gradient-boosted decision tree model. That was a model that performed...
Towards Machine Learning Observability at Etsy
Etsy has long had comprehensive observability over its machine learning (ML) deployments from a software engineering perspective....
Faster ML Experimentation at Etsy with Interleaving
At Etsy, our product and machine learning (ML) teams are constantly working to make improvements to the experience of our buyers...
Priority Hints - What Your Browser Doesn’t Know (Yet)
As a rule, users don’t like slow web pages. For online businesses, whose success depends on keeping customers engaged through...
A Checklist Manifetsy
Introduction The first time I encountered it, Atul Gawande’s The Checklist Manifesto made intuitive sense to me. The book's...
A Customer-Focused Approach to Tooling
One year after Etsy's Frontend Engineering Group successfully swapped JavaScript Unit Testing tools, it was time to tackle another...
Plurals at Etsy
Plurals at Etsy If you’ve ever been shopping online and encountered a message like “1 items added to cart” or even “1...
Using Real-Time Streaming to Power Etsy's Offsite Ads
At Etsy, we’re focused on connecting our more than five million sellers with buyers around the world. Etsy sellers have nearly...
Leading your engineering team through an unexpected product pivot
This article was originally written for LeadDev. In tech, we talk a lot about failing fast: implementing small, incremental changes...
Improving the iOS Listing Screen with Generics
We launched Etsy’s iOS app way back in 2011, so we have a long and fruitful history in the App Store. The listing screen, where...
Why We Relaunched Code as Craft
A few weeks ago, we relaunched our engineering blog, Code as Craft, and I want to share the story of why we did that. If you’re...
One Activity to Rule Them All
Reducing crashes and increasing engagement with Etsy’s Android app through architecture Over the past couple of years, the Etsy...
Opinion: When should a software engineer switch into management?
A lot of talented management bloggers before me have focused on who should make the transition to engineering management, and...
Why Writing Is Important for Engineers
A few weeks ago we relaunched this Code as Craft blog, which hasn’t seen significant change since we first rolled it out in...
Building a Platform for Serving Recommendations at Etsy
With a catalog of more than 100 million magical listings, Etsy extensively relies on software infrastructure and machine learning...
Imbalance detection for healthier experimentation
Deciding to launch a new product feature at Etsy requires teams to rigorously assess whether it will improve the user experience....
How the 2020 Mask Surge Reshaped Etsy’s Taxonomy Capabilities
On April 3, 2020, the US Centers for Disease Control and Prevention (CDC) recommended wearing face masks in public to combat the spread of the coronavirus. With mass-produced masks in short supply,…
On April 3, 2020, the US Centers for Disease Control and Prevention (CDC) recommended wearing face masks in public to combat the...
Redesigning Etsy’s Machine Learning Platform
Introduction Etsy leverages machine learning (ML) to create personalized experiences for our millions of buyers around the world with state-of-the-art search, ads, and recommendations. The ML Platf…
Introduction Etsy leverages machine learning (ML) to create personalized experiences for our millions of buyers around the world...
Etsy’s Journey to TypeScript
Over the past few years, Etsy’s Web Platform team has spent a lot of time bringing our frontend code up to date. It was only a year and a half ago that we modernized our Javascript build system in …
Over the past few years, Etsy’s Web Platform team has spent a lot of time bringing our frontend code up to date. It was only...
Mobius: Adopting JSX While Prioritizing User Experience
Keeping up with the latest developments in frontend architecture can be challenging, especially with a codebase the size and age of Etsy’s. It’s difficult to balance the benefits of adopting newer …
Keeping up with the latest developments in frontend architecture can be challenging, especially with a codebase the size and age...
Improving the Deployment Experience of a Ten-Year Old Application
In 2018, Etsy migrated its service infrastructure from self-managed data centers to cloud provisioning. (We blogged about it at the time.) The change opened up opportunities for improvements to tec…
In 2018, Etsy migrated its service infrastructure from self-managed data centers to cloud provisioning. (We blogged about it at...
Increasing experimentation accuracy and speed by using control variates
At Etsy, we strive to nurture a culture of continuous learning and rapid innovation. To ensure that new products and functionalities built by teams — from polishing the look and feel of our app and…
At Etsy, we strive to nurture a culture of continuous learning and rapid innovation. To ensure that new products and functionalities...
How We Built A Context-Specific Bidding System for Etsy Ads
Etsy Ads is an on-site advertising product that gives Etsy sellers the opportunity to promote their handcrafted goods to buyers across our website and mobile apps. Sellers who participate in the Et…
Etsy Ads is an on-site advertising product that gives Etsy sellers the opportunity to promote their handcrafted goods to buyers...
How Etsy Prepared for Historic Volumes of Holiday Traffic in 2020
The Challenge For Etsy, 2020 was a year of unprecedented and volatile growth. (Simply on a human level it was also a profoundly tragic year, but that’s a different article.) Our site traffic leapt …
The Challenge For Etsy, 2020 was a year of unprecedented and volatile growth. (Simply on a human level it was also a profoundly...
Bringing Personalized Search to Etsy
The Etsy marketplace brings together shoppers and independent sellers from all over the world. Our unconventional inventory presents unique challenges for product search, given that many of our lis…
The Etsy marketplace brings together shoppers and independent sellers from all over the world. Our unconventional inventory presents...
Improving our design system through Dark Mode
Etsy recently launched Dark Mode in our iOS and Android buyer apps. Since Dark Mode was introduced system-wide last year in iOS 13 and Android 10, it has quickly become a highly requested feature b…
Etsy recently launched Dark Mode in our iOS and Android buyer apps. Since Dark Mode was introduced system-wide last year in iOS...
Mutation Testing: A Tale of Two Suites
In January of 2020 Etsy engineering embarked upon a highly anticipated initiative. For years our frontend engineers had been using a JavaScript test framework that was developed in house. It utiliz…
In January of 2020 Etsy engineering embarked upon a highly anticipated initiative. For years our frontend engineers had been using...
Developing in a Monorepo While Still Using Webpack
When I talk to friends and relatives about what I do at Etsy, I have to come up with an analogy about what Frontend Infrastructure...
How to Pick a Metric as the North Star for Algorithms to Optimize Business KPI? A Causal Inference Approach
How to pick a metric as the north star to guide algorithms for business KPI optimization? We developed a novel approach, causal meta-mediation analysis (CMMA), to solve it. This article draws on …
This article draws on our published paper in KDD 2020 (Oral Presentation, Selection Rate: 5.8%, 44 out of 756) Introduction It...
Chaining iOS Machine Learning, Computer Vision, and Augmented Reality to Make the Magical Real
Etsy recently released a feature in our buyer-facing iOS app that allows users to visualize wall art within their environments. Getting the context of a personal piece of art within your spac…
Etsy recently released a feature in our buyer-facing iOS app that allows users to visualize wall art within their environments....
Keeping IT Support Human during WFH
Image: Human Connection, KatieWillDesign on Etsy Hi! We’re the Etsy Engineering team that supports core IT and AV capabilities for all Etsy employees. Working across geographies has always been par…
Image: Human Connection, KatieWillDesign on EtsyHi! We’re the Etsy Engineering team that supports core IT and AV capabilities...
Cloud Jewels: Estimating kWh in the Cloud
In the face of a changing climate, we at Etsy are committed to reducing our ecological footprint. To better understand the environmental impact of our computing, we created a set of conversion fact…
When I talk to friends and relatives about what I do at Etsy, I have to come up with an analogy about what Frontend Infrastructure is. It’s a bit tricky to describe because it’s something that you …
The Causal Analysis of Cannibalization in Online Products
How to quantify the cannibalization between online products that are jointly facilitating user experience? We solve it through causal mediation analysis. This article mainly draws on our publish…
The journey to fast production asset builds with Webpack
Etsy has switched from using a RequireJS-based JavaScript build system to using Webpack. This has been a crucial cornerstone in the process of modernizing Etsy’s JavaScript ecosystem. We’ve learned…
G-Scout Enterprise and Cloud Security at Etsy
As companies are moving to the cloud, they are finding a need for security tooling to audit and analyze their cloud environments. Over the last few years, various tools have been developed for this…
Engineering Career Development at Etsy
In late May of 2018, Etsy internally released an Engineering Career Ladder. Today, we’re sharing that ladder publicly and detailing why we decided to build it, why the content is what it is, and ho…
Apotheosis: A GCP Privilege Escalation Tool
The Principle of Least Privilege One of the most fundamental principles of information security is the principle of least privilege. This principle states that users should only be given the minima…
Code as Craft: Understand the role of Style in e-commerce shopping
Aesthetic style is key to many purchasing decisions. When considering an item for purchase, buyers need to be aligned not only with the functional aspects (e.g. description, category, ratings) of a…
An Introduction to Structured Data at Etsy
Etsy has an uncontrolled inventory; unlike many marketplaces, we offer an unlimited array of one-of-a-kind items, rather than a defined set of uniform goods. Etsy sellers are free to list any polic…
What it’s Like to Intern at Etsy? – Part I
I secretly like seeing people’s surprise when I told them that I chose to intern at Etsy because it was the only company that asked for a cover letter. I enjoyed every second of filling out my Etsy…
Executing a Sunset
We all know how exciting it is to build new products, the thrill of a pile of new ideas waiting to be tested, new customers to reach, knotty problems to solve, and dreams of upward-sloping graphs. …
Why Diversity Is Important to Etsy
We recently published our company’s Guiding Principles. These are five common guideposts that apply to all organizations and departments within Etsy. We spent a great deal of time discussing, brain…
boundary-layer : Declarative Airflow Workflows
Looks like we've moved some things around or maybe the page you are looking for no longer exists. Try using search or checking the Archives.
Double-bucketing in A/B Testing
Previously, we’ve posted about the importance we put in Etsy’s experimentation systems for our decision-making process. In a continuation of that theme, this post will dive deep into an interesting…
Capacity planning for Etsy’s web and API clusters
Capacity planning for the web and API clusters powering etsy.com has historically been a once per year event to gain an understanding of the capacity of the clusters in our datacenters that often c…
Etsy’s experiment with immutable documentation
Introduction Writing documentation is like trying to hit a moving target. The way a system works changes constantly, so as soon as you write a piece of documentation for it, it starts to get stale.…
How Etsy Handles Peeking in A/B Testing
Etsy relies heavily on experimentation to improve our decision-making process. We leverage our internal A/B testing tool when we launch new features, polish the look and feel of our site, or even m…
How Etsy Localizes Addresses
Imagine you’re browsing the web from your overpriced California apartment one day and you find a neat new website with some really cool stuff. You pick out a few items, add them to your cart, and s…
Modeling User Journeys via Semantic Embeddings
Etsy is a global marketplace for unique goods. This means that as soon as an item becomes popular, it runs the risk of selling out. Machine learning solutions that simply memorize the popular items…
The EventHorizon Saga
This is an epic tale of EventHorizon, and how we finally got it to a happy place. EventHorizon is a tool we use to watch events streaming into our system. Events (also known as beacons) are basical…
Sealed classes opened my mind
How we use Kotlin to tame state at Etsy Bubbly the Baby Seal by SmartappleCreations Etsy’s apps have a lot of state. Listings, tags, attributes, materials, variations, production partners, shippin…
Culture of Quality: Measuring Code Coverage at Etsy
In the summer of 2017, Etsy created the Test Engineering Strategy Team to define, measure, and develop practices that would help product engineering teams ship quality code. One of our first goals …
Selecting a Cloud Provider
Etsy.com and most of our related services have been hosted in self-managed data centers since the first Etsy site was launched in 2005. Earlier this year, we decided to evaluate migrating everythin…
How Etsy caches: hashing, Ketama, and cache smearing
At Etsy, we rely heavily on memcached and Varnish as caching tiers to improve performance and reduce load. Database and search index query results, expensive calculations, and more are stored in me…
Reducing Image File Size at Etsy
Serving images is a critical part of Etsy’s infrastructure. Our sellers depend on displaying clean, visually appealing pictures to showcase their products. Buyers can learn about an item by reading…
How Etsy Ships Apps
In which Etsy transforms its app release process by aligning it with its philosophy for web deploys Anchors Aweigh Deploying code should be easy. It should happen often, and it should involve its e…