Notes from Figma I: How We Succeeded In Design
It's been a few months since I left Figma, so I thought I'd write down some notes on my time there before I forget. In this first part, I'll talk about what brought me to Figma and my take on why Figma succeeded. Part II on engineering learnings and culture is here.
Why did I work at Figma?
The biggest reason was the product. A designer friend introduced me to it around 2017 when designing the website for my college club and there was nothing like it: a fully-featured, highly opinionated design tool on the web with Google-docs-style single-source-of-truth, unprecedented smooth performance, and pixel-perfect rendering. I'd been using Photoshop before then - not even Sketch!
I also thought the engineering team was exceptional: they knew what they were talking about in their blog posts, which showed both a willingness to take technical risks and an ability to carry them all the way through. It wasn't just one or two gems either; the blog was full of them. Some favorites:
- Building a professional design tool on the web
- How Figma's multiplayer technology works
- Introducing vector networks
- Rust in production at Figma
Before I made my final decision on where to go after college, I "reverse interviewed" a bunch of people from every company that accepted me, asking everyone questions like "how would you characterize the growth of $COMPANY" and "why did you choose $COMPANY over others".
I don't think this influenced my decision too much, because Figma's product and engineering blog had already won me over, although it made me more excited that people were easy to talk to and it seemed like a culture fit. I was also impressed with how incisive some of the answers to my business-related questions were from Figma employees, which showed that they had thought about the same things that I did and made a rational decision to bet on Figma. Finally, Figma actually gave me the most reverse interviewees, so I had the clearest picture of what working there was actually like as opposed to the other companies I was considering at the time.
What did I do at Figma?
I joined in 2019 when Figma was fewer than 100 employees. When I left in early 2024, we were over 1500 employees.
I started out as a product engineer and worked on projects like animations and interactive components. But most of my work was in the core engine. Some highlights:
- I put our editor engine into our mobile app/prototype viewer.
- I helped migrate all code in our custom programming language to Typescript with an automated migration.
- I worked on stability and performance a bunch, optimizing things from file loading to rendering.
I also got to contribute to a few blog posts:
- Figma's Journey to Typescript: Compiling Away Our Custom Programming Language
- Improving Performance With Incremental Frame Loading
- Keeping Figma Fast
Why did Figma succeed in design?
Lots of folks have written about this. Here's my take as someone who didn't get to sit in boardrooms or peer at growth metrics, but did get to sit through some of the action.
It's easy to say of course we were bound to win, since we were the first to do Google Docs for design, fixing the versioning, sharing, collaboration, and multi-device problem all at the same time. And as an outsider to design it felt like a no-brainer to me before joining, too. But looking carefully at the industry as a whole in 2015-2020, I think our destiny wasn't so obvious.
First, it wasn't immediately obvious that “Google docs for design” was something designers actually wanted. There's a now-infamous top comment from the Designer News article for Figma's launch that
went something like: “If this is the future of design, I'm changing careers.”
Second, it wasn't clear that Figma's browser-first approach to collaboration was enough of a moat. Yes, Figma links were a huge improvement over old design workflows and our product was spreading fast, but our competitors were racing to match our features with Sketch Cloud and Adobe XD Cloud Documents. XD had better prototyping and the vast resources of Adobe, while Sketch had pre-existing mindshare and was beginning to take venture capital. It's not hard to see a world where we ended up in the same situation as Google Docs did with Office 365. There were also potential paradigm shifting players like Framer, in which designs were real React elements that designers could manipulate directly.
In the end, I think what put us over the top was that:
- Browser-first link sharing let us bring non-designers into the loop (see Kevin Kwok's excellent Why Figma Wins from 2020). This combined with sticky features like design systems gave us powerful winner-take-all network effects.
-
Our multiplayer technology turned out to be pretty hard for Adobe and Sketch to copy
Even in 2024, "design files not syncing properly" is one of the first results when I search for "Sketch Cloud". . I would guess that this was less of a “collaborative algorithms are really hard to implement” and more of a “existing products are really hard to make collaborative" problem: Framer moved to browser-based collaboration pretty successfully, but it did so by completely ditching its old product, while Figma-like design collaborative design tools created from scratch are pretty common these days.
With all that said, it still took some pretty incredible engineering to not only successfully build design experience on the web, but to make it world-class and be the first folks to do it, too. As I suggested above, I think one of the biggest reasons we were able to gather so much engineering talent is because of how much the company blogged early on about the interesting problems they were encountering and how they were solving them (a strong display of confidence in ability to execute - a weaker team might have withheld the secret sauce!). Of course, it also helps that Figma took venture funding and was located in Silicon Valley while Sketch spent years as a bootstrapped business in the EU.
An interesting and ongoing question is whether Figma can repeat the success it had in design with other products. From the trenches, it was difficult to tell how successful a new product would be; most new initiatives were perceived as potential game-changers for the industry and shiny new projects that everyone (or at least all product engineers) wanted to work on because of all the attention they were getting. Here are two that stood out to me in my time there (there were others too, like Dev Mode and Slides, but I was less close to those):
-
Community.
This was originally supposed to make us the "Github for Design". At launch, everyone rushed to grab their own
figma.com/@name
handle (I still havefigma.com/@akc
). I think we have probably not met our original lofty goals, but the community is a great place to find pre-built assets and useful plugins. I imagine it is at least a strong competitor to Behance/Dribbble. -
FigJam. I thought this was very strongly executed. Yes, it's essentially just a skin over Figma, but FigJam is one of the most polished, delightful products I've used (obviously I am biased). Everything was carefully designed, from the little animations when you drag a sticky into the canvas to the FPS of moving your mouse over the icons in the toolbar.
That said, business-wise, we faced more entrenched incumbents with FigJam, and our tech didn't give us much of a competitive advantage here: Miro et al. were already on the web, and while our rendering tech still made us more performant in some cases, it also held us back, since it meant we couldn't bring in native UI functionality like videos and iframes as easily. We haven't won in this space, at least not yet.
One clear thing to me is that Figma's astounding success in design was due in large part to the company identifying a gap in the design space and working on it essentially in secret for years
Anecdotes from the journey
Cheap startup. While Figma was venture-funded by several big names and was already Series C by the time I joined, they still gave off a strong frugality vibes initially. Their new grad salaries were lower than other offers I had at the time (even from other startups), there were no free dinners, they didn't hold any flashy recruitment events like inviting candidates to come drink on a boat, and a recruiter bragged about a brand-new filtered water machine as if it was the peak of luxury when I visited the office. We also didn't have any salespeople for a long time, and only bought our first billboards in SF a few months after I joined, around four years after the product was first announced and seven years after it was founded.
Of course, Figma at the time had only begun to make money, having stayed in stealth for longer than most companies, and was rightfully keeping lean and focusing investment into development. But it's interesting to compare our frugality with the previous generation of tech companies like Dropbox and Zenefits. Some ex-Dropboxer colleagues told stories of how the chrome-panda extravagance of Dropbox was a mistake that they swore to never make again.
Coup by the marketing team. Funnily enough, by coincidence, Sketch launched their version of auto-layout shortly before ours, and people got pretty excited about it. We couldn't have that, and since we knew we were launching soon, our marketing team stole their thunder by slapping together a teaser that subtly showed all the ways our layout was better and posting it as a response on Twitter, to great acclaim.
Performance testing. We used to run performance tests on a single MacBook which eventually started overheating. A memo describing the problem and requesting comments was posted. Someone suggested putting it in a freezer.
Garbage collection. When you insert an instance of a team component in a Figma document, we download the component blueprint into the document. For a long time, we didn't automatically garbage collect blueprints that become unused due to all their instances being deleted or pointed to newer versions of components. At some point the documents of our biggest and most important customers started crashing, and engineers had to go in and manually fix them.
The Anti-Startup. Despite being started by a couple of college students, Figma had an impressive share of senior engineers and designers early on. Key early hires had decades of experience at companies like Adobe and Electronic Arts.
My understanding is that this was something Dylan intentionally did, which together with being frugal ran counter to the established wisdom of the time, where startups inspired by Dropbox, Facebook, etc. would focus on hiring smart, hungry young people willing to work long hours. Seems like it worked well for the goal of taking an old-school power tool and putting it on the web: key functionality like a big chunk of our rendering could be created via brain dump rather than painstakingly re-invented via trial and error!
How multiplayer was born. Multiplayer was added a few years before my time; the blog post about it was one of the biggest reasons I joined. Behind the scenes, the tech was a struggle and took months to figure out: Ryan shared this anecdote with me about working with Evan on it:
This sounds crazy but I feel like Evan just read some random posts online, didn't like the vibe of anything academic, and thought really hard. In contrast I read papers and emailed professors… and his is the approach that worked.
One lesson I take from this is that I was trying to outsource my thinking to academics and people I thought were smarter than me. I thought that would yield a better solution, but it turned out not to be the best approach for Figma. Home-grown solutions for stuff like distributed systems/databases feel like "bad engineering" but in Figma's case ended up being pretty important for its success.
Acknowledgements
Thanks to Rudi Chen, Ryan Kaplan, and Jamie Wong for valuable feedback, quotes, and suggestions on multiple revisions of this post.