ReactEurope interview #17: Sebastian Markbåge

Sebastian Markbåge

ReactEurope is approaching in less than 40 days now and we’re getting close to the end of our interviews serie. This time we have Sebastian Markbåge from Facebook. Sebastian has been working on React core since the beginning and is also a member of TC39 where he helps shaping up new standards he and I think the ReactJS community cares about.

At the conference, Sebastian will talk about the “DOM as a second class citizen”. Here is the interview:

Tell us a bit about yourself, where are you from, what do you do?

I’m originally from Sweden where I had a few tiny start ups and worked as a consultant for small and large enterprises. Building backends and UIs with various languages. I’ve been a web guy since the 90s. When the client-side JavaScript scene regained steam around 2006, I felt at home. I learned MooTools, made some contributions and lots of life long friends in that community. That lead me to Facebook in Menlo Park, California where I now work as a tech lead on React.

What were you using before React?

MooTools.

What made you switch to React?

Interesting question. Well, first a little background. I had already built a data visualization tool using a recent rewrite of ART (a MooTools spinoff for VML/SVG/Canvas rendering). I was also heavily inspired by new functional UI paradigms like D3 and immediate mode UIs. Right before I joined Facebook I had built an mobile offline data synchronization system built completely on immutable data structures (from server to client). I designed it that way to avoid the complexities of delta change tracking of data synch.
The UI was well structured and componentized too. However, there was a lot of boilerplate and a lot of state mutation that could go wrong. The system was very fragile.
I started at Facebook at the same time Jordan Walke was developing the initial version of React. They were just rewriting the comment section using it. This was before Pete Hunt created Instagram’s web experience using React as the first big end-to-end experience. So this thing was brand new.
My first project was going to be to start building a new set of Insights products together with Mike Pinkowish. At this point something just clicked when I saw React. This was the missing piece that made state management easier than immediate mode UIs, easier to componentize than D3 and avoids the need for delta change tracking of data.
One thing people don’t realize about Facebook is that there aren’t any architects. There isn’t some management team that tells everyone what tools to use. Every team choses their own tools. There is also a lot of trust in the organization as a whole to make the right technological choices. We have no hidden incentives that would make us pick anything other than the best technology for the job. Unlike many other large organizations, teams actually end up picking the same tool because there are many benefits for them to do that.
However, at the time, that tool wasn’t React. React wasn’t an instant success at Facebook. Every team needed to be convinced. I was sold early on but it was not easy to go against the grain and jump on this experimental technology. We did though. I built out React ART and a charting library for Facebook business facing apps. More and more teams were jumping on building increasingly better experiences after that. After that I started working full time on React Core.

What’s your greatest react projects, open source or not that you’d like to tell the world about?

By the time we open-sourced React we had a pretty good idea what good practices were. However, long before that when we started using it, we had no idea where we were going. That left us with a lot of legacy APIs and patterns. They’re also intricately connected and spread over the Facebook code base. I feel like I’ve managed to mostly decouple those things or upgraded existing patterns to new uses. This is important to help us move forward and not stagnate as a framework. It is dirty work, but important work.
The project that I’m most excited about is something very different. Come talk to me in person for more details. ☺

You’re a member of TC39, could you tell us a bit what you do there and which ideas/standards you are trying to push?

Basically I’m trying to represent the immutable and functional community within the JavaScript community. I feel like this is very much a minority at this point but we’re growing larger and these concepts are becoming mainstream.
I’m trying to make it easier to work with immutable data. For example using syntax extensions like the object property rest / spread operators.
I’m also trying to enable possibilities that immutable data provides which isn’t safe to emulate using mutable data. For example, lock free and marshaling free transferral of complex data structures between workers.
We’ll see which direction this ends up going in terms of concrete proposals but I think that the committee is very much on board exploring this in one form or another.

What do you expect from the conf?

I expect a lot of interesting discussions. One thing that is great about our community is that we’re not afraid to voice negative feedback. I expect to get a lot of good feedback and walk away with a bunch of new ideas for how to make React even better.

Anything else you want to tell future attendees?

Conferences isn’t just about listening. It is also about sharing ideas. Take an opportunity to talk to people and voice your concerns. This conference will have some of the best smartest and knowledgable attendees in the industry, including many Facebookers and other open source project owners. Many of them are normally very busy people working away at what they do. Take this opportunity to seek them out and talk to them.
I’ve been to a few international conferences. There is one thing I wish people would voice more openly:
Even if English isn’t your native tongue and if you feel uncomfortable speaking English, still reach out. Sometimes technical discussions can be word battles and communication skills are key. If you don’t feel comfortable asking your question or making your point in English, show the code. Code is a universal language (despite all the english keyword). At Facebook our motto is: Code wins arguments.

There you go, you now know a bit more about Sebastian and hopefully you will be able to meet him personally at the conf.

If you haven’t done so, make sure to grab your ticket to the conference before they’re all gone and see you there!

Make sure to follow @ReactEurope on Twitter to get the latest news about the conference and interviews.