About Ditto:
Ditto is redefining how data moves at the edge. Our mission is to make it seamless for developers to build resilient, real-time applications, regardless of network conditions. Whether you're in a stadium, airplane, or remote military base, Ditto's peer-to-peer sync engine ensures devices stay connected and data stays consistent, even without internet. With more than $145 million in funding and trusted by organizations like Chick-fil-A, Delta Airlines, and the U.S. military, Ditto powers mission-critical experiences across aviation, retail, travel, hospitality, defense, and more. As a globally distributed, fast-growing startup, we’re committed to building a diverse and inclusive team that reflects the wide range of perspectives needed to solve the world’s hardest connectivity problems.
About the position:
The Query Engine and Store team owns the storage and transaction layer at the heart of Ditto’s edge database. This role works with the Ditto Query Language (DQL) and the raw storage engines that underpin our embedded database. You’ll be responsible for backend abstraction, transaction management, concurrency control, CRDT-aware document storage, and blob storage — all designed to run reliably on constrained edge devices like phones, IoT hardware, and ruggedized military systems.
This is a uniquely challenging domain: unlike a traditional cloud database, every design decision must account for memory, unreliable storage media, and the need to natively handle Conflict-Free Replicated Data Types (CRDTs) as part of the transaction layer. The storage layer is the foundation that the query engine, sync system, and SDKs all build upon.
As a Senior Software Engineer — Embedded Database, you will:
Design and maintain the storage backend abstraction layer and transaction management system that underpins Ditto’s embedded database.
Implement and optimize storage backends (e.g. SQLite, in-memory, RocksDB and other engines), including connection pooling, write serialization, and concurrency control for resource-constrained devices.
Ensure CRDT document operations — merging, tombstone management, version tracking — are correct and performant at the storage layer.
Own the reliability and performance of the storage layer, identifying and resolving performance bottlenecks.
Design and maintain blob storage systems for large value handling across platforms.
Work with product managers and other engineers to help design the future of the technology.
Collaborate closely with our Query Engine team and the Data Sync team to optimize our embedded database for edge sync operations
Author RFCs, design and document system architecture, and collaborate with other teams within Ditto.
Estimate the delivery timeline for projects and communicate with management and the broader team regarding project execution.
Set team culture by example, expanding Ditto’s culture of Trust, Communication, and Continual Improvement.
What you'll need:
5+ years of experience in software engineering, 2 or more in a Senior role or above, with a focus on database internals, storage engines, or low-level systems programming.
Strong proficiency in Rust or excellent C/C++ skills with a willingness to learn Rust.
Experience with embedded database systems (SQLite, RocksDB, LevelDB, LMDB, or similar) or storage engine internals.
Understanding of transaction isolation, concurrency control, and ACID guarantees.
Experience with indexing strategies (B-tree, LSM tree, etc.) and general familiarity with query engine concepts.
A willingness to travel (including internationally) once a quarter for team get-togethers and design sessions.
Strong communication skills, with an emphasis on written communication skills in particular. As a fully distributed team, async communication is the default and the development process often includes written architecture and design documents.
Nice to Haves:
Bachelor’s degree or higher in Computer Science or Engineering.
Familiarity with Conflict-Free Replicated Data Types (CRDTs) or other distributed/replicated data structures.
Experience writing custom SQLite VFS or extensions.
Experience with RocksDB, LMDB, or similar key-value storage engines at a deep level.
Background in embedded systems or mobile/cross-platform development for resource-constrained environments.
Experience with property-based testing, fault injection, or other state-space exploration techniques.
Experience with monitoring tools such as Prometheus or Grafana.
We offer competitive salaries and meaningful equity. We believe everyone on the team should have a stake in what we’re building. Benefits vary by region to make sure you're covered in the ways that matter most. In the US, that includes health, dental, vision, life, and disability insurance, plus a 401(k) and flexible spending accounts.
Regardless of where you live, everyone at Ditto can utilize flexible time off. And while we work remotely, our Atlanta and San Francisco offices are open if you ever want a place to work or meet up with teammates.
At Ditto, we know game-changers don’t always come wrapped in a “perfect” resume. Years of experience? Every single bullet point checked? Meh. That’s not what drives us.
What does matter?
Grit.
Curiosity.
Adaptability.
And a genuine spark for what we’re building.
So if you’re fired up about our mission but not sure you tick every box - hit that apply button anyway. Use your application to show us how you’ll make an impact here.
We’re always on the lookout for exceptional humans who want to grow, stretch, and build something meaningful with us.
Ditto is proud to be an equal-opportunity employer. We do not discriminate in hiring or any employment decision based on race, color, religion, national origin, age, sex (including pregnancy, childbirth, or related medical conditions), marital status, ancestry, physical or mental disability, genetic information, veteran status, gender identity or expression, sexual orientation, or other applicable legally protected characteristics. Ditto is committed to providing reasonable accommodations for qualified individuals with disabilities and disabled veterans in our job application procedures. If you need assistance or an accommodation due to a disability, please let us know.