Backend Engineer, Otter POS - Los Angeles, CA
1 day ago
Los Angeles
Who we are Otter is transforming restaurant operations at scale. We've built the leading multichannel point-of-sale platform trusted by over 100,000 restaurants worldwide—from independent local favorites to major brands like Wingstop and Jack in the Box. Our mission is to simplify and power restaurant operations across every channel: in-store, online ordering, delivery, drive-thru, and self-service kiosks. This allows restaurants to focus on what they do best—serving great food—while we handle the complexity of modern omnichannel ordering. Otter owns the full technology stack: native Android POS applications running in restaurants, backend services powering order orchestration, payment processing, menu management, real-time synchronization, analytics platforms, and customer-facing mobile and web experiences. Our unique vertical integration allows us to deliver reliable, feature-rich experiences that work seamlessly across channels, even offline. We're solving one of the most complex distributed systems problems in restaurant technology, and we need YOU to help us scale it to millions of orders per day. About the role We're looking for a Backend Engineer to help architect and scale Otter POS's real-time order management, payment processing, and multi-channel orchestration platforms. This is a high-impact role for someone who enjoys distributed systems, thrives on solving complex synchronization challenges, and gets excited about building performance-critical systems that push the boundaries of what's possible. Here's the kind of problems we solve: We built a custom CRDT (Conflict-Free Replicated Data Type) implementation that outperforms industry-standard libraries like Ditto, Automerge, and Y-CRDT by 90% in latency and uses 4x less memory (___). Why? Because restaurant environments are hostile—devices drop from WiFi constantly, tablets overheat, someone spills liquid near a power supply—yet burger joints cannot stop selling burgers just because the internet goes down. We need to sync state across 10+ devices per restaurant without a leader, on low-end Android hardware, handling millions of orders daily. You'll work across backend services that support Android POS devices, web ordering surfaces, and mobile applications. You'll partner closely with Android engineers who deal with the realities of low-end tablets, product teams defining the next generation of restaurant workflows, data engineers building real-time analytics pipelines, and operations teams supporting tens of thousands of restaurants. You'll help define how we design, build, and scale backend systems that are both theoretically sound and practically deployable in the messiest real-world conditions. • Write high-quality, well-tested code in Java and Kotlin, set a strong bar for engineering excellence, and own the full software lifecycle from design to production monitoring, • Lead backend initiatives, ensuring scalability, reliability, and low-latency performance across critical domains such as order orchestration, payment processing, menu management, and real-time device synchronization, • Design and implement distributed systems using CockroachDB, Kafka Event Queues (KEQ), and Flink stream processing that handle millions of transactions with strong consistency guarantees, • Build APIs and services that support offline-first operation using CRDT (Conflict-Free Replicated Data Types), enabling POS devices to function reliably without network connectivity, • Drive development with a strong focus on reliability-by-design, observability, and testability, including comprehensive metrics, distributed tracing, and alerting, • Design scalable databases and data models; write complex SQL queries for analytics and operational insights using Trino and Superset, • Work with Protocol Buffers for inter-service communication and event schemas, • Build and maintain integrations with external systems including payment processors (Mercury), kitchen display systems (KDS), third-party delivery platforms, and loyalty services, • Collaborate on the architecture of event-driven systems that process order lifecycle events, payment transactions, and device synchronization events in real-time, • Mentor and uplevel engineers through technical leadership, code reviews, design reviews, and hands-on collaboration, • Strong proficiency in backend programming with Java and/or Kotlin (or willingness to learn if coming from similar JVM languages), • Experience with distributed databases such as CockroachDB, PostgreSQL, or similar SQL databases, with deep understanding of transactions, consistency models, and distributed systems challenges, • Experience with event streaming platforms like Kafka, understanding of event-driven architectures, and familiarity with stream processing frameworks (Flink, Kafka Streams, etc.), • Understanding of cloud platforms like AWS, Google Cloud, or Azure, including container orchestration, service mesh, and cloud-native architectures, • Deep knowledge of backend system design: RESTful APIs, gRPC, microservices, distributed systems patterns (eventual consistency, CQRS, saga patterns), concurrency, and fault tolerance, • Experience with offline-first or local-first architectures is a plus—understanding CRDTs, sync protocols, or conflict resolution strategies, • Hands-on experience with observability tools: metrics (Prometheus, Grafana), distributed tracing (Jaeger, Zipkin), logging platforms, and building production-grade monitoring, • A high-performance, hands-on engineer who sets a high bar for code quality, reliability, and operational excellence—you understand production is where your work matters most, • Strong collaboration skills: experience working closely with Android/mobile engineers, frontend teams, product managers, data scientists, and business stakeholders, • Product mindset: passion for building systems that directly impact restaurant operations, staff efficiency, and customer experiences—you care about the "why" behind the code, • Experience with Bazel build system for large monorepo codebases, • Knowledge of payment processing systems, PCI compliance, and financial transaction processing, • Experience with Android development or understanding mobile constraints and offline operation requirements, • Background in restaurant technology, retail POS systems, or logistics/fulfillment platforms, • Experience with real-time synchronization protocols and multi-device coordination, • Familiarity with loyalty platforms, discount engines, or promotional systems, • Massive market opportunity: The restaurant technology market continues to grow rapidly as restaurants digitize operations and embrace omnichannel strategies—there's room for durable, category-defining companies, • Real impact at scale: Your code will power order processing, payments, and operations for over 100,000 restaurants and millions of orders daily. You'll see your work used by major brands and local restaurants alike, • Hard technical problems: We're building a sophisticated distributed system with offline-first architecture, real-time multi-device synchronization, high-throughput event processing, and strong consistency requirements—this is world-class systems engineering, • Ownership and influence: As a backend engineer, you'll own critical services that form the backbone of Otter's platform. You'll have significant influence on technical direction, architecture decisions, and product strategy, • Strong engineering culture: You'll collaborate with experienced engineers and leaders who care deeply about craft, impact, and growth. We value code quality, thoughtful design, continuous learning, and engineering excellence, • Full-stack ownership: Unlike many companies where teams are siloed, at Otter you'll work across the stack—from Android clients to backend services to data pipelines—giving you deep understanding of the entire system This role is based in our Los Angeles, CA office. We believe the best ideas emerge from close collaboration, especially when solving complex distributed systems challenges and building products that redefine how restaurants operate. As a result, Otter requires in-office five days a week for all non-field roles. The base salary range for this role is $137,000 - 173,750 Actual compensation will be determined on an individual basis and may vary depending on experience, skills, and qualifications. Base salary is just one part of your total rewards package. You may also be eligible for equity awards and an annual performance-based bonus. • Medical, dental, and vision insurance (multiple plans, incl. HSA options), • Company-paid life and disability insurance (short- and long-term), • Voluntary insurance: accident, critical illness, hospital indemnity, • Optional supplemental life insurance for self, spouse, and children, • Pet insurance discount, • 401(k) with company match, • Time Off policies:, • Discretionary vacation days, • 8 paid holidays per year, • Paid sick time, • Paid Bereavement leave, • Paid Parental Leave, • Health Savings Account (HSA), • Flexible Spending Accounts (Healthcare, Dependent Care, Commuter), • Lunch stipend/meal allowance (because we power restaurant ordering!) We're excited to share more about building a Career of Substance at Otter. Backend Services: • Languages: Java, Kotlin, • Build System: Bazel, Gradle, • Databases: CockroachDB (distributed SQL), Room (SQLite for Android), • Event Streaming: Kafka Event Queue (KEQ), Flink for stream processing, • APIs: RESTful, gRPC, Protocol Buffers, • Cloud: Azure, • Observability: Prometheus, Grafana, distributed tracing, • Data Analytics: Trino, Superset, Flink Architecture Patterns: • Event-driven microservices, • CQRS and event sourcing, • CRDT-based offline-first synchronization, • Multi-channel order orchestration, • Real-time device state management Key Domains: • Order Management API (OMA) - Order lifecycle and orchestration, • Payment Central - Multi-channel payment processing, • Device Management Service (DMS) - POS device registration and sync, • Storefront Digital Restaurant Service (SDRS) - Menu and configuration, • Order Central (OC) - Authoritative order state and event log