Senior Software Engineer - Storage

October 17

Apply Now
Logo of DC SCORES

DC SCORES

After-school programs • Soccer education • Poetry/creative expression education • Service-learning education • Youth Development

11 - 50

Description

• 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.

Requirements

• 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

• Competitive salaries • Stock options • Medical, dental, vision, life, and disability coverage • Flexible spending account (FSA) • Flexible vacation policy • 401(k) plan

Apply Now

Similar Jobs

Built by Lior Neu-ner. I'd love to hear your feedback — Get in touch via DM or lior@remoterocketship.com