Shawn Wang

Transcript from Friday June 12th, 2020

# Q: What do you think about writing on your own Blog vs Writing on a website like dev.to or hashnode? – yashguptaz

A: I do both! https://www.swyx.io/writing/devto-cms/.


# Q: Most innovative React libraries? – The Benevolent Dictator

A: I gotta say I have a soft spot for Immer https://www.reddit.com/r/reactjs/comments/h0npbn/immer_v70_new_current_api/ and react-query and I also think Redwood and Blitz are doing awesome things in the meta-framework side.


# Q: What do you love the most about JS development and vice versa (hate)? – seasmurph

A: JS tooling! https://www.swyx.io/writing/js-tooling/ can't live without them, and they can be so much better.


# Q: How do you see the React library in the next 5 years? is it going to be replaced by other libs like Svelte or others ? Do you still recommend people using this? – Masoud

A: No, not replaced. React is extremely successful and has a huge community. I think it has different goals from Svelte. Currently, I recommend React for xplatform apps, Svelte for interactive sites.


# Q: Do you have any suggested tutorials for React beginners? – riz

A: Tes we pin good free tutorials on the /r/reactjs beginners thread. https://www.reddit.com/r/reactjs/comments/gukkex/beginners_thread_easy_questions_june_2020/


# Q: Is now a good time to learn React and start learning it with hooks only (and forgot class-based components)? – TotomInc

A: Now is a VERY good time to learn React. Unfortunately, you cannot omit class based components, unless you never intend to work with anyone else's React code ever. Legacy is a powerful thing. We are in a weird transitional time where in an effort to make React simpler in the long term, we made React more complicated in the short term. Deal with it.


# Q: Do you think adding subtyping to TypeScript was a mistake? – Yugiohxlight

A: No idea. I think we should be happy to admit when we don't know things 🙂. By the way I think it is a good pitch for reasonml.


# Q: When should components be memoized? – esfox

A: When they are expensive to render.


# Q: Is it just me or does a lot of the AWS UX seem really unintuitive and a pain to work with? – rixcy

A: Not just you. We feel it too. Working on it.


# Q: Why are webmentions important? – b3u

A: They help keep the web "indie". I like that it gives credit to people on their own domains. However the implementation leaves much to be desired. For those who want to learn more about webmentions - https://www.swyx.io/writing/clientside-webmentions/.


# Q: Welcome. It's so nice to have you here and congrats on joining Amplify!

Do you have advice on making the switch from dev to dev rel/advocate type roles? How does an engineer break into that space when so few companies have a need for the role especially if we aren't twitter famous already :P – Sonicrida

A: Hey I see you 🙂. Well fwiw when I got my first devrel role at Netlify, I had not even given my first conference talk, I had given only 2 meetup talks (React NYC meetup), and wrote a few crappy blog posts. However, I was very very consistent in learning in public and practicing marketing for others. If you market yourself well, other companies will want you to help market them. https://www.swyx.io/writing/marketing-yourself/


# Q: Do you think React native has a future on apple devices, or do you suspect apple will eventually mandate SwiftUI? – Pat

A: I want to caveat that I basically don't do any RN. Last time I touched RN was when I interviewed with g2i 🙂. Imo it has a future. The investment in RN is HUGE. Also, compiling to SwiftUI is not out of the question. But Idk.


# Q: Where does Amplify need to improve the most? – RossWilliams

A: Oooh nice one. Everywhere lol. I have spent the last 2 weeks filing issues internally. As far as "The Most" - I think the auth experience needs to get a lot better. Not everyone wants to use Cognito and the interaction between auth and other services is not well documented. That's my job. 🙂


# Q: Why is JAMstack getting so much popularity these days? – junaid

A: Because of my old team at Netlify! Jk. I have given a bunch of talks about this https://www.swyx.io/speaking/jamstack-rise/ - It is the confluence of 5 different trends all coming at once. we are collapsing layers between CI/CD and CDN. Btw, the static site generator version of JAMstack will be even more popular in future because of Web Vitals prioritizing minimal relayouts. It's faster, cheaper, (comparatively) more secure.


# Q: What's the best place for getting online freelance work on React or can you give tips on it? Thanks. – arsalan

A: No idea, I only freelanced for 2 months when I was looking for my first job. We have a Who's Hiring and Who's Available thread on r/reactjs https://www.reddit.com/r/reactjs/comments/gudtmn/whos_hiring_june_2020/ you can check out.


# Q: Is Blazor) from Microsoft going to overtake React and Angular? – MelvinPhasor

A: lol wat no.


# Q: Why did you choose to create r/reactjs? Any motivation behind it? – meet_zaveri

A: I did not create /r/reactjs! Our top mods disappeared a long time ago. I only became a mod because Dan Abramov wanted my help to clamp down on framework bashing.


# Q: What React library (redux, redux saga, context api, etc) would you recommend to start building large scale apps? – iamaul

A: We used Redux to build Netlify and it works very well for us. I have never liked redux saga but tbh I never gave it an honest shot. I would be interested in MobX and Recoil for large scale apps too, but unfortunately have not had production exp with them.


# Q: Any clue what might come after React or which direction it will evolve towards? – The Benevolent Dictator

A: https://www.swyx.io/writing/js-third-age/

https://www.swyx.io/writing/react-distros/ double answer 🙂.


# Q: Where do you see AWS can make a difference when writing frontend applications? I'm not talking about serverless, I'm more interested on the web part. – Mathis

A: Ah. Have you seen Amplify Datastore? Basically the idea that the upper limit to how fast we can make apps feel is that we have to write all our operations to a local cache and let it sync to backend with a deterministic contract. We then also get offline-first apps for free. https://gist.github.com/sw-yx/108d90755aa3f34401dcb488c2f0f5aa


# Q: Do you know libs, articles or other, that help to handle redux state updates in a canvas context (like PIXI.js) ? More generally, uses of canvas in React-Redux env. – Chnapy

A: No, sorry. Ask @acemarke.


# Q: Why do algorithms play such a big role in the job hiring process? Are there elements of every coding project that require data structure implementation? – dchavours

A: Traditionally we hired engineers to write low level/systems code. Over time, the need for that decreased as we moved higher and higher up the stack. However, interview practices have been slow to evolve. https://www.swyx.io/writing/osi-layers-coding-careers/ However you might like knowing both my technical interviews at AWS and Netlify involved no algorithms.


# Q: Didn't realize you had joined AWS, how was your interview experience at AWS? Any blogs coming up about that? Interested especially you come from a non-CS background like me & I would love to join the FAANG gang someday. – _binarynumber

A: Thanks! yea it still feels weird to say that I'm part of FAANG now lol. It used to be so unattainable back when I was in bootcamp. Now I am actively saying no to fb 🤷‍♂️. I don't have plans to blog about it because I think my own journey is quite unique. However, I would advise to take the recruiter's tips very seriously. They REALLY care about the 14 leadership principles at Amazon. If you want to be hired into a senior role you have to have good stories that relate to most of them.


# Q: What do you think about Deno? Do you think it'll go mainstream one day? – bellu, Junaid

A: Yes. It will be a key part of the Third Age of JS https://www.swyx.io/writing/js-third-age/. However, most platforms will simply support both node and Deno and I don't think node dies.


# Q: How do you guys use React at AWS? – rhesa

A: React is used HEAVILY at AWS. There are so many engineers using it that we hold our own internal React Conf with a few hundred people. I'm afraid I don't know much more than that. I will be interested to find out more once COVID clears, and I can go visit Seattle.


# Q: Thanks for the reply! What is your day to day looking like now (or what will it look like as you settle in?) I'm really curious about how much you interact with the main devs on the team to learn more and become an expert with Amplify so you can teach the rest of us. What is that process like and how much time do you spend learning vs content creation/delivery. – Sonicrida

A: Honestly right now im just 100% learning lol. I had my first meetings with PMs yesterday. I normally LOVE to work directly with the dev team, and did that at Netlify, but at AWS my sense is that won't be as possible anymore (because of team structure and size). Sorry I don't have a set % of learning vs content creation, probably in your first year you are mostly learning and you only really get on your content game in your second year. But don't forget the other big part of the job is helping beta test new features, visiting customers and collating product feedback.


# Q: What are your thoughts on TypeScript? Is it still worth learning in 2020? – bellu

A: Uh, YES!! LEARN IT. look at how many tools have switched https://twitter.com/swyx/status/1260888049958838272?s=20.


# Q: For someone who wants to become a better engineer (not just coding and leetcode stuff...) Does your book discuss topics like technical communication, engineering documents and other skills that are sometimes lacked? Can you give an example of one? – dilraj

A: We have a whole chapter on writing, and the Senior Dev chapter discusses a lot of the other organizational/metalearning skills needed. Basically the whole book is written to help you discuss the non code part of coding careers 🙂. Table of contents here https://gumroad.com/products/bAZJq/.


# Q: Is it good idea to convert legacy React application into TypeScript? – Banu

A: If it isn't broken, don't fix it!!!!! However, if you intend to maintain it for the long run, then yes TypeScript is a very good tool for that. It is meant to help you refactor incrementally. Have a look at how millie at TinyMCE and Brie at airbnb did their migrations. HUGE codebases. A lot of benefit. https://react-typescript-cheatsheet.netlify.app/docs/migration/intro/#misc-migration-stories-by-notable-companies-and-open-source


# Q: I believe you were doing Georgia Tech's OMS program, how is it going and what is your review of it? Would you recommend it for non Computer Science folks to take it? – Andrei_Calazans

A: I dropped it after 3 classes. basically Netlify got super intense, and I had to choose between my class load and real work. I still want to pick it up again someday. I 100% recommend it for non CS folks because its cheap, and it helps fill the gaps you may have. Also, having a Msc in CS helps with hiring in some cases. A lot of people take it and focus on ML; do that if you must, But I was more keen on CS basics like compilers, databases, operating systems.


# Q: Do you think social skills play an important role in the success along with technical skills? – junaid

A: Yes! Even though I'm not the best at social skills myself. But clearly I think it is important, that's why I wrote a 450 page book on all that stuff. 🙂


# Q: How to get SEO to work in React app built using CRA? – MelvinPhaser

A: Prerender! https://create-react-app.dev/docs/pre-rendering-into-static-html-files/


# Q: How are you swyx? – thetruthseekah

A: I'm ok! My fingers are a bit aching from typing so much. Also I'm stressing out about my Svelte Amsterdam talk later haha https://www.meetup.com/Amsterdam-SvelteJS/events/266919637/.


# Q: Hey Swyx! What editor theme(s) do you like? 😄 – kpollich

A: Lol I default to Ahmad Awais Shades of Purple recently.


# Q: Classnames vs clsx which is better? – fgrgec

A: I have only used classnames.


# Q: What do you think of ssr on golang? – Tee-Sean

A: I don't think anything of it haha. I had to write some golang once, and it was a fine experience, but I didn't feel more productive than in JS. Interested in learning rust someday.


# Q: Can React JS be the most dominant ever JavaScript library? – Vradhi

A: Isn't it?


# Q: Is it better to keep using GraphQL or Redux for all projects? OR use both of them? OR other better API like hooks maybe? – akram-001

A: Use what you enjoy. I think GraphQL needs a lot more tooling to set up, and you only get the most benefits if you can flow the types down from server to frontend. Redux has less setup as it is mostly just frontend.


# Q: How can someone learn and contribute to React internal codebase? – einstein92

A: I HAVE THE PERFECT TALK FOR YOU LOL https://www.swyx.io/speaking/contributing-to-react/.


# Q: How to get started with sponsorships for projects? – MelvinPhaser

A: Sorry, I don't have any experience with that.


# Q: Hey Shawn! Do you have any advice on people graduating bootcamps in this economy? – D—

A: It's bad timing. A lot of senior engineers are out in the market right now but realize that these are temporary displacements. The overall world demand for software has 2x'ed over this pandemic. We WILL want more software engineers than we have ever had before. You WILL have a job but maybe not right away. I recommend searching for 3-6 months, and if you have no luck, taking a tech-adjacent job like support, docs, technical sales. Once you are inside a company it is usually quite easy to switch to dev after 1-2 years. It's much better to do that than to stay unemployed for the same time period.


# Q: What do you think of Recoil for state management? Given there are so many state management options for React devs right now, do you think Recoil has something to offer? – react_guy

A: Atomic updates is very interesting. However, it is probably not needed as a general purpose tool because we need a lot more out of our state management tools than just that. Still, it is a good one to know about. 🤷‍♂️


# Q: Best way to prepare for FAANG? – Tee-Sean

A: For Google it really is a lot of technical/algorthm interviews. For Facebook see Aaron's post https://twitter.com/aarondjents/status/1266149438554169344. For AWS it is VERY team dependent. I can't comment on the other two.


# Q: Do you think that learning React hooks from now is good since it is still under development? – akram-001

A: React hooks is production ready, learn it now!


# Q: Do you see a future where Rust/WASM dominates client-side business logic, and JS/React are only used in presentation layer? Yes - what is holding it back? No - why will JS or TS hold on? – RossWilliams

A: Not either or. Serializing across JS <-> WASM has a cost. Maintaining a polyglot codebase has a cost. Companies that can get by with JS/TS will do only that. You will only want to use WASM when you have an existing codebase in another language or have very heavy compute needs. I do think that build tools and libraries will increasingly have Rust/WASM cores for hot code paths. But app developers will largely not have to mess with that.


# Q: How to get started with advanced concepts like microservices in JS? Any source. – MelvinPhaser

A: What makes you say it is advanced? Anyway I believe this question is too broad to have a good answer. Please be more specific about why you want to know and what you want to know.


# Q: What do you think about Flutter vs React native? – xryn

A: Tried Flutter ONCE two years ago. stdlib is very good, maybe better than RN but I have trust issues with anything from Google.


# Q: What is your favourite frontend library and why is it React? – Kosai106

A: React pays the bills and has a great core team and community.


# Q: When will the DOM go away? My hypothesis is AR will be a good time to make the switch to a better foundation. – The Benevolent Dictator

A: Good luck with that one... they use the DOM in SpaceX rockets 🙂.


# Q: What do you think which blog can helps me to learn mono-repo in the serverless? – Steven James

A:


# Q: Are there any libraries that opt for widgeting React components for SSR? – I hate Internet Explorer

A: Can you please define widgeting? I don't think I understand that.

Follow-up: Adobe Experience manager runs React as independent widgets. I wanted to know if any React libraries are also like that.

A: I don't know about that, but you can look at this https://selleo.com/blog/how-to-create-embedded-react-widget. It won't automatically work with SSR though.


# Q: Do you have any particular system of productivity that helps you get so much done? - D—

A: I'm actually very lazy. Idk. I think I could be a lot more productive but as for writing, sure, here is my system https://www.swyx.io/writing/writing-mise-en-place/.


# Q: Any advice for people hoping to enter the frontend development world anew? Do they have to learn stuff like React/Angular/Vue to get along now? Is it feasible without something like college? – XxX_MLG Noob_XxX

A: Yes it is feasible without college, however many, many frontend jobs will use JS frameworks. You can learn on the job, but the reality of the job market is many people who will be interviewing alongside you will already know them.


# Q: SSR or prerendering? Which one is better? – masoud

A: Heh, complicated question. I'd say prerendering, but it is not clear cut, and I will use SSR in some situations.


# Q: Is digital garden different from blog? – sridhar02

A: Somewhat - basically you commit to publishing before you are finished, and updating even after you published. Blogs are relics of dead tree publishing paradigms.


# Q: How much do you work "after-hours"? I know that FAANG schedules can be all over the place anyway. (Are you flexible remote?) but do you feel like you're going to be putting in more than 40 a week and do you think that this is an expectation of a dev advocate position? It seems like the responsibilities can often blend with what #LearnInPublic'ers do in their free time anyway but how much freedom do you have to turn that off as needed when it becomes a job in addition to just a hobby haha. – Sonicrida

A: I am flexible remote, yes. I don't think we are expected to put in more than 40 a week, but I do definitely put in more than 40 myself because I am ambitious but also I love what I do. Feel free to ask a followup. I feel like I didn't give you a good answer.


# Q: What do you think about node on the server side? Do you think it's a good choice? – Dexti

A: Yes its non-blocking! lol (there's a parody video that talks about that https://www.youtube.com/watch?v=bzkRVzciAZg&feature=emb_title).


# Q: Compared to Vue or Svelte, if there are any improvements you think React needs to have, what would it be? – rhesa

A: Yes!!! Great question. We need better styling/animation support, and we also need to normalise using Preact by default before upgrading to React if we really need it. Our tools need to make it EASY to do so. However, I'm very excited by React Flight and Blocks and what that will do for the biggest React apps.