Software Engineer - Creation Engine at Figma
San Francisco, CA 94199
About the Job
Figma is growing our team of passionate people on a mission to make design accessible to all. Born on the Web, Figma helps entire product teams brainstorm, design and build better products — from start to finish. Whether it’s consolidating tools, simplifying workflows, or collaborating across teams and time zones, Figma makes the design process faster, more efficient, and fun while keeping everyone on the same page. From great products to long-lasting companies, we believe that nothing great is made alone—come make with us!
Our Creation Engine teams work on some of the core technologies that power our real time, browser-based Figma Design and FigJam products. These teams work mostly (but not exclusively) on client-side code that runs in the browser. Under the hood, Figma shares a lot of similarities to a game engine. We develop this C++/WebAssembly engine to ensure internal and external developers can rapidly build new products and features that are fast and reliable by default. Were always looking for ways to make our platform more extensible, more performant, less resource intensive, and more reliable. We own areas such as our in-memory data model (SceneGraph), renderer, multiplayer client/server protocols, and plugins and REST API.
This is a full time role that can be held from one of our US hubs or remotely in the United States.
What youll do at Figma:
• Regularly collaborate with designers, PMs, and other engineers beyond your team (or org) to plan features that unblock adoption across new categories of customers, and to break down high level goals into tasks and timelines
• Build, document, and maintain tests, features, and infrastructure
• Regularly communicate and document architectural designs and requirements
• Provide thoughtful feedback to others on the team and facilitate spaces of learning, belonging, and impact
• Help interview and recruit more talented engineers to Figma
• Modularize our C++/Wasm engine to support new features in Figma Design and FigJam, as well as unlock the development of future product
• Extend our multiplayer protocols to enable more advanced editing and collaboration modes across files
• Create frameworks to maintain performance and memory standards across our products —we want to keep pushing the limits of what its possible to create in a browser while maintaining a highly performant UX
• Improve our file load times by dynamically loading needed content, optimizing our client-server protocols, and exploring ways to allow users to interact with files earlier
• Optimize our renderer in order to increase frame rate during periods of heavy interaction with FigJam
• Provide rich abstractions and APIs between our React/Typescript and C++/Wasm engine, or
• Expand the way our users can extend the functionality of our products through plugins and widgets, our REST API, as well through new ML-powered extensibility features
We’d love to hear from you if you have:
• At least 2+ years of professional experience shipping features or products with specialization in web frontend frameworks or C++/Wasm
• Experience working on game engines, client side technologies and platforms, API products/integrations, and/or developer tools
• Demonstrated coding fluency with one or more programming languages in a working context, including but not limited to: Typescript/Javascript, C++, React, Ruby, Java, Python, Go, or Rust
• Experience communicating and collaborating regularly and effectively with designers, PMs, engineers, and stakeholders beyond your team (or org) to plan features and break down high level goals into tasks and timelines,
• A growth mindset and experience investing in the learning, development, belonging, and impact of your peers
While it’s not required, it’s an added plus if you also have:
• 2+ years of experience operating in a hands-on technical lead capacity, ideally with multi-team purview
• A passion for and experience with driving product direction and developing product platforms