С++ Software Engineer

Miro

Miro

Software Engineering
Yerevan, Armenia
Posted on Jul 16, 2025

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:


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.