Mobile + Rust?
Yes we know that's not a common group of skills (yet). However, at Ditto we bet on Rust to power our cross-platform data sync system. This means, we need to bridge Rust into various SDKs, especially, mobile platforms like Swift, Kotlin, React Native, Xamarin, and others. We are looking for an engineer that has mobile app development experience, in addition, to C/C++/Rust experience.
The ideal candidate is comfortable with Xcode and Android Studio and has been involved with cross-platform code sharing across iOS and Android. Depth of experience with Rust is flexible, but a demonstrated fluency (side projects for example) and interest is expected. Professional experience in C/C++ with an interest in learning Rust is also ok!
At Ditto, we have no shortage of hard technical problems, such as mesh networking, replication protocols, CRDTs, and database design, just to name a few! Additional experience in any of these areas is a plus!
You will work collaboratively with our small but growing team, to deliver cutting edge cross-platform SDKS that will sit on mobile devices, WebAssembly-run browsers, IoT, and backend servers. We are investing heavily into Rust as we aim to create bindings for various languages with a one-click deployment.
Work with a remote team, manage your own time, and tackle interesting problems. Ditto is an equal opportunity employer with people from many different cultures and countries. We celebrate diversity and are committed to building a team that represents a variety of backgrounds, skillsets, and perspectives, and to providing our employees with a rewarding and inclusive work environment.
Build and maintain various mobile platform SDKs:
Setup bridging code between native languages and Rust through C FFI
Ensure reliability by creating test infrastructure for platform-specific network transports
Debug and isolate issues arising from mobile SDK deployments
Improve SDK APIs to ensure native platform "feel"
Mentor and teach team members
Professional cross-platform mobile app development experience
Experience in low-level programming languages such as C, C++ and preferably Rust
Strong experience debugging mobile applications and libraries
Strong communication skills, particularly written communication skills