About Ditto:
Ditto is redefining how data moves at the edge. Our mission is to make it seamless for developers to build resilient, real-time applications, regardless of network conditions. Whether you're in a stadium, airplane, or remote military base, Ditto's peer-to-peer sync engine ensures devices stay connected and data stays consistent, even without internet. With more than $145 million in funding and trusted by organizations like Chick-fil-A, Delta Airlines, and the U.S. military, Ditto powers mission-critical experiences across aviation, retail, travel, hospitality, defense, and more. As a globally distributed, fast-growing startup, we’re committed to building a diverse and inclusive team that reflects the wide range of perspectives needed to solve the world’s hardest connectivity problems.
As a Senior Software Engineer (WebAssembly + Rust), you will own the technical direction and delivery of Ditto's JavaScript SDK—enabling developers to build real-time, offline-capable web applications that synchronize data seamlessly across browsers and Node.js environments. You'll architect the WebAssembly layer that bridges our Rust core to JavaScript, design ergonomic TypeScript APIs, and ensure peak performance in both browser-constrained, desktop, and mobile environments.
From day one, you will tackle hard systems problems: designing safe FFI boundaries between Rust and JavaScript, managing memory across the WASM/JS divide, and making async Rust play nicely with JavaScript's single-threaded event loop. You'll work on our wasm-bindgen integration, evaluate approaches like UniFFI for cross-platform bindings, and optimize for the unique constraints of browser environments. Working closely with product, design, and backend teams, you will translate developer-experience goals into intuitive APIs. You'll collaborate with customers and support engineers to diagnose integration issues, optimize for bundle size, memory footprint, and initialization time, and iterate rapidly on feedback.
Operating in our async-first culture, you will craft clear design docs, conduct thorough code reviews, champion rigorous testing and observability, and foster a culture of collaboration and continuous improvement.
As a WebAssembly/JavaScript Senior Software Engineer on the SDKs Team, you will:
Design and maintain FFI boundaries: Own the interface between Ditto's Rust core and JavaScript, using wasm-bindgen, and cross-platform binding generators like UniFFI. Design thread-safe FFI boundaries that prevent data races across language runtimes.
Solve cross-runtime concurrency challenges: Make Rust's async ecosystem work within browser constraints, including Web Workers, SharedArrayBuffer, Atomics, and the Rust-to-JS callback story. Bridge Rust's async runtime (tokio) with JavaScript's event loop and Web Workers.
Own the WASM compilation pipeline: Design and maintain the build toolchain that compiles Ditto's Rust core to WebAssembly, optimizing for size, memory usage, performance, and browser compatibility.
Architect JavaScript/TypeScript APIs: Create idiomatic, type-safe APIs that feel native to JavaScript developers while efficiently bridging to the underlying WASM module.
Own quality from test to release: Build comprehensive unit and integration tests, automate releases via CI/CD, and establish observability patterns for debugging production issues.
Collaborate cross-functionally: Work with product, QA, and support teams to clarify requirements, reproduce customer issues, and verify fixes.
Mentor and elevate the team: Share deep WASM and Rust expertise through pairing sessions, design reviews, and documentation that helps the broader SDK team level up.
Produce and maintain documentation: Write clear API references, integration guides, and code examples that help developers onboard quickly and use the SDK effectively.
What you'll need:
5+ years building production software with a track record of shipping reliable, performant code in a team setting
Deep Rust experience including familiarity with wasm-bindgen, wasm-pack, or similar tooling. You should have a deep understanding of ownership, lifetimes, and tokio executors.
Proven WebAssembly expertise with hands-on experience compiling Rust to WASM and integrating with JavaScript
Strong JavaScript/TypeScript fluency and comfort designing ergonomic, type-safe APIs
Browser platform knowledge including understanding of the event loop, memory management, Web Workers, and cross-browser compatibility challenges
Strong testing discipline (unit, integration, E2E browser testing, CI pipelines)
Clear, concise communication—especially in async, written form
Nice to Haves:
Experience building or maintaining SDKs, libraries, or developer tools consumed by external developers
Experience with UniFFI, cbindgen, or other binding generators
Familiarity with bundlers (Webpack, Vite, Rollup) and their interaction with WASM modules
Background in peer-to-peer networking, WebRTC, or real-time synchronization systems
Experience with WebAssembly threading, SIMD, or other advanced WASM features
Prior work optimizing for memory-constrained or performance-critical environments
The Benefits of Building with Us
We offer competitive salaries and meaningful equity. We believe everyone on the team should have a stake in what we’re building. Benefits vary by region to make sure you're covered in the ways that matter most. In the US, that includes health, dental, vision, life, and disability insurance, plus a 401(k) and flexible spending accounts. In the UK, we offer private healthcare through Vitality, a pension plan, and region-specific coverage. For our team members elsewhere in the world, we work with our global employer platform to offer equitable benefits and coverage.
Regardless of where you live, everyone at Ditto can utilize flexible time off. And while we work remotely, our Atlanta and San Francisco offices are open if you ever want a place to work or meet up with teammates.
Apply Anyway
At Ditto, we know game-changers don’t always come wrapped in a “perfect” resume. Years of experience? Every single bullet point checked? Meh. That’s not what drives us.
What does matter?
Grit.
Curiosity.
Adaptability.
And a genuine spark for what we’re building.
So if you’re fired up about our mission but not sure you tick every box - hit that apply button anyway. Use your application to show us how you’ll make an impact here.
We’re always on the lookout for exceptional humans who want to grow, stretch, and build something meaningful with us.
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.
Sponsored
Explore Engineering
Skills in this job
People also search for
Similar Jobs
Senior Software Engineer, Mobile SDK
Appier
Senior Software Engineer, Commander SDK
Keeper Security, Inc.
Senior Software Engineer - AI SDK
Temporal Technologies
Senior Software Engineer - AI SDK
Temporal Technologies
Senior Software Engineer II, SDKs (Android)
Braze
More jobs at Ditto
Apply for this position
Sign In to ApplySimilar Jobs
Senior Software Engineer, Mobile SDK
Appier
Senior Software Engineer, Commander SDK
Keeper Security, Inc.
Senior Software Engineer - AI SDK
Temporal Technologies
Senior Software Engineer - AI SDK
Temporal Technologies
Senior Software Engineer II, SDKs (Android)
Braze