About the position
Ditto aims to expand the internet beyond traditional reach. Our groundbreaking edge sync platform is powered by peer-to-peer database technology that runs on mobile, web, IoT, and server systems, enables devices to sync data in real-time even without the internet.
Help us ignite the future of data synchronization as a Senior Software Engineer-P2P File Share at Ditto! We are seeking an engineer to work directly within the core of Ditto’s data sync platform and help shape the P2P file transfer technology used within Ditto meshes.
You will be working to develop the next generation of Ditto’s P2P blob transfer protocol.
As a Senior Software Engineer-P2P File Share you will:
- Refine our existing P2P file sharing protocol, and design of future features.
- Corruption detection, check-summing, content-defined chunking, and data deduplication.
- Modern probabilistic data structures such as bloom filters and cuckoo filters.
- Highly concurrent async programming in Rust.
- Content addressing and retrieval in a dynamic mesh with no central co-ordination.
- Low-level IO optimization and concurrency programming.
- Support API design and product development teams by providing technical advice to leverage core Ditto mesh technologies.
- Improve confidence in protocols and resiliency with lightweight formal methods such as property-based testing.
- Author RFCs, design, and document system architecture and collaborate with other teams within Ditto.
- Mentor and teach other team members.
What you’ll need:
- Solid Rust experience, either working professionally or demonstrable with personal projects or open-source work.
- BSc in Computer Science or equivalent.
- Demonstrable experience in P2P file sharing or similar area.
- Excellent operating systems knowledge from syscalls and concurrency primitives, through to IO topics such as mem-mapping, durability and write ordering.
- Deep algorithmic reasoning and data structure knowledge: probabilistic structures, graph theory, and computational complexity analysis are daily topics in this role.
- Strong low level programming skills. We design and work with many internal binary protocols, so endianness, bitfields, TLVs, and compact number encodings should come naturally to you.
- A willingness to travel (including internationally) once a quarter for team get-togethers and whiteboarding.
- Most projects begin with an RFC phase and proposals are circulated amongst an international team spread across all time zones.
- Strong written communication and diagramming skills are a requirement.
- Must be able to obtain a U.S. security clearance.
Nice to Haves:
- Mesh networking and cryptography knowledge is advantageous, but not a requirement for this role. (Ditto’s P2P file sync makes use of the existing Ditto overlay mesh)
About Ditto
Ditto is on a mission to free applications and developers of syncing data, enabling real-time data synchronization even in areas without internet access. As a globally remote team, we prioritize trust, communication, and continuous improvement as our core values. We strongly believe in celebrating diversity and strive to create a team that encompasses a wide range of backgrounds, skill sets, and perspectives.
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.