We talked to Shawn Wang, a full-stack developer who works on Developer Experience at Netlify, helps moderate /r/reactjs, and teaches React and TypeScript at Egghead.io

Shawn Wang, a proud full-stack developer and, as he calls himself, an infinite builder from Netlify, has talked to React Advanced about his web development career, projects in open source, the decision to study Machine Learning, and the importance of building and being active in the community. Shawn is coming to London to give a talk at React Advanced Conference, Oct 25, 2019.

Hello Shawn, and welcome to the interview with React Advanced! Please, share your story. How did you get passionate about web development?

I used to work in finance and was basically an "Excel monkey:" wrote financial models in Excel, ran the numbers, tried to make decisions based on that numbers. Eventually, handwriting formulas got too much, and so I learned VBA. Then, my spreadsheets got so big, Excel started crashing, so I learned Python and Haskell to do the number crunching.

All of it was informal: learn-on-the-job type of stuff. In the end, I realized that I enjoyed the coding part of the job the most; however, I was also the bottleneck - if people needed some analysis done, they yelled at me and I hit the button. I finally thought that if I only learned to make user interfaces, I could have taken myself out of the equation and started writing actual software products people would buy and use. That had been my seven-year journey towards realizing I wanted to do web development.

Can you, please describe your previous work experience culminating in your current position, working on Developer Experience at Netlify?

I had held only one dev job prior, maintaining a design system at a large hedge fund in NYC. It was good, but not great. I started focusing on the React community a lot more seriously in 2018, becoming active in meetups and on Twitter/Reddit. I became a moderator on /r/reactjs and got accepted for my first conference talk in August. I did all of it in my free time. Eventually, that got me noticed by Netlify, who were looking for this kind of community involvement and React expertise.

How did you get involved with egghead.io? Do you think mentoring and teaching is your ultimate calling?

I got invited by Joel, one of the egghead.io founders. I simply took a project I was working on and turned that into a course on Storybook, React and Typescript, and that did very well. I'm not sure teaching is my ultimate calling since it requires a lot of patience, but I enjoy doing a bit of it and egghead is a fantastic place to do it.

How would you describe your involvement in Open Source? How many projects have you contributed to?

Open Source is important because it lets us learn for free and also dramatically lowers the cost of development. My first big contribution was to React, and I documented the process in a talk now featured in the React docs. I have no idea how many projects I have contributed to.

What does matter to me now is that I go deep rather than broad. I also look for projects where no one else is involved (so nothing would happen or it would die if I didn't get involved), rather than projects that don't need me (like React).

What's behind React Typescript Cheatsheet? Why did you feel compelled to write it? Why Typescript as opposed to JavaScript?

I felt compelled to make it because I was learning TypeScript for work and I felt the official docs did not serve my needs very well. So I just made my own cheatsheet of tips I picked up because I found myself constantly looking stuff up. Eventually, other people started contributing and now it has blown up into a whole set of cheatsheets.

I think the tagline is very appropriate: TypeScript is JavaScript that scales. The common criticism of TS is that it requires a build step and it may be replaced by official JS types in the future. For my purposes, these costs are small, and the benefits far outweigh the costs.

38% of production bugs at Airbnb could have been prevented if they used TypeScript. People who think this could have been addressed with more tests seriously underestimate Airbnb testing culture, and also discount how types can complement tests. In 2019, the burden of proof is no longer on TypeScript advocates.

Are you studying Machine Learning? Why did you decide to study the subject?

I am indeed taking some ML courses. I think my impact is enhanced by leverage. There are many forms of leverage, but the software, in particular, offers leverage through automation and scalability. This is very attractive to make use of.

I don't intend to be a professional ML engineer but I think its anticipated importance in my lifetime warrants some study now. In particular, I am interested in computer vision (which is unreasonably effective) and generative adversarial networks. Additionally, I am doing it via the GATech OMSCS, which will help give me some formal qualifications for this second career. (Completely worthless except for immigration bureaucrats to check a box.)

What talks have you given in recent years? Why do you think it's important to participate and organize conferences within the communities?

These are all the talks I've given in recent years, so if anyone's interested, please take a look: https://www.swyx.io/talks/

I love to participate in conferences to meet people and to Learn in Public, but I would probably never organize conferences because it is so much work!

If you could organize the world in one of three ways - no scarcity, no problems, or no rules - which way would you do it?

No scarcity. Life would be boring with no problems, and chaos with no rules. At least with no scarcity, our problems would merely be "first world problems." But no child has to go hungry.

Are you excited about the upcoming conference in London? What are you going to talk about and what are your expectations from the event?

Yes! Very! I'll be speaking about React Hooks under the hood, where we will live code a React clone from scratch to practice closures and establish a great mental model for understanding how Hooks work.

The interview was prepared with the assistance of Marina Vorontsova, a copywriter from Soshace.com. Soshace is a hiring platform for web developers: hire a developer or apply for a remote job.