Ditto

Senior Software Engineer, SDK

Ditto Remote Today
engineering

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