Reading room.
Engineering blogs & AI research
A reading room from engineering teams and AI labs: titles, short feed excerpts, and links to the originals. For my own essays, explore the writing archive.
- 1359 articles tracked
- 37 sources
- Refresh scheduled daily
Sources
Zero-Copy Migration: How Yelp Moved Its Cassandra Fleet Between Kubernetes Clusters
Introduction How do you move a large Cassandra fleet of around 1000 Kubernetes Pods and a petabyte of data across Kubernetes clusters without anyone noticing? Apache Cassandra powers many of Yelp’s core features, from us…
The making of the Yelp Assistant UI
As simple as it may look, a chat application is made up of thousands of small decisions that we make along the way, all with the goal to build a delightful experience for users. But each decision comes with a cost, often…
ML based ranking using Nrtsearch
We’ve extended Nrtsearch with the Inference Plugin, which embeds ML-based ranking directly in the search layer — eliminating the need for a standalone scoring service. We use Nrtsearch (read more information on the blog…
Building Menu Vision: Real-Time Dish Recognition
Menus aren’t just lists, they’re a window into a restaurant’s unique offerings, specialties, and personality, shaping where and what we choose to eat. But here’s the challenge: reading “Kung Pao Chicken - Stir-fried chic…
Migrating a Large Flow Monorepo to TypeScript
In early 2017, Webcore selected Flow as Yelp’s next-generation typechecker over TypeScript. At the time there was no clear frontrunner. Flow had better support for React, better performance, and a respectable repository…
Migrating from Apollo Tooling to GraphQL Codegen at Yelp
Introduction At Yelp, we rely heavily on GraphQL and Apollo for data loading in our frontend React monorepo. When a developer writes a GraphQL query or mutation inside a React component, the shape of the response is defi…
Training Orchestrator: Unifying Model Training at Yelp
At Yelp, we train many machine learning models on different schedules. Applied machine learning teams all have their own set of Spark-based training batches, scripts, and configurations. Over time, these diverged, leadin…
Beyond the Menu Tree: How Yelp Built a Smarter Customer Success Chatbot with AI
The Evolution of Support: From Fixed Phrases to Conversation At Yelp, delivering responsive and accurate customer support is a core priority. For years, our legacy Customer Success (CS) Chatbot provided support by guidin…
How Partition Access Visualizations Reduced our Data Lake S3 Cost by 33%
Introduction In large analytics environments, data teams often struggle to answer deceptively simple questions, like who their stakeholders are and how their data is being used. At Yelp, we address this by visualizing ac…
Optimizing Our Build Times by Migrating from Webpack to Rspack
Over the years, Webpack has remained the bundler of choice for many JS projects, including here at Yelp. While it has served us well, its speed has increasingly become a bottleneck as our monorepo continues to grow. Fort…
ML based ranking using Nrtsearch
We’ve extended Nrtsearch with the Inference Plugin, which embeds ML-based ranking directly in the search layer — eliminating the need for a standalone scoring service. We use Nrtsearch (read more information on the blog…
How Yelp Keeps Server-Driven UI Consistent Across Four Platforms
If you’ve read our earlier post, you already know about CHAOS—the server-driven UI (SDUI) framework we built at Yelp that powers our dynamic views. Until now, we’ve explored its architecture, backend implementation, and…
Zero downtime Upgrade: Yelp’s Cassandra 4.x Upgrade Story
The Database Reliability Engineering team at Yelp seamlessly upgraded more than a thousand Cassandra nodes with zero downtime. This post takes you behind the scenes of our upgrade strategy, from planning sessions to flaw…
Building Biz Ask Anything: From Prototype to Product
Introduction Users have access to a wealth of information on Yelp business pages – from reviews and photos to structured information, menus, and Ask the Community feature on the business page, a single business page can…
How Yelp Built a Back-Testing Engine for Safer, Smarter Ad Budget Allocation
Introduction Modern advertising platforms are fast-paced and interconnected: even small adjustments can have ripple effects on how ads are shown, how budgets are spent, and the value advertisers get from their ad spend.…
S3 server access logs at scale
Introduction Yelp heavily relies on Amazon S3 (Simple Storage Service) to store a wide variety of data, from images, logs, database backups, and more. Since data is stored on the cloud, we need to carefully manage how th…
Exploring CHAOS: Building a Backend for Server-Driven UI
A little while ago, we published a blog post on CHAOS: Yelp’s Unified Framework for Server-Driven UI. We strongly recommend reading that post first to gain a solid understanding of SDUI and the goals of CHAOS. This post…
Revenue Automation Series: Testing an Integration with Third-Party System
Background As described in the second blog post of Revenue Automation series, Revenue Data Pipeline processes a large amount of data via complex logic transformations to recognize revenue. Thus, developing a robust produ…