С++ Software Engineer

Development, Yerevan, AM

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 and 250,000 companies collaborate in the Innovation Workspace. Miro was founded in 2011 and currently has more than 1,600 employees in 13 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

Apply for С++ Software Engineer

Valid email format: example@domain.com
Valid phone number format: +31636363634

Resume/CV *

Attach
File types: pdf, doc, docx, txt, rtf
File size: max 2MB

Cover Letter

Attach
File types: pdf, doc, docx, txt, rtf
File size: max 2MB

Will you now or in the future require visa sponsorship for employment with Miro? *

Max 900 characters allowed.
Max 900 characters allowed.

Prepare yourself to go beyond

Here are some helpful tips to ensure you have all the correct information throughout our hiring process.

  • 01. Recruiter Screen

    A 30-min interview to discuss your relevant skills, perspective on resilience, experience, and what motivates you to join Miro.

  • 02. Hiring Manager

    The hiring manager will meet to discuss your experience and fit for the role by assessing whether you align with the Miro Mindset (Curiosity, Drive, Resilience, Empathy, Cognitive Agility & Accountability). This interview usually takes 90-120 minutes.

  • 03. Skill Assesment

    An interactive presentation to see your skills in action, based around a particular case study or business problem.

  • 04. Meet the Team

    Here you will meet cross-functional stakeholders, and we will ask evidence-based questions to evaluate how well you align with the role and Miro's values and culture.

  • 05. Leadership Round

    Meet a member of the leadership team to discuss Miro’s company values and share your vision for success at Miro. 

Ready to go beyond?