Loading…

Etsy
Etsy is an American e-commerce company focused on handmade or vintage items and craft supplies. The platform connects independent sellers with buyers looking for unique, personalized, or creative goods globally.
- 20 posts summarised
- latest
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.
From their blog
Latest articles
Kafka App? There’s a Skill for That
Etsy uses Kafka streams to provide fresh features and embeddings for machine learning models, which infer shopper intent and listing meaning from visits and listing data. Previously, engineers manually assembled Java and YAML applications, selected schemas and base classes, and handled testing and local execution. Etsy introduced conversational Kafka Skills that use language models to interpret requests, pass structured inputs into versioned scaffolding and validation tools, run applications locally, and open pull requests. Telemetry records Skill invocation and pull-request completion through protobuf messages in Kafka and BigQuery, while least-privilege ACLs, repository permissions, and deployment controls constrain agent actions. Initial adoption was low because developers did not know the Skills existed, so Etsy added vocabulary-specific and repository-level entry points; it now has Skills for seven Kafka workflows and is focusing on discoverability.
Shaping Product Understanding with Contrastive Reinforcement Learning
Etsy’s search and recommendation systems need product representations that capture distinguishing details—such as materials, craft, and visual style—beyond categories and titles, despite noisy listing data, varied inventory, and latency constraints. The approach fine-tunes the open-source Qwen3-VL-8B on query, engaged-listing, and non-engaged-listing triplets, generating candidate summaries and scoring them with a frozen two-tower dense retriever. Group Relative Policy Optimization (GRPO) uses the query–engaged versus query–non-engaged similarity margin as a joint reward, encouraging grounded summaries that separate alternatives rather than generic keyword stuffing. Human review found specific, accurate details beyond titles, while adding the summaries to Etsy’s Semantic Relevance model improved macro F1 by 8.7% relative to description n-grams. Online production experiments are planned.
Making Ads Count: Using MMoE and Auxiliary Tasks to Better Connect Buyers & Sellers
Etsy’s Ads Search ranking model needed a stronger purchase-intent signal because clicks are noisy and purchases are sparse later in the buyer journey. It retained its shared feature-representation and interaction layers, then replaced the shared feed-forward network with Multigate Mixture of Experts (MMoE), using task-specific gates and towers for click-through rate (CTR) and post-click conversion rate (PCCVR). Add-to-cart was added as an auxiliary task, while favorites were rejected after producing negative transfer. Offline, the resulting model increased Purchase and Click PR AUCs by average 3.5% and 1%, respectively, and Purchase ROC AUC by 0.5%. Online, it improved purchases and purchase calibration, supplied better inputs to auto-bidding, kept model size flat through pruning, and reduced inference cost.
Migrating Etsy’s database sharding to Vitess
Etsy migrated its long-running MySQL shard management to Vitess vindexes after an architecture spanning about 1,000 tables and shards, 425 TB of data, and roughly 1.7 million requests per second. The legacy ORM used a single index database to map records to shards, creating a scaling bottleneck and single point of failure. To avoid moving existing data, engineers built custom SQLite lookup and hybrid vindexes, changed new shard assignments to match Vitess’s hash algorithm, and introduced routing incrementally table by table with traffic ramps, rollback, and query compatibility testing. After five years, about 2,500 pull requests, and 6,000 queries, the migration removed the index database dependency, made scaling operations take days rather than months, simplified developer access, and kept database performance largely unchanged without a mass data migration.
How Etsy Uses LLMs to Improve Search Relevance
Etsy’s Search Relevance team addresses a limitation of engagement-based search signals: popular listings can attract clicks even when they are not the best match for a query. It introduces semantic relevance, measured through a framework combining human-curated golden labels, an LLM annotator, cascaded models, and production integrations, with categories for relevant, partially relevant, and irrelevant query-listing pairs. The data pipeline uses sampled search-log pairs, dual human annotation, an evolving guideline, few-shot chain-of-thought prompting with o3 in LangGraph, and self-consistency sampling; a Qwen 3 VL 4B teacher then labels data at scale before distilling into a BERT-based two-tower student. The student supports real-time use with less than 10ms additional latency, while the framework evaluates and enhances search relevance alongside engagement signals.
Reducing experiment duration with predicted control variates
Etsy describes how its experimentation platform evolved from CUPED to CUPAC to shorten the time needed to reach statistically powered results. CUPED uses pre-experiment visitor data as covariates in linear regression, while CUPAC first uses a nonlinear model to predict the outcome and then uses that prediction in the variance-reduction correction. Etsy trained and tuned LightGBM models on more than 100 pre-experiment features in Vertex AI, generating predictions through parallel Dataflow jobs and applying the correction with Spark within an Airflow-orchestrated pipeline. CUPED reduced variance by 7% on average, whereas CUPAC achieved 27%, shortening average experiment duration by almost three additional days, although results ranged from 2% to 77% depending on the metric and experiment; Etsy is balancing CUPAC’s impact against its training and maintenance costs.
Improving performance by prefetching product pages from Etsy Search
Etsy’s search and web performance teams tested the Speculation Rules API (SRA) to reduce loading time for product listing pages reached from desktop organic search. They added a speculationrules configuration that prefetches eligible listing HTML after a 200-millisecond hover, using URL and data-attribute selectors with moderate eagerness; unlike link prefetch, SRA uses both memory and HTTP caches. The experiment required attention to a two-page memory limit, five-minute retention, non-cacheable listing HTML, video hover behavior, cookies, new-tab targets, and analytics events triggered during prefetches. Results showed 23.6% faster 75th-percentile TTFB, with improvements of 20.7% in FCP, 21.1% in LCP, 20.4% in DOMContentLoaded, and 10.6% in Page Load, while roughly one in 14 prefetches led to navigation.
Understanding Etsy’s Vast Inventory with LLMs
Etsy’s seller-created inventory spans more than 100 million items and thousands of categories, making it difficult to capture attributes such as color, material, or niche properties without global SKUs. Because sellers often provide descriptions, titles, and photos instead of complete structured fields, Etsy uses LLMs to distill unstructured listing data into attributes for search filters, comparisons, and other experiences. The pipeline combines seller data, expert-selected few-shot examples, taxonomy logic, and category rules; parallel prompts are routed through LiteLLM, then responses are validated with Pydantic dataclasses and monitored with tracing, metrics, alerts, and performance checks. Human-reviewed silver labels support evaluation, while target categories increased complete attribute coverage from 31% to 91%, and inferred attributes improved search-filter engagement and overall post-click conversion.
Unlocking Faster Insights with Experimenter-Defined Segmentations
At Etsy, Catapult supported only 13 hard-coded segmentations, forcing experimenters who needed other cuts to rely on slow, ad-hoc SQL analysis outside the platform. They replaced that fixed model with a Segmentation Library and creation tool where experimenters define reusable segmentations as SQL queries plus join columns connecting segment data to experimental units. Each definition is validated before production, then processed through a configuration-driven pipeline that detects new segmentations and generates independent tasks, improving failure isolation and allowing downstream work to wait only for required results. In the first three months, teams added 34 segmentations, increasing support from 13 to 47, while 78% of experimenters reported saving 2–5 hours monthly through custom analysis in Catapult.
Building Etsy Buyer Profiles with LLMs
Etsy is experimenting with large language models (LLMs) to create anonymous buyer profiles from browsing and purchasing behavior, capturing interests such as styles, categories, and shopping missions. The pipeline combines recent searches, item views, purchases, favorites, session data, and listing information from internal feature-store and BigQuery sources, then prompts an LLM to generate structured profiles with explanations and confidence information. To scale processing, Etsy moved listing data to clustered and partitioned BigQuery tables, shortened input history from two years to nine months, increased batch sizes and compute, added managed concurrency, and used Airflow to stagger tasks. For 10 million users, these changes reduced generation time from 21 days to three and cut estimated cost per million users by 94%; experiments apply profiles to query rewriting and refinement pills.
Context engineering case studies: Etsy-specific question answering
The post examines whether prompt engineering can provide truthful Etsy-specific answers for AI-assisted onboarding without fine-tuning an LLM, using Travel & Entertainment (T&E) policy questions and an external Etsy community-forum use case. For the internal pilot, T&E documents were indexed, embedding-based search retrieved relevant sections, and those sections were added to each question; a manually curated 40-question evaluation found approximately 86% correct or satisfactory answers, with 14% wrong or misleading. Explicit uncertainty instructions sometimes avoided hallucinations but also missed available answers, while asking for an explanation or chain-of-thought reasoning could improve results, though complex reasoning required careful setup. The experiments conclude that prompt engineering is a practical alternative to parameter-based fine-tuning, but requesting specific source snippets remains important for flagging potential hallucinations.
Behind the Scenes - A Glimpse into Tax Calculations
As jurisdictions increasingly require marketplaces to collect and remit tax, Etsy describes the infrastructure it uses to calculate, record, and report taxes on transactions. When a buyer adds an item to a cart, Etsy sends a Quotation Request API call to Vertex, using buyer and seller locations, product category, tax rules, and mappings to determine the amount shown. At checkout and throughout fulfillment, DistributeTaxRequest SOAP calls carry order, cancellation, and refund details to Vertex, whose records support reporting and audit workflows imported into Etsy’s bigdata. The integration also required mapping Etsy taxonomy categories to Vertex rule drivers and separating quotation, distribution, and reporting workloads across multiple instances for horizontal scaling and load balancing. Shadow requests, ramped gradually without applying calculated taxes to carts, let the team simulate added Vertex load and monitor checkout performance before releasing traffic-increasing features.
Adopting Jetpack Compose for Etsy’s Android App
Etsy adopted Jetpack Compose as its preferred way to build Android app UIs, after a staged program that culminated in rewriting the Shop screen. Because UI toolkits are central to development, engineers created a curriculum, rebuilt internal design-system components, and used Compose’s interoperability with XML Views to migrate gradually. They then tested a full internal screen with navigation, system UI, coroutines for API data fetching, and Kotlin Flows supporting unidirectional data flow alongside Macramé. After Compose bottom sheets reached real buyers and sellers, the Shop rewrite took about three months and entered an A/B experiment against the old implementation. The new screen improved initial rendering time by 5%, made interactions more fluid, and improved several user actions, while engineers reported fewer lines of code, easier testing, greater business-logic coverage, and higher satisfaction.
Machine Learning in Content Moderation at Etsy
Etsy describes a supervised-learning system for detecting potentially violating listings at marketplace scale, alongside community reporting and other automated controls. Training data combines logged and annotated positives, hard negatives, and randomly sampled easy negatives, with multimodal textual and imagery signals split by time for progressive evaluation. The architecture uses BERT-based text encoding with ALBERT for reduced compute, EfficientNet image encoding, late concatenation of modality representations, a softmax output, and focal loss for class imbalance. Etsy evaluates candidates offline and in production through API-serving, canary releases, and champion-challenger A/B tests, while using proxy recall because full manual review is infeasible. Frequent retraining and monitoring support ongoing iteration; the methodology has identified and removed more than 100,000 violations, alongside other tools and services.
Enhancing Cloud Usage Forecasting, Monitoring & Optimizing
After Etsy completed its 2020 migration from an on-premise data center to Google Cloud Platform (GCP), the resulting FinOps team developed a global approach to forecasting, monitoring, and optimizing cloud spend. Costs are grouped into core infrastructure, machine learning and product enablement, data enablement, and Dev, with trailing Cost Per Visit (CPV) serving as the primary forecasting metric after regression tests found visits most correlated with costs. BigQuery and Looker dashboards, alerts, weekly Finance comparisons, and recurring cost-owner and leadership readouts support variance detection, while costs are tracked centrally without chargebacks to preserve flexibility. Optimization work combines FinOps, engineering, and Architecture collaboration, producing GCS storage reductions through monitoring, automation, TTLs, and Intelligent tiering, plus compute, model-deployment, and network compression improvements. The next priority is better visibility into shared machine learning platform spend to improve experiment ROI analysis and identify optimization opportunities.
Efficient Visual Representation Learning And Evaluation
Etsy uses image vector representations for visual search and similar-item recommendations, making low-latency, memory-aware models important for online query inference and downstream retrieval. The work compares EfficientNetB0, a compact CNN, with EfficientFormer-l3, which downsamples multiple blocks and applies attention only in its final stage; its representation uses the last block’s eight-head attention and average-pools the sequence. Fine-tuning adds an embedding and multiple classification heads, while multitask training supervises taxonomy, color, and review-photo labels; both models train on two 16GB P100 GPUs. Evaluation rebuilds a brute-force candidate index after each epoch and measures Recall@5 and Recall@10 on interaction and intra-item retrieval datasets, with early stopping available. EfficientFormer-l3 improves reported offline recall by about 5%, 17%, and 1.8% across three tasks, while experiments report lifts in CTR, purchase rate, click-recall@100, and clicks.
Macramé: Untangling the Knot on the Etsy Android Listing Screen
The Etsy Android listing screen had accumulated nearly 200 experiments in three years, leaving a 4,000-plus-line Fragment, inconsistent patterns, low test coverage, and costly, brittle tests. Macramé replaced that legacy design with immutable state propagated through StateFlow to a reactive UI, transforming screen data into smaller ListingUiModels rendered by RecyclerView and ListAdapter. Sealed Events move through a single Dispatcher to focused Handlers, which update State, start asynchronous work, or emit SideEffects for operations such as navigation and logging. After a five-month rewrite, the new screen’s Time to First Content fell 18%, from 1,585 ms to 1,298 ms, while listings viewed rose 2.4% and business-logic test coverage reached 76%. The architecture still has wiring boilerplate, debugging challenges around Handler interactions, and possible overkill for simpler screens, but its use expanded to Cart and Shop.
How We Built The Deals Tab in Swift UI
Etsy’s App Updates team rebuilt the long-standing Updates tab as Deals, a destination for coupons and sales, while targeting an October launch ahead of Cyber Week 2023. The team chose Swift UI and Tuist to create a modular, preview-driven implementation rather than extend legacy Objective-C and server-driven layout code. The screen is assembled from typed API modules, parsed with Decodable, and rendered in a Swift UI List using reusable components such as buttons, headers, footers, and listing cards. To bridge incompatible legacy listing-card code, the module accepts a view builder from the UIKit hosting controller, allowing existing cards to be wrapped while newer cards could be implemented in Swift UI. After three months, Deals shipped ahead of deadline; new modules took one sprint or less, previews decoupled front-end work from API support, and the tab increased session conversion and app visits after its mid-October rollout.
The AR Measuring Box: Etsy's answer to Big Tape Measure
Etsy extended its iOS Wall View experience into an AR measuring tool that represents listings as scaled 3D boxes, allowing shoppers to judge an item's size and fit in their space. The work addressed the difficulty of creating models for millions of customizable, often handmade items by improving dimension extraction instead. A server-side regex parser reads titles, descriptions, customization information, overviews, and variations, handling unit variants, localization, special characters, fractions, conversions, complex imperial measurements, and duplicate values while prioritizing structured fields and caching results. In iOS, the measuring box uses SceneKit’s SCNBox and SCNNode labels, supports movement and rotation, and uses LiDAR-derived meshes for environment occlusion. The resulting feature adds real-size AR functionality to nearly a million Etsy items, viewed by tens of thousands of users weekly.
The So-fine Real-time ML Paradigm
During Etsy’s CodeMosaic hackathon, a team investigated stateful training and online learning to reduce the roughly 40-hour delay between user actions and model-weight updates. They split the work across real-time training data, an incremental-learning service, and evaluation, using Etsy’s Beacon Main Kafka stream, Kafka SQL, Rivulet, and TensorFlow-based Ads models. The data team joined multiple sources despite Avro schema difficulties, while the service team loaded an older model and nearly implemented incremental weight updates; the planned head-to-head evaluation against daily batch training was not completed. The project estimated that replacing daily cold-start training for four ads models could save about $212,000 annually in Google Cloud costs, with possible metric gains from earlier events. Production would still require infrastructure and safeguards against sudden performance degradation.
Topics they write about
All topics →Weekly digest
The best engineering reads, once a week.