Loading…
From Day 1 to Production: Building Lyft’s Analytics & Rides Intelligence Assistant as Onboarding…
LyftSagarbaronia
Summary
Lyft developed Aria, an AI-powered assistant allowing approved employees to query ride analytics via natural language through a backend with LangGraph orchestration and SQL generation. However, Aria's user interface was limited to a Streamlit prototype that lacked standard service framework integration, Lyft authentication, and multi-user scalability. To resolve these limitations, a new engineer built a production-grade web client from scratch using Lyft's internal Node.js framework and Next.js as a three-week onboarding assignment. The implementation involved configuring Envoy routing, resolving authentication plugin incompatibilities, debugging service connectivity with Grafana, and managing interface state with an XState state machine. Aria was successfully hardened and launched into production, expanding natural language analytics access across the company.
Context
Lyft's Analytics & Rides Intelligence Assistant (Aria) allows approved employees to query ride analytics using natural language. Although its backend service handled LangGraph orchestration and SQL generation, the existing frontend was a Streamlit prototype that could not scale company-wide, lacked integration with Lyft authentication, and operated outside the standard service framework.
Approach / What changed
As a three-week onboarding project, the author built a production frontend web client from scratch using Lyft's internal Node.js framework and Next.js. The implementation included configuring authentication and logging plugins, deploying through staging and production with Envoy routing and CloudFront DNS records, managing chat state via an XState state machine, and implementing streaming by adapting patterns from an existing internal service.
Takeaways
- Aria replaced a prototype Streamlit frontend with an internal Node.js and Next.js application to integrate with Lyft authentication and standard infrastructure.
- Tracing request logs across time windows in Grafana helped identify and resolve silent inter-service communication failures caused by misconfigured Envoy session routing.
- Implementing the frontend streaming handshake was accelerated by referencing and adapting the architecture of an existing internal service rather than debugging from scratch.
Related reading
Lyft ·
From Chaos to Clarity: How We Built a Unified, Self-Routing Support Ops Ticketing System at Lyft
Lyft Urban Solutions' Support Ops team faced fragmented ticketing across four Jira Help Centers with duplicate intake forms, lack of routing logic, and no dashboards. Over five years, the team redesigned the intake architecture by replacing redundant forms with dynamic Jira Proforma forms featuring conditional branching. Automated Jira rules were introduced to assign tickets, apply a taxonomy of over 30 labels, and trigger PagerDuty alerts for P0 incidents. To unify operations across disparate backend projects, the system automatically clones and links tickets from a single portal to downstream project boards. Jira Structures and a Jira-to-Mode ETL pipeline provided cross-project rollups and business analytics before an upcoming Jira Cloud migration required dashboard rebuilds.
AtulguptaLyft ·
Metric Semantic Layer: How Lyft Governs and Scales Key Data Definitions