About Ditto:
Ditto is on a mission to unleash the full power of edge devices by removing all the plumbing required to build amazing applications. Ditto is a globally remote team. Our core values are trust, communication, and continuous improvement. We celebrate diversity and strive to create a team that encompasses a wide range of backgrounds, skill sets, and perspectives.
About the Position
Want to build the next-generation of mesh network technology?
The Storage team is responsible for the way on-device data is organized across all supported platforms from mobile devices to web clients. This team will work closely with the Data Sync Team which is responsible for moving the data through the mesh, the Query Team which implements our query language DQL, and the Core Library Team which is responsible for providing a library to our SDKs developers that works on all platforms.
As a Senior Software Engineer, you will:
- Break ground on greenfield projects, and design new features.
- Support the data storage systems across a wide variety of environments, from mobile devices to small servers to web clients.
- Collaborate closely with product and neighboring engineering teams to build end-to-end customer-facing features.
- Design and build storage interfaces and features that support nearly all Ditto features, including:
- Key-Value stores
- Blob storage
- File system access
- Indexing
- Performance tuning
- Build & maintain native storage implementations across a variety of platforms including Windows, iOS, macOS, linux, and web using operating system specific functionality where appropriate.
What you’ll Need:
- Fluency in Rust including proficiency with:
- Asynchronous programming, including cancel safety
- Concurrency primitives
- Multithreading
- Strong type system knowledge and applicability of this knowledge to idiomatic Rust design patterns (e.g. typestate, builder, etc.)
- Experience using low-level platform tooling
- OS APIs
- File system
- OS-level concurrency
- Blocking & non-blocking IO, including modern scalable I/O event notification mechanisms (e.g. epoll, kqueue etc.)
- Experience using a wide variety of database features
- Strong data structure & algorithms knowledge
- Unit and integration testing, with bonus points for lightweight formal methods such as property testing
Nice to Haves:
- Experience with SQLite, LMDB, OPFS, IndexedDB
- Deep knowledge or experience implementing database internals such as indexes, storage engines, etc.
- Experience implementing blob storage including topics such as cloud object storage, content addressing & deduplication, file systems, etc.
- Working knowledge of CRDTs
- Experience with distributed systems
- Experience working in C or C++ codebases
Benefits we offer:
-
Competitive salaries
-
Stock options
-
Medical, dental, vision, life, and disability coverage
-
Flexible spending account (FSA)
-
Flexible vacation policy
-
401(k) plan
Come join our remote team and discover the possibilities of your best career!
Equal Opportunity Employer: 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.
Ditto Recruiting Privacy Notice
Top Skills
What We Do
The Edge Sync Platform magically enabling your apps to sync data with or without an internet connection.
---
We’ve always been inspired by the power of innovative apps that bring people together. Developers who dreamed up big ideas have created entirely new industries and enriched the lives of friends, families, customers, and coworkers. Today, the best apps are the ones that help us collaborate on projects, share moments, and communicate effortlessly.
But app developers often face significant challenges creating these seamless, interconnected experiences. Whether wrestling with unpredictable internet connections or building complex and expensive backends, app developers have grappled with many complications that stand in the way of delivering magical experiences to their users. So we built Ditto, a platform for developers to build powerful ways to connect and sync apps with or without an internet connection and even without writing a single line of backend code.