00:00:00.000 --> 00:00:03.120
When I joined the company, I felt like roped.
00:00:03.439 --> 00:00:14.160
And what I mean by this is I felt like I entered a spaceship that had like technology from like a thousand years in the future and nobody like was new about it.
00:00:21.199 --> 00:00:28.160
Welcome to Partner Path, a podcast that unpacks the venture capital and growth equity ecosystem from a junior perspective.
00:00:28.320 --> 00:00:34.880
Young entrepreneurs and investors have already had a massive impact on the industry, having started unicorns and launched billion-dollar funds.
00:00:35.039 --> 00:00:41.359
We discuss these success stories and more by sharing perspectives and advice from some of the industry's most prominent role models.
00:00:41.520 --> 00:00:47.920
This podcast expresses our views as of the date published and does not represent the views of and is not endorsed by any company for which we work.
00:00:51.359 --> 00:00:56.479
Before we get to the episode, Laura and I are excited to announce a partnership with Overlap.
00:00:56.799 --> 00:01:06.400
Fresh out of Y Combinator's Summer Batch, Overlap is an AI-driven app that uses large language models to curate the best moments from podcast episodes.
00:01:06.719 --> 00:01:18.640
Imagine having a smart assistant who reads through every podcast transcript, finds the best parts or parts most relevant to your search, and strings them together to form a new, curated stream of content.
00:01:18.879 --> 00:01:20.959
That is what Overlap does.
00:01:21.200 --> 00:01:29.200
I personally use Overlap to explore content on future podcast guests and highly recommend it as another diligence tool for investors.
00:01:29.439 --> 00:01:31.920
Check out Overlap on the App Store today.
00:01:32.319 --> 00:01:36.079
Today we're joined by Chris Chadeau, an engineer at Meta.
00:01:36.400 --> 00:01:40.719
Chris is originally from France and is the co-creator of React Native and Accelerat.
00:01:40.959 --> 00:01:41.680
Welcome, Chris.
00:01:42.079 --> 00:01:42.400
Thank you.
00:01:42.879 --> 00:01:43.840
So happy to be here.
00:01:44.239 --> 00:01:45.599
We're excited to have you.
00:01:45.840 --> 00:01:50.400
You have another name, which is called Bigeau, which is your alter ego, one could say.
00:01:50.640 --> 00:01:54.719
Maybe let's just open up with why are folks calling you Beigeot and what exactly does that mean?
00:01:55.040 --> 00:01:55.760
Yeah, that makes sense.
00:01:55.920 --> 00:02:00.560
So when I was 12 years old, I wanted to play Counter-Strike, like a video game with my friends.
00:02:00.879 --> 00:02:06.400
And so I was in France, and the way you say video game in French is je video.
00:02:07.040 --> 00:02:15.680
And so what I ended up doing is like swapping je and video, so V video, je, and then I remove the Ideo, and so it's it's spelled V Je.
00:02:16.159 --> 00:02:21.840
And so in practice, this is a five-letter like words that have never been taken anywhere online.
00:02:22.400 --> 00:02:24.800
And so it's like very unique and it's very nice.
00:02:25.039 --> 00:02:28.319
Unfortunately, I moved to the US and nobody knows how to pronounce it.
00:02:28.400 --> 00:02:32.560
And same for my last name, so at least it makes a good like uh intro starter.
00:02:32.879 --> 00:02:35.680
And was this around the same age that you started coding?
00:02:36.000 --> 00:02:36.560
Yes.
00:02:36.800 --> 00:02:38.000
Okay, and what age was that?
00:02:38.240 --> 00:02:40.879
So I was around 12, like 11 or 13.
00:02:40.960 --> 00:02:47.680
So we learned that you really started coding by learning how video games work in the world of Warcraft, building custom apps.
00:02:48.080 --> 00:02:50.400
What clicked for you at that age, and how did you get into it?
00:02:50.479 --> 00:02:52.639
Because you were growing up in France, I believe.
00:02:52.879 --> 00:02:58.800
Yes, I was in Paris, and I was like a huge gamer, and especially on the Blizzard games.
00:02:58.960 --> 00:03:09.039
And so at that point, I was uh playing Warcraft 3, which is a real-time strategy game where you've got uh like a mini army of monsters and you need to battle against other monsters.
00:03:09.199 --> 00:03:28.479
And one of the interesting things is they had a map editor, and so in the map editor, you could like start creating your own custom maps, and one of the things that they did, which was like super fascinating to me, is they had a trigger editor where you were able to say, Hey, when a unit enter this area, then like make it move to this other area.
00:03:28.639 --> 00:03:32.240
And there was a lot of like scripting like this, but it didn't feel like scripting.
00:03:32.319 --> 00:03:35.919
You were just like clicking, like, hey, if this, then this, then this, then this.
00:03:36.159 --> 00:03:45.120
And one thing I've learned is that oh, I've learned all of the programming concepts like variables and actions and conditions and this kind of things, but through building this.
00:03:45.360 --> 00:03:58.240
And at some point, one of the very fascinating things is they in practice they outputted an actual programming language, and there was a way to open the editor and like find a special option to see what programming language it actually outputted.
00:03:58.400 --> 00:04:01.599
And then at some point, I was started writing directly in this programming language.
00:04:01.759 --> 00:04:12.639
And so this was my first foray into like the concept of programming, and I'm really glad because like a lot of people are playing games, and like this is like a very good and intuitive way to start learning how to code.
00:04:12.960 --> 00:04:13.360
Definitely.
00:04:13.599 --> 00:04:22.480
Then you took kind of what you learned in that use case and moved it to some very interesting, deeply technical use cases and contributed it to some open source projects.
00:04:22.959 --> 00:04:24.480
What took you to the next level?
00:04:24.800 --> 00:04:29.199
And I believe something that sparked it was moving from like France to the US when you were interviewing.
00:04:29.600 --> 00:04:35.040
So I was working on Warcraft 3, and then Blizzard released a new game which is called World of Warcraft.
00:04:35.199 --> 00:04:39.600
And this time you couldn't do maps, but you could change the user interface of the game.
00:04:39.920 --> 00:04:50.000
And so I was like starting playing around with this, and during the beta, there's a group of people that created like a modification of the UI of the game called Cosmos UI.
00:04:50.160 --> 00:04:54.639
And there was a collective of like 20 people contributing a lot of different extensions.
00:04:54.879 --> 00:05:05.920
And one of the things it was so needed because the base UI of the game was like not good enough, that at some point, like almost everybody in the World of Warcraft community was using it.
00:05:06.160 --> 00:05:25.040
And to such an extent, when there was a new patch, like the Blizzard released a new patch, it was called patch day no play, because our extension was relying on the internal of the game and was actually breaking during patch, so we were like scrambling to figure out how to update uh whatever has changed.
00:05:25.199 --> 00:05:31.199
And so for like a few hours, like to a day, we had to like wait, people had to wait until we actually fixed it.
00:05:31.360 --> 00:05:36.800
And so this was like a very like my first like real kind of project I was uh involved in.
00:05:37.519 --> 00:05:56.720
And at that point, I ended up uh getting my first contract with the people working on this, and so I was 13 at the time, and so my parents received like a stack of documents around like, hey, you're going to be employed and you're underage, so like a bunch of like conditions from a US company.
00:05:56.879 --> 00:06:01.759
So that was my like first time I actually made any money doing coding for video games.
00:06:02.160 --> 00:06:03.040
It's so interesting.
00:06:03.199 --> 00:06:11.519
We meet so many folks who get started programming because of video games or things they learned on the internet or get involved in the open source world when they're very young.
00:06:11.600 --> 00:06:17.439
And oftentimes those people become sort of the most technical, down-to-the-details folks in Silicon Valley.
00:06:17.600 --> 00:06:20.800
I'm curious, do you think like we're now in this vibe coding era?
00:06:20.959 --> 00:06:25.519
Do you think that's gonna push more people to paths like the path that you went down?
00:06:25.839 --> 00:06:28.800
Or is the dynamic just different than it used to be?
00:06:29.120 --> 00:06:43.600
One of the things that was very interesting, like when I started uh learning how to program, is in practice, like being a programmer, at least in France, was like being like a the bad version of a geek, yeah, and like nobody cared, and like everybody thought you were a loser and those kind of things.
00:06:43.759 --> 00:06:48.560
And so like there was not this aura that like right now we have which is very different.
00:06:48.720 --> 00:06:55.199
And so I've learned basically because I enjoyed doing this and I wanted to do it like against basically everybody else.
00:06:55.439 --> 00:07:01.920
But now one of the things is in this day and age, being a software engineer is the top of the game that you can do everywhere.
00:07:02.160 --> 00:07:12.079
And so now it attracts a lot of people that are not really interested in this, but this is like hey, like you were a lawyer, like you were a doctor, like like 100 years ago.
00:07:12.240 --> 00:07:14.480
Now this is what you do to be successful.
00:07:14.639 --> 00:07:16.879
And so it attracts a very different kind of crowd.
00:07:17.040 --> 00:07:28.639
And so I think for the new kind of crowd, like, yep, like they're doing a good job and everything, but I don't think they have like the passion, if they were like doing anything uh in their free time and everything, that would be doing this.
00:07:28.720 --> 00:07:31.600
So I think there's two different classes of like people.
00:07:31.920 --> 00:07:34.160
Do you think that's true in the open source community as well?
00:07:34.319 --> 00:07:40.720
We've obviously seen the commercialization of open source, and open source is not just something that people do for the love of the game anymore.
00:07:40.959 --> 00:07:47.360
As someone who's contributed so much to open source, do you feel there's a difference in the motivations of the people building these products?
00:07:47.680 --> 00:08:06.319
The interesting thing about open source is I've been maintaining a bunch of different open source projects over the years, and you can really tell like very easily, like when somebody sends a pull request, whether they actually do it because they actually want to solve a real problem that they have, or because they want to do it for the status or the prestige or those kind of things.
00:08:06.560 --> 00:08:18.959
And so, one thing I've learned is uh to spend a lot of time for people that are like really truly motivated, and then now raise them up and like uh get them to be core contributor and those kind of things, and it's been like very successful.
00:08:19.199 --> 00:08:29.519
So I think this is like everything in life, there's people with different kinds of motivations, and you need to figure out how to extract like the best way possible and like get them hyped and motivated.
00:08:29.600 --> 00:08:35.679
So, and then from your open source experience at Meta, like you're almost working as an entrepreneur within a massive company.
00:08:35.840 --> 00:08:36.320
I guess so.
00:08:36.399 --> 00:08:49.440
What has it been like from your experience as you know, basically a founder, like through Acceledraw, through Prettier, and building it within Meta versus spinning out and to Dan's point, like commercializing some of these projects that developers are obsessed with?
00:08:50.000 --> 00:08:53.120
The first uh one is when we uh open sourced the React.
00:08:53.200 --> 00:08:55.120
So I was like very deeply involved.
00:08:55.360 --> 00:09:04.639
And one of the things I've always had this in the back of my mind is what is the way to make this a viable commercial project?
00:09:04.879 --> 00:09:13.440
And that's been like very interesting is in practice itself, React like it's not going to be successful if we if we make people pay for it.
00:09:14.240 --> 00:09:36.240
And now there's a lot of other ways you can like actually generate revenue from React, but in practice, like we built React to solve like Facebook's problems, and we had problems like everybody else in the industry, and like, oh, there was a unique way to do it, and we it actually solved the problems for Facebook, and so now we open sourced it and like it solved problems for a lot of other people.
00:09:36.480 --> 00:09:42.399
But the intention of React was like, hey, we want to solve problems for Facebook first, and it actually did.
00:09:42.480 --> 00:09:52.639
And so the business model for this is now Facebook is paying us money to solve Facebook's problem, and that happens to be useful for everybody else, so might as well open source it.
00:09:52.799 --> 00:09:56.559
And the good thing with open source is there's a lot of like downstream positive effects.
00:09:56.799 --> 00:10:06.639
So, for example, a big challenge if you're like working on a propriety code base, if you're hiring people, they don't know the stack you're using, and so like there is going to be a lot slower.
00:10:06.799 --> 00:10:13.759
And so now if everybody's using React and like they join like Facebook, then like oh, everybody like from day one can like start being productive.
00:10:14.000 --> 00:10:17.759
And then the second one is like there's the notion of like being a thought leader.
00:10:17.919 --> 00:10:30.960
If as we like open source React and I organized the first React GS conf, which was like insane, literally, the people were begging the CTO of Facebook to be able to get tickets because like everybody wanted in.
00:10:31.200 --> 00:10:38.240
And so this is the kind of thing where like now like it makes people want to join the company that is building those open source projects.
00:10:38.399 --> 00:10:41.360
So there's a lot of ways the company actually benefits.
00:10:41.519 --> 00:10:48.960
Now, one of the things is a lot of people think about open source as like, hey, what is my open source strategy to like attract like talents?
00:10:49.120 --> 00:10:51.120
But I think we need to reflect it differently.
00:10:51.200 --> 00:11:00.960
Is like, hey, what are the like actually really good infrastructure projects we're working with in the company that are actually better than everything everything else in the world that we can open source?
00:11:01.120 --> 00:11:10.000
And I think thinking about this is going to like be more effective than like trying to figure, okay, what is the next open source project I need to build to like attract like a bunch of customers?
00:11:10.399 --> 00:11:19.919
And if it's not actually solving the core business, your core business, then it's always going to be like a side thing and not going to be like very likely to be successful.
00:11:20.320 --> 00:11:22.799
Now, a quick word from our sponsor.
00:11:23.120 --> 00:11:29.440
Laura and I are thrilled to announce a partnership with Grata, an intuitive deal sourcing and diligence platform.
00:11:29.759 --> 00:11:33.840
Keep missing out on private market deals, ditch the Rolodex and get Grata.
00:11:34.240 --> 00:11:42.480
Grata's AI-powered platform provides accurate data, deep insights, and time-saving workflows that help get more deals done.
00:11:42.639 --> 00:11:47.919
And it's trusted by over 500 firms and 3,000 deal makers, including myself.
00:11:48.159 --> 00:11:57.759
I've personally used Grata in both my deal sourcing and diligence workflows and would recommend their tool to any investor across private equity, growth equity, corpdev, or investment banking.
00:11:58.000 --> 00:12:00.879
We've negotiated a special offer for our audience.
00:12:01.039 --> 00:12:10.399
Mention partner path to the Grata team during sign-up, and you'll get free executive seats for your partners and MDs included in your subscription.
00:12:10.639 --> 00:12:12.320
Now back to the episode.
00:12:12.720 --> 00:12:15.600
There are a few really interesting threads to pull there.
00:12:15.759 --> 00:12:17.440
Maybe to start, I'd love to understand.
00:12:17.600 --> 00:12:26.000
I'd love to get your version of the story of when you were at Meta and you guys decided to build React and ultimately open source and sort of evangelize it.
00:12:26.159 --> 00:12:27.039
What were the triggers?
00:12:27.200 --> 00:12:29.679
What were the problems that you were trying to solve?
00:12:29.759 --> 00:12:38.240
And perhaps why did you decide this is what I'm going to devote my time to work on within the broader context of this very big, very fast growing company?
00:12:38.480 --> 00:12:39.120
That makes sense.
00:12:39.360 --> 00:12:43.600
So I wasn't at the very, very beginning, but I was like a few months before we did the open source.
00:12:43.679 --> 00:12:45.519
But I can tell you like my thinking.
00:12:45.679 --> 00:12:57.759
So the first thing is, as I mentioned, I was like super into like video game and then web developments, but as a random child, like or adolescent in Paris, and all I've read was like on the internet.
00:12:58.240 --> 00:13:04.000
And at some point I got the offer like for Facebook, and I moved halfway across the world, married my girlfriend and everything.
00:13:04.240 --> 00:13:11.200
And one of the things that was very interesting at the time is when I joined the company, I felt like roped.
00:13:11.360 --> 00:13:21.919
And what I mean by this is I felt like I entered a spaceship that had like technology from like a thousand years in the future, and nobody like was knew about it.
00:13:22.080 --> 00:13:26.559
And we actually didn't like do uh I think a good enough job like evangelizing.
00:13:26.720 --> 00:13:33.600
And so I made it my mission in life to make sure that like everybody knows that like a brighter technology actually exists, that's all for them.
00:13:33.919 --> 00:13:37.600
And the interesting thing was actually not in the context of JavaScript or React.
00:13:37.840 --> 00:13:40.960
It was in the context of our own version of PHP.
00:13:41.200 --> 00:13:49.600
And so I've been building a PHP for a long time, and everybody was mocking PHP, or it's not a real programming language, like the same way they've been for JavaScript.
00:13:50.159 --> 00:14:01.600
But the PHP version within Facebook had like classes, arrow functions, like a bunch of things or like types, type checking, a lot of things that was like alien to like uh the whole community.
00:14:01.840 --> 00:14:04.399
And I really wanted to help with open source.
00:14:04.639 --> 00:14:12.159
The issue is that we've tried with open source VM or like PHP VM, hack and this kind of thing, but it never like really took off.
00:14:12.399 --> 00:14:28.559
But the thing is, with React, we basically took all of the ideas that's really good in the PHP world within like Meta, and we were able to like basically translate them to JavaScript, and we were able to like push all of this at once to the broader community.
00:14:28.720 --> 00:14:36.960
For me, like this was the best time because I could like share all of the cool stuff we were doing to the rest of the world, not just for like React itself, but like the entire builder ecosystem.
00:14:37.200 --> 00:14:38.080
Yeah, it's so interesting.
00:14:38.159 --> 00:14:53.200
I think we see this so often with companies where effectively what they're doing is taking the best practices of some of the best tech companies in the world and packaging it in open source or infrastructure that makes it consumable for your average developer somewhere.
00:14:53.279 --> 00:14:57.039
And eventually that just kind of moves the quality more for everybody up over time.
00:14:57.279 --> 00:15:04.480
The other thing that's very interesting to me, there's a lot that's been written about the framework wars of the 2010s and the rise of React.
00:15:04.639 --> 00:15:08.480
I'm curious, you were in the rooms where these decisions were being made.
00:15:08.720 --> 00:15:14.559
Was there sort of a conscious effort of we're gonna win the war, we're gonna win the market, we're gonna make this the standard?
00:15:14.720 --> 00:15:21.279
Because ultimately you guys were solving your own problems and evangelizing it, but you weren't in a market share war from a revenue perspective.
00:15:21.519 --> 00:15:21.840
Yeah.
00:15:22.080 --> 00:15:27.440
The interesting thing is like a lot of people think that there was a war between the people like doing the frameworks and everything.
00:15:27.600 --> 00:15:35.600
But in practice, all of us were trying to solve the same problem and we're actually like friends and we had meetings together, like trying to figure out hey, how did you actually solve it?
00:15:35.759 --> 00:15:40.559
And so there was not a like a war in that sense, actually, like working very closely with each other.
00:15:40.799 --> 00:15:47.200
And now this is like the Twitter effect where like, oh, everybody wants like some uh drama and this kind of thing.
00:15:47.279 --> 00:15:49.039
So everybody like pitied against each other.
00:15:49.200 --> 00:16:03.440
And one of the first things I've done when I started working on React is anytime I was very active on IRC and like building a community, and every time somebody thrashed like some some other framework or whatever, I would say, like, nope, we're not doing this here.
00:16:04.000 --> 00:16:08.879
Like the you can have your opinion and everything, but like let's look at the fact and this kind of thing.
00:16:08.960 --> 00:16:13.519
And the Angular is also really good, and LocalJS is good, and like whatever, like framework of the day.
00:16:13.679 --> 00:16:17.759
And let's figure out okay, what are the challenges that you're facing with those technologies?
00:16:17.919 --> 00:16:20.320
And is there a way React can help with this?
00:16:20.480 --> 00:16:30.799
So that has been like the mindset I've really like put in very early on in the community, and so I've tried to implement this in a way that like yeah, people like feel welcomed and doesn't derail.
00:16:31.440 --> 00:16:37.840
Now, I'm not going to be lying, like, we actually wanted React to be like the best thing ever.
00:16:38.399 --> 00:16:49.360
And one of the things that's very interesting to me with like uh the Silicon Valley and tech in general is a lot of people think about like being the best in Wall Street, like kind of zero-sum game type of games.
00:16:49.519 --> 00:16:54.080
Where like if you are like winning, this means that somebody else is losing.
00:16:54.240 --> 00:16:59.600
And the interesting thing with tech is no, actually, you can be winning and everybody else around you can be winning.
00:16:59.759 --> 00:17:05.519
And this is like a mindset uh we are using within like meta's calibration system, like how do we reward people?
00:17:05.839 --> 00:17:08.079
Is usually we want collaboration.
00:17:08.319 --> 00:17:22.720
And so it's actually better to have like a successful project and to reward everybody that actually participated in like very successful projects compared to oh, one person actually succeeded, so like everybody else, even though they participated, don't get any credits.
00:17:23.039 --> 00:17:29.759
So, this is, I think, like one of the strengths of like the whole Silicon Valley ecosystem is like you don't need others to lose to actually win.
00:17:29.920 --> 00:17:36.880
Yeah, and I think also as it relates to technology and JavaScript, probably the biggest lever in making React bigger is making the JavaScript world bigger.
00:17:37.039 --> 00:17:41.359
And all the other frameworks doing well ultimately evangelizes JavaScript.
00:17:41.440 --> 00:17:45.839
And as a result, some of that benefit is going to accrue back to React and that community.
00:17:46.160 --> 00:17:49.839
And the the thing I'm mentioning with React is not just React.
00:17:50.079 --> 00:18:03.759
So in practice, it's been like, oh, ES Lint, Webpack, and all of the packages, TypeScript and Flow for the type system, prettier for like uh pretty printing, and like all of this actually made the entire like space better.
00:18:03.839 --> 00:18:06.720
So I agree with you that like this is not one just like small thing.
00:18:06.799 --> 00:18:11.039
It's like everybody boats rises, like the tide rises all of the boats kind of effects.
00:18:11.359 --> 00:18:15.920
Was there anything that surprised you about the way kind of the React ecosystem has evolved?
00:18:16.240 --> 00:18:18.880
It's becoming the go-to way to build applications.
00:18:19.200 --> 00:18:31.599
I think the biggest thing uh that shocked me is so I we started with React, and I was like, okay, so like we built like a bunch of people, like uh as have been like become like core members of the React community and everything.
00:18:31.759 --> 00:18:38.079
And then at some point, like we like the same teams started working on React Native, and then we open source React Native.
00:18:38.319 --> 00:18:48.000
And my expectation was that the people that were pillars of the React community would actually become the pillars of the React Native community, but in practice it didn't happen.
00:18:48.160 --> 00:18:57.839
And the thing that's been like very fascinating to me is like in practice, a whole new set of people started becoming like the go-to like React Native kind of folks.
00:18:58.079 --> 00:19:01.440
And when I reflected back on this, I was like, oh, it actually makes sense.
00:19:01.680 --> 00:19:18.960
Usually, in order for you to contribute to like an open source project, you need to be at a right point in time in your career where like, hey, you have like a lot of free time and like you have problems that you're trying to solve, and now like this is like the right time between like your personal career and the technology that solves your problems, and then you can rise with it.
00:19:19.119 --> 00:19:31.279
But then, like, once you're established in this particular space, you have a lot less interest to actually go and like start on a brand new, like very risky bet, even though it's in the same space.
00:19:31.440 --> 00:19:35.599
And so we end up rebuilding like a new set of people every time.
00:19:35.680 --> 00:19:45.599
And so then like Skelly Draw came and uh Pretier came, and again, like there were some similar familiar faces, but a lot of time, like you're building up new people as you go.
00:19:45.839 --> 00:19:46.079
Yeah.
00:19:46.319 --> 00:19:50.079
Well, I think the the common thread in those is is you and your readership.
00:19:50.240 --> 00:20:01.039
So I'm curious, like what after doing React and then going to React Native, what has motivated you to continue putting out these these projects that are obviously a lot of time and effort for you?
00:20:01.279 --> 00:20:05.279
The first thing is a lot of people ask me, like, hey, are you going to retired uh retire?
00:20:05.359 --> 00:20:08.480
And I'm like, no, like I'm 35, I'm like actually super excited.
00:20:08.559 --> 00:20:13.359
And this is the thing is like, even if I were not employed the right now, I would still work on this kind of stuff.
00:20:13.680 --> 00:20:16.400
So I'm like genuinely like excited and motivated.
00:20:16.640 --> 00:20:22.160
And the good thing is I've been reflecting a lot over the years around like, hey, what is my superpower?
00:20:22.400 --> 00:20:27.599
And so my manager at some point did an exercise of like, what is your superpower and what is your cryptolites?
00:20:27.759 --> 00:20:34.960
And I found that my superpower is if you think about all the projects in tech, the successful one, they follow a S-curve.
00:20:35.039 --> 00:20:39.839
Where like at the beginning, this is very flat, and like this is more like the RD kind of thing.
00:20:40.000 --> 00:20:50.640
And then now find like the sweet spot of RD and product market fits, and now like it starts going to exponential, and then at some point, like the exponential ends, and now it starts like going flat again.
00:20:50.960 --> 00:21:10.400
And my sweet spot is at the very beginning of the S-curve, and to try to find like what are the people that have found like a really interesting RD thing that is now like ready to be productionized, and then start working with them and molding it, shaping it into a product that's going to be successful.
00:21:10.640 --> 00:21:18.960
And now, once it's like starts going and being successful, then I'm like, okay, my work is done, so I still need to be somewhat involved to get the credit and everything.
00:21:19.119 --> 00:21:27.440
But now I'm going to let it take off and like create a team around this, all those kind of things, and now figure out like what is the next like inflection point I can start.
00:21:27.759 --> 00:21:33.759
And I wouldn't and be honest, but I always think about like, hey, I've done all of those amazing things.
00:21:33.839 --> 00:21:38.160
Like, okay, how can I do like something bigger, better, and everything?
00:21:38.400 --> 00:21:44.000
And every time like it happened that I'm like doing one, so I don't have a secret, but this happened.
00:21:44.079 --> 00:21:44.720
So yeah.
00:21:44.960 --> 00:21:46.160
Yeah, that's amazing.
00:21:46.400 --> 00:21:56.319
I think one amazing thing reflecting back on React is just it feels like the S-curve is still going in terms of the exponential growth and how many people it touches.
00:21:56.720 --> 00:21:59.440
And we were chatting about a bit about this before we started.
00:22:00.160 --> 00:22:05.680
It feels like for a long time the JavaScript community was just for front-end engineers, and then it became for all engineers.
00:22:05.839 --> 00:22:16.640
And I think what we're seeing now is that the rise of AI and CodeGen is giving a boost to tools and technologies that for one reason or another the AI likes to use.
00:22:16.799 --> 00:22:20.640
And it feels like JavaScript and React is at the top of that list.
00:22:21.039 --> 00:22:28.799
I'm curious when you reflect back, the level of abstraction of React seems to have been perfect for a very, very long period of time.
00:22:29.039 --> 00:22:35.039
Were there crucible decisions that you guys made when you were developing it that you think have paid off over the long run?
00:22:35.279 --> 00:22:38.160
Jordan Walk is the one to get credits for this.
00:22:38.319 --> 00:22:41.119
And I was more like the hype man and like getting things.
00:22:41.279 --> 00:22:42.319
But there was a few things.
00:22:42.400 --> 00:22:45.759
One is like the actual model of programming.
00:22:46.000 --> 00:22:56.160
And so one of the things is going to be a bit technical, but one of the things which was super fascinating is the first time I actually met Jordan Walk, it was like three months after I joined the company.
00:22:56.319 --> 00:23:00.720
And I was like into frontend, and somebody told me, like, hey, you should talk to this Jordan guy.
00:23:00.799 --> 00:23:03.440
He's working on like some new front-end framework thing.
00:23:03.519 --> 00:23:04.960
Like you may be interested.
00:23:05.200 --> 00:23:07.920
And so I ended up like having a meeting with Jordan.
00:23:08.240 --> 00:23:16.000
And Jordan asked me like point blank, like a very simple question: what is the hardest thing in front-end right now?
00:23:16.240 --> 00:23:17.359
And I was like, okay.
00:23:17.440 --> 00:23:24.160
I didn't expect to like get some philosophical question out of this meeting, but I started thinking, I'm like, I don't really know.
00:23:24.319 --> 00:23:26.720
And what he told me is updates.
00:23:27.119 --> 00:23:38.559
And uh his reasoning is the first time you render a page, what you're doing is you fetch all of the data and you uh concatenate it uh like strings to get HTML and then you send it to the client.
00:23:38.720 --> 00:23:41.839
And this is very easy, you're just like taking the data, like sending it.
00:23:42.000 --> 00:23:49.599
But now the update is when it comes to now you click on buttons, and then like you need to remember like, hey, how did you actually like generate this button?
00:23:49.680 --> 00:23:53.519
And like what if you change this button, like what actually going to impact?
00:23:53.599 --> 00:23:57.920
And like there's this whole web of dependencies that is really hard to manipulate.
00:23:58.240 --> 00:24:06.640
And the interesting thing is a lot of the bugs we've had and a lot of the difficulty and the challenges were in this updates phase of the world.
00:24:06.880 --> 00:24:18.720
But if you go back to how we were doing PHP development, is you take all of the data, you send something to the client, and then when you click on the button, you just redo this entire loop again.
00:24:18.960 --> 00:24:24.720
And his philosophy was like, hey, why can't we do it the same exact thing on the clients?
00:24:25.119 --> 00:24:35.759
And in practice, the thing that really clicked for me was at first I was like, yeah, this is I think this would solve the problem, but it's going to be like super, super, super slow.
00:24:36.079 --> 00:24:39.039
And like two weeks later, I ended up being bored.
00:24:39.119 --> 00:24:44.559
And before that, I was working on the way to find guilds for your like video game.
00:24:44.720 --> 00:24:54.559
And uh I spent like so many months like hand optimizing, like, how do you filter through like thousands of things with like a bunch of different filters, and I ended up getting something working super fast.
00:24:54.720 --> 00:24:57.440
And I was like, okay, let's try this React thingy.
00:24:57.680 --> 00:25:01.440
And I ended up doing it, and this was insane.
00:25:01.599 --> 00:25:09.039
Like I spent like half an hour like building it, and it was like not as fast as my hand written thing, but in the same order of magnitude.
00:25:09.200 --> 00:25:11.759
And then I was like, oh yeah, like we want to something here.
00:25:11.839 --> 00:25:21.440
Yeah, and the reason why this is working is the space of the problem is that when you're showing a UI, you're limited by the screen size.
00:25:21.680 --> 00:25:25.359
And so in practice, you're limited by how many things you can show to the user.
00:25:25.519 --> 00:25:29.039
And the in practice is going to be like probably like 100 different things.
00:25:29.279 --> 00:25:37.519
But the computers are like way fast enough to show 100 things and like to recompute 100 things on every single like mouse move, mouse interaction.
00:25:37.759 --> 00:25:50.880
And so this is like why this actual problem has been like solved in my book, is because now we have a different paradigm that actually works for any kind of UI we can render for the humans to see.
00:25:51.119 --> 00:25:57.519
And so I think this is like I don't, and this is why I've like left a bit the React world, is because to me it's a solved problem.
00:25:57.759 --> 00:26:05.279
Sure, we can like have like the next version of React or like a different variance of React, but the programming model has not changed.
00:26:05.519 --> 00:26:12.240
And now we're no longer in a place where a lot of people are struggling building the existing things.
00:26:12.559 --> 00:26:19.519
Now people were actually looking for like the what is the next framework that's going to solve my problems, but now like people are not really.
00:26:19.759 --> 00:26:25.599
So are there any new pockets of innovation or things that have like sparked your interest recently?
00:26:25.920 --> 00:26:29.440
I think uh AI opens up like a whole new world of possibilities.
00:26:29.680 --> 00:26:34.240
And uh you mentioned around like how people are going to start like their coding journey.
00:26:34.720 --> 00:26:43.359
And I think that if I were a kid right now, well, you have two kids that are at the age where they are probably coding, so they're they're coding right now.
00:26:43.440 --> 00:26:49.440
Like we are like pair coding where they tell me what they want on the screen, and then I'm like actually doing the work behind the scenes.
00:26:49.519 --> 00:26:52.000
But the AI is like so nice for this.
00:26:52.079 --> 00:27:00.319
Well, you don't have to know everything I had to learn, and you can just say, hey, like cursor, like please build like something, and then like, oh, please change this, please change this.
00:27:00.400 --> 00:27:03.519
And then this is like how you actually get to learn how to program.
00:27:03.759 --> 00:27:07.119
So I'm really excited about this whole AI world.
00:27:07.440 --> 00:27:13.440
If we were to ask you the same question now that Jordan asked you, I guess a decade or so ago, what would the answer be?
00:27:13.680 --> 00:27:16.559
Front end right now is like in a really, really good shape.
00:27:16.720 --> 00:27:21.839
Now you can actually build like really quickly, and with AI you can actually bootstrap a lot.
00:27:22.000 --> 00:27:27.039
And for all of the hosting and CI and everything is like basically solved with Versal.
00:27:27.519 --> 00:27:31.440
And so the biggest thing for me is more like the database layer.
00:27:31.680 --> 00:27:38.720
So there's been like Firebase and Superbase and those kind of things, but to me it's still not a really, really like good experience.
00:27:38.960 --> 00:27:44.000
So one thing I want is like basically like how do we abstract away the entire database?
00:27:44.240 --> 00:27:52.480
And so that like, oh, now like on every single commit, you can maybe have like a different version of your database, and also the real-time aspects.
00:27:52.640 --> 00:28:00.480
And so, right now, a lot of the like real-time database are hacks where they're just listening to everything happening and sending you the whole thing.
00:28:00.720 --> 00:28:15.200
But for example, there's people that skip playing that are working on like a fully reactive database where, like, hey, every time you do something, it's going to recompute the minimum amounts of changes that are needed and send them to all of the clients, like the same way React is doing it.
00:28:15.519 --> 00:28:21.359
So I think the database world is the one that was going to be like the most amount of groundbreaking changes.
00:28:21.519 --> 00:28:27.279
And we're seeing this, we have like a new set of databases coming up every uh every month or every year.
00:28:27.440 --> 00:28:30.480
So I don't think we'll like find a real sweet spot there.
00:28:30.960 --> 00:28:32.240
Yeah, that makes a ton of sense.
00:28:32.319 --> 00:28:33.680
It's an area we've spent a lot of time in.
00:28:33.759 --> 00:28:45.119
We'll have the Series A in Neon that was recently acquired, and I think that it's been interesting to see for a long time the database world of such a different world and a different type of persona and a different type of user.
00:28:45.599 --> 00:28:51.759
But as front end has become full stack engineering, you see the users combine.
00:28:51.839 --> 00:29:02.400
And I think increasingly you see companies like Neon and others try to take the best practices of front-end development and apply them to the way databases feel to the developer.
00:29:02.720 --> 00:29:09.359
And so I'd be very curious to see in the coming five or 10 years what the database evolution starts to look like.
00:29:09.680 --> 00:29:14.640
So let's move on to Exceledraw and what that looks like inside of Meta today.
00:29:14.880 --> 00:29:16.559
I was at a dinner with you recently.
00:29:16.720 --> 00:29:19.599
I think the whole table, potentially the whole room, was using it.
00:29:19.759 --> 00:29:22.960
How did it go from literally a whiteboard to what it is today?
00:29:23.279 --> 00:29:24.960
The original story is very interesting.
00:29:25.119 --> 00:29:29.920
So uh it was January 1st, 2020, and I was working at Facebook.
00:29:30.000 --> 00:29:38.319
I'm still working, but we have to do every six months a cycle where you have to do like all of the peer feedback writing, your manager, your self-review.
00:29:38.480 --> 00:29:42.640
And this is something that is like triggering my procrastination like crazy.
00:29:42.960 --> 00:29:48.319
And one thing I've decided to do this year is to do something I call active procrastination.
00:29:48.480 --> 00:29:51.839
So I know I'm not going to be able to write the feedback until the very last minute.
00:29:51.920 --> 00:29:55.839
So at least let's figure something out that I can actually be productive with.
00:29:56.000 --> 00:29:59.039
And so I had this idea of writing a blog post for a long time.
00:29:59.200 --> 00:30:14.480
And so I decided, okay, let's use a Zwebr, which is a whiteboarding tool to uh draw handwritten like diagrams that I used, and I used a demo website, but unfortunately, like the demo website was and I was like, ah, come on, I cannot even like do what I wanted to do.
00:30:14.640 --> 00:30:17.359
And so I decided to go like one level deeper.
00:30:17.519 --> 00:30:20.960
And how hard would it actually be to re-implement Zwebbler?
00:30:21.200 --> 00:30:28.640
And so I ended up like opening code sandbox and start hacking on this with Rough.js, and I posted something on Twitter and it exploded.
00:30:28.799 --> 00:30:30.480
Like 200 people liked it.
00:30:30.640 --> 00:30:34.880
And I was like, oh wow, actually, like people are really interested in these kind of things.
00:30:35.039 --> 00:30:38.559
And so I ended up the next day opening a GitHub repo.
00:30:38.720 --> 00:30:45.440
And one thing I've been doing is uh creating 25 issues around like all of the things that like should happen there.
00:30:45.680 --> 00:30:49.680
And so I basically try to not snipe people from actually contributing.
00:30:49.920 --> 00:31:01.200
And one thing to get them hooked is whenever somebody actually submitted a pull request and I merged it, what I would do is actually give them like commit access and be owner of the repo.
00:31:01.440 --> 00:31:08.480
And so I know like a very few people, like people are doing this, and like people are afraid that like, hey, what could they do like Nefariusly and everything?
00:31:08.640 --> 00:31:12.160
But for me, it's like, hey, it cost me nothing, like this product doesn't exist.
00:31:12.319 --> 00:31:16.720
And now they actually are going to be a lot more motivated to actually make it into something.
00:31:16.960 --> 00:31:20.240
And so I ended up like going there and uh iterating.
00:31:20.400 --> 00:31:25.440
So I want to say like I did write my feedback, so I'm like a responsible person.
00:31:25.680 --> 00:31:33.279
And uh yeah, and three months later, what happened is COVID hit and everybody was sent home.
00:31:33.440 --> 00:31:43.920
And so I ended up receiving a lot of pings from people hey, you should actually quit Facebook and start working on this Excadroll thing full-time because everybody is the virtual whiteboards.
00:31:44.079 --> 00:31:47.839
And at this point, I was like, nope, like I don't want to quit Facebook, I'm very happy.
00:31:48.000 --> 00:31:53.359
But I do think that like having a company to actually like build like a SaaS product around Excadro makes sense.
00:31:53.519 --> 00:32:02.960
And so I reached out to all of the top contributors of the project, and the actual top contributor was working on a startup, but the startup wasn't going super well.
00:32:03.039 --> 00:32:05.920
And I was like, hey, do you want to pivot and like start working on this?
00:32:06.160 --> 00:32:07.119
And he said yes.
00:32:07.359 --> 00:32:12.240
And so David, uh with his co-founder, ended up building a company around Excadrol.
00:32:12.319 --> 00:32:13.839
And that's been like very successful.
00:32:13.920 --> 00:32:24.000
Now there's like 10 people working full-time, and uh, so if you want to use Excadro within your company, now we have like a SAS offering, we just got sucked to compliance, so that's no excuse anymore.
00:32:24.240 --> 00:32:24.799
That's awesome.
00:32:24.880 --> 00:32:30.960
I think the lesson is if you have downtime on your product, Chris is gonna come and build an open source competitor.
00:32:32.000 --> 00:32:33.759
How do you see the market evolving here?
00:32:33.839 --> 00:32:40.880
I mean, we've seen in our world other startups pop up as well that probably don't have the quite open source traction that Exceledra has.
00:32:40.960 --> 00:32:42.079
But what does the future look like?
00:32:42.319 --> 00:32:49.200
I think the future is like there's going to be like some kind of whiteboard experience on every single software stack ever.
00:32:49.359 --> 00:32:50.799
And so we were talking about AI.
00:32:51.039 --> 00:32:54.480
So good Firebase Studio, just integrated Excalibur.
00:32:54.559 --> 00:32:58.079
So what you can do is ask, hey, please build like some whatever app.
00:32:58.240 --> 00:33:08.480
And then they have a little scribble where they can show your screen, the actual app that is built, and then let you say, like, hey, put an arrow there and say, like, hey, please make this button red or like those kind of things.
00:33:08.559 --> 00:33:14.400
And now, like, it's taking your screenshots, sending it to the machine learning model, and then like do all of the things that you want it.
00:33:14.559 --> 00:33:19.279
So I think there's a lot of very deep integration that like should happen everywhere.
00:33:19.519 --> 00:33:26.160
And I'm seeing at the AI engineer conference, like half of the slides I've had like of the talks I've added to use Xcal Draw.
00:33:26.400 --> 00:33:30.319
But right now, there's no Xcale Dro integration with PowerPoint, Google slides.
00:33:30.480 --> 00:33:39.440
And so I think the world I see is that we are going to see the integration of whiteboarding experience to like every single app, and it's going to be commonplace.
00:33:39.599 --> 00:33:40.720
So Yep.
00:33:41.039 --> 00:33:41.759
That makes sense.
00:33:41.920 --> 00:33:43.279
What advice would you give?
00:33:43.440 --> 00:33:46.559
We have a lot of founders, I guess the audience to give you some background.
00:33:46.720 --> 00:33:50.559
We have a lot of founders that listen, or folks who are thinking about leaving their company and going to start something.
00:33:50.720 --> 00:33:56.640
What advice like would you give younger founders who are thinking about building a dev tool company or something with an AI infrastructure?
00:33:56.799 --> 00:33:58.960
Are there any areas that you would avoid?
00:33:59.279 --> 00:34:07.440
So the biggest advice I would give everybody is don't quit your company until you have a working product and people are using it.
00:34:07.599 --> 00:34:14.800
And the thing which is very interesting in this day and age is the cost of building this kind of company is actually like almost zero.
00:34:15.039 --> 00:34:19.840
And you can create a prototype and get traction while doing this on the nights and weekends.
00:34:20.000 --> 00:34:29.360
And so there's no reason to put you in a situation where you're going to like be forced to make it successful compared to like, hey, now you can just like do it on the side.
00:34:29.519 --> 00:34:37.199
And at some point, as it becomes more successful and you know it's going to work out, now you can like actually quit your day job to actually do it full-time.
00:34:37.280 --> 00:34:42.400
And now you don't, like, you're going to have a lot lower stress level because you know it's working.
00:34:42.559 --> 00:34:49.920
And sure, you won't have as much time, but in practice, I haven't found that time is the critical factor in this.
00:34:50.079 --> 00:34:54.079
It's mostly around what is the right idea, what is the right problem you want to solve.
00:34:54.320 --> 00:34:57.119
So this is my biggest advice I gave everybody.
00:34:57.280 --> 00:35:01.039
They're listening to me, like, no, but this is what I would say everybody.
00:35:01.360 --> 00:35:09.920
Just gonna ask, and maybe before we go to quick fire round, you obviously, in not that much time, have built many, many very interesting projects.
00:35:10.079 --> 00:35:11.280
What's on the horizon for you?
00:35:11.679 --> 00:35:16.800
The way I'm always thinking about it is I'm trying to figure out like what is bothering me, what is annoying me.
00:35:17.119 --> 00:35:19.840
And I have a long list of things that are bothering me.
00:35:20.000 --> 00:35:28.000
But the thing what you need to figure out is something needs to bother you like crazy, but there also needs to be an actual solution for this.
00:35:28.320 --> 00:35:35.199
And the thing is, I cannot predict what are the good solutions are going to when they're going to come up and everything.
00:35:35.360 --> 00:35:46.559
And so the way I'm managing my time is I basically talk to a lot of people, try to figure out like, hey, what is everybody thinking about, and like very similar to like what you're doing like in the VC world.
00:35:46.800 --> 00:35:56.320
And then at some point, when I hear someone saying, like, oh, I have this particular like solution, and I'm like, oh, I have this particular problem and it would be a match made in heaven.
00:35:56.559 --> 00:36:06.719
Now I work my schedule to basically drop everything and then start like focusing on it like hardcore for like uh six months or a year to really like really make it take off.
00:36:06.960 --> 00:36:13.119
And so this is the kind of thing is it's very unique in the way I approach this like within the company.
00:36:13.199 --> 00:36:16.800
Like most people are just doing whatever team they're on and like doing those kind of things.
00:36:16.880 --> 00:36:24.159
But I have this more like entrepreneurial mindset for this, and it's also like finding a really good manager for actually making this happen.
00:36:24.239 --> 00:36:30.559
So I'm really happy with Tom Valin right now as my manager who's like letting me do this kind of like side quest, like all them.
00:36:30.719 --> 00:36:39.360
So now, in terms of like the specific ones within the company, we have to display profiling information in many shapes or forms.
00:36:39.599 --> 00:36:45.519
And the issue right now in the uh ecosystem, there's not a really good profile like trace viewer.
00:36:45.760 --> 00:36:53.519
And so the best one we have is the Chrome trace viewer that people have hacked to render many other things, but it has a lot of limitations.
00:36:53.679 --> 00:37:00.320
And so we have an internal project that is spending a lot of time, a lot of like phone engineering to make it super fast so you can display.
00:37:00.400 --> 00:37:09.280
I think uh the maximum we had is like a 200 gigabyte stack trace, and you can just infinitely zoom on it and pan like C FPS on the on the client.
00:37:09.440 --> 00:37:13.920
So this is like the kind of thing like right now is waking me up at night.
00:37:14.159 --> 00:37:21.280
But again, this is something within the company, and maybe one day it'll be open source, but it's less useful for the audience.
00:37:21.599 --> 00:37:22.639
Okay, we'll stay tuned.
00:37:22.880 --> 00:37:24.239
Should we end with a quick fire round?
00:37:24.880 --> 00:37:27.440
If you left Meta tomorrow, what startup would you join?
00:37:27.760 --> 00:37:28.719
Probably Versell.
00:37:29.440 --> 00:37:30.400
That's what we like to hear.
00:37:31.679 --> 00:37:33.519
An activity you do outside of work.
00:37:33.840 --> 00:37:38.800
So my girls nine and eleven, and they are super into biking.
00:37:38.880 --> 00:37:44.239
And so every evening uh we spend like an hour and a half to go uh from my house to stand forward and back.
00:37:44.559 --> 00:37:46.880
So it's like super interesting and get some exercise.
00:37:47.199 --> 00:37:47.679
Very fun.
00:37:47.840 --> 00:37:48.320
That's amazing.
00:37:48.559 --> 00:37:50.639
What's the hardest thing you've done in your career?
00:37:51.039 --> 00:37:53.039
Letting go of specific projects.
00:37:53.199 --> 00:38:01.519
So as you can tell, I'm very attached to my babies, and I had to learn how to go to do something else and like see it prosper without me.
00:38:01.679 --> 00:38:03.280
Yeah, kids three through six.
00:38:03.440 --> 00:38:06.480
Your favorite open source developer tool that you haven't contributed to?
00:38:06.719 --> 00:38:07.840
I would say like VS Code.
00:38:08.320 --> 00:38:08.639
Awesome.
00:38:08.719 --> 00:38:09.440
Well, this was fun.
00:38:09.599 --> 00:38:10.400
Thank you for coming on.
00:38:10.639 --> 00:38:11.440
Thank you, Samadia.
00:38:11.599 --> 00:38:12.239
It was super fun.
00:38:12.400 --> 00:38:13.519
Thank you, Chris.