Senior Software Engineer, Database
Designs and optimizes storage backends, transaction management, and CRDT operations for Ditto's embedded edge database on resource-constrained devices. Requires 5+ years experience with database internals, Rust or C/C++, and storage engines like SQLite or RocksDB.
About the job
Responsibilities
- 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.
Requirements
- 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.
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.
Skills
Rust, C++, Sqlite, Rocksdb, Leveldb, Lmdb, Crdt, Acid, B-Tree, Lsm Tree
Similar jobs
Backend Engineering jobsBuild and operate high-throughput blockchain infrastructure, APIs, and platform primitives integrating protocols such as Ethereum and Bitcoin with internal services. Requires 5+ years of software engineering experience, distributed-systems expertise, and hands-on crypto infrastructure experience.
Senior infrastructure engineer building and operating low-latency institutional trading systems, including matching, order management, risk, and market data. Requires 5+ years of software engineering experience and strong Java, C++, or Go skills in highly reliable distributed systems.
Design and build backend control-plane services that safely govern software review, policy evaluation, CI evidence, and merge decisions. The role requires 7+ years of experience with distributed systems, backend development, security and authorization, developer infrastructure, and cross-team technical leadership.
Designs and operates foundational authentication and authorization services across Coinbase products and partner integrations. The role requires 5+ years of backend engineering experience, strong Go or systems-language skills, and expertise in secure APIs, identity standards, and distributed systems operations.
Senior software engineer responsible for optimizing and operating Coinbase’s blockchain node platform at scale. The role focuses on systems performance, infrastructure cost reduction, observability, reliability SLOs, and protocol upgrades, with Go and blockchain infrastructure experience preferred.