C++ Software Engineer

at Miro

Job description

About the Team

The Canvas Development Kit team builds the foundational layer that enables internal  developers to create powerful, flexible widgets and custom experiences on top of the canvas. Our mission is to improve the developer experience by providing reusable building blocks, clear and well-documented APIs, and tools that reduce the time-to-market and complexity of widget development. We partner closely with feature teams to understand their needs and evolve the platform accordingly.

Our primary focus is the Surface engine and Surface framework — a React-like declarative system built in TypeScript and powered by a C++ engine via WebAssembly. Surface handles layout, animation, state management, and event propagation, providing a high-level model for describing interactive behavior on the canvas. It includes a custom reconciler, internal rendering system, and developer-facing APIs designed for composability, performance, and ergonomics. The team works on both the runtime and the authoring model, shaping how interactive content is built across the platform.

About the Role

We’re looking for a systems-focused engineer to join the team behind our canvas engine — a modern C++ codebase compiled to WebAssembly and integrated with a TypeScript framework that follows a React-like declarative model. The engine handles layout, animation, interaction logic, and client-side data modeling, forming the core of how interactive content behaves on the canvas.

You’ll contribute to internal systems and developer-facing APIs that power higher-level functionality, working across the C++/TypeScript boundary. This role involves solving deep technical problems, optimizing performance, and evolving architecture — not building UI or product-facing features.

We’re opening this role to increase the team’s capacity for foundational improvements and to support long-term technical evolution. You’ll be part of a small, experienced team focused on performance, correctness, and developer experience at the lowest levels of the stack.

What you’ll do

  • Extend and maintain a C++ engine (compiled to WASM) that powers layout, animation, and interaction on a visual canvas used by millions
  • Work across the C++ ↔ TypeScript boundary to optimize performance, memory usage, and integration ergonomics
  • Design internal APIs and primitives that enable teams to build powerful behaviors in a React-like declarative model
  • Solve deep technical challenges around structured content modeling, interaction logic, and engine architecture
  • Investigate subtle bugs and performance issues in a complex, multi-language codebase at scale
  • Collaborate with experienced engineers to evolve critical infrastructure used across the platform
  • Contribute to a platform powering thousands of collaborative sessions daily — high product impact from deep, behind-the-scenes work

What you’ll need

  • Solid experience with C++ or similar low-level languages (e.g. Rust, C, Objective-C, Swift)
  • Understanding of memory models, performance trade-offs, and debugging complex systems
  • Experience with or exposure to declarative UI frameworks (e.g. React, React Native, Flutter, SwiftUI, Jetpack Compose)
  • Basic familiarity with JavaScript and TypeScript
  • Ability to work in a cross-language codebase and navigate C++ ↔ JS/WASM boundaries
  • Comfort working independently on complex technical problems
  • Strong communication skills and ability to collaborate in a remote, asynchronous environment

What’s in it for you

  • Competitive equity package
  • Health insurance for you and your family
  • Breakfast, lunch, snacks, and drinks provided in the office
  • Wellbeing benefit and WFH equipment allowance
  • Annual learning and development allowance to grow your skills and career
  • Opportunity to work for a globally diverse team
  • Travel allowance for your commute

About Miro

Miro is a visual workspace for innovation that enables distributed teams of any size to build the next big thing. The platform’s infinite canvas enables teams to lead engaging workshops and meetings, design products, brainstorm ideas, and more. Miro, co-headquartered in San Francisco and Amsterdam, serves more than 90M users worldwide, including 99% of the Fortune 100. Miro was founded in 2011 and currently has more than 1,600 employees in 12 hubs around the world.

We are a team of dreamers. We look for individuals who dream big, work hard, and above all stay humble. Collaboration is at the heart of what we do and through our work together we hope to create a supportive, welcoming, and innovative environment. We strive to play as a team to win the world and create a better version of ourselves every day. If this sounds like something that excites you, we want to hear from you!

Check out more about life at Miro:

  • Youtube: https://www.youtube.com/@lifeatmiro
  • Blog: https://miro.com/careers/life-at-miro/all/
  • Instagram: https://www.instagram.com/mirohq/

At Miro, we strive to create and foster an environment of belonging and collaboration across cultural differences. Miro’s mission — Empower teams to create the next big thing — is how we think about our product, people, and culture. We believe that creating big things requires diverse and inclusive teams. Diversity invites all talent with different demography, identities and styles to step in, and inclusion invites them to step closer together. Every day, we are working to build a more diverse Miro, cultivate a sense of belonging for future and current Mironeers around the world, and foster an environment where everyone can collaborate and embrace differences.

Miro handles and uses personal data of job applicants in line with its Recruitment Privacy Policy found here.

Share this job:
Please let Miro know you found this job on Remote First Jobs 🙏

Benefits of using Remote First Jobs

Discover Hidden Jobs

Unique jobs you won't find on other job boards.

Advanced Filters

Filter by category, benefits, seniority, and more.

Priority Job Alerts

Get timely alerts for new job openings every day.

Manage Your Job Hunt

Save jobs you like and keep a simple list of your applications.

Search remote, work from home, 100% online jobs

We help you connect with top remote-first companies.

Search jobs

Hiring remote talent? Post a job

Frequently Asked Questions

What makes Remote First Jobs different from other job boards?

Unlike other job boards that only show jobs from companies that pay to post, we actively scan over 20,000 companies to find remote positions. This means you get access to thousands more jobs, including ones from companies that don't typically post on traditional job boards. Our platform is dedicated to fully remote positions, focusing on companies that have adopted remote work as their standard practice.

How often are new jobs added?

New jobs are constantly being added as our system checks company websites every day. We process thousands of jobs daily to ensure you have access to the most up-to-date remote job listings. Our algorithms scan over 20,000 different sources daily, adding jobs to the board the moment they appear.

Can I trust the job listings on Remote First Jobs?

Yes! We verify all job listings and companies to ensure they're legitimate. Our system automatically filters out spam, junk, and fake jobs to ensure you only see real remote opportunities.

Can I suggest companies to be added to your search?

Yes! We're always looking to expand our listings and appreciate suggestions from our community. If you know of companies offering remote positions that should be included in our search, please let us know. We actively work to increase our coverage of remote job opportunities.

How do I apply for jobs?

When you find a job you're interested in, simply click the 'Apply Now' button on the job listing. This will take you directly to the company's application page. We kindly ask you to mention that you found the position through Remote First Jobs when applying, as it helps us grow and improve our service 🙏

Apply