Senior Software Engineer-Storage

Posted:
10/16/2024, 7:08:32 AM

Experience Level(s):
Senior

Field(s):
Software Engineering

Workplace Type:
Remote

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