Podcast appearances and mentions of shawn wang

  • 39PODCASTS
  • 70EPISODES
  • 52mAVG DURATION
  • 1MONTHLY NEW EPISODE
  • Mar 10, 2025LATEST

POPULARITY

20172018201920202021202220232024


Best podcasts about shawn wang

Latest podcast episodes about shawn wang

ChinaTalk
Manus: A DeepSeek Moment?

ChinaTalk

Play Episode Listen Later Mar 10, 2025 52:56


A Wuhan-developed AI agent went viral this weekend. Guests Rohit Krishnan of the substack Strange Loop Canon, Shawn Wang of Latent Space, and Dean Ball of Mercatus and Hyperdimensional join us to discuss. We get into What Manus is and isn't What Manus tells us about the broader AI ecosystem's ability to produce products we actually want to use The political economy and liability issues that AI agents will engender More ChinaTalk coverage: https://www.chinatalk.media/p/manus-chinas-latest-ai-sensation Outtro Music: La Marelu "Mala" https://www.youtube.com/watch?v=HAB5rx8mqjM&ab_channel=LaMarelu-Topic Alaska y Dinarama "A Quién Le Importa" https://www.youtube.com/watch?v=2uQhdDtdXg0&ab_channel=YouMoreTv-Espect%C3%A1culo Learn more about your ad choices. Visit megaphone.fm/adchoices

ChinaEconTalk
Manus: A DeepSeek Moment?

ChinaEconTalk

Play Episode Listen Later Mar 10, 2025 52:56


A Wuhan-developed AI agent went viral this weekend. Guests Rohit Krishnan of the substack Strange Loop Canon, Shawn Wang of Latent Space, and Dean Ball of Mercatus and Hyperdimensional join us to discuss. We get into What Manus is and isn't What Manus tells us about the broader AI ecosystem's ability to produce products we actually want to use The political economy and liability issues that AI agents will engender More ChinaTalk coverage: https://www.chinatalk.media/p/manus-chinas-latest-ai-sensation Outtro Music: La Marelu "Mala" https://www.youtube.com/watch?v=HAB5rx8mqjM&ab_channel=LaMarelu-Topic Alaska y Dinarama "A Quién Le Importa" https://www.youtube.com/watch?v=2uQhdDtdXg0&ab_channel=YouMoreTv-Espect%C3%A1culo Learn more about your ad choices. Visit megaphone.fm/adchoices

The Swyx Mixtape
[Chit Chat Stocks] swyx on the AI majors

The Swyx Mixtape

Play Episode Listen Later Dec 19, 2024 63:33


https://www.listennotes.com/podcasts/chit-chat-stocks/the-future-of-artificial-3ylaqngtMR7/[00:00:00]intro: Welcome to Chitchat Stocks on this show host Ryan Henderson and Brett Schaefer analyze businesses and riff on the world of investing. As a quick reminder, Chitchat Stocks is a CCM media group podcast. Anything discussed on Chitchat Stocks by Ryan, Brett, or any other podcast guest is not formal advice or recommendation.intro: Now, please enjoy this episode.Brett: Welcome in. We have another episode of the Chitchat Stocks podcast for you this week. We have a fantastic interview coming up with Shawn Wang from LatentSpace. It is a, I'll say covering anything AI. A lot of the stuff, you know, for me and Ryan, it might be going over our heads and it might be a little too hard technically for us, but that's what we brought on Shawn to the show today.Brett: For a lot of public market investors, this new [00:01:00] AI stuff, it's hard to You know, see what is, what is working, what's just a narrative, what all the stuff that's getting thrown at us during this boom times. So Shawn, we wanted to bring you back on the show. You came on, I think almost exactly two years ago now to talk more cloud stuff.Brett: Now we're really going to talk about cloud AI and how it is impacting the startup ecosystem. So Shawn, as we kick off the show. What is your relevant expertise in this booming AI field? swyx: Oh God, that's the million dollar question here. So I am so for, for listeners who haven't heard back the previous episode that I was on I was finance and public markets guy.swyx: And I was, I was in a hedge fund for my first career. And then I changed careers to tech where I worked at AWS and three unicorn Sort of developer tooling cloud startups. My relevant expertise is you know, on, on some [00:02:00] level, I, I'm just a software engineer that is building with AI now. And then on another level, I had, I actually, when I was an options trader back in the sales side, I actually did a lot of natural language processing of the Bloomberg chats.swyx: So I fed all of the Bloomberg chats into a pricing mechanism. Then built our global pricer. So our entire options desk was running off of that thing. This was about 13 years ago. So so you know, I, I've always had some involvement with like AI, but like, you know, it was never a big part of my identity and I think.swyx: The more foundation models came into focus, and foundation models is a very special term as opposed to traditional, maybe machine learning finance that a lot of your listeners might be familiar with then you start to build differently, and there the traditional software engineering skills become a lot more relevant.swyx: So relevant expertise now is that I, I guess I've sort of popularized and created the term of AI engineer, which you can talk about and created the industry such that Gartner now considers, considers [00:03:00] it like the peak of its hype right now. And I, I consider that both a point of success and also a challenge because I have to prove Gartner wrong that it has not peaked, but you know, they put us at the top of the hype cycle, which is kind of funny.swyx: Because I started it, so. Ryan: Yeah, it's it's a unique challenge but yeah, funny anecdote. Okay, so a lot has changed since we last spoke. Yeah. Pretty much this whole world of AI that everyone's talking about now or at least has become mainstream has, I believe that kind of kicked off right after the discussion or our last discussion.Ryan: So I guess the last discussion was really focused on the cloud computing industry broadly. And that was actually right around the time when AWS. Azure, GCP all the revenue growth rates were coming down and actually now with the hindsight bottoming. So my question for you is what has, I guess, [00:04:00] what has changed over the last two years and why has revenue growth at the big cloud providers re accelerated?swyx: Yeah, again, like, revenue growth at big cloud providers is due to factors that, you know, probably I don't have a full appreciation of. I also challenge the fact, the idea that everything has changed. You know, I think in some ways, this is just like the next wave of something that was just a broader, maybe like 20, 30 year long trend anyway.swyx: You know, we, we needed more cloud compute. Now we need even more cloud compute. Now we need more GPUs in the cloud instead of CPUs, right? Like, what's really changed? I don't know. Like, you know, people still want serverless everything. People still want orchestration. People still want you know, unlimited storage and bandwidth and all the sort of core components of cloud.swyx: In that sense, it hasn't really changed. I do think that if you see there are plots over time of the amount of money and flops invested in machine learning models, that actually used to follow a pretty log linear Moore's law type growth chart for the last like 40 years. [00:05:00] And then, You had 2022 happen and now everyone's like, oh, you can train foundation models now.swyx: And actually you've seen a big inflection upwards in the amounts that people are throwing in throwing the money in there just because they see the money now. So like every, it's like obvious to everyone, including us, including me in a way that it wasn't obvious to basically everyone, but Sam Altman and Satya Nadella circa 2019.swyx: Like they knew this. Four years five years ahead of everyone else. And that's why they went big on OpenAI. But now that we see this, obviously everyone's throwing money into NVIDIA, basically. Brett: I had, why, why are, and this is maybe a question I think I know, but I'd like the answer again, and it feels like it's maybe a basic question, but a lot of, I think listeners are going to want to kind of understand this connection.Brett: Why do these new AI companies require so much upfront spending? On NVIDIA chips, cloud computing costs. All that stuff. swyx: Yeah. I mean, so [00:06:00] you have to split it by whether you're a foundation model lab or you're basically everyone else that consumes foundation models. So the rough estimate for, let's say GPT 3 was like 50 million to a hundred million in compute for one run.swyx: And for every one successful final training run, maybe you have between a hundred to a thousand. Prior runs before that, right? So just pure R& D. The estimate for GPT 4 was 500 million. We've actually had two generations of frontier models since then, just for OpenAI. So that would be GPT 4. 0 and GPT those are the models that, those are only, only the models they've released.swyx: And also not, those are only the text models, we haven't counted the video models and all the other stuff. So it's just a lot of upfront investment, right? Like, I think it's, it's like the classic capital fixed costs upfront thing, where, you know, you have a pre training phase where you're just consuming all of the internet.swyx: [00:07:00] Data that's, you know, there's nuances to that, but we won't go into that. And, and, Alka, Alka comes the other end, you know, 3 to 6 months later, Alka comes a model that you then spend another 6 months fine tuning and red teaming, and post training, and then it's ready for release. So, like, so there...

Chit Chat Money
The Future of Artificial Intelligence (AI) and Cloud Computing With Shawn Wang (OpenAI, Google, + More)

Chit Chat Money

Play Episode Listen Later Dec 18, 2024 70:13


On this episode of Chit Chat Stocks, Ryan and Brett speak to Shawn Wang of Latent Space, who is an expert and on the ground working in the AI start-up space. We discuss: (00:00) Introduction to AI and Cloud Computing (02:21) Expertise in AI and Foundation Models (04:43) Changes in Cloud Revenue Growth (06:45) The Cost of AI Infrastructure (10:36) The Landscape of AI Startups (14:09) Building Moats in AI (15:45) Evaluating Major AI Players (16:41) OpenAI's Current Standing (20:10) First Mover Advantage in AI (25:48) Google's AI Strategy and Challenges (32:51) Meta's AI Transformation (36:59) Amazon and Microsoft's AI Strategies (40:16) Startup Spending and Growth Justification (43:02) The Risks and Challenges of AI Investment (46:27) Cost Reduction and the Future of AI Training (49:22) The Rise of AI Engineers (54:46) Autonomous Agents and Their Impact (01:01:22) The Future of Robotics and AI Integration (01:05:400 Industries Affected by AI Advancements SUBSCRIBE TO LATENT SPACE: https://www.latent.space/ ***************************************************** JOIN OUR FREE CHAT COMMUNITY: https://chitchatstocks.substack.com/  ********************************************************************* Sign-up for a bond account at Public.com/chitchatstocks  A Bond Account is a self-directed brokerage account with Public Investing, member FINRA/SIPC. Deposits into this account are used to purchase 10 investment-grade and high-yield bonds. As of 9/26/24, the average, annualized yield to worst (YTW) across the Bond Account is greater than 6%. A bond's yield is a function of its market price, which can fluctuate; therefore, a bond's YTW is not “locked in” until the bond is purchased, and your yield at time of purchase may be different from the yield shown here. The “locked in” YTW is not guaranteed; you may receive less than the YTW of the bonds in the Bond Account if you sell any of the bonds before maturity or if the issuer defaults on the bond. Public Investing charges a markup on each bond trade. See our Fee Schedule. Bond Accounts are not recommendations of individual bonds or default allocations. The bonds in the Bond Account have not been selected based on your needs or risk profile. See https://public.com/disclosures/bond-account to learn more. ********************************************************************* FinChat.io is The Complete Stock Research Platform for fundamental investors. With its beautiful design and institutional-quality data, FinChat is incredibly powerful and easy to use. Use our LINK and get 15% off any premium plan: ⁠finchat.io/chitchat  ********************************************************************* Sign up for YellowBrick Investing to track the best investing pitches across the internet: joinyellowbrick.com/chitchat ********************************************************************* Bluechippers Club is a tight-knit community of stock focused investors. Members share ideas, participate in weekly calls, and compete in portfolio competitions. To join, go to ⁠bluechippersclub.com⁠ and hit apply! ********************************************************************* Disclosure: Chit Chat Stocks hosts and guests are not financial advisors, and nothing they say on this show is formal advice or a recommendation.

Scaling DevTools
Shawn Wang (swyx) - founder of smol.ai, Latent Space, AI Engineer, DX.tips

Scaling DevTools

Play Episode Listen Later Oct 10, 2024 76:17 Transcription Available


Shawn Wang (aka swyx) is the founder of smol.ai (AI news curation), and the cohost of Latent Space (popular AI Engineer podcast). Plus, Shawn started the AI Engineer movement with his essay Rise of the AI Engineer and organized two incredible AI engineer conferences in the past twelve months - AI Engineer World's Fair and AI Engineer SummitAnd Shawn has angel invested in DevTools like Airbyte, Railway, Supabase, Replay.io, Stackblitz, Flutterflow, Fireworks.ai while running the DevTools angels community. Besides this, Shawn curates DX.tips (DevTools magazine) and in a past life wrote the Coding Career handbook, championed learn in public, cofounded Svelte Society and was previously Head of Developer Experience at Temporal, and a Developer Advocate at AWS and Netlify.Also, before this, Shawn had a very successful career in investment banking, trading, building data pipelines and performing quantitate portfolio management. I think this brings him a very unique perspective - I've always admired his ability to zoom out and see the big picture and the trends. Even though Shawn is now all-in on AI, he's still one of the go-to authorities on DevTools go-to-market.As you can tell, Shawn is someone I deeply admire. So I'm glad he came back.What we discuss:Organizing the AI Engineer ConferencesRise of the AI EngineerIntentionality and principles (yes we even talk about Alcoholics Anonymous)The AI CEOInvisible deadlinesIlya believing in AGI more than most people at OpenAIAre developers going to be obsolete? Thor convinced swyx to invest in SupabaseBuilding DevTools that work well with LLMsAngel investing in DevTools - why and howIs DevRel dead?How to hire DevRelWhy DX.tips existsLinks:Rise of the AI Engineer https://www.latent.space/p/ai-engineerLatent Space Podcast https://www.latent.space/swyx's Twitter https://x.com/swyxswyx's website https://www.swyx.io/swyx's LinkedIn https://www.linkedin.com/in/shawnswyxwang/smol.ai https://smol.ai/DevTools Angels https://github.com/sw-yx/devtools-angelsDX.tips https://dx.tips/DevRel's Death as Zero Interest Rate Phenomenon https://dx.tips/zirp AI Engineer Summit https://www.ai.engineer/summit/2023AI Engineer World's Fair https://www.ai.engineer/worldsfairCoding Career Handbook https://www.learninpublic.org/Shawn's previous appearance on Scaling DevTools https://podcast.scalingdevtools.com/episodes/swyx Eisenhower Matrix https://asana.com/resources/eisenhower-matrixThor from Supabase https://x.com/thorwebdevSolaris AI coworking space in SF https://www.solarissf.com/Browserbase https://www.browserbase.com/Indent https://indent.com/ and Fouad https://x.com/fouadmatinHow to do hackathons https://dx.tips/hackathonsHow to do conferences https://dx.tips/conf-guideHow to hire DevRel https://dx.tips/mailbox-first-devrel-hiringClimbing the ladder of abstraction with Amelia Wattenberger https://www.youtube.com/watch?v=PAy_GHUAICwCheck out the Enterprise Ready Conf from WorkOS https://enterprise-ready.com/

High Agency: The Podcast for AI Builders
Why Your AI Product Needs Evals with Hamel Husain and Swyx

High Agency: The Podcast for AI Builders

Play Episode Listen Later Sep 25, 2024 69:02


Hamel Husain is a seasoned AI consultant and engineer with experience at companies like GitHub, DataRobot, and Airbnb. He is a trailblazer in AI development, known for his innovative work in literate programming and AI-assisted development tools. Shawn Wang (aka Swyx) is the host of the Latent Space podcast, the author of the essay 'Rise of the AI Engineer,' and the founder of the AI Engineer World Fair. In this episode, Hamel and Swyx share their unique insights on building effective AI products, the critical importance of evaluations, and their vision for the future of AI engineering.Chapters00:00 - Introduction and recent AI advancements06:14 - The critical role of evals in AI product development15:33 - Common pitfalls in AI product development26:33 - Literate programming: A new paradigm for AI development39:58 - Answer AI and innovative approaches to software development51:56 - Integrating AI with literate programming environments58:47 - The importance of understanding AI prompts01:00:37 - Assessing the current state of AI adoption01:07:10 - Challenges in evaluating AI models--------------------------------------------------------------------------------------------------------------------------------------------------Humanloop is an Integrated Development Environment for Large Language Models. It enables product teams to develop LLM-based applications that are reliable and scalable. To find out more go to humanloop.com

The Changelog
Last DevRel standing (Friends)

The Changelog

Play Episode Listen Later Jul 12, 2024 93:23


Shawn “swyx” Wang is back to talk with us about the state of DevRel according to ZIRP (the Zero Interest Rate Phenomenon), the data that backs up the rise and fall of job openings, whether or not DevRel is dead or dying, speculation of the near-term arrival of AGI, AI Engineering as the last job standing, the innovation from Cognition with Devin as well as their mis-steps during Devin's launch, and what's to come in the next innovation round of AI.

Changelog Master Feed
Last DevRel standing (Changelog & Friends #52)

Changelog Master Feed

Play Episode Listen Later Jul 12, 2024 93:23


Shawn “swyx” Wang is back to talk with us about the state of DevRel according to ZIRP (the Zero Interest Rate Phenomenon), the data that backs up the rise and fall of job openings, whether or not DevRel is dead or dying, speculation of the near-term arrival of AGI, AI Engineering as the last job standing, the innovation from Cognition with Devin as well as their mis-steps during Devin's launch, and what's to come in the next innovation round of AI.

The Swyx Mixtape
[High Agency] AI Engineer World's Fair Preview

The Swyx Mixtape

Play Episode Listen Later Jul 2, 2024 49:42


High Agency Pod DescriptionIn this episode, I chatted with Shawn Wang about his upcoming AI engineering conference and what an AI engineer really is. It's been a year since he penned the viral essay "Rise of the AI Engineer' and we discuss if this new role will be enduring, the make up of the optimal AI team and trends in machine learning.Timestamps00:00 - Introduction and background on Shawn Wang (Swyx)03:45 - Reflecting on the "Rise of the AI Engineer" essay07:30 - Skills and characteristics of AI Engineers12:15 - Team composition for AI products16:30 - Vertical vs. horizontal AI startups23:00 - Advice for AI product creators and leaders28:15 - Tools and buying vs. building for AI products33:30 - Key trends in AI research and development41:00 - Closing thoughts and information on the AI Engineer World Fair Summit

Latent Space: The AI Engineer Podcast — CodeGen, Agents, Computer Vision, Data Science, AI UX and all things Software 3.0

The World's Fair is officially sold out! Thanks for all the support and stay tuned for recaps of all the great goings on in this very special celebration of the AI Engineer!Longtime listeners will remember the fan favorite Raza Habib, CEO of HumanLoop, on the pod:Well, he's caught the podcasting bug and is now flipping the tables on swyx! Subscribe to High Agency wherever the finest Artificial Intelligence podcast are sold.High Agency Pod DescriptionIn this episode, I chatted with Shawn Wang about his upcoming AI engineering conference and what an AI engineer really is. It's been a year since he penned the viral essay "Rise of the AI Engineer' and we discuss if this new role will be enduring, the make up of the optimal AI team and trends in machine learning.Timestamps00:00 - Introduction and background on Shawn Wang (Swyx)03:45 - Reflecting on the "Rise of the AI Engineer" essay07:30 - Skills and characteristics of AI Engineers12:15 - Team composition for AI products16:30 - Vertical vs. horizontal AI startups23:00 - Advice for AI product creators and leaders28:15 - Tools and buying vs. building for AI products33:30 - Key trends in AI research and development41:00 - Closing thoughts and information on the AI Engineer World Fair SummitVideo Get full access to Latent Space at www.latent.space/subscribe

High Agency: The Podcast for AI Builders
Inventing the AI Engineer

High Agency: The Podcast for AI Builders

Play Episode Listen Later Jun 25, 2024 48:44


In this episode, I chatted with Shawn Wang about his upcoming AI engineering conference and what an AI engineer really is. It's been a year since he penned the viral essay "Rise of the AI Engineer' and we discuss if this new role will be enduring, the make up of the optimal AI team and trends in machine learning.The Rise of the AI Engineer Blog Post: https://www.latent.space/p/ai-engineerChapters00:00 - Introduction and background on Shawn Wang (Swyx)03:45 - Reflecting on the "Rise of the AI Engineer" essay07:30 - Skills and characteristics of AI Engineers12:15 - Team composition for AI products16:30 - Vertical vs. horizontal AI startups23:00 - Advice for AI product creators and leaders28:15 - Tools and buying vs. building for AI products33:30 - Key trends in AI research and development41:00 - Closing thoughts and information on the AI Engineer World Fair SummitHumanloop is an Integrated Development Environment for Large Language Models. It enables product teams to develop LLM-based applications that are reliable and scalable. To find out more go to  https://hubs.ly/Q02yV72D0

Modern Web
Modern Web Podcast S12E03- How to Go from Software Engineer to AI Engineer with Shawn Wang

Modern Web

Play Episode Listen Later Apr 17, 2024 47:32


Tracy Lee and Rob Ocel host an exciting episode featuring guest Shawn Wang, who shares insights on the emergence of AI engineering as a distinct field. Shawn emphasizes the importance of core knowledge and skills in AI engineering, and outlines a systematic approach to education and development. He envisions a future where AI engineering becomes a recognized profession, highlighting the rising demand for AI engineers. The conversation also explores the use of advanced AI technology in software development, showcasing tools like GPT vision for automating tasks and generating code efficiently. Sponsored by This Dot Watch this episode on our YouTube Channel Read more on our blog

ChinaTalk
Can China Fast-Follow on AI Forever?

ChinaTalk

Play Episode Listen Later Feb 18, 2024 83:31


What does it take to train a frontier model? What's the know-how, the secret sauce that makes firms lets OpenAI and Deepmind push the limits of what's possible? How much are Chinese firms benefitting from western open source, and in the long term is it possible for western labs to maintain an edge? The hosts of the excellent Latent Space podcast, Alessio Fanelli of Decibel VC and Shawn Wang of Smol AI, come on to discuss. We get into: How the secret sauce used to push the frontier of AI diffuses out of the top labs and into substacks How labs are managing the culture change from quasi-academic outfits to places that have to ship How open source raises the global AI standard, but why there's likely to always be a gap between closed and open source China as a "GPU Poor" nation Three key algorithmic innovations that could reshape the balance of power between the GPU rich and GPU poor Outtro music: CHEKI https://open.spotify.com/track/1zKL2bOEkMDGuIjLhG34YA?si=9a713a88aa3d4f71 Cover photo: "Inkstand with A Madman Distilling His Brains" 1600s Urbino. Kind of like training a model! https://www.metmuseum.org/art/collection/search/188899 The met description: In this whimsical maiolica sculpture, a well-dressed man leans forward in his seat with his head in a covered pot set above a fiery hearth. The vessel beside the hearth almost certainly held ink. The man's actions are explained by an inscription on the chair: "I distill my brain and am totally happy." Thus the task of the writer is equated with distillation—the process through which a liquid is purified by heating and cooling, extracting its essence. Learn more about your ad choices. Visit megaphone.fm/adchoices

ChinaEconTalk
Can China Fast-Follow on AI Forever?

ChinaEconTalk

Play Episode Listen Later Feb 18, 2024 83:31


What does it take to train a frontier model? What's the know-how, the secret sauce that makes firms lets OpenAI and Deepmind push the limits of what's possible? How much are Chinese firms benefitting from western open source, and in the long term is it possible for western labs to maintain an edge? The hosts of the excellent Latent Space podcast, Alessio Fanelli of Decibel VC and Shawn Wang of Smol AI, come on to discuss. We get into: How the secret sauce used to push the frontier of AI diffuses out of the top labs and into substacks How labs are managing the culture change from quasi-academic outfits to places that have to ship How open source raises the global AI standard, but why there's likely to always be a gap between closed and open source China as a "GPU Poor" nation Three key algorithmic innovations that could reshape the balance of power between the GPU rich and GPU poor Outtro music: CHEKI https://open.spotify.com/track/1zKL2bOEkMDGuIjLhG34YA?si=9a713a88aa3d4f71 Cover photo: "Inkstand with A Madman Distilling His Brains" 1600s Urbino. Kind of like training a model! https://www.metmuseum.org/art/collection/search/188899 The met description: In this whimsical maiolica sculpture, a well-dressed man leans forward in his seat with his head in a covered pot set above a fiery hearth. The vessel beside the hearth almost certainly held ink. The man's actions are explained by an inscription on the chair: "I distill my brain and am totally happy." Thus the task of the writer is equated with distillation—the process through which a liquid is purified by heating and cooling, extracting its essence. Learn more about your ad choices. Visit megaphone.fm/adchoices

Real World Serverless with theburningmonk
#92 - Rise of the AI Engineer with Shawn Wang

Real World Serverless with theburningmonk

Play Episode Listen Later Dec 6, 2023 52:37


In this episode, I spoke with Shawn Wang, who coined the term "AI Engineer" as a new title for engineers who are building the chains and agents that powers AI applications. This is likely to be the highest-demand engineering job of the decade.We talked about the evolution of software development and how AI is changing everything. And why ambitious developers should attach themselves to AI and build thought leadership in this space.We also touched on topics such as AGI (artificial general intelligence), and talked about Shawn's "smol-developer" project, which lets you bootstrap entire projects using prompt engineering.If you want to see Shawn's short demo of smol-developer, then you can watch the episode on YouTube here.Links from the episode:Latent SpaceRise of the AI engineer articleOpenAI dev day keynoteOpenAI's Vision APIsmol-developerAI Engineer summit day 1AI Engineer summit day 2My post on orchestration vs choreographyOpening theme song:Cheery Monday by Kevin MacLeodLink: https://incompetech.filmmusic.io/song/3495-cheery-mondayLicense: http://creativecommons.org/licenses/by/4.0

ShopTalk » Podcast Feed
577: Shawn Wang on AI

ShopTalk » Podcast Feed

Play Episode Listen Later Aug 7, 2023 48:34


Shawn Wang joins us to talk about his work in AI, why prompt engineering is not what you need to focus on, how the scope of AI is bigger than any one of us, how to deal with the consistency of AI, and how to make use of AI in your product or app.

Practical AI
AI trends: a Latent Space crossover

Practical AI

Play Episode Listen Later Jun 14, 2023 59:40 Transcription Available


Daniel had the chance to sit down with @swyx and Alessio from the Latent Space pod in SF to talk about current AI trends and to highlight some key learnings from past episodes. The discussion covers open access LLMs, smol models, model controls, prompt engineering, and LLMOps. This mashup is magical. Don't miss it!

Changelog Master Feed
AI trends: a Latent Space crossover (Practical AI #227)

Changelog Master Feed

Play Episode Listen Later Jun 14, 2023 59:40 Transcription Available


Daniel had the chance to sit down with @swyx and Alessio from the Latent Space pod in SF to talk about current AI trends and to highlight some key learnings from past episodes. The discussion covers open access LLMs, smol models, model controls, prompt engineering, and LLMOps. This mashup is magical. Don't miss it!

The Swyx Mixtape
[Weekend Drop] No Code Jamstack (in 2019) - swyx on Software Engineering Daily

The Swyx Mixtape

Play Episode Listen Later Feb 4, 2023 68:21


revived by https://www.swyx.io/how-to-find-podcasts-that-have-been-deletedhttps://softwareengineeringdaily.com/2019/12/19/no-code-with-shawn-wang/The software category known as “no-code” describes a set of tools that can be used to build software without writing large amounts of code in a programming language.No-code tools use visual interfaces such as spreadsheets and web based drag-and-drop systems. In previous shows, we have covered some of the prominent no-code products such as Airtable, Webflow, and Bubble. It is clear that no-code tools can be used to build core software infrastructure in a manner that is more abstract than the typical software engineering model of writing code.No-code tools do not solve everything. You can't use a no-code tool to build a high performance distributed database, or a real-time multiplayer video game. But they are certainly useful for building internal tools and basic CRUD applications.We know that no-code tools can create value. But how do they fit into the overall workflow of a software company? How should teams be arranged now that knowledge workers can build certain kinds of software without writing code? And how should no-code systems interface with the monoliths, microservices, and APIs that we have building for years?Shawn Wang is an engineer with Netlify, a cloud provider that is focused on delivering high-quality development and deployment experience. Netlify is not a no-code platform, but Shawn has explored and written about the potential of no-code systems. Since he comes from a code-heavy background, he is well-positioned to give a realistic perspective on how no-code systems might evolve to play a role in the typical software development lifecycle.

Scaling DevTools
Crossing the chasm with Shawn Wang (swyx)

Scaling DevTools

Play Episode Listen Later Jan 12, 2023 34:19


Resources Crossing the chasm by Geoffrey Moore Airbyte Netlify Auth Library Wardley map Strategy Letter V by Joel Spolsky The hardest working graphic in software 10x-ing Svelte (Svelte Summit 2022 Talk Notes) swyx's links: Twitter swyx DX Tips AI writing Learninpublic.org Intro to tech strategy Key points: Everyone in tech should understand the technology adoption cycle and know which stage of the adoption cycle you're at First time founders obsess about products and second-time founders obsess about distribution. At the beginning, focus-in on one offering - have conviction in who your users are Your tech IS the story at the earliest stage of the adoption cycle. Because you are targeting innovators and they love to know you use Rust for example! At the later stage, tech no longer matters; the cost matters. Your messaging evolves You should be picking industries and companies with a strong chance of success

The Swyx Mixtape
[Weekend Drop] Talking ChatGPT on the Changelog

The Swyx Mixtape

Play Episode Listen Later Jan 7, 2023 86:27


Subscribe to Changelog++: https://changelog.com/podcast/519/discussFeaturing Shawn Wang – Twitter, GitHub, Website Adam Stacoviak – Mastodon, Twitter, GitHub, LinkedIn, Website Jerod Santo – Mastodon, Twitter, GitHub, LinkedIn Notes and Links AI Notes Why “Prompt Engineering” and “Generative AI” are overhyped Multiverse, not Metaverse The Particle/Wave Duality Theory of Knowledge OpenRAIL: Towards open and responsible AI licensing frameworks Open-ish from Luis Villa ChatGPT for Google The Myth of The Infrastructure Phase ChatGPT examples in the wild Debugging code TypeScript answer is wrong Fix code and explain fix dynamic programming Translating/refactoring Wasplang DSL AWS IAM policies Code that combines multiple cloud services Solving a code problem Explain computer networks homework Rewriting code from elixir to PHP Turning ChatGPT into an interpreter for a custom language, and then generating code and executing it, and solving Advent of Code correctly Including getting #1 place “I haven't done a single google search or consulted any external documentation to do it and I was able to progress faster than I have ever did before when learning a new thing.” Build holy grail website and followup with framework, copy, repsonsiveness For ++ subscribers Getting Senpai To Notice You Moving to Obsidian as a Public Second Brain Transcript**Jerod Santo:** Alright, well we have Sean Wang here again. Swyx, welcome back to the show.**Shawn Wang:** Thanks for having me back on. I have lost count of how many times, but I need to track my annual appearance on the Changelog.**Adam Stacoviak:** Is that twice this year on this show, and then once on JS Party at least, right?**Shawn Wang:** Something like that, yeah. I don't know, it's a dream come true, because, I changed careers into tech listening to the Changelog, so every time I'm asked on, I'm always super-grateful. So yeah, here to chat about all the hottest, latest things, right?**Adam Stacoviak:** Yeah.**Jerod Santo:** That's right, there's so much going on right now. It seems like things just exploded this fall. So we had Stable Diffusion back in late August; it really blew up at the end of August. And then in September is when we had Simon Willison on the show to talk about Stable Diffusion breaking the internet. You've been tracking this stuff really closely. You even have a Substack, and you've got Obsidian notes out there in the wild, and then of course, you're learning in public, so whenever Swyx is learning something, we're all kind of learning along with you... Which is why we brought you back on. I actually included your Stable Diffusion 2.0 summary stuff in our Changelog News episode a couple of weeks back, and a really interesting part of that post that you have, that I didn't talk about much, but I touched on and I want you to expand upon here is this idea of prompt engineering, not as a cool thing, but really as a product smell. And when I first saw it, I was like, "No, man, it's cool." And then I read your explainer and I'm like, "No, he's right. This is kind of a smell."**Adam Stacoviak:** "Dang it, he's right again."**Jerod Santo:** Yeah. We just learned about prompt engineering back in September, with Simon, and talking about casting spells and all this, and now it's like, well, you think it's overhyped. I'll stop prompting you, and I'll just let you engineer an answer.**Jerod Santo:** Well, so I don't know if you know, but the Substack itself got its start because I listened to the Simon episode, and I was like, "No, no, no. Spellcasting is not the way to view this thing. It's not something we glorify." And that's why I wrote "Multiverse, not Metaverse", because the argument was that prompting is -- you can view prompting as a window into a different universe, with a different seed, and every seed is a different universe. And funny enough, there's a finite number of seeds, because basically, Stable Diffusion has a 512x512 space that determines the total number of seeds.So yeah, prompt engineering [unintelligible 00:04:23.23] is not my opinion. I'm just reporting on what the AI thought leaders are already saying, and I just happen to agree with it, which is that it's very, very brittle. The most interesting finding in the academic arena about prompt engineering is that default GPT-3, they ran it against some benchmarks and it came up with like a score of 17 out of 100. So that's a pretty low benchmark of like just some logical, deductive reasoning type intelligence tests. But then you add the prompt "Let's think step by step" to it, and that increases the score from 17 to 83... Which is extremely -- like, that sounds great. Like I said, it's a magic spell that I can just kind of throw onto any problems and make it think better... But if you think about it a little bit more, like, would you actually use this in a real work environment, if you said the wrong thing and it suddenly deteriorates in quality - that's not good, and that's not something that you want to have in any stable, robust product; you want robustness, you want natural language understanding, to understand what you want, not to react to random artifacts and keywords that you give.Since then, we actually now know why "Let's think step by step" is a magic keyword, by the way, because -- and this is part of transformer architecture, which is that the neural network has a very limited working memory, and if you ask a question that requires too many steps to calculate the end result, it doesn't have the working memory to store the result, therefore it makes one up. But if you give it the working memory, which is to ask for a longer answer, the longer answer stores the intermediate steps, therefore giving you the correct result.**Jerod Santo:** [06:00] Talk about implementation detail, right?**Shawn Wang:** It's yeah, it's leaking implementation detail, it's not great, and that's why a lot of the thought leaders - I think I quoted Andrej Karpathy, who was head of AI at Tesla, and now he's a YouTuber... [laughter] And Sam Altman, who is the CEO of -- yeah, he quit Tesla to essentially pursue an independent creator lifestyle, and now he's a YouTuber.**Jerod Santo:** I did not know that.**Adam Stacoviak:** All roads lead to creator land, you know what I'm saying? You'll be an expert in something for a while, and eventually you'll just eject and be like "I want to own my own thing, and create content, and educate people around X."**Shawn Wang:** So at my day job I'm a head of department now, and I work with creators, and some of them have very valuable side hustles... And I just had this discussion yesterday, of like "Why do you still have a job if you're an independent creator? Like, isn't total independence great." And I had to remind them, "No. Like, career progression is good. You're exposed to new things etc." but that's just me trying to talk him out of quitting. [laughter] No, I have a serious answer, but we're not here to talk about that.**Jerod Santo:** Right.**Shawn Wang:** So I'll read out this quote... So Sam Altman, CEO of OpenAI, says "I don't think we'll still be doing prompt engineering in five years. It's not about figuring out how to hack the prompt by adding one magic word to the end that changes everything else. What will matter is the quality of ideas and the understanding that you want." I think that is the prevailing view, and I think as people change models, they are understanding the importance of this.So when Stable Diffusion 1 came out, everyone was like, "Alright, we know how to do this. I'm going to build an entire business on this" etc. And then Stable Diffusion 2 came out and everything broke. All the [unintelligible 00:07:40.21] stopped working, because they just expected a different model, and you have to increase your negative prompting, and people are like "What is negative prompting?" etc. These are all new techniques that arise out of the model, and this is going to happen again and again and again, because you're relying on a very, very brittle foundation.Ultimately, what we want to get people to is computers should understand what we want. And if we haven't specified it well enough, they should be able to ask us what we want, and we should be able to tell them in some capacity, and eventually, they should produce something that we like. That is the ultimate alignment problem.We talk about AI a lot, and you hear about this alignment problem, which is basically some amount of getting it to do what we want it to do, which is a harder problem than it sounds until you work with a programmer, and try to give them product specs and see how many different ways they can get it wrong. But yeah, this is an interesting form of the alignment problem, and it interestingly has a very strong tie with Neuralink as well, because the problem, ultimately, is the amount of bandwidth that we can transfer from our brain to an artificial brain. And right now it's prompts. But why does it have to be prompts? It could be images. That's why you have image-to-image in Stable Diffusion. And it could also be brain neural connections. So there's a lot in there; I'll give you time to pick on whatever you respond to...**Jerod Santo:** Well, I went from -- so I was super-excited about prompting after talking with Simon a few months back, and I was super-excited about Stable Diffusion. And I went from like giddy schoolboy who's just like "Gonna learn all the spells" very quickly to like aggravated end user who's like "Nah, I don't want to go to this other website and copy and paste this paragraph of esoterica in order to get a result that I like." And so I wonder what's so exciting about the whole prompt engineering thing to us nerds, and I think maybe there's like a remnant of "Well, I still get to have esoteric knowledge" or "I still get to be special somehow if I can learn this skill..."[09:46] But in reality, what we're learning, I think, by all the people using ChatGPT - the ease of use of it, as opposed to the difficulty of getting an image out of Stable Diffusion 1.0 at least, is quite a bit different. And it goes from aggravating and insider baseball kind of terms, keywords, spells, to plain English, explain what you want, and maybe modify that with a follow-up, which we'll get into ChatGPT, but we don't necessarily have to go into the depths of that right now... But I changed very quickly, even though I still thought prompt engineering was pretty rad... And then when you explain to me how Stable Diffusion 2 completely broke all the prompts, I'm like, "Oh yeah, this is a smell. This doesn't work. You can't just completely change the way it works on people..." That doesn't scale.**Shawn Wang:** Yeah. And then think about all the businesses that have been built already. There haven't been any huge businesses built on Stable Diffusion, but GPT-3 has internal models as well. So Jasper recently raised like a 1.5 billion valuation, and then ChatGPT came out, basically validating Jasper... So all the people who bought stock are probably not feeling so great right now. [laughs]That's it. So I don't want to overstate my position. There are real moats to be built around AI, and I think that the best entrepreneurs are finding that regardless of all these flaws. The fact that there are flaws right now is the opportunity, because so many people are scared off by it. They're like, "AI has no moats. You're just a thin wrapper around OpenAI." But the people who are real entrepreneurs figure it out. So I think it's just a really fascinating case study in technology and entrepreneurship, because here's a new piece of technology nobody knows how to use and productize, and the people who figure out the playbook are the ones who win.**Adam Stacoviak:** Yeah. Are we back to this -- I mean, it was like this years ago, when big data became a thing... But are we back to this whole world where -- or maybe we never left, where "Data is the new oil", is the quote... Because to train these models, you have to have data. So you could be an entrepreneur, you could be a technologist, you could be a developer, you could be in ML, you could be whatever it might take to build these things, but at some point you have to have a dataset, right? Like, how do you get access to these datasets? It's the oil; you've got to have money to get these things, you've got to have money to run the hardware to enable... Jerod, you were saying before the call, there was speculation of how much it costs to run ChatGPT daily, and it's just expensive. But the data is the new oil thing - how does that play into training these models and being able to build the moat?**Shawn Wang:** Yeah. So one distinction we must make there is there is a difference between running the models, which is just inferences, which is probably a few orders of magnitude cheaper than training the models, which are essentially a one-time task. Not that many people continuously train, which is nice to have, but I don't think people actually care about that in reality.So the training of the models ranges between -- and let's just put some bounds for people. I love dropping numbers in podcasts, by the way, because it helps people contextualize. You made an oblique reference to how much ChatGPT costs, but let's give real numbers. I think the guy who did an estimate said it was running at $3 million a month. I don't know if you heard any different, but that's...**Jerod Santo:** I heard a different estimate, that would have been more expensive, but I think yours is probably more reliable than mine... So let's just go with that.**Shawn Wang:** I went through his stuff, and I was like, "Yeah, okay, this is on the high end." I came in between like one to three as well. It's fine. And then for training the thing - so it's widely known or widely reported that Stable Diffusion cost 600k for a single run. People think the full thing, including R&D and stuff, was on the order of 10 million. And GPT-3 also costs something on the order of tens of millions. So I think that is the cost, but then also that is training; that is mostly like GPU compute. We're not talking about data collection, which is a whole other thing, right?[13:46] And I think, basically, there's a towering stack of open source contributions to this data collective pool that we have made over time. I think the official numbers are like 100,000 gigabytes of data that was trained for Stable Diffusion... And it's basically pooled from like Flickr, from Wikipedia, from like all the publicly-available commons of photos. And that is obviously extremely valuable, because -- and another result that came out recently that has revolutionized AI thinking is the concept of Chinchilla Laws. Have you guys covered that on the show, or do I need to explain that?**Adam Stacoviak:** Chinchilla Laws misses the mark for me. Please tell. I like the idea though; it sounds cool, so please...**Shawn Wang:** Yeah, they just had a bunch of models, and the one that won happened to be named Chinchilla, so they kind of went with it. It's got a cute name. But the main idea is that we have discovered scaling laws for machine learning, which is amazing.So in the sort of classical understanding of machine learning, you would have a point at which there's no further point to train. You're sort of optimizing for a curve, and you get sort of like diminishing returns up to a certain point, and then that's about it. You would typically conclude that you have converged on a global optimum, and you kind of just stop there. And mostly, in the last 5 to 10 years, the very depressing discovery is that this is a mirage. This is not a global optimum, this is a local optimum... And this is called the Double Dissent Problem. If you google it, on Wikipedia you'll find it... Which is you just throw more data at it, it levels off for a bit, and then it continues improving. And that's amazing for machine learning, because that basically precipitated the launch of all these large models. Because essentially, what it concludes is that there's essentially no limit to how good these models are, as long as you can throw enough data at it... Which means that, like you said, data is the new oil again, but not for the old reason, which is like "We're gonna analyze it." No, we're just gonna throw it into all these neural nets, and let them figure it out.**Adam Stacoviak:** Yeah. Well, I think there's a competitive advantage though if you have all the data. So if you're the Facebooks, or if you're the Google, or X, Y, or Z... Instagram, even. Like, Instagram ads are so freakin relevant that --**Jerod Santo:** Apple...**Adam Stacoviak:** Yeah, Apple for sure.**Jerod Santo:** TikTok...**Adam Stacoviak:** Yeah. Gosh... Yeah, TikTok. Yeah, the point is, these have a competitive advantage, because they essentially have been collecting this data, would-be to analyze, potentially to advertise to us more, but what about in other ways that these modes can be built? I just think like, when you mentioned the entrepreneurial mind, being able to take this idea, this opportunity as this new AI landscape, to say, "Let me build a moat around this, and not just build a thin layer on top of GPT, but build my own thing on all together", I've gotta imagine there's a data problem at some point, right? Obviously, there's a data problem at some point.**Shawn Wang:** So obviously, the big tech companies have a huge headstart. But how do you get started collecting this data as a founder? I think the story of Midjourney is actually super-interesting. So between Midjourney, Stability AI and OpenAI, as of August, who do you think was making the most money? I'll give you the answer, it was Midjourney.**Jerod Santo:** Oh, I was gonna guess that. You can't just give us the answer...**Shawn Wang:** Oh... [laughs]**Jerod Santo:** I had it.**Shawn Wang:** But it's not obvious, right? Like, the closed source one, that is not the big name, that doesn't have all the industry partnerships, doesn't have the celebrity CEO, that's the one that made the most money.**Jerod Santo:** Yeah. But they launched with a business model immediately, didn't they? They had a subscription out of the box.**Shawn Wang:** Yeah, they did. But also, something that they've been doing from the get-go is that you can only access Midjourney through Discord. Why is that?**Jerod Santo:** Right. Because it's social, or... I don't know. What do you think? That's my guess, because they're right in front of everybody else.**Shawn Wang:** Data.**Adam Stacoviak:** Data.**Jerod Santo:** Oh...**Adam Stacoviak:** Please tell us more, Shawn.**Shawn Wang:** Because the way that you experience Midjourney is you put in a prompt, it gives you four images, and you pick the ones that you like for enhancing. So the process of using Midjourney generates proprietary data for Midjourney to improve Midjourney. So from v3 to v4 of Midjourney they improved so much that they have carved out a permanent space for their kind of visual AI-driven art, that is so much better than everyone else because they have data that no one else has.**Jerod Santo:** [17:55] That's really cool.**Adam Stacoviak:** And that's relevance, or is it like quality takes? What is the data they actually get?**Shawn Wang:** Preference, right?**Jerod Santo:** What's good.**Shawn Wang:** Yeah. Literally, you type in a prompt, unstructuredly it tells you -- they give you four low-res images, and you have to pick one of the four to upscale it. By picking that four, they now have the data that says "Okay, out of these four, here's what a human picks." And it's and it's proprietary to them, and they paid nothing for it, because it's on Discord. It's amazing.**Jerod Santo:** That is awesome.**Shawn Wang:** They didn't build a UI, they just used Discord. I don't know if Discord knows this, or cares... But it's pretty freakin' phenomenal...**Jerod Santo:** That's pretty smart.**Shawn Wang:** ...because now they have this--**Adam Stacoviak:** It's the ultimate in scrappy, right? It's like, by any means necessary. That's the ultimate binding that's necessary, right? You'll make a beat however you can to put up the track and become the star.**Jerod Santo:** Right.**Adam Stacoviak:** That's amazing.**Jerod Santo:** That's really cool.**Shawn Wang:** So just to close this out, the thing I was saying about Chinchilla was "More data is good, we've found the double descent problem. Now let's go get all the data that's possible." I should make a mention about the open source data attempts... So people understand the importance of data, and basically Luther.AI is kind of the only organization out there that is collecting data that anyone can use to train anything. So they have two large collections of data called The Stack and The Pile, I think is what it's called. Basically, the largest collection of open source permissively-licensed text for you to train whatever language models you want, and then a similar thing for code. And then they are training their open source equivalents of GPT-3 and Copilot and what have you. But I think those are very, very important steps to have. Basically, researchers have maxed out the available data, and part of why Open AI Whisper is so important for OpenAI is that it's unlocking sources of text that are not presently available in the available training data. We've basically exhausted, we're data-constrained in terms of our ability to improve our models. So the largest source of untranscribed text is essentially on YouTube, and there's a prevailing theory that the primary purpose of Whisper is to transcribe all video, to get text, to train the models... [laughs] Because we are so limited on data.**Adam Stacoviak:** Yeah. We've helped them already with our podcasts. Not that it mattered, but we've been transcribing our podcasts for a while, so we just gave them a leg up.**Shawn Wang:** You did.**Adam Stacoviak:** And that's open source on GitHub, too. They probably -- I mean, ChatGPT knows about Changelog. They know that -- Jerod, I don't know if I told you this yet, but I prompted that; I said "Complete the sentence "Who's the hosts of the Changelog podcast?" "Well, that's the dynamic duo, Jerod Santo and Adam Stacoviak." It knows who we are. I mean, maybe it's our transcripts, I don't know, but it knows...**Jerod Santo:** Please tell me it called us "the dynamic duo"... [laughs]**Adam Stacoviak:** I promise you!**Jerod Santo:** It said that?**Adam Stacoviak:** I promise you it said that. "The dynamic duo..."**Jerod Santo:** Oh, [unintelligible 00:20:34.05]**Adam Stacoviak:** It actually reversed the order. It said Adams Stacoviak first and then Jerod Santo... Because usually, my name is, I guess, first, because - I have no clue why it's ever been that way, but... It said "The dynamic duo, Adam Stacoviak and Jerod Santo..."**Jerod Santo:** That's hilarious.**Adam Stacoviak:** ...hosts of the Changelog Podcast.**Jerod Santo:** It already understands flattery.**Adam Stacoviak:** Yeah, it does. Well, actually, the first prompt didn't include us, and I said "Make it better, and include the hosts." And that's all I said, was "Make it better and include the hosts." So in terms of re-prompting, or refining the response that you get from the prompts - that to me is like the ultimate human way to conjure the next available thing, which is try again, or do it better by giving me the hosts, too. And the next one was flattery, and actually our names in the thing. So... It's just crazy. Anyways...**Shawn Wang:** Yeah, so that is the big unlock that ChatGPT enabled.**Jerod Santo:** Totally.**Shawn Wang:** Which is why usually I take a few weeks for my takes to marinate, for me to do research, and then for me to write something... But I had to write something immediately after ChatGPT to tell people how important this thing is. It is the first real chat AI, which means that you get to give human feedback. And this theme of reinforcement learning through human feedback is - the low-res version of it was Midjourney. Actually, the lowest-res version of it was TikTok, because every swipe is human feedback. And being able to incorporate that into your -- and same for Google; every link click is a is human feedback. But the ability to incorporate that and to improve the recommendations and the generations is essentially your competitive advantage, and being able to build that as part of your UI... Which is why, by the way, I have been making the case that frontend engineers should take this extremely seriously, because guess who's very good at making a UI?**Adam Stacoviak:** Yeah, for sure.**Shawn Wang:** But yeah, ChatGPT turns it from a one-off zero-shot experience where you prompt the thing, and then you get the result, and it's good or bad, that's about the end of the story - now it's an interactive conversation between you and the bot, and you can shape it to whatever you want... Which is a whole different experience.**Break:** [22:31]**Adam Stacoviak:** "Complete the sentence" has been a hack for me to use, particularly with ChatGPT. "Complete the sentence" is a great way to easily say "Just give me somebody long, given these certain constraints."**Jerod Santo:** Well, that's effectively what these models are, right? They're auto-complete on steroids. Like, they are basically auto-completing with a corpus of knowledge that's massive, and guessing what words semantically should come next, kind of a thing... In layman's terms; it's more complicated than that, of course, but they are basically auto-completers.**Adam Stacoviak:** Yeah. On that note though, we have a show coming out... So we're recording this on a Friday, the same day we release the same podcast, but it's the week before. So we had Christina Warren on, and so I was like "You know what? I'm gonna use ChatGPT to give me a leg up. Let me make my intro maybe a little easier, and just spice it up a little bit." So I said "Complete the sentence "This week on the Changelog we're talking to Christina Warren about..." and then I ended the quote, and I said "and mention her time at Mashable, film and pop culture, and now being a developer advocate at GitHub." And I've gotta say, most of, 50% of the intro for the episode with Christina is thanks to ChatGPT. I don't know if I break the terms of service by doing that or not, but like -- do I? I don't know. If I do, sue me. I'm sorry. But... Don't sue me. Don't sue us. We'll take it down. We'll axe it out.**Jerod Santo:** We'll rewrite it.**Adam Stacoviak:** Yeah, we'll rewrite it. But, I mean, it's basically what I would have said. So...**Shawn Wang:** There's a nice poetry -- there's a YouTuber who's been on this forever, Two Minute Papers, and what he often says is, "What a time to be alive." And this is very much what a time to be alive. But not just because we're seeing this evolve live, but because we get to be part of the training data. And there was a very interesting conversation between Lex Fridman and Andrej Andrej Karpathy; he was inviting him on to the show... He said, "Our conversation will be immortalized in the training data. This is a form of immortality, because we get to be the first humans essentially baked in." [laughter]**Jerod Santo:** Essentially baked in... Hello, world.**Shawn Wang:** Like, 100-200 years from now, if someone has the Changelog podcast, they will keep having Jerod and Adam pop up, because they're in the goddamn training data. [laughs]**Jerod Santo:** They're like "Come on, these guys have been dead for a long time."**Adam Stacoviak:** [26:05] Let them go. Give them their RIP. [laughter]**Shawn Wang:** Which is poetic and nice. Yeah.**Adam Stacoviak:** Yeah, it is a good time to be alive... I think it is interesting, too... I just wonder -- I mean, this might be jumping the shark a little bit, but I often wonder, at what point does humanity stop creating? And at some point, 100 years from now, or maybe more, I don't know, we're gonna be -- maybe sooner, given how fast this is advancing, that we'll create only through what was already created. "At what point is the snake eating the snake?" kind of thing. Like, is there an end to human creativity at some point, because we are just so reliant, at some point, shape, or form, on [unintelligible 00:26:45.20] because of training data, and this just kind of like morphing to something much, much bigger in the future?**Shawn Wang:** So I have an optimistic attitude to that... This question basically is asking, "Can we exhaust infinity?" And so my obvious answer is no. There is a more concrete stat I can give you, which is I think - this is floating around out there. Don't quote me on the exact number, but apparently, 10% of all Google searches every single year have never been asked before. And Google's been around for like 20 years.**Adam Stacoviak:** That's a big percentage.**Shawn Wang:** It's still true. So it's on that order; it might be like 7%, it might be 13%.**Adam Stacoviak:** Well, is it trending down though? Is it trending down? Is it 10% per year, but is it like trending down to like 8%?**Jerod Santo:** Is it because we put the year in our searches? [laughter]**Adam Stacoviak:** Yeah, it's true, Jerod. Good one.**Shawn Wang:** Yeah. But anyway, so that's what the SEO people talk about when they talk about long tail... The amount of infinity is always bigger than our capability of creating to fill it.**Jerod Santo:** I mean, I feel like if you look at us in an abstract way, humans, we are basically taking in inputs and then generating outputs. But that's creativity, right? So I think what we're just doing is adding more to the inputs. Now we have computers that also take in inputs and generate outputs, but like, everything's already a remix, isn't it? Our life experience and everything that goes into us, and then something else produces a brand new thing, which isn't really new, but it's a remix of something else that we experienced... So I feel like we're just going to keep doing that, and we'll have computer aid at doing that, and the computer eventually maybe will just do the actual outputting part, but we somehow instruct it. I'm with Swyx on this one; I don't think there's going to be an end to human creativity, as the AI gets more and more output... What's the word? When you're just -- not notorious. What's it called when you just can't stop outputting stuff?**Adam Stacoviak:** I don't know.**Jerod Santo:** Prolific!**Adam Stacoviak:** Prolific.**Jerod Santo:** As the AI gets more and more output-prolific, and overwhelms us with output, I think we're still going to be doing our thing.**Adam Stacoviak:** Yeah. It's the ultimate reduction in latency to new input, right? Think of 100 years ago - creative folks were few and far between. They had miles between them, depending on your system; maybe it's kilometers. No offense. But there's distance of some sort of magnitude, and the lack of connection and shared ideas. So that's the latency, right? And now, the latency to the next input is just so small in comparison, and will get reduced to basically nothing. So we'll just constantly be inputting and outputting creativity, we'll just become like a creative [unintelligible 00:29:31.17] system with zero latency, nonstop creativity... Go, go, go...**Shawn Wang:** Well, I think this is where you start -- I don't know about you, but I feel a little bit uncomfortable with that, right? Entropy is always increasing in the universe; we're contributing to increasing noise and not signal. And that is a primary flaw of all these language models, is just they are very confidently incorrect. They have no sense of physics, no sense of logic; they will confidently assert things that are not true, and they're trained on sounding plausible, rather than being true.**Jerod Santo:** Right. They're kind of like me when I was in college, you know?**Shawn Wang:** Exactly. [laughter]**Jerod Santo:** [30:10] Just so much confidence, but wrong most of the time. [laughs]**Shawn Wang:** Exactly. Which happens to Galactica, which is this sort of science LLM from Meta, where Yann LeCun, who is one of the big names in tech, was like "This thing will generate papers for you." And within three days, the internet tore it apart, and they had to take it down. It was a very, very dramatic failure, this kind of tech... Because you're talking about biology, and science, and medicine, and you can't just make stuff up like that. [laughs]**Jerod Santo:** Right. So like in the world where chat GPT operates today, which is really in the world of fiction, and kind of BS-ing, for lack of a better term, like writing intros to a podcast - you know, like, it doesn't have to be correct necessarily; it can be like close enough to correct, and then you can massage it, of course, you can cherry pick to get the one that you like... But when the rubber hits the road, like on serious things, like science, or "How many of these pills do I need to take?" I guess that is also -- that's health science. So science, and other things... It's like, it can't be correct 60% of the time, or 80%, or even like 95%. It's gotta reach that point where you actually can trust it. And because we're feeding it all kinds of information that's not correct, de facto... Like, how much of the internet's wrong? Most of it, right?**Adam Stacoviak:** I mean, medicine though has evolved too, and it hasn't always been correct, though it's also very serious... You'd get advice from a doctor 10-15 years ago, they'd say it with full confidence and full accuracy, but it's only based on that current dataset.**Jerod Santo:** But you can sue them for malpractice and stuff, right? Like, how do we take recourse against--**Adam Stacoviak:** You can if they actually have malpractice; they can be wrong, because it's as much science as possible to make the most educated guess. It's malpractice when there's negligence; it's not malpractice when they're wrong.**Jerod Santo:** A good doctor will actually go up to the fringe and say, "You know what - I'm not 100% sure about this. It's beyond my knowledge."**Adam Stacoviak:** Sure. For sure.**Jerod Santo:** "Here's what you can do. Here's the risks of doing that." Whereas the chat bots, the ChatGPT thing is like, "The answer is 7", and you're like, "It actually was 12." And it's like, "Ah, shoot..." [laughter]**Adam Stacoviak:** Well, I think when there's mortality involved, maybe there's going to be a timeframe when we actually begin to trust the future MedGPT, for example; I don't know if that's a thing in the future, but something that gives you medical results or responses based upon data, real data, potentially, that you get there, but it's not today.**Jerod Santo:** Well, I think this goes back to the data point that you made, and I think where we go from like the 95 -- I'm making up numbers here, but like 95% accuracy, to get it to like 98.5%, or 99%. Like, that's gonna require niche, high-value, high-signal data that maybe this medical facility has, because they've been collecting it for all these years. And they're the only ones who have it. And so maybe that's where you like carve out proprietary datasets that take these models from a baseline of accuracy, to like, in this particular context of health it's this much accuracy. And then maybe eventually you combine all those and have a super model. I don't know... Swyx, what do you think?**Shawn Wang:** I love the term super-model. I think the term [unintelligible 00:33:23.10] in the industry is ensemble. But that just multiplies the costs, right? Like if you want to run a bank of five models, and pick the best one, that obviously 6x-es your cost. So not super-interesting; good for academic papers, but not super-interesting in practice, because it's so expensive.There's so many places to go with this stuff... Okay, there's one law that I love, which is Brandolini's Law. I have this tracking list of eponymous laws... Brandolini's law is people's ability to create bulls**t far exceeds the ability of people to refute it. Basically, if all of these results of this AI stuff is that we create better bulls***t engines, it's not great. And what you're talking about, the stuff with like the 90% correct, 95% correct - that is actually a topic of discussion. It's pretty interesting to have the SRE type conversation of "How many nines do you need for your use case, and where are we at right now?" Because the number of nines will actually improve. We are working on -- sorry, "we" as in the collective human we, not me personally...**Adam Stacoviak:** [34:32] The royal we, yes.**Shawn Wang:** The role royal we... Like, humanity is working on ways to improve, to get that up. It's not that great right now, so that's why it's good for creativity and not so much for precision, but it will get better. One of the most viral posts on Hacker News is something that you featured, which is the ability to simulate virtual machines instead of ChatGPT-3, where people literally opened -- I mean, I don't know how crazy you have to be, but open ChatGPT-3, type in LS, and it gives you a file system. [laughter]**Jerod Santo:** But that only exists -- it's not a real file system, it's just one that's [unintelligible 00:35:00.05]**Shawn Wang:** It's not a real file system, for now. It's not a real set file system for now, because they hallucinate some things... Like, if you ask it for a Git hash, it's gonna make up a Git hash that's not real, because you can verify [unintelligible 00:35:10.25] MD5. But like, how long before it learns MD5? And how long before it really has a virtual machine inside of the language model? And if you go that far, what makes you so confident that we're not in one right now? [laughs]**Jerod Santo:** Now I'm uncomfortable... That actually is a very short hop into the simulation hypothesis, because we are effectively simulating a brain... And if you get good enough at simulating brains, what else can you simulate?**Adam Stacoviak:** What else WOULD you want to simulate? I mean, that's the Holy Grail, a brain.**Shawn Wang:** Yeah. So Emad Mostaque is the CEO of Stability AI. He's like, "We're completely unconcerned with the AGI. We don't know when it'll get here. We're not working on it. But what we're concerned about is the ability to augment human capability. People who can't draw now can draw; people who can't write marketing texts or whatever, now can do that." And I think that's a really good way to approach this, which is we don't know what the distant future is gonna hold, but in the near future, this can help a lot of people.**Adam Stacoviak:** It's the ultimate tool in equality, right? I mean, if you can do --**Shawn Wang:** Yeah, that's a super-interesting use case. So there was a guy who was like sort of high school-educated, not very professional, applying for a job. And what he used ChatGPT to do was like "Here's what I want to say, and please reward this in a professional email." And it basically helped to pass the professional class status check. Do you know about the status checks? All the other sort of informal checks that people have, like "Oh, we'll fly you in for your job interview... Just put the hotel on your credit card." Some people don't have credit cards. And likewise, when people email you, you judge them by their email, even though some haven't been trained to write professionally, right? And so yeah, GPT is helping people like that, and it's a huge enabler for those people.**Adam Stacoviak:** Hmm... That is -- I mean, I like that idea, honestly, because it does enable more people who are less able... It's a net positive.**Shawn Wang:** Yeah. I mean, I seem generally capable, but also, I have RSI on my fingers, and sometimes I can't type. And so what Whisper is enabling me to do, and Copilot... So GitHub, at their recent GitHub Universe, recently announced voice-enabled Copilot... And it is good enough for me to navigate VS Code, and type code with Copilot and voice transcription. Those are the two things that you need; and they're now actually good enough that I don't have to learn a DSL for voice coding, like you would with Talon, or the prior solutions.**Adam Stacoviak:** You know, it's the ultimate -- if you're creative enough, it's almost back to the quote that Sam had said, that you liked... Well, I'm gonna try and go back to it; he says "At the end, because they were just able to articulate it with a creative eye that I don't have." So that to me is like insight, creativity; it's not skill, right? It's the ability to dream, which is the ultimate human skill, which is - since the beginning of time, we've been dreamers.**Shawn Wang:** [38:01] This is a new brush. Some artists are learning to draw with it. There'll be new kinds of artists created.**Adam Stacoviak:** Provided that people keep making the brush, though. It's a new brush...**Shawn Wang:** Well, the secret's out; the secret's out that you can make these brushes.**Jerod Santo:** Right.**Adam Stacoviak:** Yeah, but you still have to have the motivation to maintain the brush, though.**Jerod Santo:** What about access, too? I mean, right now you're talking about somebody who's made able, that isn't otherwise, with let's just say ChatGPT, which is free for now. But OpenAI is a for profit entity, and they can't continue to burn money forever; they're gonna have to turn on some sort of a money-making machine... And that's going to inevitably lock some people out of it. So now all of a sudden, access becomes part of the class, doesn't it? Like, you can afford an AI and this person cannot. And so that's gonna suck. Like, it seems like open source could be for the win there, but like you said, Swyx, there's not much moving and shaking in that world.**Adam Stacoviak:** Well, I haven't stopped thinking about what Swyx said last time we talked, which was above or below the API, which is almost the same side of the coin that we talked about last time, which is like, this the same thing.**Jerod Santo:** Yeah. Well, ChatGPT is an API, isn't it?**Shawn Wang:** Nice little callback. Nice. [laughter]**Adam Stacoviak:** I really haven't been able to stop thinking about it. Every time I use any sort of online service to get somebody to do something for me that I don't want to do, because I don't have the time for it, or I'd rather trade dollars for my time, I keep thinking about that above or below the API, which is what we talked about. And that's what Jerod has just brought up; it's the same exact thing.**Shawn Wang:** Yep, it is. One more thing I wanted to offer, which is the logical conclusion to generative. So that post where we talked about why prompt engineering is overrated - the second part of it is why you shouldn't think about this as generative... Because right now, the discussion we just had was only thinking about it as a generative type of use case. But really, what people want to focus on going forward is -- well, two things. One is the ability for it to summarize and understand and reason, and two, for it to perform actions. So the emerging focuses on agentic AI; AI agents that can perform actions on your behalf. Essentially, hooking it up to -- giving it legs and legs and arms and asking it to do stuff autonomously.So I think that's super-interesting to me, because then you get to have it both ways. You get AI to expand bullet points into prose, and then to take prose into bullet points. And there's a very funny tweet from Josh Browder, who is the CEO DoNotPay, which is kind of like a --**Adam Stacoviak:** Yeah, I'm a fan of him.**Shawn Wang:** Yeah. Fantastic, right? So what DoNotPay does is they get rid of annoying payment UX, right? Like, sometimes it was parking tickets, but now they are trying to sort of broaden out into different things. So he recently tweeted that DoNotPay is working on a way to talk to Comcast to negotiate your cable bill down. And since Comcast themselves are going to have a chat bot as well, it's going to be chat bots talking to each other to resolve this... [laughter]**Adam Stacoviak:** Wow, man...**Jerod Santo:** It's like a scene out of Futurama, or something...**Shawn Wang:** Yeah. So I'm very excited about the summarization aspects, right? One of the more interesting projects that came out of this recent wave was Explained Paper, which is - you can throw any academic paper at it and it explains the paper to you in approachable language, and you can sort of query it back and forth. I think those are super-interesting, because that starts to reverse Brandolini is law. Instead of generating bulls**t, you're taking bulls**it in, getting into some kind of order. And that's very exciting.**Adam Stacoviak:** Yeah. 17 steps back, it makes me think about when I talk to my watch, and I say "Text my wife", and I think about like who is using this to their betterment? And I'm thinking like, we're only talking about adults, for the most part. My kid, my son, Eli - he talks to Siri as if like she knows everything, right? But here's me using my watch to say "Text my wife." I say it, it puts it into the phone... And the last thing it does for me, which I think is super-interesting for the future, as like this AI assistant, is "Send it" is the final prompt back to me as the human; should I send this? And if I say no, Siri doesn't send it. But if I say "Send it", guess what she does? She sends it. But I love this idea of the future, like maybe some sort of smarter AI assistant like that. I mean, to me, that's a dream. I'd love that.**Shawn Wang:** [42:21] Yeah, I was watching this clip of the first Iron Man, when Robert Downey Jr. is kind of working with his bot to work on his first suit... And he's just talking to the bot, like "Here's what I want you to do." Sometimes it gets it wrong and he slaps it on the ahead... But more often than not, he gets it right. And this is why I've been -- you know, Wes Boss recently tweeted -- this is actually really scary. "Should we be afraid as engineers, like this is going to come for our jobs?" And I'm like, "No. All of us just got a personal junior developer." That should excite you.**Jerod Santo:** Yeah. And it seems like it's particularly good at software development answers. You'd think it's because there's lots of available text... I mean, think about like things that it's good at; it seems like it knows a lot about programming.**Shawn Wang:** I have a list. Do you want a list?**Jerod Santo:** Yeah.**Shawn Wang:** So writing tutorials - it's very good. Literally, tables of contents, section by section, explaining "First you should npm install. Then you should do X. Then you should do Y." Debugging code - just paste in your error, and paste in the source code, and it tells you what's wrong with it. Dynamic programming, it does really well. Translating DSLs. I think there'll be a thousand DSLs blooming, because the barrier to adoption of a DSL has just disappeared. [laughs] So why would you not write a DSL? No one needs to learn your DSL.**Adam Stacoviak:** What is this, Copilot you're using, or ChatGPT, that you're--**Shawn Wang:** ChatGPT-3. I have a bunch of examples here I can drop in the show notes. AWS IAM policies. "Hey, I want to do X and Y in AWS." Guess what? There's tons of documentation. ChatGPT knows AWS IAM policies. Code that combines multiple cloud services. This one comes from Corey Quinn. 90% of our jobs is hooking up one service to another service. You could just tell it what to do, and it just does it, right? There a guy who was like, "I fed my college computer network's homework to it, and they gave the right result", which is pretty interesting.Refactoring code from Elixir to PHP is another one that has been has been done... And obviously, Advent of Code, which - we're recording this in December now. The person who won -- so Advent of Code for the first 100 people is a race; whoever submits the correct answer first, wins it. And the number one place in the first Advent of Code this year was a ChatGPT guy. So it broke homework. Like, this thing has broken homework and take-home interviews, basically. [laughs]**Jerod Santo:** Completely. It's so nice though; like, I've only used it a little bit while coding, but it's two for two, of just like drilling my exact questions. And just stuff like "How do you match any character that is not an [unintelligible 00:44:43.28] regular expression?"**Shawn Wang:** Oh, yeah. Explaining regexes.**Jerod Santo:** Yeah. That was my question. Like, I know exactly what I want, but I can't remember which is the character, and so I just asked it, and it gave me the exact correct answer, and an example, and explained it in more detail, if I wanted to go ahead and read it. And it warned me, "Hey, this is not the best way to test against email addresses... But here it is." So I was like, "Alright..." This is a good thing for developers, for sure.**Shawn Wang:** Yeah. But you can't trust it -- so you have a responsibility as well. You can't write bad code, have something bad happen, and go, "Oh, it wasn't my fault. It was ChatGPT."**Jerod Santo:** Well, you can't paste Stack Overflow answers into your code either.**Shawn Wang:** You have the responsibility. Exactly.**Jerod Santo:** Yeah. I mean, you can, but you're gonna get fired, right? Like, if the buck stops at you, not at the Stack Overflow answer person, you can't go find them and be like, "Why were you wrong?" Right? It stops at you.**Shawn Wang:** Yeah. So I think the way I phrased it was -- do you know about this trade offer meme that is going around? So it's "Trade offer - you receive better debugging, code explanation, install instructions, better documentation, elimination of your breaking of flow from copy and pasting in Stack Overflow - you receive all these benefits, in exchange for more code review." There is a cost, which is code review. You have to review the code that your junior programmer just gave you. But hey, that's better and easier than writing code yourself.**Jerod Santo:** [46:04] Yeah, because you've got a free junior programmer working for you now. [laughter]**Shawn Wang:** There's a guy that says, "I haven't done a single Google search or consulted any external documentation for the past few days, and I was able to progress faster than I ever had when delivering a new thing." I mean, it's just... It's amazing, and Google should be worried.**Jerod Santo:** Yeah, that's what I was gonna say - is this an immediate threat to Google? Now, I did see a commenter on Hacker News - Swyx, I'm not sure if you saw this one - from inside of Google, talking about the cost of integration?**Shawn Wang:** Yes. Yeah, I've read basically every thread... [laughter] Which is a full-time job, but... This is so important. Like, I don't do this for most things, right? Like, I think this is big enough that I had to drop everything and go read up on it... And not be an overnight expert, but at least try to be informed... And that's all I'm doing here, really. But yeah, do you want to read it up?**Jerod Santo:** Yeah. So in summary, they were responding... This is on a thread about ChatGPT, and they say -- this is a Googler, and they say "It's one thing to put up a demo that interested nerds can play with, but it's quite another thing to try to integrate it deeply in a system that serves billions of requests a day, when you take into account serving costs, added latency, and the fact that average revenue on something like a Google search is close to infinitesimal (which is the word I can't say out loud) already. I think I remember the presenter saying something like they'd want to reduce the cost by at least 10 times before it could be feasible to integrate models like this in products like Google search. A 10x or even 100x improvement is obviously an attainable target in the next few years, so I think technology like this is coming in the next few years."So that's one insider's take on where Google stands. Obviously, Google has tons of resources dedicated to these areas of expertise, right? It's not like Google's asleep at the wheel, and is going to completely have their lunch eaten by OpenAI. But right now, there's a lot of people who are training new habits, right? They're like, "I'm not gonna use Google anymore. I'm gonna start using OpenAI." I think it's something on the order of one million users in their first few days have signed up... How long can Google potentially bleed people before it becomes an actual problem? I don't know. I don't know the answer to these things.**Shawn Wang:** So there's one way in which you can evaluate for yourself right now, and I think that's the most helpful, constructive piece of advice that we can give on this podcast, which is -- we're covering something that is moving very live, very fast. Everything that we say could be invalidated tomorrow by something new. But you could just run ChatGPT-3 alongside of all your Google searches. That's a very, very simple way to evaluate if this would replace Google for you; just run it twice, every single time. And so there's a Google extension - and I'll link it - [unintelligible 00:48:47.04] ChatGPT Google extension; I'll put it in the show notes. And yeah, I have it running; it's not that great. [laughs] Surprisingly. So ChatGPT is optimized for answering questions. Sometimes I don't put questions in there. I just put the thing I'm looking for, and Google's pretty good at that, it turns out... [laughs]**Jerod Santo:** Right. See, because you are an expert-level Google prompt engineer, right? Like, you know how to talk to Google.**Shawn Wang:** We have optimized to Google prompting, yes.**Jerod Santo:** Exactly.**Shawn Wang:** If I need to search within a certain date range, I know how to do that in Google. I can't do that in ChatGPT-3. If I need to look for PDFs, I know how to do that. If I want to look for Reddit, and constrain the site to Reddit, I know how to do that. ChatGPT-3 has no concept of attribution, no concept of date ranges, and stuff like that.**Jerod Santo:** Right.**Shawn Wang:** But yeah, it is just like better at some things, and worse at other things, and that is the nature of all new technology. It just has to be better at one thing, that you cannot get anywhere else, and it has a permanent hold in your mind. Whenever you need that thing done, you will turn to ChatGPT-3, or any other new technology.[49:53] I love this sort of meta philosophy about technology adoption, because all new toys just generally are worse than the things that they replace, except in one area, and that's the area needs to matter. And if it does matter, it will win, because they will fix the bugs.**Jerod Santo:** Yeah, oftentimes with disruption, that area is cost; like acquisition cost. Sometimes it's convenience, and maybe I guess sometimes it's accuracy. There's different metrics, but it's got to be the one that matters. If it's marginally better at things that don't matter, you're not going to disrupt. But if it's a lot better at one thing that matters a lot, even if everything else sucks, you'll use that thing.**Shawn Wang:** Yeah, exactly. So it's interesting, because -- you know, Google has a few things going for it. By the way, it has one of the largest training repositories of text that no one else has, which is Gmail. But the most impressive thing it's being able to ship with Gmail is the little autocomplete, like, "Looks good", Okay", the little buttons that you see in the smart replies.**Jerod Santo:** Do you guys ever use those? Do you ever click on those?**Shawn Wang:** I use that. I use that. Save some typing.**Adam Stacoviak:** Yeah, well, I used to actually use Gmail directly to compose my emails, or respond. I would tap to complete all the time, if the response was like, "Yeah, I was gonna say that."**Shawn Wang:** There's a billion little ways that AI is built into Google right now, that we just take for granted, because we don't feel it, because there's no prompts. [laughter]**Jerod Santo:** We need a prompt!**Adam Stacoviak:** Even if OpenAI did eat Google's lunch, Google would just acquire it, or something...**Shawn Wang:** You would think so...**Jerod Santo:** Maybe...**Shawn Wang:** But I would say that probably OpenAI is not for sale. Like, they have this world-conquering ambition that would just not let them settle for anything less than global domination... Which is a little bit scary, right?**Jerod Santo:** Yeah, I think they're probably going the distance, is their plan, it seems like...**Shawn Wang:** Well, if anything, Microsoft should have bought them when they had the chance, because that was Bing's opportunity, and I don't think that ever came to pass... Probably because Sam Altman was smart enough not to do that deal. But yeah, so let's take that line of thinking to its logical conclusion. What would you feel if Google started autocompleting your entire email for you, and not just like individual, like two or three words? You would feel different, you would feel creeped out. So Google doesn't have the permission to innovate.**Adam Stacoviak:** I wouldn't freak out if I opted in, though. If I was like, "This technology exists, and it's helpful. I'll use that." Now, if it just suddenly started doing it, yeah, creeped out. But if I'm like, "Yeah, this is kind of cool. I opt into this enhanced AI, or this enhanced autocompletion", or whatever, simplifies the usage of it, or whatever.**Shawn Wang:** Yeah, so there's actually some people working on the email client that does that for you. So Evan Conrad is working on EveryPrompt email, which is essentially you type a bunch of things that you want to say, and you sort of batch answer all your emails with custom generated responses from GPT-3. It's a really smart application of this tech to email that I've seen. But I just think, like, you would opt in; the vast majority of people never opt into anything.**Jerod Santo:** Yeah, most people don't opt in.**Shawn Wang:** Like, that's just not the default experience. So I'm just saying, one reason that Google doesn't do it is "Yeah, we're just too big." Right? That is essentially the response that you read out from that engineer; like, "This doesn't work at Google scale. We can't afford it. It would be too slow", whatever. That's kind of a cop out, I feel like... Because Google should be capable. These are the best engineers in the world, they should they should be able to do it.**Jerod Santo:** Well, he does say he thinks it's coming in the next few years. So he's not saying it's impossible, he's saying they're not there yet. And I will say, I'm giving ChatGPT the benefit of my wait time that I do not afford to Google. I do not wait for Google to respond. I will give ChatGPT three to five seconds, because I know it's like a new thing that everyone's hitting hard... But like, if they just plugged that in, it would be too slow. I wouldn't wait three to five seconds for a Google search.**Shawn Wang:** Yeah. By the way, that's a fascinating cloud story that you guys have got to have on - find the engineer at OpenAI that scaled ChatGPT-3 in one week from zero to one million users?**Jerod Santo:** Yeah, totally.**Adam Stacoviak:** [53:58] Well, if you're listening, or you know the person, this is an open invite; we'd love to have that conversation.**Shawn Wang:** Yeah. I've seen the profile of the guy that claimed to [unintelligible 00:54:04.00] so that he would know... But I don't know who would be responsible for that. That is one of the most interesting cloud stories probably of the year. And Azure should be all over this. Azure should be going like, "Look, they handled it no problem. This is most successful consumer product of all time come at us", right?**Jerod Santo:** That's true. They should.**Shawn Wang:** They're the number three cloud right now. This is like their one thing, this is their time to shine. They've got to do it.**Jerod Santo:** And does anybody even know that Azure is behind OpenAI? I'm sure you can find out, but like, is that well known? I didn't know that.**Shawn Wang:** Oh, it's very public. Microsoft invested a billion dollars in OpenAI.**Jerod Santo:** Okay. Did you know that, Adam?**Adam Stacoviak:** No.**Jerod Santo:** So I'm trying to gauge the public knowledge...**Shawn Wang:** What we didn't know was that it was at a valuation of $20 billion, which... So OpenAI went from like this kind of weird research lab type thing into one of the most highly valued startups in the world. [laughs]**Jerod Santo:** Do you think Microsoft got their money's worth?**Shawn Wang:** I think so... It's awash right now, because --**Jerod Santo:** Too early.**Shawn Wang:** ...they probably cut them a lot of favorable deals for training, and stuff... So it's more about like being associated with one of the top AI names. Like, this is the play that Microsoft has been doing for a long time, so it's finally paying off... So I'm actually pretty happy for that. But then they have to convert into like getting people who are not [unintelligible 00:55:21.00] onto this thing.**Break:** [55:26]**Adam Stacoviak:** What's the long-term play here though? I mean, if Microsoft invested that kind of money, and we're using ChatGPT right now, we're willing to give it extra seconds, potentially even a minute if the answer is that important to you, that you wouldn't afford to Google... Like, what's the play for them? Will they turn this into a product? How do you make billions from this? Do you eventually just get absorbed by the FAANGs of the world, and next thing you know now this incredible future asset to humanity is now owned by essentially folks we try to like host our own services for? Like, we're hosting Nextcloud locally, so we can get off the Google Drives and whatnot... And all this sort of anti-whatever. I mean, what's the endgame here?**Shawn Wang:** Am I supposed to answer that? [laughs]**Adam Stacoviak:** Do you have an answer? I mean, that's what I think about...**Jerod Santo:** Let's ask ChatGPT what the endgame is... No, I mean, short-term it doesn't seem like OpenAI becomes the API layer for every AI startup that's gonna start in the next 5 or 10 years, right? Like, aren't they just charging their fees to everybody who wants to integrate AI into their products, pretty much? That's not an end game, but that's a short-term business model, right?**Shawn Wang:** That is a short-term business model, yeah. I bet they have much more up their sleeves... I don't actually know. But they did just hire their first developer advocate, which is interesting, because I think you'll start to hear a lot more from them.[58:12] Well, there's two things I will offer for you. One, it's a very common view or perception that AI is a centralizing force, right? Which is, Adam, what you're talking about, which is, "Does this just mean that the big always get bigger?" Because the big have the scale and size and data advantage. And one of the more interesting blog posts - sorry, I can't remember who I read this from - was that actually one of the lessons from this year is that it's not necessarily true, because AI might be a more decentralized force, because it's more amenable to open source... And crypto, instead of being decentralized, turned out to be more centralized than people thought.So the two directions of centralized versus decentralized - the common perception is that AI is very centralized, and crypto very decentralized. The reality was that it's actually the opposite, which is fascinating to me as a thesis. Like, is that the end game, that AI eventually gets more decentralized, because people want this so badly that there are enough researchers who go to NeurIPS to present their research papers and tweet out all this stuff, that diffuses these techniques all over the place? And we're seeing that happen, helped in large probably by Stability AI. The proof that Stability as an independent, outsider company, like not a ton of connections in the AI field, did this humongous achievement I think is just a remarkable encouragement that anyone could do it... And that's a really encouraging thing for those people who are not FAANG and trying to make some extra headroom in this world. So that's one way to think about the future.The second way to think about who monetizes and who makes the billion dollars on this... There's a very influential post that I was introduced to recently from Union Square Ventures, called "The myth of the infrastructure phase", which is directly tackling this concept that everyone says "When you have a gold rush, sell picks and shovels", right? And it's a very common thing, and presumably AI being the gold rush right now, you should sell picks and shovels, which is you should build AI infrastructure companies. But really, there are tons of AI infrastructure companies right now, they're a dime a dozen; really, they're all looking for use cases, and basically, the argument, the myth of the infrastructure phase is that technology swings back and forth between app constraint and infra constraint. And right now, we're not infrastructure-constrained, we're app-constrained. And really, it's the builders of AI-enabled products like TikTok that know what to do with the AI infrastructure tha

Chit Chat Money
The State of the Cloud in 2023 with Shawn Wang

Chit Chat Money

Play Episode Listen Later Jan 5, 2023 65:24


The "Cloud" in its simplest form refers to servers with data stored on them and those servers can be accessed over the internet. Many companies like Amazon, Microsoft, and Alphabet lead this fast-growing industry. Listen in as Brett and Ryan ask questions about the cloud and what growth will look like over the next few years. Enjoy the show! ***************************** This episode is sponsored by Stratosphere.io, a web-based terminal for financial data, KPIs, and more. Try it out for FREE or use code “CCM” for 15% off any paid plan. Sign up here: https://www.stratosphere.io/ ***************************** Want updates on future shows and projects? Follow us on Twitter: https://twitter.com/chitchatmoney Subscribe to our Substack to receive free show notes and charts that go along with every episode: https://chitchatmoney.substack.com/ Interested to see more of Shawn's work? Check out their Twitter here: https://twitter.com/swyx?s=20&t=pMnKcZ7lY8rGjzEnSZavYg Contact us: chitchatmoneypodcast@gmail.com Timestamps Shawn's Cloud Background | (5:54) Who are the Cloud Companies? | (22:07) What about Snowflake (Ticker: SNOW) | (46:00) Disclosure: Chit Chat Money hosts and guests are not financial advisors, and nothing they say on this show is formal advice or a recommendation. Brett Schafer and Ryan Henderson are general partners and portfolio managers at Arch Capital. Arch Capital and its partners may hold securities discussed on this show.

The Changelog
GPT has entered the chat

The Changelog

Play Episode Listen Later Dec 16, 2022 74:43


To wrap up the year we're talking about what's breaking the internet, again. Yes, we're talking about ChatGPT and we're joined by our good friend Shawn “swyx” Wang. Between his writings on L-Space Diaries and his AI notes repo on GitHub, we had a lot to cover around the world of AI and what might be coming in 2023. Also, we have one more show coming out before the end of the year — our 5th annual “State of the log” episode where Adam and Jerod look back at the year and talk through their favorite episodes of the year and feature voices from the community. So, stay tuned for that next week.

Changelog Master Feed
GPT has entered the chat (The Changelog #519)

Changelog Master Feed

Play Episode Listen Later Dec 16, 2022 74:43


To wrap up the year we're talking about what's breaking the internet, again. Yes, we're talking about ChatGPT and we're joined by our good friend Shawn “swyx” Wang. Between his writings on L-Space Diaries and his AI notes repo on GitHub, we had a lot to cover around the world of AI and what might be coming in 2023. Also, we have one more show coming out before the end of the year — our 5th annual “State of the log” episode where Adam and Jerod look back at the year and talk through their favorite episodes of the year and feature voices from the community. So, stay tuned for that next week.

The Swyx Mixtape
[Weekend Drop] Remote IDEs and the End of Localhost on the InfoQ podcast

The Swyx Mixtape

Play Episode Listen Later Dec 4, 2022 28:14


Listen to the InfoQ podcast: https://soundcloud.com/infoq-channel/interview-shawn-swyx-wangBlogpost: https://dx.tips/the-end-of-localhostIn this episode, Shawn Wang (swyx), head of developer experience at Airbyte, sat down with InfoQ podcast co-host Daniel Bryant and discussed the rise of remote development environments. Topics covered included, whether remote development experiences are good enough to see the death of local(host) development, what a wishlist might look like for the ultimate developer experience, and how cloud native organizations are currently developing software.Read a transcript of this interview: bit.ly/3R3OEcDSubscribe to our newsletters:- The InfoQ weekly newsletter: bit.ly/24x3IVq- The Software Architects' Newsletter [monthly]: www.infoq.com/software-architects-newsletter/Upcoming Events:QCon San Francisco:qconsf.com/- Oct 24-28, 2022- Oct 2-6, 2023QCon Plus online:plus.qconferences.com/- Nov 29 - Dec 9, 2022QCon Londonqconlondon.com/- March 26-31, 2023Follow InfoQ:- Twitter: twitter.com/InfoQ- LinkedIn: www.linkedin.com/company/infoq- Facebook: bit.ly/2jmlyG8- Instagram: www.instagram.com/infoqdotcom/- Youtube: www.youtube.com/infoqDXSWYXLocalHostRemotedevelopment

The Swyx Mixtape
[Weekend Drop] Trading derivatives with VBA and Finance - swyx on the Keycuts podcast

The Swyx Mixtape

Play Episode Listen Later Oct 15, 2022 49:00


Listen to Keycuts: https://www.thekeycuts.com/dear-analyst-50-walking-through-a-vba-script-for-trading-billions-of-dollars-worth-of-derivatives-with-shawn-wang/This little podcast/newsletter started as a little experiment last year. I never thought I would make it to episode number 50, but here we are! Thank you to the few of you out there who listen/read my ramblings about spreadsheets.I decided to give you all a break and invite my first guest to the podcast: Shawn Wang (aka @swyx). Shawn currently works in developer experience at AWS, but has a really diverse background (check out his site to learn more). I've mentioned Shawn in previous episodes (25 and 49) and was honored he agreed to be the first guest on Dear Analyst. We dig into a variety of topics including negotiating your salary, Javascript frameworks, creating, and whatever else tickled my fancy.Becoming a JediI was particularly interested in a 4,000-line Excel VBA script he wrote while working as a trader in a previous job. You can learn a lot about someone from looking at their code, and that's exactly what we did during this episode. Shawn was kind enough to share a VBA script he built back in 2012 for his team to price billions dollars worth of derivatives. I honestly don't understand 90% of this script, but Shawn walked through a lot of the derivative concepts he had to translate into this VBA script. You can see some of his thoughts about this script in the Tweet thread below:https://twitter.com/swyx/status/1327041894853922816?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1327041894853922816%7Ctwgr%5Ef93cc6228794ba7b8cdb0018993df1a13c16d4e9%7Ctwcon%5Es1_&ref_url=https%3A%2F%2Fwww.thekeycuts.com%2Fdear-analyst-50-walking-through-a-vba-script-for-trading-billions-of-dollars-worth-of-derivatives-with-shawn-wang%2FI think it's amazing that his bank relied on traders using this homegrown script to price everything from interest rates to mortgages.One of the main takeaways from our walkthrough of this script is that the code isn't pretty. Shawn had a problem that he needed to solve, picked up the tool that could solve that problem, and started hacking away at the solution. Shawn shared a story from his senior trader at the time on building tools for yourself:One of the rights of passage for becoming a Jedi is building a light saber. Once you have the light saber, you just use it, and stop building it.—Shawn WangFor the benefit of other traders out there, Shawn also believes in learning in public. Releasing this script is just one example of that. By producing content and acknowledging gaps in your knowledge, you'll learn faster than being a “lurker,” as Shawn puts it.No-code is a lieWe talked a bit about an article he wrote called No code is a lie, and how programmers sometimes need to get over themselves. Programmers may get caught up in the style of their code, but the end-user just cares about whether the thing works and solves their problem.After finance, Shawn moved from Excel and VBA scripts to Haskell, Python, and Javascript. He still has a soft spot for Excel, however. With Excel, you have your database and user interface right in front of you. This not only gives people an easy way to create, but makes creation more inclusive.Excel is creation over code. I don't define myself as coding, I define myself creating.—Shawn WangTaming the Javascript communityShawn got really involved with the ReactJS community and eventually became one of the moderators of the subreddit after Dan Abramov asked him to help with the community.Shawn recently stepped down from moderating the community as he started coding with Svelte, another Javascript framework. In terms of moving from community to community, Shawn made an interesting point on encouraging renewal in communities. Mods, leaders, managers, and political figures should have limited terms to encourage innovation and different perspectives. Plus, I think when you are new to a community, you get a chance to learn from the ground up from others who are more experienced. Once you're at the top, it's time to find a new place and rinse, lather, and repeat.Getting $50,000 added to his salaryWe both talked about our interests in Haseeb Qureshi's blog posts on salary negotiation. If you were a developer 4-5 years ago, you most likely came across Haseeb's posts because it shows step-by-step how Haseeb went from finishing a coding bootcamp to getting a 6-figure salary at Airbnb.Shawn also cited Patrick McKenzie's post and Josh Doody's guide on salary negotiation as good resources. I remember when I was interviewing, I relied on Haseeb's concepts to get me through the negotiation process. Long story short? You should always negotiate.The fallacy of measuring developer advocacy programsI've read various blog posts and listened to podcasts about this subject, so figured I'd ask Shawn what he thinks about measuring developer advocacy efforts since he works at one of the largest companies on the planet. Rest assured! His team has not come up with the perfect formula either. Guess where they keep track of all their speaking engagements and content? You guessed it: in a spreadsheet.Shawn mentioned one startup called Orbit that is trying to crack this nut. They dub themselves as the “operating system of vibrant developer communities.” Their orbit model is a bit cheesy but does attempt to quantify someone's engagement in a community: Love is a member's level of engagement and activity in the community. Reach is a measure of a community member's sphere of influence. Gravity is the attractive force of a community that acts to retain existing members and attract new ones. Orbit levels are a practical tool for member segmentation and used to design different programs for each level of the community. I'm currently working on a similar program and commend them on tackling this problem :).Other projectsShawn finally shared what he's working on these days: Wrote a book called Coding Career Handbook and maintaining a community for that Growing the Svelte society on Twitter Angel investing Scouting for a VC fund Writing on his blog He talked about being disappointed in his writing and I completely agree with that sentiment. Writing these posts definitely take time but I always feel like more time can be put into the writing to make it more clear, structured, and precise. Having said that, I'll take a page out of Shawn's notebook and #LearnInPublic !

The InfoQ Podcast
Swyx on Remote Development Environments and the End of Localhost

The InfoQ Podcast

Play Episode Listen Later Aug 29, 2022 27:13


In this episode, Shawn Wang (swyx), head of developer experience at Airbyte, sat down with InfoQ podcast co-host Daniel Bryant and discussed the rise of remote development environments. Topics covered included, whether remote development experiences are good enough to see the death of local(host) development, what a wishlist might look like for the ultimate developer experience, and how cloud native organizations are currently developing software. Read a transcript of this interview: https://bit.ly/3R3OEcD Subscribe to our newsletters: - The InfoQ weekly newsletter: https://bit.ly/24x3IVq - The Software Architects' Newsletter [monthly]: https://www.infoq.com/software-architects-newsletter/ Upcoming Events: QCon San Francisco: https://qconsf.com/ - Oct 24-28, 2022 - Oct 2-6, 2023 QCon Plus online: https://plus.qconferences.com/ - Nov 29 - Dec 9, 2022 QCon London https://qconlondon.com/ - March 26-31, 2023 Follow InfoQ: - Twitter: https://twitter.com/InfoQ - LinkedIn: https://www.linkedin.com/company/infoq - Facebook: https://bit.ly/2jmlyG8 - Instagram: https://www.instagram.com/infoqdotcom/ - Youtube: https://www.youtube.com/infoq

Just Reflections Podcast
How to get lucky

Just Reflections Podcast

Play Episode Listen Later Aug 29, 2022 12:02


Many of us believe luck to be a binary non-deterministic thing; by no doing of our own, there are people who are lucky and other people who are not lucky. In another variation, we believe people's luck to be situational; for example, when it comes to business, she's very lucky. What if I told you that none of that is true? That there are things you can do to create your own luck. This is an idea that occupies my mind a lot, but it's not my idea. There are many smart people who have learnt to get the winds of luck to blow more strongly on their sails. This isn't something mystical that's accessible only to a few who've unlocked some higher plane of existence. There are things we can all do to increase our luck. Let's take a closer look.Increasing the surface area for luckBefore you come at me and say this is a little too airy-fairy. Let me clear the air. I believe that there are no inherently lucky or unlucky people. I also believe that luck happens by chance. After all, the Bible says: “I have seen something else under the sun: The race is not to the swift or the battle to the strong, nor does food come to the wise or wealth to the brilliant or favor to the learned; but time and chance happen to them all.” — Ecclesiastes 9:11, NIV.Not everything comes by hard work or training or strength or intelligence. Sometimes things happen despite all this. There are hard-working, intelligent and wealthy people who have rotten things happen to them and there are rotten people who have good things happen to them. This thought can comfort us in our ineptitude. If it's all just random, then your lack of success is not your fault. We're just continuously being dealt a bad hand. Right? Wrong! Here's the point I want to make here. You can take calculated action to create optimal conditions for good fortune to land on you more often. Put another way, while luck falls randomly, you can do things to increase your surface area for catching it. Here's a cool diagram I adapted from Shawn Wang's article on How To Create Luck.Here's how to do it. How to get luckyI've read many interesting strategies for how to increase luck. But I think they are all summed up really well by Naval—who has the most legendary Twitter account with 1.8 million followers and following 0. According to Naval, there are four ways to get lucky: • Hope luck finds you.• Hustle until you stumble into it.• Prepare the mind and be sensitive to chances others miss.• Become the best at what you do. Refine what you do until this is true. Opportunity will seek you out. Luck becomes your destiny.Let's expand on these. Hope that luck finds youHopefully, it's obvious that this is the least optimal strategy. And yet, this is the strategy that most of us employ. We believe that luck is completely out of our control. We have no agency in its acquisition. So we sit still and hope that it lands on us. When we do this, we do nothing about the probabilities. This leaves us at the mercy of random chance. You're lucky or you're not. You're fortunate to have certain privileges or you're not. In Shawn Wang's words, you have the same luck as a plant which has no agency in its success. Avoid this strategy!Hustle until you stumble into itThis is the luck that you attract by trying many times. You're more likely to roll a six if you roll the dice many times. We attract this kind of luck by taking many risks. As kids, we did this a lot. We have to if we're going to learn how to walk or talk. That's how we moved from being someone who can't ride a bike to one who can. And that's how we made many friends. We actively got out of our comfort zones and took some risks. But as we get older, the tendency is to lock onto a certain definition of who we are and stop trying new things outside our comfort zone that could stretch us beyond the boundaries of that definition. And by so doing, we narrow our surface area for catching luck.Richard Wiseman suggests three ways we can use to maximise our change opportunities that fit into this category: Have a large network of people who can alert you to new opportunities, be more relaxed and easygoing so that you can spot the opportunities when they arise, and be open to new opportunities. If you only talk to the same people, do the same things and maintain a straight jacket personality week in, and week out, your chances of stumbling upon luck are going to stay limited. So here's an idea; continuously push yourself to stretch beyond the boundaries of who you've defined yourself to be. Take an intellectual risk by tackling a fresh problem you haven't tried before or a social risk by talking to the stranger next to you the next time you're on the train. Take an emotional risk; tell someone you really care about how you feel. Luck results from a series of minor risks that get you out of your comfort zone and expose you to new situations that wouldn't happen when you're just waiting around. But luck is not just about risks. Good luck also requires effort. There are some people who take many risks but don't follow through with effort. They start many high potential things, but those things never come to anything meaningful. There are also people who put a lot of effort into what they're already comfortable with but take no risks, so they excel in their small limited context, hit the ceiling fast and get nowhere else. To maximise the surface area for good luck, you need both. Talk to strangers and be sincerely curious about them. Try new activities that are out of the norm for you. Do this often and your wide sails will eventually catch the winds of luck. Be sensitive to the luck that others missYou've probably heard Seneca's popular saying that luck is opportunity meeting preparedness. This is the luck you get from noticing that something lucky has happened that most would miss. There are opportunities for luck dropping all around us. Unfortunately, most of the time we're not well positioned to notice them or to take advantage of them. In illustrating this, Shawn Wang gives this illustration; “The canonical story on this is Alexander Fleming's discovery of penicillin, which was a huge medical breakthrough. The discovery was a total accident (some mold happened to fall in the right spot + Fleming happened to see it + he had a similar experience that was a nonevent 9 years ago), but Fleming was not only “uniquely equipped to observe it” by his background, he took action to confirm the observation.” — Shawn WangMost people judge ideas as good and bad, but ideas are neither of that. When viewed with the correct perspective, a seemingly useless idea can yield some incredible insight into a seemingly disparate discipline. The best advice I've heard for capturing this kind of luck is credited to Richard Feynman by Gian-Carlo Rota. “Richard Feynman was fond of giving the following advice on how to be a genius. You have to keep a dozen of your favorite problems constantly present in your mind, although by and large they will lay in a dormant state. Every time you hear or read a new trick or a new result, test it against each of your twelve problems to see whether it helps. Every once in a while there will be a hit, and people will say: “How did he do it? He must be a genius!” - Gian-Carlo Rota, Indiscrete Thoughts.According to Richard Wiseman, when people who consider themselves lucky encounter misfortune, they turn that bad luck into good by trying to see things in the most positive light. The glass half full effect. In addition, when things go poorly, they want to know why so that they can change things for next time. They genuinely look for feedback on how to be better and then incorporate that feedback into their lives. In this way, they develop a sense for seeing opportunity even in their own misfortune. Let luck find youThere are forms of luck accessible to everyone, and then there are forms that are accessible to people in unique situations. Naval probably illustrates it best with this example: “…let's say you're the best person in the world at deep-sea diving. You're known to take on deep-sea dives nobody else will even dare to attempt. By sheer luck, somebody finds a sunken treasure ship off the coast they can't get to. Well, their luck just became your luck, because they're going to come to you to get to the treasure, and you're going to get paid for it.” — Naval Ravikant.The person who found the treasure had blind luck; it just happened to them. Them coming to you to extract it and give you half is not blind luck. There's a very specific reason they came to you and not to anyone else. You created your luck. By working to become the best at what you do, you put yourself in a position where luck comes looking for you. You might ask, “but in this case, is it still luck?” And that is exactly the point. It's possible to excel so much that luck in that specific area seems deterministic. Which makes it hard to even define as luck. The idea here is to find something you really enjoy and that you're great at and double down on it. Do it very well and build a name around it so that anyone who needs help in that specific area will think of you first and thus come to share their luck with you. “If you are a trusted, reliable, high-integrity, long-term-thinking dealmaker, when other people want to do deals but don't know how to do them in a trustworthy manner with strangers, they will literally approach you and give you a cut of the deal just because of the integrity and reputation you've built up.” — Naval Ravikant. ConclusionTalking about creating luck is a bit of an odd thing. This is mostly because it seems attracting luck comes down to a paradox, you must believe that you have agency in generating success and it comes through diligence and hard work. But you must also understand that a big part of your success is because of circumstances outside of your control. You happened to be at the right place at the right time with the right knowledge and the right questions and all that came together to help you catch the opportunity. So while you can't control which opportunities will come, there's something you can do about all the other stuff. Finally, whether you use the model we just went through or another from the many books written on the subject. It's pretty well proven that you can influence how lucky you are. So go out there armed with this knowledge and tip the odds in your favour.Good luck!Related readings;The Luck Factor: The Scientific Study of the Lucky Mind by Richard WisemanHow To Create Luck by Shawn WangHow To Get Lucky from the Almanack of Naval Ravikant This is a public episode. If you would like to discuss this with other subscribers or get access to bonus episodes, visit justreflections.bhekani.com

The Swyx Mixtape
[Weekend Drop] AWS, Cloudflare, and Techbro Therapy on AWS.fm

The Swyx Mixtape

Play Episode Listen Later Aug 27, 2022 51:25


Listen to AWS.fm: https://aws.fm/episodes/episode-25-shawn-swyx-wangShawn joins Adam to discuss Amplify and its place in the developer ecosystem, whether we should care about Cloudflare, yet, and how to cope with the anxiety that can come with being extremely online. Also, it sounds like Adam is a tech bro and he's NOT happy about it.TranscriptAdam Elmore: Hey, everyone. Welcome to AWS FM, a podcast with guests from around the AWS community. I'm your host, Adam Elmore. And today, I'm joined by Shawn Swyx Wang. Hi, Shawn.Shawn Wang: Hey, Adam. How's it going?Adam Elmore: It's going well. I've been extremely excited. I've said this on a ton of podcasts, that I'm excited to get on with a guest, but this has been a long time because before I took my break, I was going to get on with you. Took a big, long break, and I've finally got you on. You're somebody, and I'm going to say a lot of things, I'm very dramatic, but you're somebody that I really admire in the online space. You have this ability to think about things, and distill them, and put them out there in a way that I admire greatly. I'm so excited to have you on here. It's going to be hard for me to stay on any one topic because I have just a list of questions I want to ask you, basically.Shawn Wang: [inaudible 00:00:52].Adam Elmore: First, could you tell everyone on this show who you are, just the short version of Shawn?Shawn Wang: Yeah. So I'm Shawn, born and raised in Singapore, went to The States for college and then spent my first career in finance where I did investment banking and hedge funds. Loved the coding part because every junior finance person starts to learn to code, and didn't like the stress of the finance part, so I pivoted to tech where I was a software engineer at Two Sigma and then I was in developer relations at Netlify, AWS, Temporal, and I've just joined Airbyte as head of developer experience.Adam Elmore: Oh, I did not know you weren't still at Temporal. So Airbyte, what is Airbyte?Shawn Wang: Airbyte is a data integration company, it basically has the largest community of open-source connectors for connecting to any SaaS API source into your data warehouse. So for anyone doing data engineering, the first task that you have to do is to get data from all the different silos of data in your business. Let's say you have a Salesforce being the source of truth for customers, Stripe being the source of truth for transactions, get all of them into a single data warehouse for you to do operations on. So the goal is to have the largest community of open-source developers for connecting all the data and liberating your data from all the silos that you have in your business.Adam Elmore: And how long ago did you start? How did I miss this?Shawn Wang: A couple weeks ago. I actually have not announced it on Twitter, which is why.Adam Elmore: Oh, there you go.Shawn Wang: I like to slow play it. So when I joined Temporal, I actually waited for six months to really understand Temporal and to practice my pitch before announcing it on Twitter. And that's how I like to do things because, well, partially I want to be fully up to speed before I represent something publicly.Adam Elmore: Yeah. So I want to talk about that. You get very up to speed in a way that I don't see a lot of people on Twitter. I don't see them understand things in the way that you do. So you obviously write, your blog is a huge source of information for me, and I've enjoyed it quite a lot, but it's not just that you write, it's the way you think about things. Does that come from your finance, your analytical background in finance, or were you like that before, your ability to see the whole forest, take in the way things are trending and the way things are moving, put it all together and distill it into these wonderful articles? Where does that come from?Shawn Wang: Oh, so first of all, thanks for the very kind words. I don't hear back from my readers that often, so it's really nice when I get to talk to someone like this. So yeah, I would say a lot of this stuff is actually from my finance days. This is the kind of analysis that you would have to do when you do an investment report or investment research on any stock or any industry. You want to get a perspective of what's going on, what the trends are, who the major players are, and form an opinion on where things are going. And I think taking that finance mindset into the bets I have, in terms of technologies, whether or not it's for using them personally in my personal stack or for joining them as a startup employee, I think is extremely underrated. And it's something I'm trying to model and hopefully teach people someday.Shawn Wang: Although I'm not sure about the teaching part, because if I say like, "Get rich by doing investment analysis stock on early stage startups," I would feel like a hustler. So maybe not that, but I just do like engaging in that. And probably it's an exercise for me to think things through clearly by writing it down. And I also get a lot of feedback from that, so I actually improve and learn a lot by learning in public. And that's the other thing that I am pretty well known for, so this is the application of the general purpose learning in public principle.Adam Elmore: Yeah. No, and I love your learning in public article. I hope more people see how you break down systems and the world around us and distill it. I hope more people do that because I'd love to have more sources of that kind of information. It's really fascinating and that's a lot of what I want to talk about today is your opinions on the future and where certain things are headed. First, I want to talk, you did work at AWS. How long were you at AWS?Shawn Wang: A year. AWS Amplify.Adam Elmore: Yeah. So I'd love to know, I guess what it was like working at AWS, what you took from that, but also more broadly, I want to get into Amplify and where it fits. You sort of live in that intersection. I feel like web, and cloud, and infrastructure, where things are trending, and I want to talk Amplify's place in that, but first, what was your role there like at AWS, at Amplify?Shawn Wang: Yeah, I was a senior dev advocate at Amplify, basically doing demos and talks for Amplify. And the fun thing about working at Amplify is that you are essentially also a developer advocate for all the underlying services. So amplify is essentially a roll up of DynamoDB, API Gateway, AWS AppSync, even file storage like S3. You could do some demos with that. And I did, I made like a DIY Dropbox clone. But it's focus on front-end engineers. And I think that was the first time that AWS had ever made a dedicated arm or products for front-end engineers. And it turned out to be a really good bet because AWS Amplify was one of the fastest growing AWS services, at least during the time that I was there. So I thought it was just really compelling to try it out and obviously everyone has very high regard for AWS. There's a bunch of services that I only experienced on the inside and I only learned about once I got on the inside, and I thought that was really interesting as well.Shawn Wang: A few things I'll point out. I really loved the AWS interview process, actually. I felt like it was very rigorous and I definitely haven't had as rigorous a process anywhere else. And they really got a good look at every single part of me before they made the decision. And fortunately for me, it was a unanimous, good decision, but I felt challenged. I felt like there was a lot of growth that I took away from that process as well. So I highly recommend going through it, even if you don't necessarily take the job.Shawn Wang: And once you're in, I think the other practice I really like was the weekly business reviews. Not everyone gets to be a part of, but I was, and essentially you have a P&L from the central AWS finance team that week to week tells you how well you're doing or not. And the PMs in particular, they'll put up highlights, they bring up topics of discussion, and the general manager would be grilling people on. And I thought that was just a fun way to run a business. It was a little bit stressful, sometimes a little bit dramatic, but hey, it forced you to take on the issues head on instead of ignoring them for three months to a year, which I've also seen happen.Shawn Wang: So I just really appreciated that directness, and everything that you've heard about on the outside about AWS culture applies, like they'll send out the memo and the first 10 minutes of the meeting will be spend in complete silence where you just read the memo.Adam Elmore: Just read the memo. Yeah, that's real. Well, what about the leadership principle? You talked about interviewing there. Did you feel like you started to embody those? Did those really become something you valued or was it sort of like, you're just doing it because that's what Amazon cares about?Shawn Wang: There are a few things here. So I think one, people are drawn to Amazon because of leadership principles, like literally is what the interview is for. So you can't really join without already having them ingrained in you. And then second, yes, it gets brought up a lot when decisions are being made or just behaviors being modeled or discussed, especially in the performance review stuff. So I think that is useful, that is helpful, but at the same time I have problems with some of the LPs myself. "Be right a lot." What the hell is that?Adam Elmore: So what is right?Shawn Wang: Yes, exactly. What is right, what is a lot? So I think that, for example, what is underdiscussed or just not on the table, just because it comes from so much up high and has so much baggage and history with it, is that sometimes you have to try to be wrong, to take more risks. And being right a lot means that you might be more conservative than you otherwise should be. It leads to very incrementalist thinking, which is like, "All right, what is the most obvious next step? What is the low-hanging fruit? What is the short thing?" You just pick that over something that is more risky, but potentially has higher impact.Adam Elmore: Yeah. No, that makes sense. I want to, I want to shift gears a little bit and talk about Amplify. Now that you're outside of AWS, you mentioned it was sort of the first example of AWS trying to go to the front-end developer and bundle up more of a developer experience. How do you feel? And you may have information from being there about traction and things like that. How do you feel about Amplify's return on investment and is Amazon doing a good job, I guess, with Amplify in terms of trying to package up their own experience? Do you see that resonating with developers?Shawn Wang: So I think Amazon is doing a good enough job at addressing the needs of AWS customers. And that's something that is Prime first and foremost, like excels at that. Amplify could be doing a lot better at competing with the other standalone front-end developer focused startups that are out there that don't have the AWS infrastructure, which should help, but actually sometimes hurts it a little bit. So my favorite example of this is, so there's another company Begin, begin.com with Brian LeRoux. It's a four-persons company, and they also do very similar things. They deploy on top of Amazon, they are entirely serverless, they have a smaller set of offerings that they have, but their deploy speeds are in order of magnitude, faster than Amplify. They can deploy faster to AWS than Amplify can.Shawn Wang: And that's because Amplify doesn't do some of the trickery that they do, like having a cold pool ready or anything like that. When people are not married to the AWS stack, just because that's the solution, that's the technology provider or cloud that their company has picked. When you have free choice, then you come with no baggage and just being from AWS doesn't give you any home ground advantage anymore. Therefore, you have to really, really, really compete on developer experience. And that's something that Amplify still needed to work on at the time that I left.Adam Elmore: Yeah. I'm glad you brought up Begin too. I'm curious how it fits into the landscape. I've seen you mention Begin within some of your articles, like the cloud distros article I think about, I want to talk about that, but how is Begin doing? I interact with Brian on Twitter, I generally like him a lot, I like what they're building, but it is sort of a thing you have to buy into. It's like a whole different way of building applications. Do you have any sense for how they fit as a player in all of this?Shawn Wang: They're tiny. I mean, they're not a rocket ship by any means, but they absolutely solve the problem for the serverless full stack minimalist aesthetic that they're going for.Adam Elmore: Those are all things I like, so.Shawn Wang: Right down to the API calls, having an inbuilt authentication solution that when you write the serverless function, you just have the user ID and it's all done for you with cookies in the background. That's just beautiful, that's [inaudible 00:12:58] mess with cognito or anything like that. Because it's very straightforward, that is the way that I would want to build serverless applications. If I didn't have some kind of big enterprise thing requirement, which maybe it's a premature optimization to try to glom that on in the first place, which is what you're required to do with AWS Amplify.Shawn Wang: So I don't think I have enough experience to really judge, are they the right technical choice in all aspects? But I think there's just a certain aesthetic that you try to optimize for. And if you have full stack needs, if you like serverless, if you like one of everything, essentially one story solution, one queuing solution, one database solution, then Begin is the right curation for you. And then Amplify is sort of the more fully loaded solution if you want an easy way to access, let's say API Gateway, even like the... Actually just before I left, they actually launched support for serverless containers with a AWS Fargate, which is also super interesting.Adam Elmore: Oh, I didn't even know Amplify supported that.Shawn Wang: Yeah, exactly. They're just different trade offs in the spectrum, like Begin is way more opinionated than Amplify. Amplify is way more opinionated than the full set of AWS services that are possibly out there. I think they serve front-end developers well in all different respects. Yeah. I think Amplify is definitely hitting its goals and probably exceeding its goals for adoption internally. Begin could do a better job at marketing and something that I should probably try to help them on just because I'm a friend of the company and so, I mean, I just really like the philosophy, but at the same time, there are other competitors out there, like CloudFlare Workers is essentially trying to become a Jamstack or a backend-as-a-service platform, because they have Workers KV and Durable Objects. And that's a very compelling solution for a particular type of audience.Shawn Wang: And it's weird because you have to be much more specific now. Like that's the thing, you have to figure out which part of the population you are in, in order to figure out which provider is best for you. There's no such thing as one provider fits all. It's really about like, "Okay, do you like the minimalist approach? Go with Begin. Do you like the edge-first approach? Maybe go with CloudFlare. Do you like the little bit more full stack, scalable, cloudy service? Maybe go with Amplify." There's a lot there. Like, "Do you like to self-host containers? Maybe go with Fly.io or Render.com. There's just a lot of options out there, but all of them happened to be built on top of AWS, which is why we had the cloud distros thesis.Adam Elmore: Yeah. And I've consumed a lot of your content on that front, like hosted back ends. I do wonder where it's all headed. Maybe the answer is that there's just going to be a lot of options, and because there's a lot of different use cases, I guess maybe narrowing it down. Like if I really don't care about enterprise stuff or big teams, if I just care about building stuff with small teams, startups, that's where I live. Do you have any predictions, I guess, for where ideal product building is headed? Is it hosted back ends to go with your hosted front ends on Vercel or whatever else? Is it learning AWS primitives and just good and good at building stuff? How do you see that forecasting into the future?Shawn Wang: What's the alternative to hosted back ends?Adam Elmore: I guess what I do right now is build... Like I kind of use all the Amplify services, I just don't use Amplify. So I build a lot of bespoke APIs with AppSync, and Dynamo, and whatever.Shawn Wang: So because you have that knowledge, that's the best thing for you, because you already have that knowledge. Like it's not a big deal for you to spin up another service, but for others it would be, because they would be new to that and sometimes a more friendly layer that abstracts it away for them would be helpful. So it's really hard to say which is going to win just because they're all going to win in some way, but some will be more winning than others. That's kind of how I view it.Adam Elmore: Yeah. Yeah.Shawn Wang: Because at the end of the day, like cloud is such a big deal, it's such a multi decade thing. It's going to take the rest of our lives to play out. That means that the vast majority of users of cloud haven't adopted it yet, still. This late into the game, they still haven't adopted it yet.Adam Elmore: It's so hard for me to wrap my brain around. It seems like it's been so long. And when you say the rest of our lives, I don't put it in that kind of perspective. I need to calm down trying to figure out what's going to happen in the next three years. Like it doesn't matter.Shawn Wang: Yeah. Yeah. Lambda is like seven years old. This is so early. The way that this looks 40, 50 years from now is going to be so different. AWS has like a million-something customers, imagine it having 10 million. When you have order of magnitude, when we start to think in terms of orders of magnitude, you start to really sweat the small details a lot less because you're like, "Whatever. Everyone's going to win."Adam Elmore: We all win. Yeah, I guess it's true. I don't know if you've talked about this, I'm sure you've thought about it, and maybe you have written about this, but it's the idea of scarcity versus abundance mentality, I guess. It's weird because all at the same time, I agree with the sentiment that if you're on Twitter or you're very online or whatever, you should have this mentality that we can all lift each other up and we can all succeed. But then on the other hand, you've got the climate and how much can the earth sustain in terms of everything can only grow so much. I just had that thought, that sort of raw stream of consciousness. So I don't know if you've got any refined response to that. Is that sort of totally different concepts that I shouldn't conflate?Shawn Wang: What, the limits to growth thesis?Adam Elmore: Oh, yeah. I guess that's what it's called. See, I knew you'd have a name for it or something. Like the idea that we can all succeed, but at the same time, we all need to do a lot less because the planet can't succeed if we all...Shawn Wang: I mean, this is about the offline-online shift. So we can still do a lot less and cloud can still grow because the mix of what we do in-cloud versus off-cloud is still very much imbalanced. So when you do things like pay attention to an Andy Jassy Keynote, and he'll talk about like, "Oh, cloud penetration is whatever, 20%, 30%." That is how low it is and it still takes a long time for people to adopt for whatever reason, institutional or just generational, or maybe our technology's not there yet. There's still a lot that needs to be developed to serve all kinds of markets that it hasn't penetrated. My favorite stat was that online shopping went from 10% to 20% in COVID.Adam Elmore: I can't believe it's only 20%. That's actually...Shawn Wang: Exactly, right?Adam Elmore: That's bonkers.Shawn Wang: So there's some version of the future where that is 70%, which means that you still have a long, long, long, long, long way to grow for every part of e-commerce and the planet can still win by maybe more efficient sorting or less retail outlets. I don't know. I don't know about that. I think I'm much more shakier ground there, but yeah, often the online transition, I think it is a very positive thing for the planet, especially because a lot of the major clouds are committing to net zero carbon footprints. I'm not sure if AWS has actually done that yet, but definitely Microsoft and Google have done it, which means AWS will eventually do it.Adam Elmore: And I know AWS, they've launched sustainability insights and stuff recently, where you can start to see the emissions impact of the services you're spinning up. I know Google's done that for some time, but AWS is now doing that, I think.Shawn Wang: Right. But we're actually measuring it now versus not measuring it before, so whatever. This is peanuts compared to like, "All right, are we moving to electric vehicles or something?" That is way more of an interesting concern than this stuff. Like invent a better battery and that will drastically accelerate the move to solar, and that will be much more meaningful than choosing paper straws. Sweating over the carbon footprint of your EC2 instance is the developer equivalent of choosing a paper straw. Really, look, I appreciate the effort, the spirit's, the heart's in the right place, but really if you want to make an impact, go work in the big things.Adam Elmore: I'm glad you said that because this is not on my notes, this is not something I planned to talk about, but this is the thing that I feel like to make an impact, I've really struggled, I'm 15 years into my career, I've been like a software engineer mostly early in my career, then I did a startup, and then I've mostly just been doing consulting. I feel like there are more possible things I could do with my time than ever. And it's so hard for me to decide what is worth spending time on.Adam Elmore: And I guess, do you have any thoughts on senior engineers, when you get to a point in your career where you have more flexibility and more opportunities, what is the most impactful thing? I've thought about making courses, I've thought about building products and just continuing with consulting. Is there a way to split your time that you're ever going to feel good about?Shawn Wang: Probably not.Adam Elmore: Okay. It's good to know. I can stop trying to find it.Shawn Wang: Yeah. The menu options is so high. I think just figure out what gives you energy and then try to spend more of your time and day on that than stuff that takes away energy from you, so it was just a very hippie thing for me to say.Adam Elmore: Yeah. No, that seems much simpler than I'm making it.Shawn Wang: There's a concept here that I do like to share about leverage. There's an inherent tension between productivity and leverage. I think we are trained from basically our days in school, that high productivity is the goal, which is you want to have a packed calendar, you want to be doing eight different things at once. You should feel bad if your efficiency went down 10% compared to last week or whatever, and you're not meeting your OKRs or whatever. And the exact opposite to that is leverage where you want to have one thing, you want to do one thing and just have a lot of impacts come out of that.Shawn Wang: And I think there's a movement, at least in VC circles, but also in sort of tech bro circles of waking up to the idea of slack in your life, and having peace and not having so much going on, and just doing high leverage activities that help you extend your reach without you necessarily putting more hours in or being super productive. Like being unproductive is fantastic. It's actually people who cannot figure out leverage who have to try to be productive. If you can figure out leverage, then productivity doesn't matter at all.Adam Elmore: Yeah. No, that's good stuff. I think I intuitively knew that. I just have a really hard time. I feel like I'm much more seeing the tree versus the forest, so I really appreciate talking with people like you that see the broader picture. I think I have a lot of thoughts and then I read an article of yours and it helps me put words to those thoughts that I couldn't really formalize in my head.Shawn Wang: I should really write about this more, but I feel like I haven't got it yet. You see me out there, you see me doing all sorts of random crap. So I haven't internalized it fully. I haven't let go of the sort of productivity mantra. Part of that is me being very risk-averse, part of that is me being doubting myself. Definitely, the stuff that you see from me has extremely high leverage. I think, okay... The other thing is I also have second thoughts or doubts about this whole leverage thing, that's why I have a very divisive tone about VCs and tech bros, because everyone wants to be high leverage, everyone wants to do the 80-20. Nobody wants to ship stuff, they just want to tweet thoughts, and then they think they're done. Right?Adam Elmore: Yeah.Shawn Wang: That's what they think high leverage is. But really the people who get shit done, swipe to find details and take things to the finish line. And guess what? Doing that last 10% is super low leverage. Like, "Oh man, I got to fix this stupid SEO description or the OG image isn't right, let me go fix that." That kind of small little details matter for the quality of the products and for shipping things, but all the high-leverage people feel like they're above that because it's not a good use of time.Adam Elmore: So are they the high-leverage people or you're saying the people that want to be high leverage, is that the VCs and the tech bros?Shawn Wang: Yeah, exactly.Adam Elmore: What is tech bro? I feel like I probably am a tech bro, and I don't want to be a tech bro, but I feel like I'm a white male that has a podcast, so I can't escape it.Shawn Wang: Yeah. Yeah. I'm a tech bro guy. I'm sort of reluctantly in that demographic. Yeah, the tech bro is a bro that's in tech.Adam Elmore: Okay. Yeah. Well.Shawn Wang: That is fully aware. Okay. I do like to have this mis-metric. If you're fully up to speed on the latest news, the gossip, you know all the new launches and new products, you're definitely a tech bro.Adam Elmore: Okay. Okay.Shawn Wang: If nothing surprises you, you're a tech bro. If you know what AUM is, if you know what ARR is, if you know all these acronyms without even blinking, you're a tech bro. Well, the real people who get shit done out there are wonderfully blissfully ignorant. They'll be like, "What is this whole Twitter kerfuffle, what's going on? I don't know. I just completely stayed out of the loop." But you being a tech bro, you would know the blow by blow of like Elon did this, twitter did that, Elon did other thing, twitter did other thing. It doesn't matter, the stuff doesn't matter to some extent and tech bros are so involved in their own filter bubble that they don't see their own forest for the trees, so.Adam Elmore: You said Twitter. I think I've been on Twitter actively for a year or so and I don't know that I'm better for it. I don't know that like... I know that I'm very influenced by that sphere and sort of feeling like, I think that's why it's so surprising to me when I hear about cloud adoption or I hear about online shopping. It just seems like everyone lives in this little community and it's very easy to just not really remember the people that are actually around me in my local community and what life is actually like. Is there a way to balance it? Is there a way to balance being very online, being a member of this Twitter community and still keep a good grasp on the real world?Shawn Wang: I don't think I personally have figured that out a lot, but I think it's basically the developer equivalent of go touch grass, which is go outside.Adam Elmore: Yeah, yeah, yeah.Shawn Wang: Have hobbies, have kids.Adam Elmore: That I was going to say, I've got two boys and they make me be outside a whole lot, so that probably helps, I guess, somewhat.Shawn Wang: Yeah, yeah, yeah.Adam Elmore: I think the biggest thing for me just career and in terms of the always online, the tech broness, I think giving my wife the opportunity to set some boundaries around the time that I am working, I think this stage of my career, I've been able to say I'm going to work less and just seeing her role and what her life looks like and realizing how it shouldn't be this different. Like we shouldn't have such a, I don't know, huge chasm in terms of our daily life. Like I get to go enjoy what I do all day. Yeah, that's helped. We've carved out a lot of time that's like, "This is time for family." I think yeah, but my online, my work life feels very homogenous, I guess. And it could be better.Shawn Wang: For me, it's like, "All right, figure out what is probably going to make your money and focus all your attention on that. Ignore everything else. Try to stick to, okay, what can you reasonably explain to your non-technical relatives? If you can't really justify it to them, then maybe have a second thought about like, 'All right, what am I really doing here?' Am I really making the world a better place by inventing a better form of infrastructure as code? Probably not." Unless you become a billionaire by creating HashiCorp, right?Adam Elmore: Yeah, I guess it happens in that very rare instance. Yeah.Shawn Wang: Right. But it can happen. You just have to be super clear on what you're trying to do here. And just like, yeah, be super intellectually honest about like, "Look, you're you're in this for the money, whatever you work on is probably going to be irrelevant in 10 years anyway. It doesn't matter, but you're at least going to have fun, you're going to build some relationships, you're going to make some people happy, create some jobs, whatever, and then spend the rest of your time with family and friends."Adam Elmore: That was a very succinct way of wrapping up a lot of the things I needed answered. So I don't know if anyone that listens to this podcast cares about any of this. I really appreciate the conversation we just had.Shawn Wang: No, no. I think yeah, this is very real and I really appreciate you bringing it up, because I don't get a lot of chance to talk about this.Adam Elmore: Yeah. No, I live in the Ozarks, so tech literacy here is super low. I think that's where getting into the Twitter community, it was like, "I have friends now that I can talk to about technology and things I care about." But yeah, finding that balance. I think it's really very practical of you, very wise of you to point out that ultimately this stuff doesn't necessarily matter in a decade, that whatever I think I'm working on that's so important is probably more about the people, more about what I'm kind of enjoying the process along the way and that it's making a living and that we're moving a little bit forward whatever parts we touch and what other people we can be involved with. That was very nice for me to hear.Shawn Wang: I will point out one thing. So humanity is kind of moving onto this metaverse. If there's anything that's actually real about the metaverse is that you have your community online that is dissociated from your physical community. You're so into AWS, or cloud, or anything like that, and no one else around you physically is, and it's fine. And this is something that actually the crypto bros, they probably got right. So I think Balaji Srinivasan, who is one of the crypto investors at Andreessen Horowitz, he released this book recently about building a digital nation, which is really compelling, which is like, essentially there's the world of physical nations, like the ones that country that've boundaries, but then there's the digital nations, which are formed online, and you're a member of the digital nation of probably tech Twitter, whatever.Adam Elmore: Yeah, yeah.Shawn Wang: Or AWS Twitter. And I kind of liken it to the difference between friends being the family that you choose versus the family that you have is the one that you're born with.Adam Elmore: Yeah, yeah, yeah, yeah.Shawn Wang: So where you're physically located is just the nation that you're born with or the nation that you have to live in for your family reasons, but the one that you do online, that's the nation that you choose, so you're member of a different nation online. And that nation is global, it's ephemeral, it's virtual, whatever that is. But it's something that you prefer to spend your time in as compared to your physical nation.Adam Elmore: Yeah. So I feel like since getting really active in Twitter and being involved with the AWS community, even outside of Twitter, it is so global. It's helped me see the perspective of America, where I live, so differently. Just getting all those other points of view and just knowing that when I interact with someone, it's not this base assumption that they understand the world through the lens of America like I do. I very much appreciate that. I feel like I'm, if anything, becoming more and more dissociated with the country I physically live in, because I just don't interact much with people outside of these walls. I don't know if it was COVID and being in all the time. I always have been kind of an at-home person.Shawn Wang: So that is dangerous. Right? That is dangerous.Adam Elmore: Yeah. It feels dangerous. Yeah, tell me why.Shawn Wang: Well, because if you don't care about the physical environment that you're in, then it's going to degrade, it's going to diverge away from your preference.Adam Elmore: Yeah.Shawn Wang: I don't know if that's inherently bad to me. Like there's definitely a physical element to humanity that we should keep around. We are not just brains plugged into the matrix. Essentially this leads to the matrix, that we might also just be plugged into something virtual online and spend zero time on a physical environment. Most people would not like to live that way, and that means we should care about what's going on around us. And we should try to have some physical presence that we're actually proud of and enjoy. And I think that there's a tension there that I think is sort of the modern humanistic existentialism, which is like, "How much of my life should I spend online versus how much should I spend in person?" And the fact that you have to choose is just nuts.Adam Elmore: Yeah. And I think my problem, like if I'm just being honest with myself and just thinking through this, I spend about as much time, I think, in the real world, but it's just with my family, at home, it's with my neighbor, I got a neighbor that I go for walks every week with. It's like my very, very hyper local community. But what's going on in the City of Nixa? It's like 10,000 people where I live. What's the local government doing? I don't know. I have no idea. What's the State of Missouri doing? Probably stuff I don't like.Shawn Wang: Exactly. And look, this has a very real impact on us because these people are making the laws that we have to follow. And we don't have a voice because we choose not to have a voice because we choose to not care. But hey, is it really our fault when the Supreme Court or the Congress makes a law that we don't like? Well, yeah. I mean, what did you expect? You didn't spend any time investing in that part of the world. It's like, "When are we going to have a software engineer in Congress?" That's really the big question.Adam Elmore: Yeah. There's not a lot of tech representation, is there? In government in the United States.Shawn Wang: No, because everyone hates politics, they love to dunk on it, they don't want to do a thing about it, but that's kind of the problem. I don't care which side of the bench you're on, like just the politicalness because you feel like you're not a member of the physical nation, you're a member of the digital nation. That is a problem for the physical nation, because at the end of the day, that's basically a reality.Adam Elmore: Yeah. Oh, I think of that, there was that Netflix documentary. I don't even know if it was just on Netflix, but there was that social. Well, I don't even remember what it was called, it was about social media and had all these people from Facebook and other places, or ex-Facebook, talking about just this impact that the very online nature of our generation, what it's doing to our brains and all that. This all sort of ties in my mind. Like I definitely need to do some more things that are yeah, going to impact my life, my kids' lives, sort of being more involved, I guess, outside of... Like I divide my time into I'm at work and I'm on a computer all day or I'm with my family and we're out in the yard playing. It's those two things. And I make no time for anything else, but that's probably not good. Not a good, long-term solution.Adam Elmore: Okay. Now I'm getting way off the rails. AWS FM, people literally listen to this for some good AWS bits. They've turned out long ago. I do have a couple more questions here, getting back to like I'm a developer, I like building full-stack web applications and I happen to like leveraging AWS. I'm going to ask you a few things. When should I care about CloudFlare? They announce all this cool stuff and it really is genuinely cool sounding, but there's so much of a barrier to adoption, like for me to change my day to day and start using a new thing. When should I care about CloudFlare?Shawn Wang: I have the article on this, about how CloudFlare is playing Go while AWS plays chess, so I highly recommend reading that up. Essentially, CloudFlare is a really good CDN. AWS has its own. I would think you can do up comparisons of CloudFront and CloudFlare all day long, but I would say that CloudFlare probably has much more of a security focus than CloudFront has, and that by default wins you the majority of the business and it happens to be very easily adoptable because you just need to configure some DNS, just is carrying a lot of weight there and it comes to DNS.Adam Elmore: If you're asking someone in the Ozarks around me, then what's DNS, first of all?Shawn Wang: So I think it basically starts from the outside in. You want to think about CloudFlare, you think about where your user's traffic is coming in. Maybe you want to protect those with CloudFlare and then you want to come in a little bit. CloudFlare has this S3 wrapper called R2, that basically reduces a lot of your outgoing bandwidth costs. And that seems like basically a Pareto optimal win. Pareto being you're no worse off in any dimension and you're better off in one dimension, which is cost. And that's just a function of CloudFlare.Shawn Wang: Like how many points of presence does AWS have? I think in the hundreds, maybe 100, 150, something like that. CloudFlare has tens of thousands, right?Adam Elmore: Oh, okay.Shawn Wang: It's just a much better edge network than AWS has. And so they just have a fundamentally different business model. And I think once you understand that from a fundamental physics and points of presence perspective, then you're understanding, "Okay, this is what I'm getting that AWS doesn't do." It's not a straight up one-to-one competitor, it's trying to tackle the cloud problem from a different way.Shawn Wang: So you do the cloud traffic protection, then you do the sort of egress charges, which are sort of the main sticking point of AWS. Then you get into the extra stuff that CloudFlare offers for application builders. And I focus on this because I'm an application builder. CloudFlare's other offerings for security that I have no idea, security and networking that I have no idea about, particularly if you need to wire a building or an office, they have a box that's pretty sweet for everything I heard. CloudFlare One is the name of it if you want to Google it.Adam Elmore: Okay. Yeah, I do.Shawn Wang: But for application developers, CloudFlare Workers, that team is the sort of primary team that's working on that. And that is, there's edge function service that would be a big leap to adopt because they don't run Node.js, they run V8 isolates, which are taken out of the Chrome V8 engine.Adam Elmore: Is it similar to like Lambda@Edge? Like the same kind of...?Shawn Wang: No, it is not.Adam Elmore: Oh, is Lambda@Edge node?Shawn Wang: Yes.Adam Elmore: Oh, it is.Shawn Wang: Yes.Adam Elmore: It is. Now, what is it similar to? It's similar to, I guess like Middleware and Next.js, that's that same kind of a limited runtime environment?Shawn Wang: I think so. Yeah, exactly, exactly. I would say it's more limited in Lambda@Edge and it's got different costs and criteria. Basically, there's just more of the open source ecosystem that it will be incompatible with CloudFlare Workers than it would be with Lambda@Edge. And that's the thing that you need to know because you're going to use...Adam Elmore: CloudFront Functions.Shawn Wang: Ah, okay. Yeah, that's the one I keep forgetting.Adam Elmore: I don't know who's using it, but that's what I was thinking of.Shawn Wang: Right. So I used to use this only for smart redirects, like looking at the headers of a request and saying, "If you're coming in with a header indicating you're from a certain region, certain IPS, certain language, then I'm going to route you to a different location than I would normally." Only for route, but now Edge Functions are becoming so capable that you might be able to do rendering on demands instead of just routing. And that actually is unlocking a few new things because on top of that, CloudFlare also has persistence solutions with Workers KV, which is their eventually consistent store, and Workers, and Durable Objects, which is their strongly consistent store. So either one of those combined with the ability to render, means that you can actually just host a site full stack with Front on the Edge. There's no origin server, there's no region, you just have everything everywhere all at once, which is a favorite phrase that I try to sneak in.Adam Elmore: Yeah. That's super compelling.Shawn Wang: So yeah, your latencies go down from like 300 milliseconds to nine, just because you're just pinging near a cell tower or something.Adam Elmore: Yeah, that's incredible. And they've just announced, I don't remember D1 or whatever. I don't know, I can't keep track of their product names, but they have like a distributed SQL offering as well that's coming or...Shawn Wang: SQLite. Yeah.Adam Elmore: Yeah. SQLite at the edge.Shawn Wang: I mean, everything's just built on top, it's just clearly built on top of the original persistence primitive that they have. And so once they got strongly consistent and eventually consistent, those are the two dimensions that you really care about. You can build any sort of solution on that, so the SQLite offering is just built on top of that.Adam Elmore: Yeah. Okay. So I don't know if I'm going to like jump on this stuff yet, but it does sound like there is a world where I could build side projects just on CloudFlare, like stuff runs all at the edge and I don't have to build up, I guess, is the interop, like if I want to still stand up a GraphQL API in AWS, like AppSync or something, is there interoping between the two services? You said their durable storage sits on top of S3, so it's actually, you're using an S3 bucket, you're just wrapping it with a CloudFlare thing?Shawn Wang: It's a proxy.Adam Elmore: Okay. Are people building hybrid CloudFlare, oh, I know they are, hybrid CloudFlare and AWS back ends today? I think I know of a couple at least. Is that a thing you recommend?Shawn Wang: I would say yeah, there are. I'd say this is definitely on the cutting edge. You do it because you feel like [inaudible 00:42:35].Adam Elmore: It's like Twitter, where you do it and you talk about it on Twitter and then everyone thinks...Shawn Wang: It's theoretically possible, it's just like probably not in any size.Adam Elmore: Doesn't make sense yet. Okay. So I'm going to say, I don't need to care about CloudFlare yet, that's what I'm going to say based on this conversation. I mean, I'm going to keep reading the articles, but.Shawn Wang: The only thing I'll point out is don't stop there because this is what they've achieved in the past three, four years, they clearly have a roadmap, they clearly are going to keep going, and just eating the cloud from outside in, which is the name of the article. What else of the functionality can be replicated in an-edge-first way? CloudFlare is probably going to do that. And so there's a whole roadmap that just consists of looking at the AWS console and just going, "That first, that first, that first comes [inaudible 00:43:17]."Adam Elmore: Yep. Yep. Yep.Shawn Wang: And then there's a question of just what kind of application are you building and do you really need the full set of AWS services, or can you just start from the edge first? That's how disruption happens. Disruption happens by taking a section on the market that nobody cared about and making that your entire thing, and then making it so capable over time that people see no use to use the old thing, but it takes a course of what, 10, 20 years to do that because AWS has just spent the past 20 years doing that in the first place.Adam Elmore: I just don't keep those time frames in mind. Like Twitter has warped my sense of when things are coming. And when you say 10, 20 years, it's like, I don't think about anything that's coming 10, 20 years from now. I think I'm thinking what's coming in the next 18 months.Shawn Wang: Right. But that's a problem for us, because that short-term mentality stops us from betting on big trends early. And I think to build anything of significance, you have to do it for 10 years.Adam Elmore: Yeah. I got to get off Twitter, that's what I'm coming to here.Shawn Wang: I think so. I think I'm going to do it in healthy amounts. So I actually, one of my longstanding wishlist projects is to actually build a Twitter client that has a time limit.Adam Elmore: Oh, nice. Yes.Shawn Wang: [inaudible 00:44:25] Client with a time limit. If you're going to have more time, you're going to have to pay to donate to your favorite charity or something.Adam Elmore: Oh, I love it.Shawn Wang: And that's in my wishlist.Adam Elmore: Yeah. I will use it. You've got your first user if you build it.Shawn Wang: I'll just say the only reason I don't do it is because nobody trusts the Twitter API.Adam Elmore: So one more, should I care about it yet or not? Because I see Brian LeRoux talk about this quite a bit. Deno. Should I care about Deno yet?Shawn Wang: I think so. I think it's there. I think it's there. So what is Deno? Dino is sort of the new runtime that the original creator of Node.js is saying, "All right, I'm going to do this over. Node.js has been around for 10 years. I see all the flaws of it, now I'm going to start over from scratch." I was very skeptical of Deno when it first came out, but it's been two years and it's really shown a lot of progress. And I think the governance is right, the funding model was right, and the adoption is growing. What is really compelling to me about Deno, just not from a technical perspective, from a business perspective, which feeds into a technical, the business side. There are companies so Superbase and Netlify, both launched edge functions powered by Deno, which means that their biggest products shipping capability announcement of the year of 2022 was someone else's product. It was a startup that's way younger than them, but they just have the right abstraction and the right cloud service that is already functional that they're launching. So it's weird.Shawn Wang: Deno's go-to-market strategy is just waiting for other people to wake up and go, "I need this. Deno's the only supplier in the market for this. And yeah, let's just bring it on and ship it as our thing." Where it really is Deno's thing, but they're just letting other people white label them. It's that's fantastic. So I mean, from that perspective alone in the past six months, I've really changed to, from like, "Okay, Node and Deno will coexist for the foreseeable future because there's such a huge install base of Node into every incremental app will probably be built in Deno."Adam Elmore: Well, that's... Yeah. No, that's what I needed to hear. I think I there's a lot of excitement. I see it all, but it's all Twitter, so I needed to hear it face to face that it's worth digging into.Adam Elmore: One last question. We do have a couple more minutes here. Do you have thoughts on the whole macro venture capital situation and how that might impact the next 5, 10 years? And I don't know if we're entering into some tightening cycle that we've never seen anything like the last 10 years, 13, whatever years, of government injecting so much capital into the system. And if that starts going away, do you have opinions or thoughts on all these startups that are making our lives better? Like I think of DevX startups where I don't know how financially sound they are yet, they've been living off the VC. Do you have thoughts on all that?Shawn Wang: Not fully formed ones, but I can give you a quick hit.Adam Elmore: Yeah. Yeah.Shawn Wang: So how bad did it get? It got to the point, so the average price of sales ratio of a publicly traded company would be in the range of 10 to 50. That's a very wide range, meaning your market capitalization, the total value of a company is 50 times your sales. In private markets, the price of sales ratios of funding rounds, series A and B, and all that, got up to 1,000 times.Adam Elmore: Oh my God.Shawn Wang: We had 1,500 at one of the startups that I was at and I heard of one startup that was 2,500.Adam Elmore: Wow.Shawn Wang: So that was the peak in November of last year. Those days are gone, people are now asking for 100X, which is very like 10X fall, like very, very big. That's why almost nobody's raising money. So that VC market is right up, I'll say it has different impact on different stages. And this is all to do with like, "Okay, would you invest in Stripe at 95 billion when Shopify used to be 100 billion and now it's worth 20 billion?" You probably want to buy the more quality asset that's already publicly listed than the very stable asset that is at a high valuation.Shawn Wang: So this is the deal making has just gone off. Like I think at the seed stage, people are completely unaffected. I think people are cognizant of the fact that economic cycles repeat or like, this is not going to... This is a recession. We are probably already in a recession right now, we are in a tightening cycle right now, but this is probably not one of those that's just going to drag out super long. And startup take 10 years to build anyway, so why should your early stage investing be affected at all by what the current level of the S&P is? It shouldn't.Adam Elmore: Yeah. No, it's true. I mean, so much of this conversation just echoes your bias towards long term versus short term, and I should have known that coming in. I'm asking all these questions that are very much like, there's a clear answer if you just think outside of the next year.Shawn Wang: Oh, I love training people to do that.Adam Elmore: Yeah. No, it's really nice.Shawn Wang: Take a long-term perspective in the history and then project it out to the future as well, and try to make decisions on that, so.Adam Elmore: Yeah, it's sort of refreshing, especially in this sort of anxiety-ridden digital space. I feel like when you zoom out things feel a lot less pressing or anxiety-laden, I guess. I don't know. Yeah, I appreciate that.Shawn Wang: It's weird because I think that's true, but at the same time, you're only here on this earth for so long. When you zoom out, that actually reduces the available number of decisions that you can possibly make, which means that each decision goes from being a two-way door into a one-way door because you want to make more substantial decisions. Therefore, for example, when I changed jobs, it took me like two months of agonizing to finally land on something, because I could have done any number of things and I think you have to really examine your beliefs as to what the long-term trends are going to be and trade that off versus being happy in the short run.Adam Elmore: Yeah. I'm going to be trying to do that. I think I'm in the middle of the agonizing stage right now, trying to figure out what's next, but I'm going to try and think a little more long term.Shawn Wang: The thing I'll point you to, you're talking about courses and stuff like that in leverage, I'll say definitely check out Eric Jorgenson, who is the book writer for Naval Ravikant. He wrote the Almanac of Naval Ravikant, and he's trying to build up a thesis or a body of knowledge around what leverage is and what leverage means. And then the other thing I'll point you to is Nathan Barry, who's the founder of ConvertKit who talked about the letters of wealth creation and how some things are more high leverage than others, so.Adam Elmore: Thank you so much for that. Again, this podcast may just be for me, but that's okay because I got a lot out of it. Thank you so much for taking the time, Shawn.Shawn Wang: [inaudible 00:50:58].Adam Elmore: I didn't know how much I'd get in on my... I think we covered half the things I thought about talking to you about. You're just a wealth of knowledge, you're sort of a wise sage in this community and it's been so great to pick your brain. Thanks for coming on.Shawn Wang: I think we're the same age.Adam Elmore: Oh, yeah. Well yeah, you've been using your time better, I guess. You've been doing more high-leverage things or something.Shawn Wang: Yeah. Thanks for having me around, but we can talk anytime. I really enjoyed this conversation.Adam Elmore: That sounds good. Thanks, Shawn.

Build In Public Podcast
The Playbook Of Learning In Public & How To Thought Lead (feat. Shawn @swyx Wang)

Build In Public Podcast

Play Episode Listen Later Aug 12, 2022 43:25


Welcome to another episode of the Build In Public Podcast.Today's episode features an insightful conversation with Shawn Wang, more commonly known as “swyx,” a GitHub Star who ran the React subreddit for over 200,000 developers, grew the Svelte Society from 0 to over 15,000 developers, and is now the Head of DX at Airbyte.Build In Public Podcast is an interview show where KP chats with ambitious startup founders, CEOs, and top Internet creators to unpack their stories, insights, and lessons.In this episode, Swyx unpacks a wide range of topics, from DevRel vs DevX at Airbyte to amplifying Learning in Public. He also shared comprehensive thought leadership strategies, open source knowledge framework and tips on how to go beyond being a meta-creator.Shawn's Twitter: @swyxAirbyte: https://airbyte.comKP's Twitter: @thisiskp_KP's YouTube Channel: https://www.youtube.com/c/KarthikPuvvadaKP

Open Source Startup Podcast
E45: Creating Resilient Applications with Temporal (pt 2)

Open Source Startup Podcast

Play Episode Listen Later Aug 5, 2022 41:25


Maxim Fateev is Co-Founder & CEO and Dominik Tornow is Principal Engineer at Temporal, the workflow platform for building resilient applications. Temporal is the company centered on the open source orchestration engine Temporal which is a fork of the project Cadence first created at Uber. The Temporal project and company have seen tremendous interest and the cloud service for Temporal will be GA later this year. The company is valued at $1.5B and raised from investors including Sequoia, Index, and Amplify. In this episode, we discuss the origins of Temporal at Uber, use cases for their resilient workflow engine, how the company's messaging and positioning have evolved over the past year, and the company's upcoming developer experience conference Replay which will be in-person in Seattle from August 25 - 26. This is the second time we've had Temporal on the podcast. Check out our first episode on the Open Source Startup Podcast with Maxim here, which we released exactly 1 year ago, as well as the awesome blog post that Shawn Wang from their team put together on that first episode here.

Syntax - Tasty Web Development Treats
Supper Club × Developer Experience with Shawn Wang

Syntax - Tasty Web Development Treats

Play Episode Listen Later Jul 1, 2022 53:31


In this supper club episode of Syntax, Wes and Scott talk with Shawn Wang about his thoughts on developer experience, why DX is important, and the importance of learning in public. Hasura - Sponsor With Hasura, you can get a fully managed, production-ready GraphQL API as a service to help you build modern apps faster. You can get started for free in 30 seconds, or if you want to try out the Standard tier for zero cost, use the code “TryHasura” at this link: hasura.info. We've also got an amazing selection of GraphQL tutorials at hasura.io/learn. LogRocket - Sponsor LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It's an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax. Show Notes 00:32 Welcome 01:56 Guest introduction swyx.io Why Temporal? 06:09 What is Developer Experience? Sarah Drasner 08:35 Is VS Code considered DX? 09:28 Why is internal DX important? Vercel NextJS 11:44 Is DX helpful to small organizations as well? 15:27 Parsimony Parsimony 16:43 Is productivity the main focus? 21:09 Sponsor: Hasura 22:48 What are your thoughts on React? 27:31 Designing for API success 30:44 Sponsor: LogRocket 32:07 What is external developer experience? 36:05 Learning in public 40:46 Supper Club questions dx.tips Retreon VS Code Theme Agnoster ZSH Theme freeCodeCamp Frontend Masters QConf Learn in Public ××× SIIIIICK ××× PIIIICKS ××× Scott: The Stormlight Archive Shameless Plugs Scott: LevelUp Tutorials Wes: Wes Bos Tutorials Tweet us your tasty treats Scott's Instagram LevelUpTutorials Instagram Wes' Instagram Wes' Twitter Wes' Facebook Scott's Twitter Make sure to include @SyntaxFM in your tweets

WebJoy
S1 E4: Creating Something from Nothing (Shawn / @swyx)

WebJoy

Play Episode Listen Later Jun 22, 2022 18:26 Transcription Available


Shawn Wang joins the show to talk about his origin story, starting in the finance industry and how feeling like just a code monkey in a system drew him to learn front-end engineering and start working on product development and ultimately become a developer advocate. We discuss what the career path for a developer advocate might look like, as well as podcast listening tools Listen Notes and Listenbox and how they help allow people to look up and listen to podcasts on their own terms rather than being stuck in a corporate garden. https://www.freecodecamp.org/ (FreeCodeCamp) https://www.listennotes.com/ (Listen Notes) https://listenbox.app/ (Listenbox) https://www.learninpublic.org/ (The Coding Career Handbook) https://twitter.com/swyx (Shawn's Twitter: @swyx) https://www.swyx.io/ (Shawn's Website)

JS Party
The third year of the third age of JS

JS Party

Play Episode Listen Later May 20, 2022 60:10 Transcription Available


In 2020, Shawn (swyx) Wang wrote: Every 10 years there is a changing of the guard in JavaScript. I think we have just started a period of accelerated change that could in thge future be regarded as the Third Age of JavaScript. We're now in year three of this third age and Swyx joins us to look back at what he missed, look around at what's happening today, and look forward at what might be coming next.

Changelog Master Feed
The third year of the third age of JS (JS Party #226)

Changelog Master Feed

Play Episode Listen Later May 20, 2022 60:10 Transcription Available


In 2020, Shawn (swyx) Wang wrote: Every 10 years there is a changing of the guard in JavaScript. I think we have just started a period of accelerated change that could in thge future be regarded as the Third Age of JavaScript. We're now in year three of this third age and Swyx joins us to look back at what he missed, look around at what's happening today, and look forward at what might be coming next.

Educative Sessions
#108: ”Angel Investing Your TIME” with Shawn Wang of Temporal.io | Educative Sessions

Educative Sessions

Play Episode Listen Later May 2, 2022 20:10


Get started with Educative! Follow this URL for 10% off: https://educative.io/educativelee We know that not every line of code is equally valuable, but how do you work on valuable things? Developers obsess over frameworks and code quality, but in reality the best outcomes are more determined by product-market-founder fit than code quality. Swyx is a former hedge fund investor turned developer and has some interesting thoughts based on seeing through 2 unicorn startups. Watch the YouTube HERE: https://youtu.be/NqAGxYWgYZk   ABOUT OUR GUEST   swyx has worked on React and serverless JavaScript at Two Sigma, Netlify and AWS, and now serves as Head of Developer Experience at Temporal.io. He has started and run communities for hundreds of thousands of developers, like Svelte Society, /r/reactjs, and the React TypeScript Cheatsheet. His nontechnical writing was recently published in the Coding Career Handbook for Junior to Senior developers. Visit Educative to start your journey into code ►► https://educative.io Don't forget to subscribe to Educative Sessions on YouTube! ►► https://www.youtube.com/c/EducativeSessions   ABOUT EDUCATIVE   Educative (educative.io) provides interactive and adaptive courses for software developers. Whether it's beginning to learn to code, grokking the next interview, or brushing up on frontend coding, data science, or cybersecurity, Educative is changing how developers continue their education. Stay relevant through our pre-configured learning environments that adapt to match a developer's skill level. Educative provides the best author platform for instructors to create interactive and adaptive content in only a few clicks.   More Videos from Educative Sessions: https://www.youtube.com/c/EducativeSessions/   Episode 108: "Angel Investing Your TIME" with Shawn Wang of Temporal.io | Educative Sessions

The Bike Shed
335: Start Messy

The Bike Shed

Play Episode Listen Later Apr 26, 2022 35:38


Steph has a question for Chris: When you have no idea how you're going to implement a feature, how do you write your first test? Chris has thoughts about hybrid teams (remote/in-person) and masked inputs. This episode is brought to you by ScoutAPM (https://scoutapm.com/bikeshed). Give Scout a try for free today and Scout will donate $5 to the open source project of your choice when you deploy. Preemptive Pluralization is (Probably) Not Evil (https://www.swyx.io/preemptive-pluralization) iMask (https://imask.js.org/) Mitch Hedberg - Escalator Joke (https://www.youtube.com/watch?v=yHopAo_Ohy0) This episode is brought to you by Studio 3T (https://studio3t.com/free). Try Studio 3T's full suite of features for 30 days, no payment details needed. Become a Sponsor (https://thoughtbot.com/sponsorship) of The Bike Shed! Transcript: STEPH: I am recording in a new room because we're in Pennsylvania, and so I'm recording at this little vanity desk which is something. [laughs] But there's a mirror right in front of me, so I feel very vain because it's just like, [laughs] I'm just looking at myself while I'm recording with you. It's something. CHRIS: [laughs] That is something. STEPH: [laughs] So, you know. CHRIS: Fun times. STEPH: Pro podcast tip, you know, just stare at yourself while you chat, while you record. CHRIS: I mean, if that works for you, you know, plenty of people in the gym have the mirrors up, so podcasting is like exercising in a way, and I think it makes sense. STEPH: I appreciate the generosity. [laughs] CHRIS: Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Chris Toomey. STEPH: And I'm Steph Viccari. CHRIS: And together, we're here to share a bit of what we've learned along the way. So, Steph, what's new in your world? STEPH: Hey, Chris. So I have a funny/emotional story that [laughs] I'm going to share with you first because I feel like it kind of encapsulates how life is going at the moment. So we've officially moved from South Carolina to North Carolina. I feel like I've been talking about that for several episodes now. But this is it: we have finally vacated all of our stuff out of South Carolina house and relocated to North Carolina. And once we got to North Carolina, we immediately had to then leave town for a couple of days. And normally, Utah, our dog, stays with an individual in South Carolina, someone that we found, trust, and love. And he has a great time, and I just know he's happy. But we didn't have that this time. So I had to find just a boarding facility that had really high reviews that I felt like I could trust him with. I didn't even have time to take him for a day to test it out. It was one of those like, I got to show up and just drop him off and hope this goes well, so I did. And everything looks wonderful. Like, the facility is very clean. I had a list of things to look for to make sure it was a good place. But it's the first time leaving him somewhere where he's going to spend significant time in a kennel that has indoor-outdoor access. And as I walked away from him, I started to cry. And I just thought, oh no, this is embarrassing. I'm that dog mom who's going to start crying in this boarding facility as she's leaving her dog for the first time. So I put on my shades, and I managed to make it through the checkout process. But then I went to my truck and just sat there and cried for 15 minutes and called my husband and was like, "I'm doing the right thing, right? Like, tell me this is okay because I'm having a moment." And I finally got through that moment. But then I even called you because you and I were scheduled to chat. And I was like, I am not in a place that I can chat right now. I think I told you when you answered the phone. I was like, "Everything is fine, but I sound like the world's ending, or I sound like a mess." [laughs] And yeah, so I had like two hours of where I just couldn't stop crying. I partially blame pregnancy hormones. I'm going to go with that as my escape rope for now. So I feel like that's been life lately. Life's been a little overwhelming, and that felt like the cherry on top. And that was the moment that I broke. Update: he's doing great. I've gotten pictures of Utah. He's having a wonderful time at camp, it seems. [laughs] It was just me, his mom, who is having trouble. CHRIS: Well, you know, reasonable to worry, and life's dialed up to 11 and all of that. But yeah, I will say even though you lead the conversation with everything's fine, your tone of voice did not imply that everything was fine. So when I eventually came to understand what we were talking about, I hope I was kind in the moment. But I was like, oh, okay, this is fine. We're fine. I'm so sorry you're feeling terrible right now. STEPH: [laughs] CHRIS: But okay, we're fine. For me, there was a palpable moment of like, okay, my stress is now back down a little bit. But I'm glad that things are going well and that Utah is having a fun vacation. STEPH: Yep, he seems to be doing fine. I've calmed down. You know, as you said, life's been dialed up lately. On a less emotional note and something that's a little bit more technical, I had a really great conversation with another thoughtboter where we were talking about testing. And the idea of when you learn testing, it's often very focused on like, you have this object, and it has a method. And so, you're going to write a unit test for this particular method. And it's very isolated, very specific as to the thing that you're looking to test. Versus in reality, when you pick up tickets, you don't have that scope, and like, it is so broad. You have to figure out what feature you're implementing, figure out how to test it. And it feels like this mismatch between how a lot of people learn to test and learn TDD versus then how we actually practice it in the wild. And so we had a phone conversation around when you are presented with a ticket like that, and you have no idea how you're going to implement a feature, how do you get started with testing, and when do you write your first test? Do you TDD? Do you BDD? Or do you PDD? That last one I made up, it stands for Panic-driven development. But it's what's your approach to how do you actually then get to the point where you can write a test? And I have a couple of thoughts. But I'm really curious, how does that flow work for you? What have you learned throughout the years to then help yourself write that first test? Or where do you start? CHRIS: Well, this is an interesting question. I like this one. I think it varies. And I think there's a lot of dogma around TDD as a practice. And I think it is super useful to break that apart and hear different individual stories of it. I know there are plenty of folks who are like, TDD is just not a thing and whatnot, and I'm certainly not in that camp. But I also don't TDD 100% of the time because sometimes I'm not super clear on what I'm doing, or I'm in more of an exploratory phase. That said, I think there's a...I want to answer the question somewhat indirectly, which is I know how to test most of the code that I work on now as a web developer in a Rails application because I've done most of the things a bunch of times. And the specifics may be different, but the like, to integrate with this external system, and I have to build an API client or whatever, I know how to do that. And there is a public API of some class that I will be exercising against and so I can write tests against that. Or I know that the user is going to click a button, and then something needs to happen. And so I can write that test, and it fails, and then it starts to push me towards the implementation. There are also times where it's actually quite hard to get the test to lead you in the right direction, and you have to know what hop to make, and so sometimes I just do that. But yeah, rolling back a little bit, I think there is a certain amount of experience that is necessary. And I think one of the critical things that I want to share with folks that are potentially newer to testing overall is that it is actually quite hard. You have to understand your system and how you're going to approach it, you know, one step removed, or it's like a game of chess where you're thinking a couple of moves ahead. You have to understand it in a deeper way. And so, if testing is difficult, that might just be totally reasonable at this point. And as you come to see the patterns within a Rails application or whatever type of application you're working on over and over, it becomes easier to test. But if testing is hard, that may not mean...like, how do I phrase this? There's like an impostor syndrome story in here of like, if you're struggling with testing, it may not be that something is fundamentally broken. You just may need a couple more chances to see that sort of thing play out. And so, for me, in most cases, I tend to know where to start or when not to. Like, I feel fine not testing when I don't test most of the time. I will eventually get things under test coverage such that I feel confident in that. And whenever I have one of those moments, I will stop and look at it and say, "Why didn't I know how to test this from the front, like, from the start?" But it's rare at this point for things to be truly exploratory. There's always some outer layer that I can wrap around. But like, I know X needs to happen when Y occurs. So how do I instrument the system in that way? But yeah, those are some thoughts. What are your thoughts? Does what I said sound reasonable here? STEPH: Yeah, I really like how you highlighted that pausing for reflection. That was something that I didn't initially think of, but I really liked that, to then go back to be like, okay, revisiting myself a couple of days or however earlier when I first started this. Now I can see where I've ended up. How could I have made that connection sooner as to where I was versus the tests I ended up with? Or perhaps recognizing that I couldn't have gotten there sooner, that I needed that journey to help me get there. So I really like the idea of pausing for reflection because then it helps cement any of those learnings that you have made during that time. Also, the other part where you mentioned the user clicks a button, and something happens, that's where I immediately went with this. I also liked that you highlighted that TDD has that bit of dogma, and I don't always TDD. I do what I can, and it helps me. But it has to be a tool versus something that I just do 100% of the time. But with more of that BDD approach or that very high-level user-level integration test of where if I need to pull data from an API and then show it to the user, okay, I know I can at least start with a high-level test of I want the user to then see some data on a page. And that will lead me down some path of errors. It might help me implement a route and a controller and then a show action, so it will at least help me get started. Or even if it doesn't give me helpful enough errors, it at least serves as my guideline of like, this is my North Star. This is where I'm headed. So then, if I need to revisit, okay, what's the thing that I'm focused on at the moment? I can go back and be like, okay, I'm focused on achieving this. What's the next smallest step I can take to get there? The other thing that I've learned over time is I've given myself the chance to be messy because I got so excited about the idea of unit testing and writing small, fast test that I would often try to start with small objects and then work my way backwards into like, okay, I have this one object that does this thing and one object that like...let's use a concrete example. So one object that knows how to communicate with API and one object that knows how to then parse and format the data I want and then something else that's then going to present that data to the user. But I found when I started with small objects, I would get a little lost, and I wasn't always great at bringing them together. So I've taken the opposite approach of where if I'm really not sure where I'm headed and I'm in that more exploratory phase or even just that first initial parse of a feature, I will just start messy. So if I am pulling data from an API and need to show it to a user on a screen, I'll just dump it in the controller if I need to. I'll put it all there together. And then once I actually have something that is parsing, or I have something appearing on the page, then I will start to say, "Okay, now that I can see what I need and I can see the pieces that I've written, how can I then start to extract this into smaller objects?” And now, I can start writing unit tests for that data. So that is something that has helped me is just start high, keep it high, be messy, and until you start to see some of the smaller objects that you can pull out. CHRIS: Yeah, I think there's something that you were just saying there that clicked for me of we didn't start with the why of TDD. And I don't think we've talked about why we believe in TDD in a while. So this feels like a thing we're saying. It's not good just because it's good, or we don't believe it's good just because that's what we say. For me, it is because it anchors us outside of the code sort of it starts to think of it from the user perspective or some outer layer. So even if you're unit testing some deeply nested class within your application, there's still an outer layer. There's still a user of that class. And so, thinking about the public API, I think is really useful. And then the further out you get, the better that is, and I believe strongly in thinking from the outside in on these sort of things. And then the other thing you said of allowing for refactoring. And if we have tests, then it's so much easier to sort of...I totally 100% agree with like; I start messy. I start very messy. I wanted to pretend that I was going to be like, oh, I'm so...Steph, I can't believe this. But no, of course, I start messy. Why would you start trying to do the hard thing first? No, get something that works. But then having the test coverage around that makes it so much easier to go through those sequential refactoring steps. Versus if you have to write the code correctly upfront and then add test coverage around that, it sort of inverts that whole thing. And so, although it may take a little bit longer to write the tests upfront, I do exactly what you're describing of like, I write the tests that tell some truth about the system and constrain the system to do that thing. And then I can have a messy implementation that I can iteratively refactor over and over, and I can extract things from. And then, I can tell a more concise testing story about those. And so it really is both the higher-level perspective I think is super useful and then the ability to refactor under that test coverage is also very useful. And it makes my job easier because I can start messy. I love starting messy. It's so much better. STEPH: Yeah, and I think former me had the idea that for me to do TDD properly meant that I had these small, encapsulated objects that I wrote unit tests for. And yes, that is the goal. I do want that, but that doesn't mean I have to start there. That is something that then I can work my way towards. That also falls in line with the adage from Sandi Metz that the wrong abstraction is more costly than no abstraction. And so I'd rather start with no abstractions and then start to consider, okay, how can I actually move this out into smaller objects and then test it from there? There's also something that I heard that I haven't done as often, but I really liked the idea; it feels very freeing, is that when you do get started and if you write your first test, if you write a test and it helps you make some progress but then you come back to it later and you're like, you know, the test doesn't really add value, or it's not helping me anymore, just thank it and delete it and move on. Just because you wrote it doesn't mean it needs to stay. So if it provided some benefit to you and helped you through that journey of adding the feature, then that's wonderful. But don't be timid about deleting it or changing it so that it does serve you because otherwise, it's just going to be this toxic test that gets merged into the main branch, and it's going to be untrustworthy. Or maybe it's fussy and hard to please, or it's just really not the supportive test that you're looking for. And so then you can turn it into more of a supportive test and make it fit your goals instead of just clinging to every test that we've written. CHRIS: I like the framing of tests as scaffolding to help you build up the structure. But then, at the end, some of the scaffolding gets ripped away and thrown out. And I do think, again, testing ends up in this weird place. The dogmatic thing that we were talking about earlier feels very true. And I've noticed, particularly on larger teams, folks being very hesitant to delete tests like, that feels like sacrilege. Of course, you can't delete tests; the tests are how we know it's true, which is true, but you can interrogate that. You can see like, how true is it? And every test has a cost and maintenance burden, runtime, et cetera. You probably know well, Steph, about having test suites that take a bunch of time to run and then maybe wanting to spend a little bit of time trying to reduce that overall time. And so there's always going to be a trade-off there. Actually, someone reminded me of an anecdote recently. I joined a project, and most of the test suite or all of the test suite was commented out because it was flaky or intermittent. And I was like, "Oh, I'm going to delete that." And people were like, "You're what?" I'm like; it's commented out. We're not using it. Let's tell the truth. Git will have it. We can go back and get it. But let's tell the truth with what we're like...this commented-out test suite is almost worse in my mind than having nothing there. The nothing feels painful, right? Let's experience that. Whereas the commented out stuff is like, well, we have a test suite; it's just commented out. It's like, no, you don't have a test suite at all. That's not what's going on here. But there were other thoughtboters on the project that poked a good amount of fun at me when they were like, "The first thing you did on this project was delete the test suite?" As I was like, "Yeah, I don't know, I was feeling spicy that day or something." But I think the test suite needs to serve the work that we're doing in the same way that everything else does. And so occasionally, yeah, deleting tests is absolutely the right thing and then probably add back some more. STEPH: It's funny how that reaction exists. And I've done it before myself where like, if you see commented out code and you put up a PR to remove it, I feel like most people are going to be like, yeah, yeah, that's great. Let's get rid of this. It's clearly not news. It's commented out. But then removing a skipped test then has people like, "Well, but that test looks like it could be valuable, and we're going to fix it." And it's like...all I can go back to is that silly example of like, you've got your skinny jeans, one day I'm going to fit into those skinny jeans. And so one day, I'm going to fix this test, and it's going to serve the purpose. And it's going to be the me I want to be. [laughs] And it is funny how we do that. With code, we're like, sure, we can get rid of it. But with tests, we feel this clinginess to them where we want to hold on to it and make it pass. And I think that sometimes has to do with the descriptions. There are test descriptions commented out that I've seen are like, user can log in, or if given a user without permission, they can't access. And it's like, oh, that sounds important. I'm now nervous to delete you versus fix you, but you're still not actually running and providing value. And so then I have to negotiate with myself as to where do we actually go from here? But I do love the idea of deleting tests that are skipped because we should just let them go. We either have to dedicate time to fix them or let them go and make that hard decision. CHRIS: The critical idea of future me will have more time, future me will be calm and will work through all the other bugs and future discounting; as far as I understand it as a formalization of the term, yeah, it's never true. I've only gotten busier over time, just broadly speaking. And that seems to be a truism in software projects as well. It's like, oh, we just have to write a bunch of features, and then it'll be calm. I don't even think I'd want that. But future me will not have more time. And so choosing the things that we do invest in versus not is tricky, but the idea of that future me will have a lot of time or future us probably not true. STEPH: Well, I think the story that I just shared at the beginning of our chat highlights that future me won't always be calm. [laughs] So let's work with what I've got. Let's not bank on that. Future Stephanie might be very emotional about dropping her dog off at boarding for a couple of days. [laughs] Future me might be very emotional about fixing this test. All right, well, thanks for going on that journey with me. That's really helpful. I knew you'd have some great insights there. Mid-roll Ad: Hi, friends, and now a quick break to hear from today's sponsor, Scout APM. Scout APM is an application performance monitoring tool that's designed to help developers find and fix performance issues quickly. With an intuitive user interface, Scout will tie bottlenecks to source code so you can quickly pinpoint and resolve performance abnormalities like N+1 queries, slow database queries, and memory bloat. Scout also recently implemented external service monitoring, adding even more granularity when it comes to HTTP requests and API calls. So give Scout a try today with a free 14-day trial and experience first-hand why developers worldwide call Scout their best friend. And as an added bonus for Bike Shed listeners, Scout will donate $5 to the open-source project of your choice when you deploy. To learn more, visit scoutapm.com/bikeshed. That's scoutapm.com/bikeshed. CHRIS: What's going on in my world? Last week we had our first ever Sagewell all-hands get-together in person. Many of us have met in person before, but not everyone. And so this was a combination celebration for our seed fundraising round, which had happened actually sometime right at the end of last year. But due to COVID in the world and complexity, it was difficult to get everybody together. So that finally happened. And then we sort of grafted on to that celebration, that party that we were having. Like, let's just extend a day in either direction and do some in-person working and all of that. And that was really great. I'm trying to find that ideal middle ground between we are a remote team, but there is definitely value in occasionally being in person, particularly getting to know people but also just having some higher bandwidth conversations, planning, things like that. They just feel different in person. And so, how do we balance that? And how do we be most productive and all that? But it was really great to meet the team more so than I had on the internet and get to spend some time in person and do some whiteboarding. I drew on a whiteboard with a team. We were all looking at the same whiteboard. We're in the same room. And I drew on a whiteboard some entity relationship diagrams. It was awesome. [laughs] It was super fun. It was one of those cases where we had built an assumption deeply into our codebase, and suddenly instead of having one of a thing, we may now have multiple of a thing. There's a wonderful blog post by Shawn Wang called Preemptive Pluralization which I think is based on an episode of Ben Orenstein's podcast, The Art of Product, where Ben basically framed the idea of like, I've never regretted pluralizing something earlier. A user has one account; they have multiple accounts. They just happen to have one at this time, et cetera. So we're in one of those. And it was a great thing to be able to be in a room and whiteboard. I knew at the time when I did it way back when that I was making the wrong decision. But I didn't know exactly how and the shape. And so now we have to do that fun refactoring so glad that we have a giant test suite that will help us with said refactoring. But yeah, so that was really great to be able to do in person. STEPH: I think there can be so much value in getting together and getting to see your team and, like you said, have those high-level conversations and then just also getting to hang out. So it's really nice to hear that reinforced since you experienced that same positivity from that experience. Do you think that's something that y'all will have going forward? Do you think you're going to try to get together like once a year, once a quarter? Maybe it hasn't even been talked about. But I'm hearing that it was great and that maybe there will be some repeats. CHRIS: Yes, yeah. I think I'm inclined to quarterly at a minimum and maybe even slightly more than that. Some of us are centered around Boston, and so it's a little bit easier for us to pop in and work at a WeWork, that sort of thing. But I think broadly, getting the team together and having that be intentional. And personally, I'm inclined to that being more social time than productive time because I think that's the thing that is most useful in person is building relationship and rapport and understanding folks better. I remember so pointedly when thoughtbot would have the annual Summer Summit, and leading up to that; there was a certain amount of conversation. But there were also location-specific rooms, and a lot of the conversation happened like in the Boston channel or whatnot. And then, without fail, every year after the Summer Summit, suddenly, there was a spike in cross-team chatter. Like, the Ruby room now had a bunch of people from San Francisco talking to Boston, talking to New York, et cetera. And it was just this incredibly clear...I think we could actually, like, I think at one point someone plotted the data, and there's just this stepwise jump that would happen every time. And so that sort of connecting folks is really what I believe in there. And the more we're leaning into the remote thing, then the more I think this is important. So I think quarterly is probably the lowest end that I would think of, but it might be more. And it's also a question of like, what shape does this take? Is it just us going and hanging out somewhere? Or are we productively trying to get together with a whiteboard? I think we'll figure that out as we go on. But it's definitely something that I'm glad we've done now, set the precedent for, and we'll hopefully do more of moving on. STEPH: Yeah, I always really love the thoughtbot Summits. In fact, we have one coming up. It's coming up in May, and this one's taking place in UK. But there have been some interesting conversations around Summit because before, it was the idea that everybody traveled. But typically, they were in Boston, so for me, it was particularly easy because it was already where I lived. So then showing up for Summit was no biggie. But with this one happening in UK and COVID and travel still being a concern, there's been more conversations around; okay, this is awesome. People who want to get together can. There are these events going on. But there are people who don't want to travel, don't feel up to travel. They have family obligations that then make it very difficult for them to leave one partner at home with the kids. And I myself I'm in that space where I thought really hard about whether I was going to travel or not. And I've decided not to just for personal reasons. But then it brings up the question of okay, well, if we have a number of people that are going to be in person together, then what about the people who are remote? And the idea of running something that's hybrid is not something that we've really figured out. But those that are remote, we're going to get together and figure out what we want to do and maybe what's our version of our remote summit since we're not going to be traveling. But I feel like that's definitely a direction that needs to be considered as teams are getting in person because if you do have people that can't make it, how can you still bring them in so it's an inclusive event but respect to the fact that they can't necessarily travel? I don't know if that's a concern that every team needs to have, but it's one that I've been thinking about with our team. And then I know others at thoughtbot we've been considering just because we do have such a disparate team. And we want to make everybody comfortable and feel included. CHRIS: Yeah, as with everything in this world, there's always complexities and subtlety. Thankfully, for our first get-together, we were able to get everyone into the same space. But I do wonder, especially as the team grows, even just scheduling, the logistics of it become really complicated. So then does the engineering team have get-togethers that are slightly different, and then there's like once yearly a big get-together of the whole team? Or how do you manage that and dealing with family situations and all that? It is very much a complicated thing that thankfully was very straightforward for us this first time, but I fully expect that we'll have to be all the more intentional with it moving forward. And, you know, that's just the game. But switching gears ever so slightly, we did have a fun thing that we've worked on a little bit over the past few weeks. We've finally landed it in the app. But we were swapping out our masked input library that we were using, so this is for someone entering their birthday, or a phone number, or social security number, or dates. I guess I already said dates. Passwords I think we also use here. But we have a bunch of different inputs in the app that behave specially. And my goodness, is this one of those things that falls into the category of, oh yeah, I assume this is a solved problem, right? We just have a library out there that does it. And each library is like, oh no, all of the other libraries are bad. I will come along, and I will write the one library to solve all of the problems, and then we'll be good. And it is just such a surprisingly complicated space. It feels like it should be more straightforward. And as I think about it, it's not; it's dealing with imperative interactions between a user and this input. And you need to transform it from what happens when you hit the delete key? What do you want to happen? What's the most discoverable for every user? How do we make sure they're accessible? But my goodness, was it complicated. I think we're happy with where we landed, but it was an adventure. STEPH: I'll be honest, that's something that I haven't given as much thought to. But I guess that's also I just haven't worked with that lately in terms of a particular library that then masks those inputs. So I'm curious, which library were using before, and then which one did you switch to? CHRIS: That's a critical piece of information that I have left off here. So for the previous one, we were using one called svelte-input-mask, which, again, part of the fun here is you want to have bindings into whatever framework that you're using. So svelte-input-mask is what we were using before. We have now moved on to using iMask, which is not like the thing you wear on your face, but it is the letter I so like igloo, Mike, et cetera, I-M-A-S-K, iMask. And so that is a lower-level library. There are bindings to other things. But for TypeScript and other reasons, we ended up implementing our own bindings in Svelte, which was actually relatively straightforward. Again, big fan of Svelte; it's a wonderful little framework. But that is what we're using now, and it is excellent. It's got a lot of features. We ended up using it in a slightly more simple version or implementation. It's got a lot of bells and whistles and configurations. We went up the middle with it. But yeah, we're on iMask, which also led to a very entertaining moment where it was interacting with our test suite in an interesting way. And so, one of the developers on the team searched for Capybara iMask. [laughs] And I forget exactly how it happened, but if you Google search that, for some reason, the internet thinks an iMask is a thing that goes over your mouth. And so it's a Capybara, like the animal, facemask. It's very confusing, but this got dropped into our Slack at one point, someone being like, "I searched for Capybara iMask, and it got weird, everybody." So yeah, that was a fun, little side quest that we got to go on. STEPH: [laughs] I just Googled it as you told me to, and it's adorable. Yeah, it's a face mask, and it has a little capybara cartoon on the front of it. Yeah, there are many of these. [laughs] CHRIS: When I think of an iMask, though, it's the thing that you put over your eyes to block the light if you want to sleep. But they're like, an iMask like, a mask that still keeps her eyes outside of it. I don't understand the internet. It's a weird place. STEPH: I think that was just Google saying Capybara iMask. Nope, don't know I, so let's put together Capybara mask, and that's what you got back. [laughs] CHRIS: I guess, yeah. It's just a Capybara mask. And I'm projecting the ‘I' because I phonetically heard that for a while. Anyway, yes. But yeah, masked inputs so complicated. STEPH: This is adorable. I feel like there should be swag for when people move. Like when people find things like this, this is the type of thing that then I stash and then wait for their anniversary at the company, and then I send it to them to remind them of this time that we had together. [laughs] There was also a moment where you said, ‘I.' You were explaining I as in in the letter I, not E-Y-E for eyemask. And you said igloo, and my brain definitely short-circuited for a minute to be like, did he just say igloo? Why did he say igloo? And it took me a minute to, oh, he's helping phonetically say that this is for the letter I. CHRIS: Yep. The NATO phonetic alphabet that if you don't explain that that's what you're doing, now I'm just naming random other objects in the world. Sorry. STEPH: [laughs] CHRIS: And that's why I cut myself off halfway through. I'm like, now you're just naming stuff. This isn't helping. STEPH: [laughs] CHRIS: Yes, the letter I, the letter M. [laughs] STEPH: All of that was a delightful journey for me, and I was curious. I'm glad you brought the test because I was curious if y'all are testing if things are getting obscured, but it sounds like y'all are, which is what helped give you confidence as you were switching over to the new library. CHRIS: Yeah, although to name it, we're not testing at a terribly low level. This is a great example of where I believe in feature specs. Like, within our Capybara feature spec, we are saying, and then as a user, I type in this value into the input. And critically, although this input needs to have special formatting and presentational behavior, it should functionally be identical. And so it was a very good litmus test of does this just work? And then, actually, our feature specs ended up in a race condition, which is just an annoying situation where Capybara moves so quickly that it represented a user. But as we were having that conversation, I was like, wait a minute; I know that users are slower than a computer. But is this actually an edge case that's real that we need to think about? And I think we did end up slightly changing our implementation. So our feature specs did, in a way, highlight that. But mostly, our feature specs did not need to change to adapt to and then fill in the formatted input. It was just fill in the input with the value. And that did not change at all, but it did put a tiny bit of pressure on our implementation to say, oh, there is a weird, tiny, little race condition here. Let's fix that. And so we did race conditions, no fun at all. STEPH: Interesting. Okay, so y'all aren't actually testing. Like, there's no test that says, "Hey, that when someone types into this field, that then there should be this different UI that's present because then we are obscuring the text that they're putting into this field." It was, as you mentioned, we're just testing that we changed over libraries, and everything still works. So then do you just go through that manual test of, then you go to staging, and then you test it that way? CHRIS: Yeah, that's a great question, yes, although as you say it, it's interesting. I guess there's a failure mode here or that our test suite does not enforce that the formatting masking behavior is happening. But it does test that the value goes through this input, gets submitted to the server, turns into the right type of value in the back end, all of that. And so I guess this is an example of how I think about testing, like, that's the critical bit, and then it's a nicety. It's an enhancement that we have this masking behavior. But if that broke, as long as the actual flow of data is still working, that can't break in a way that a user can't use. It sort of reminds me of the Mitch Hedberg joke, an escalator can never break, and it can only become stairs. And so I'm in that mindset here where a masked input that you have proper feature spec coverage around can never quote, unquote, "break." It can just become a plain text input. STEPH: I love how much that resonates with me. And I now know that when I'm writing tests, I'm going to think back to Mitch Hedberg and be like, oh, but is it broken-broken, or is it just now stairs? Because that's often how I will think of feature specs and how low level I will get with them. And this is on that boundary of like, yes, it's important that we want to obscure that data that someone's typing in, but it's not broken if it's not obscured. So there's that balance of I don't really want to test it. Someone will alert us. Like if that breaks, someone will alert us, and it's not the end of the world. It's just unfortunate. But if they can't sign in or they can't actually submit the form, that's a big problem. So yes, I love this comparison now of is it actually broken, or is it just stairs? [laughs] As a guideline for, how much should we test at this feature level or test in general? What should we care about? CHRIS: I feel like this is a deep truth that I believed for a long time. And I think I probably, somewhere in the back of my head, connected it to this joke. But I feel really good that I formally made that connection now because I feel like it helps me categorize this whole thing. Sorry for the convenience as a joke. And so yeah, that's where we're at. STEPH: For anyone that's not familiar with the comedian Mitch Hedberg, we'll be sure to include a link to that particular joke because it's delightful. And now it's connected to tech, which makes it just even more delightful. CHRIS: I only understand anything by analogy, especially humorous analogy. So this is just critical to my progression as a developer and technologist. STEPH: Yeah, I've learned over the years that there are two ways that I retain knowledge: it either caused me pain, or it made me laugh. Otherwise, it's mundane, and it gets filtered out. Laughter is, of course, my favorite. I mean, pain sticks with me as well. But if it's something that made me laugh, I just know I'm far more likely to retain it, and it's going to stick with me. Mid-Roll AD: And now a quick break to hear from today's sponsor, Studio 3T. When you're developing applications, it can often be a chore to work with your underlying data. Studio 3T equips you with a complete set of tools to work with MongoDB data. From building queries with drag and drop, to creating complex aggregation pipelines, Studio 3T makes it easy. And now, there's Studio 3T Free, a free edition of Studio 3T, which delivers an essential core of tools. This means you can get started, for free, with Studio 3T Free, and when you're ready, you can upgrade and enjoy even more features through Studio 3T Pro and Studio 3T Ultimate. The different editions unlock more tools and additional integrations with MongoDB, SQL, Oracle, and Sybase. You can start today by downloading Studio 3T Free, which also includes a 30-day free trial of all the features of Studio 3T Ultimate, so you can try out some of the enterprise features as well. No credit card required. To start your trial, head to studio3t.com/free. That's studio3t.com/free. CHRIS: On that wonderful framing there, I think we should wrap up. What do you think? STEPH: Let's wrap up. CHRIS: The show notes for this episode can be found at bikeshed.fm. STEPH: This show is produced and edited by Mandy Moore. CHRIS: If you enjoyed listening, one really easy way to support the show is to leave us a quick rating or even a review on iTunes, as it really helps other folks find the show. STEPH: If you have any feedback for this or any of our other episodes, you can reach us at @_bikeshed or reach me on Twitter @SViccari. CHRIS: And I'm @christoomey. STEPH: Or you can reach us at hosts@bikeshed.fm via email. CHRIS: Thanks so much for listening to The Bike Shed, and we'll see you next week. ALL: Byeeeeeee!!!!!! ANNOUNCER: This podcast was brought to you by thoughtbot. thoughtbot is your expert design and development partner. Let's make your product and team a success.

The Bike Shed
333: Tapas

The Bike Shed

Play Episode Listen Later Apr 12, 2022 41:53


Being pregnant is hard, but this tapas episode is good! Steph discovered and used a #yelling Slack channel and attended a remote magic show. Chris touches on TypeScript design decisions and edge cases. Then they answer a question captured from a client Slack channel regarding a debate about whether I18n should be used in tests and whether tests should break when localized text changes. This episode is brought to you by ScoutAPM (https://scoutapm.com/bikeshed). Give Scout a try for free today and Scout will donate $5 to the open source project of your choice when you deploy. Emma Bostian (https://twitter.com/EmmaBostian) Ladybug Podcast (https://www.ladybug.dev/) Gerrit (https://www.gerritcodereview.com/) Gregg Tobo the Magician (https://astonishingproductions.com/) Sean Wang - swyx - better twitter search (https://twitter.com/swyx/status/1328086859356913664) Twemex (https://twemex.app/) GitHub Pull Request File Tree Beta (https://github.blog/changelog/2022-03-16-pull-request-file-tree-beta/) Sam Zimmerman - CEO of Sagewell Financial on Giant Robots (https://www.giantrobots.fm/414) TypeScript 4.1 feature (https://devblogs.microsoft.com/typescript/announcing-typescript-4-1/) The Bike Shed: 269: Things are Knowable (Gary Bernhardt) (https://www.bikeshed.fm/269) TSConfig Reference - Docs on every TSConfig option (https://www.typescriptlang.org/tsconfig#noUncheckedIndexedAccess) Rails I18n (https://guides.rubyonrails.org/i18n.html) This episode is brought to you by Studio 3T (https://studio3t.com/free). Try Studio 3T's full suite of features for 30 days, no payment details needed. Become a Sponsor (https://thoughtbot.com/sponsorship) of The Bike Shed! Transcript: CHRIS: Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Chris Toomey. STEPH: And I'm Steph Viccari. CHRIS: And together, we're here to share a bit of what we've learned along the way. So, Steph, what's new in your world? STEPH: Hey, Chris. There are a couple of new things in my world, so one of them that I wanted to talk about is the fact that being pregnant is hard. I feel like this is probably a known thing, but I feel like I don't hear it talked about as much as I'd really like, especially in sort of like a professional context. And so I just wanted to share for anyone else that may be listening, if you're also pregnant, this is hard. And I also really appreciate my team. Going through the first trimester is typically where you experience a lot of morning sickness and fatigue, and I had all of that. And so I was at the point that most of my days, I didn't even start till about noon and even some days, starting at noon was a struggle. And thankfully, the thoughtbot client that I'm working with most of the teams are on West Coast hours, so that worked out pretty well. But I even shared a post internally and was like, "Hey, I'm not doing great in the mornings. And so I really can't facilitate any morning meetings. I can't be part of some of the hiring intros that we do," because we like to have a team lead provide a welcoming and then closing for anyone that's coming for interview day. I couldn't do those, and those normally happen around 9:00 a.m. for Eastern Time. And everybody was super supportive of it. So I really appreciate all of thoughtbot and my managers and team being so great about this. Also, the client team they're wonderful. It turns out growing a little human; I'm learning how hard it is and working full time. It's an interesting challenge. Oh, and as part of that appreciation because…so there's just not a lot of women that I've worked with. This may be one of those symptoms of being in tech where one, I haven't worked with tons of women, and then two, working with a woman who is also pregnant and going through that as well. So it's been a little bit isolating in that experience. But there is someone that I follow on Twitter, @EmmaBostian. She's also one of the co-hosts for the Ladybug Podcast. And she has been just sharing some of her, like, I am two months sleep deprived. She's had her baby now, and she is sharing some of that journey. And I really appreciate people who just share that journey and what they're going through because then it helps normalize it for me in terms of what I'm feeling. I hope this helps normalize it for anybody else that might be listening too. CHRIS: I certainly can't speak to the specifics of being pregnant. But I do think it's wonderful for you to use this space that we have here to try and forward that along and say what your experience is like and share that with folks and hopefully make it a little bit better for everyone else out there. Also, you snuck in a sneaky pro-tip there, which is work on the East Coast and have a West Coast team. That just sounds like the obvious correct way to go about this. STEPH: That has worked out really well and been very helpful for me. I'm already not a great morning person; I've tried. I've really strived at times to be a morning person because I just have this idea in my head morning people get more stuff done. I don't think that's true, but I just have that idea. And I'm not the world's best morning person, so it has worked out for many reasons but yeah, especially in helping me get through that first trimester and also just supporting family and other things that are going on. Oh, I also learned a pro-tip about Twitter. This is going to seem totally random, but it was relevant when I was searching for stuff on Twitter [laughs] that was related to tech and pregnancy. But I learned...because I wanted to be able to search for something that someone that I follow what they said but I couldn't remember who said it. And so I found that in the search bar, I can add filter:follows. So you can have your search term like if you're looking for cake or pregnancy, or sleep-deprived and then look for filter:follows, and then that will filter the search results to everybody that you follow. I imagine that that probably works for followers too, but I haven't tried it. CHRIS: I like the left turn you took us on there but still keeping it connected. On the topic of Twitter search, they apparently have a very powerful search, but it's also hidden, and you got to know the specific syntax and whatnot. But there is a wonderful project by Shawn Wang, AKA Swyx, on the internet, bettertwitter.netlify.com is the URL for it. I will share a link to his tweet introducing it. But it's a really wonderful tool that just provides a UI for all of these different filters and configurations. And both make discoverability that much better and then also make it easy to just compose one of these searches and use that. The other thing that I'll recommend is, I think it's a Chrome plugin. I'm guessing is what I'm working with here like a browser extension, but it's called Twemex, T-W-E-M-EX. And there's a sidebar in Twitter now, which just seems wonderful and useful. So as I'm looking at a Swyx post here, or a tweet as they're called on Twitter because I know that vernacular, there's a sidebar which is specific to Shawn Wang. And there's a search at the top so I can search within it. But it's just finding their most popular tweets and putting that on a sidebar. It's a very useful contextual addition to Twitter that I found just awesome. So that combination of things has made my Twitter experience much better. So yeah, we'll have show notes for both of those as well. STEPH: Nice. I did not know about those. This may cause someone to laugh at me because maybe it's easier than I think. But I can never remember that advanced search that Twitter does offer; I have to search it every time. I just go to Google, and I'm like, advanced Twitter search, and then it brings up a site for me, and then I use that as the one that Twitter does provide. But yeah, from the normal UI, I don't know how to get there. Maybe I haven't tried hard enough. Maybe it's hidden. CHRIS: It's like they're hiding it. STEPH: Yeah, one of those. [laughs] CHRIS: It's very costly. They have to like MapReduce the entire internet in order to make that search work. So they're like, well, what if we hide it because it's like 50 cents per query? And so maybe we shouldn't promote this too much. STEPH: [laughs] CHRIS: And let's just live in the moment, everybody. Let's just swim in the Twitter stream rather than look back at the history. I make guesses about the universe now. STEPH: [laughs] On a different note, I also discovered at thoughtbot in our variety of Slack channels that we have a yelling channel, and I had not used it before. I had not hung out there before. It's a delightful channel. It's a place that you just go, and you type in all caps. You can yell about anything that you would like to. And I specifically needed to yell about Gerrit, which is the replacement or the alternative that we're using for GitHub or GitLab, or Bitbucket, or any of those services. So we're using Gerrit, and I've been working to feel comfortable with the UI and then be able to review CRs and things like that. My vernacular is also changing because my team refers to them as change requests instead of pull requests. So I'm floating back and forth between CRs and PRs. And because I'm in Gerrit world, I missed some of the updates that GitHub made to their pull request review screen. And so then I happened to hop in GitHub one day, and I saw it, and I was like, what is this? So that was novel. But going back to yelling, I needed to yell about Gerrit because I have not found a way to collaborate with someone who has already pushed up changes. I have found ways that I can pull their changes which then took a little while. I found it in a sneaky little tab called download. I didn't expect it to be there. But then the actual snippet it's like, run this in your terminal, and this is then how you pull down the changes. And I'm like, okay, so I did that. But I can't push to their existing changes because then I get like, well, you're not the owner, so we're going block you, which is like, cool, cool, cool. Okay, I kind of get that because you don't want me messing up somebody else's content or something that they've done. But I really, really, really want to collaborate with this person, and we're trying to do something together, and you're blocking me. And so I had to go to the yelling channel, and I felt better. And I'm yelling again. [laughs] Maybe I don't feel that great because I'm getting angry again talking about it. CHRIS: You vented a little into the yelling channel; maybe not everything, though. STEPH: Yeah, I still have more to vent because it's made life hard. Every time I wanted to push up a change or pull down someone else's changes, there are now all these CRs that then I just have to go and abandon, which is then the terminology for then essentially closing it and ignoring it, so I'm constantly going through. And if I do want to pull in changes or collaborate, then there's a flow of either where I abandon mine, or I pull in their changes, but then I have to squash everything because if you push up multiple commits to Gerrit, it's going to split those commits into different CRs, don't like that. So there are a couple of things that have been pain points. And yeah, so plus-one for yelling channels, let people get it out. CHRIS: Okay, so definitely some feelings that you are working through here. I'm happy to work together as a team to get through some of them. One thing that I want to touch on is you very quickly hinted at GitHub has got a bunch of new things that are cool. I want to talk about those. But I want to touch [laughs] on an anecdote. You talked about pushing something up to someone else's branch. You're like, oh, you know, I made some changes locally, and I'm going to push them up. I had an interesting experience once where I was interacting with another developer. I had done some code review. They weren't quite understanding where I was. They had a lot of questions. And finally, I said, you know what? This will just be easier. Here, I pushed up a commit to your branch, so now you can see what I'm talking about. And I thought of this as a very innocuous act, but it was not interpreted that way. That individual interpreted it in a very aggressive sort of; it was not taken well. And I think part of that was related to I think of Git commits as just these little ephemeral things where you're like, throw it out, feel free. This is just the easiest way for me to communicate this change in the context of the work that you're doing. I thought I was doing a nice favor thing here. That was not how it went. We had a good conversation after I got to the heart of where we both were emotionally on this thing. It was interesting. The interaction of emotion and tech is always interesting. But as a result, I'm very, very careful with that now. I do think it's a great way as long as I've gotten buy-in from the person beforehand. But I will always spot check and be like, "Hey, just to confirm, I can just push up a commit to your branch, but are you okay with that? Is that fine with you?" So I've become very cautious with that. STEPH: Yeah, that feels like one of those painful moments where it highlights that the people that you work with that you are accustomed to having a certain level of trust or default trust with those individuals, and then working with someone else that they don't have that where the cup is half-full in terms of that trust, or that this person means well kind of feelings towards a colleague or towards someone that they're working with. So it totally makes sense that it's always good to check and just to be like, "Hey, I'd love to push up some changes to your branch. Is that cool?" And then once you've established that, then that just makes it easier. But I do remember that happening, and yeah, that was a bit painful and shocking because we didn't see that coming and then learned from it. CHRIS: I do think it's an important thing to learn, though, because for me, in that moment, this was this throwaway operation that I thought almost nothing of, but then another individual interpreted it in a very different way. And that can happen, that can happen across tons of different things. And I don't even want to live in the idealized world where it's just tech; we're just pushing around zeros and ones; there's no human to this. But no, I actually believe it's a deeply human thing that we're doing here. It's our job to teach the computers to be a little closer to us humans or something like that. And so it was a really pointed clarification of that for me where it was this thing that I didn't even think once about, no less twice, and yet someone else interpreted it in such a different way. So it was a useful learning situation for me. STEPH: Yeah, I totally agree. I think that's a really wise default to have to check in with people before assuming that they'll be comfortable with something that we're comfortable with. CHRIS: Indeed. But shifting back to what you mentioned of GitHub, a bunch of new stuff came in GitHub, and you were super excited about it. And then you went on to say other things about another system. [laughs] But let's talk about the great things in GitHub. What are the particular ones that have caught your eye? I've seen some, but I'm intrigued. Let's compare notes. STEPH: So this is one of those where I hadn't seen GitHub in quite a while, and then I hopped in, and I was like, this is different. But some of the things that did stand out to me right away is that on the left-hand side, I can see all of the files that have been changed, and so that's a really nice tree where I just then immediately know. Because that was one of the things that I often did going to a PR is that I would see what files are involved in this change because it was just a nice overview of what part of the applications am I walking through? Are there tests for this? Have they altered or added tests? And so I really like that about it. I'm sure there's other stuff. But that is the main thing that stood out to me. How about you? CHRIS: Yeah, that sidebar file tree is very, very nice, which I find surprising because I don't use a file tree in my editor. I only do fuzzy finding to jump to files. But I think there's something about whenever GitHub had the file list; these are all the files that are changed. I'm like, this is just noise. I can't look at this and get anything out of it. But the file tree is so much more...there's a shape to it that my brain can sort of pattern match on. And it's just a much more discoverable way to observe that information. So I've really loved that. That was a wonderful one. The other one that I was surprised by is GitHub semantic code analysis; stuff has gotten much, much better over time subtly. I didn't even notice this happening. But I was discussing something with someone today, and we were looking at it on GitHub, and I just happened to click on an identifier, and it popped up a little thing that says, "Oh, do you want to hop to the references or the definition of this?" I was like, that is what I want to do. And so I hopped to the definition, hopped to the definition of another thing, and was just jumping around in the code in a way that I didn't know was available. So that was really neat. But then also, I was in a pull request at one point, and someone was writing a spec, and they had introduced a helper just like stub something at the bottom of a given spec file. And it's like, I feel like we have this one already. And I just clicked on the identifier. I think it might have actually been a matcher in RSpec, so it was like, have alert. And I was like, oh, I feel like we have this one, a matcher specific to flash message alerts on the page. And I clicked on it, and GitHub provided me a nice little inline dialog that showed me all of the definitions of have alert, which I think we were up to like four of them at that point. So it had been copied and pasted across a couple of different files, which I think is totally fine and a great way to start, but they were very similar implementations. I was like, oh, looks like we actually already have this in a couple of places, maybe we clean it up and extract it to a common spec support thing, and ta-da, I was able to do all of that from the GitHub pull requests UI. And I was like, this is awesome. So kudos to the GitHub team for doing some nifty stuff. Also, can I get into the merge queue? Thank you. ... STEPH: [laughs] There it is. That is very cool. I didn't know I could do that from the pull request screen. I've seen it where if I'm browsing code that, then I can see a snippet of where everything's defined and then go there, but I hadn't seen that from the pull request. I did find the changelogs for GitHub that talk about the introduction of having the tree, so we'll be sure to include a link in the show notes for that too. But yes, thank you for letting me use our podcast as a yelling channel. It's been delightful. [laughs] Mid-roll Ad Hi, friends, and now a quick break to hear from today's sponsor, Scout APM. Scout APM is an application performance monitoring tool that's designed to help developers find and fix performance issues quickly. With an intuitive user interface, Scout will tie bottlenecks to source code so you can quickly pinpoint and resolve performance abnormalities like N+1 queries, slow database queries, and memory bloat. Scout also recently implemented external service monitoring, adding even more granularity when it comes to HTTP requests and API calls. So give Scout a try today with a free 14-day trial and experience first-hand why developers worldwide call Scout their best friend. And as an added bonus for Bike Shed listeners, Scout will donate $5 to the open-source project of your choice when you deploy. To learn more, visit scoutapm.com/bikeshed. That's scoutapm.com/bikeshed. CHRIS: Well, speaking of podcasts, actually, there was an interesting thing that happened where the CEO of Sagewell Financial, the company of which I am the CTO of, Sam Zimmerman is his name, and he went on the Giant Robots Podcast with Chad a couple of weeks ago. So that is now available. We'll link to that in the show notes. I'll be honest; it was a very interesting experience for me. I listened to portions of it. If we're being honest, I searched for my name in the transcript, and it showed up, and I was like, okay, that's cool. And it was interesting to hear two different individuals that I've worked with either in the past or currently talking about it. But then also, for anyone that's been interested in what I'm building over at Sagewell Financial and wants to hear it from someone who can probably do a much better job of pitching and describing the problem space that we're working in, and all of the fun challenges that we have, and that we're hopefully living up to and building something very interesting, I think Sam does a really fantastic job of that. That's the reason I'm at the company, frankly. So yeah, if anyone wants to hear a little bit more about that, that is a very interesting episode. It was a little weird for me to listen to personally, but I think everybody else will probably have a normal experience listening to it because they're not the CTO of the company. So that's one thing. But moving on, I feel like today's going to be a grab bag episode or tapas episode, lots of small plates, as we were discussing as we were prepping for this episode. But to share one little thing that happened, I've been a little more removed from the code of late, something that we've talked about on and off in previous episodes. Thankfully, I have a wonderful team that's doing an absolutely fantastic job moving very rapidly through features and bug fixes and all those sorts of things. But also, I'm just not as involved even in code review at this point. And so I saw one that snuck through today that, I'm going to be honest, I had an emotional reaction to. I've talked myself down; we're fine now. But the team collectively made the decision to move from a line length of 80 characters to a line length of 120 characters, and I had some feelings. STEPH: Did you fire everybody? [laughs] CHRIS: No. I immediately said, doesn't really matter. This is the whole conversation around auto-formatting tools is like we're just taking the decision away. I personally am a fan of the smaller line length because I like to have multiple files open left to right. That is my reason for it, but that's my reason. A collective of the developers that are frankly working more in the code than I am at this point decided this was meaningful. It was a thing that we could automate. I think that we can, you know, it's not a thing that we have to manage. So I was like, cool. There we go. The one thing that I did follow up on I was like, okay; y'all snuck this one in, it's fine, I'm fine with it. I feel fine; everything's fine. But let's add that to the git-blame-ignore-revs file, which is a useful thing to know about. Because otherwise, we have a handful of different changes like this where we upgrade Prettier, and suddenly, the manner in which it formats the files changes, so we have to reformat everything at once. And this magical file that exists in Git to say, "Hey, ignore this revision because it is not relevant to the semantic history of the app," and so it also takes that decision out of the consideration like yeah, should we reformat or not? Because then it'll be noisy. That magical file takes that decision away, and so I love that. STEPH: I so love the idea because you took vacation recently twice. So I love the idea of there was a little coup and people are applauding, and they're like, while Chris is on vacation, we're going to merge this change [laughs] that changes the character line. And yeah, that brings me joy. Well, I'm glad you're working through it. Sounds like we're both working through some hard emotional stuff. [laughs] CHRIS: Life's tricky, is all I'm going to say. STEPH: I am curious, what prompted the 80 characters versus 120? This is one of those areas that's like, yeah, I have my default preference like you said. But I'm more intrigued just when people are interested in changing it and what goes with it. So do you remember one of the reasons that 120 just suited their preferences better? CHRIS: Frankly, again, I was not super involved in the discussion or what led them to it. STEPH: [laughs] CHRIS: My guess is 120 is used...I think 80 is a pretty common one. I think 120 is another of the common ones. So I think it's just a thing that exists out there in the mindshare. But also, my guess is they made the switch to 120 and then reformatted a few files that had like, ah, this is like 85 characters, and that's annoying. What does it look like if we bump it up? And so 120 provided a meaningful change of like, this is a thing that splits to four lines if we have an 80 character thing, or it's one line if it's 120 characters, which is a surprising thing to say, but that's actually the way it plays out in certain cases because the way Prettier will break lines isn't just put stuff on the next line always. It's got to break across multiple lines, actually. All right, now that we're back in the opinion space, I have a strong one. STEPH: This is The Bikeshed. We can live up to that name. [laughs] CHRIS: So I do want an additional configuration in Prettier Ruby. This is the thing I'll say. Maybe I can chase down Kevin Newton and see if he's open to this. But when Prettier does break method call with arguments going into it but no parens on that method call, and it breaks out to multiple lines, it does the dangling indent thing, which I do not like. I find it distasteful; I find it noisy, the shape of the code. I'm a big fan of the squint test. I know that from Sandi Metz, I believe, or maybe it's Avdi Grimm. I associate it with both of them in my mind. But it's just a way to look at the code and kind of squint, and you see the shape of it, and it tells you something. And when the lines break in that weird way, and you have these arbitrary dangling indents, the shape of the code is broken up. And I don't feel so strongly. I actually regularly stop myself from commenting on pull requests on this because it's very easy. All you need to do is add explicit parens, and then Prettier will wrap the line in what I believe is a much more aesthetically pleasing, concise, consistent, lots of other good adjectives here that are definitely just my preferences and not facts about the world. But so what I want is, Prettier, hey, if you're going to break this line across multiple lines, insert the parens. Parens are no longer optional for breaking across multiple lines; parens are only optional within a given line. So if we're not breaking across lines, I want that configuration because this is now one of those things where I could comment on this. And if they added the optional parens, then Prettier would reform it in a different way. And I want my auto formatter don't give me ways to do stuff. Like, constrain me more but also within the constraints of the preferences that I have, please, thank you. STEPH: I love all the varying levels there [laughter] of you want a thing, but you know it's also very personal to you and how you're walking that line and hopping back and forth on each side. I also love the idea. We have the idea of clean code. I really want something that's called distasteful code now [laughs] where you just give examples of distasteful code, yes. Well, I wish you good luck in your journey [laughs] and how this goes and how you continue to battle. I also appreciate that you mentioned when you're reviewing code how you know it's something that you really want, but you will refrain from commenting on that. I just appreciate when people have that filter to recognize, like, is this valuable? Is it important? Or, like you said, how can we just make this more of the default so then we don't even have to talk about it? And then lean into whatever the default the team goes with. CHRIS: Well, thank you. I very much appreciate that because, frankly, it's been very difficult. STEPH: I do have something I want to yell about but in a very positive way or pranting as we determined or, you know, raving, the actual real term that wonderful listeners pointed out to us. CHRIS: Prant for life. That's my stance. STEPH: We had a magic show at thoughtbot. It was all remote, but the wonderful Gregg Tobo, the magician, performed a magic show for us where we all showed up on Zoom. And it was interactive, and it was delightful, and it was so much fun. And so if you need something fun for your team that you just want to bring folks together, highly recommend. I had no idea I was going to enjoy a magic show this much, but it was a lot of fun. So I'll be sure to include some links in the show notes in case that interests anyone. But yeah, magic. I'm doing jazz hands. People can't see it, but magic. I like how you referred earlier, saying that today is more of like a tapas episode. And I'm realizing that all of my tapas are related to being pregnant, yelling, and magic shows, and I'm okay with that. [laughs] But on that note, what else is on your tapas plate? CHRIS: Actually, a nice positive one that came into the world...I always like when we get those. So this is interesting because I was actually looking back at the history, and I had Gary Bernhardt on The Bike Shed back in Episode 269. We'll include a link in the show notes. But we talked a bunch about various things, including TypeScript. And I was lamenting what I saw as a pretty big edge case in TypeScript. So the goal of TypeScript is like, all right, JavaScript exists, this is true. What can we do on top of that? Let's not fundamentally change it, but let's build a type system on top of it and try and make it so that we can enforce correctness but understand that JavaScript is a highly dynamic language and that we don't want to overconstrain and that we've got to meet it where it is. And so one of the design decisions early on with TypeScript is if you have an array and you say like it's an array of integers, so you have typed that array to be this is an array of int, or it will be an array of number in JavaScript because JavaScript doesn't have integers; they only have numbers. Cool. [laughs] Setting aside other JavaScript variables here, you have an array of numbers. And so if you use element access to say, like, say the name of array is array of nums and then use brackets and you say zero, so get me the first element of that array. TypeScript will infer the type of that to be a number. Of course, it's a number, right? You got an array of numbers, you take a number out of it, of course, you're going to have a number, except you know what's also an array of numbers? An empty array. Well, of course. So there's no way for TypeScript because that's a runtime thing, whether or not the array is full of things or not. Or imagine you get the third element from the array. Well, JavaScript will either return you the third element, which indeed is a number, or undefined because there's no third element in this array. So that is an unfortunate but very understandable edge case that TypeScript was like, listen, this is how JavaScript works. So we're not going to…frankly, we don't think the people embracing TypeScript and bringing it into their world would accept this amount of noise because this is everywhere. Anytime you interact with an array, you are going to run into this, this sort of uncertainty of did I actually get the thing? And it's like, yeah, no, I know how many things are in the array that I'm working with. Spoiler, you maybe don't is the answer. And so, we ran into this edge case in our codebase. We were accessing an element, but TypeScript was telling us, "Yes, definitively, you have an object of that type because you just got it out of an array, which is an array of that type." But we did not; we had undefined. And so we had, you know blah is not a method on undefined or whatever that classic JavaScript runtime error is. And I was like, well, that's very sad. But now we get to the fun part of the story, TypeScript, as of version 4.1, which came out like the week that I recorded with Gary Bernhardt, which was interesting to look at the timeline here. TypeScript has added a new configuration. So a new strictness dial that you can configure in your tsconfig called noUncheckedIndexedAccess. So if you have an array and you are getting an element out of it by index, TypeScript will say, "Hey, you got to check if that's undefined," because to be clear, very much could be undefined. And I was so happy to find this. We turned it on in our codebase. It found the error in the place that we actually had an error and then found a few others that I think probably had errored at some times. But it was just one of those for me very nice things to be able to dial up the strictness and enforce correctness within our codebase, and so I was very happy about it. Other folks may say that seems like too much work. And, you know, I get that, I get that take. I'm definitely on the side of I'm willing to go through the effort to have enforced correctness, but you know, that's a choice. STEPH: Yeah, that's thoughtful. I like that, how you said you can dial up the strictness so then as you are introducing TypeScript, then people have that option. There is an argument there in the back of my head that's like, well, if you're introducing types, then you want to start more strict because then you're just creating problems for yourself down the road. But I also understand that that can make things very difficult to then introduce it to teams in existing codebases. So that seems like a really nice addition where then people can say, "Yeah, no, I really want the strictness. This is why I'm here," and then they can turn that on. CHRIS: So TypeScript in the configuration has strict mode, so you say strict true. And that is a moving target with each new version of TypeScript. But it's their sort of [inaudible 28:14] set of things that are part of strict, but apparently, this one's not in it. So now I'm like, wait, can I have a stricter? Can I have a strictest option? Can I have dial it to 11, please? [laughs] Really rough me up and make sure my code is correct. But it is the sort of thing like when we turn any of these on; it will find things in our codebase. Some of them, we have to appease the compiler even though we know the code to be correct. But the code is not provably correct as it sits in our file. So I am, again, happy to make that exchange. And I like that TypeScript as a project gives us configurability. But again, I am on team where's the strictest button? I would like to push that as hard as I can and live that life. STEPH: Yeah, I like that phrasing that you just said about provably correct. That's nice. CHRIS: That's the world I want to live in, everything you own in the box to the left, which is probably correct. STEPH: [laughs] That's how that song goes. CHRIS: Yeah. This is a reference to move errors to the left, which I think I've referenced before. But now that I'm just referencing Beyoncé and not the actual article, it's probably worth referencing the article, but the idea of, like, if a user hits an error, that's not great. So let's move it back to QA, that's a little further to the left in sort of the timeline. But what if we could move it to an automated test in CI? But what if we could move it into your editor? What if we could move it even further to the left? And so, a type system tends to be sort of very far ratcheted up to the left. It's as early as possible that you can catch these. So again, to reference Beyoncé, everything you own in a box to the left. STEPH: [singing] Everything you own in the box to the left. CHRIS: Thank you for doing the needful work there. STEPH: [laughs] Mid-roll Ad And now a quick break to hear from today's sponsor, Studio 3T. When you're developing applications, it can often be a chore to work with your underlying data. Studio 3T equips you with a complete set of tools to work with MongoDB data. From building queries with drag and drop, to creating complex aggregation pipelines; Studio 3T makes it easy. And now, there's Studio 3T Free, a free edition of Studio 3T, which delivers an essential core of tools. This means you can get started, for free, with Studio 3T Free, and when you're ready, you can upgrade and enjoy even more features through Studio 3T Pro and Studio 3T Ultimate. The different editions unlock more tools and additional integrations with MongoDB, SQL, Oracle, and Sybase. You can start today by downloading Studio 3T Free, which also includes a 30-day free trial of all the features of Studio 3T Ultimate, so you can try out some of the enterprise features as well. No credit card required. To start your trial, head to studio3t.com/free that's studio3t.com/free. STEPH: I have a question for you that I'd really love to get your opinion on because I myself I'm waffling back and forth where someone brought up some really great points about a concern or just a question they had brought up around testing and i18n specifically. And I agree with the things that they're saying, but yet, there's also a part of me that doesn't, and so I'm Stephanie divided. And so, I'm trying to figure out where I stand on this. So let me dive in and give you some context; I'm going to share the statement/question that they had asked. So here we go. "One of my priorities has been I should be able to review a test without having to reference any other code. References to i18n means that I have to go over to YAML and make sure the right keys have the right values, and that seems error-prone. In some cases, a lack of a hit in the YAML defers to defaults. If the intent is to override the name of model attribute and error messages and it is coded incorrectly, the code fails silently without translating and uses the humanized attribute name, and that would go undetected. If libraries change structure, it might also fail silently as well, so to me, the only failsafe way is to be fully explicit in test." So this goes with the idea that if you're writing tests and then you're testing text, but it's on the screen or perhaps an email, that you're actually going to assert against that string that is shown to the user instead of referencing the i18n keys. And then that also backs up this person's idea that you really want to not have to jump around. If you're reading a test, everything you really need to know about that test should live very close by. And I really agree with that initial statement; I want everything that's very close to the test, especially if it's anywhere in that expectation line, I really want it close, so I can understand what's the expectation, what's under test, what are the inputs, what's the expected outcome. So I wholeheartedly support that idea. But yet, I am in the camp that I then will use YAML keys instead of providing that exact string because I do look at i18n as a helpful abstraction, and I want to trust that i18n is doing its job. And so that way, I don't have to provide that string that's there because then we're also choosing, okay, well, which language are we going to always use for our test? So this is the part where I feel divided. So I'm going to walk you through some of the reasons that I really support this idea and other reasons that I still use the i18n keys and then get your take on it. So there is a part of me that when I'm using the i18n YAML keys, it does make me sad because it reduces the readability in tests. Sometimes the keys are really well named where maybe it's a mailer.welcomemessage. And I'm like, okay, I understand the gist. I don't need to go see the actual string. I also think they highlighted a really good use case where if you're overriding behavior and it could default to something else, your test is still going to pass, and you don't actually know. So I could see the use case there where if you are overriding, then you want to be explicit about the string that you expect back. I also think there are some i18n messages that are fairly complex, and where then I really would like to see the string. So if you are formatting a date or a time or you're passing in just a lot of variables, then there's a chance that I do want to see how did that actually get generated for the person who's going to be reading it versus just maybe it's garbage text that came out? And I want to validate that the message that we think we're crafting is actually the one that the user is going to see. The case against actually being explicit, my biggest one is because then I do see i18n as a helpful abstraction. And I want to trust this abstraction that it's doing its job and it's doing it well. Because then if I do use explicit strings, it makes me sad if I change text from like hello to welcome, and now I have a failing test. I don't like that idea either. So I'm torn between these two worlds of it is very nice to have everything that you need in a test to be able to understand what is the expectation, but then I also lean into this abstraction and reference the i18n keys. So, Chris, with all of that, that was a bit of a whirlwind, [laughs] what are your thoughts? How do you test this stuff? CHRIS: Honestly, I'm surprised that you've got that much division in your own answer because for me, this is very obvious there's one...no, I'm kidding. This is obviously complicated. Similar to you, I think I'm going to have to give a grab bag of answers because I don't have a singular thought of like it is concretely this or that. I tend to go for explicit strings and tests all the way to...so like the readability of a test, and the conciseness of a test is interesting. I will often see developers extract. Say they're creating a user with a specific email, and then they log in with that email later, and then they expect something else. And so the email is referenced a few times, and they'll extract that into a variable called email. And I personally will tend to not do that. I will inline the literal string like user@example.com, and I'll do it in a few places. And I'm fine with that duplication because I like the readability of any given line that you're reading. So I will make that trade-off within tests. This is the thing I think we've talked about before, but the idea of DRY in tests is like I want to be careful applying that idea, Don't Repeat Yourself, to break apart the acronym. Those abstractions I will use them less than tests. And so I want the explicitness, I want the readability, I want to tell a little story, all of that feels true. That said, to flip it around, one of the things that I'm hearing...so I think I'm hearing a part of this that is around well, we can fail silently because we fail symmetrically in both the implementation and our test. Then an assertion may actually match even though it's matching on a fallback. I think that's a configurable thing. I would actually want my test to raise if I'm referencing an i18n key that is not defined. Now, granted, that's different for languages. And maybe this becomes a more complex story of like in production; in a different locale, it will fail because we don't have 100% parity across all our locale files. But fundamentally, I want to make sure that at least exists in our base, which I think typically would be en-US as the locale. I want to make sure all keys are looked up and found, and it's an error otherwise in our test. So that's a feeling. But am I misunderstanding that part of the story or how that configuration typically works? STEPH: No, I think you've got it. But just to make sure we're on the same page, so if you reference a key that doesn't exist, then it is going to fail. So at least you have your test failure is going to let you know that you've referenced something that doesn't exist. But if you are referencing, like if you want to override the defaults that Rails or i18n has provided for a model and say for an error message, if you reference that, but you want to override it, but then you've forgotten, that does exist. So you're not going to get the failure; you're going to get a different message. So it's probably not a terrible experience for the user. It's not going to crash. They're going to see something, but they're not going to see the custom message that you intended them to see. CHRIS: Gotcha. Okay, well, just to name it, the thing that I was describing, I don't know that that would be the configuration for every system. So I would strongly encourage any system where i18n just has a singular behavior which is we fall back to the key. I want my test to absolutely tell me if that's happening. And that should be a failure of the test. But to the discoverability documentation bit, I do wonder if tooling can actually help answer the question. And as I was describing the wonderful experience I had on GitHub the other day, viewing code as just static characters in a file is both true and also, I think increasingly, a limited view of it. We have editors, and we have code hosting tools that can understand semantically our code a little bit better. There's got to be like 20 Different VS Code plugins that, when you hover on an i18n reference, it will do the lookup for you. That feels like a thing that exists, and if it doesn't, well, now I've nerd-sniped myself, and I got a weekend project. JK, I'm definitely not building that this weekend. But that feels like can we use that to solve this? Maybe not. But that's just another thought of where we have these limitations where it's static, like those abstractions can be useful. But if we can very quickly dereference them, then the cost of the abstraction or that separation becomes smaller, and so the pain is reduced. And I wonder if that's a way to sort of offset it. STEPH: If I can poke at that a little bit more, because I think you're touching on something that I haven't expressed or thought through explicitly, but it's the idea of, like, why do I like the abstraction? What is it that's drawing me towards using these keys? And I think it's because most of the cases, I don't care. I don't care what the string is, and so that feels nice. Like, I understand that, yes, we're referencing something. If that key didn't exist, I'm going to see a failure. So I know that there's text there, and that's why I do lean into referencing the keys instead of the text because it feels good to not have to care about that stuff. And if we do make changes to the text, then it suddenly doesn't fail, and then I have to go update a test because we added a period or added a comma. I think that's the path of more sadness for me. And my goal is always a path of least sadness. So I think that's why I lean into it [laughs], I'm guessing. Is that why you lean into it as well? Or what do you like about referencing the keys over the explicit text? CHRIS: No, I think I share your inclination there, and the reason that you're in favor of it, and I think the consistency like if we're going to use i18n, then we should lean in because it's a non-trivial thing to do like porting to i18n projects, and they're tricky. Getting it right from the first step is also tricky. If you're going to do it, then let's lean in, and thus let's use that abstraction overall. But yeah, same ideas as you. STEPH: Cool. I think that helps validate where I'm at in terms of how I rationalize about this where ultimately, I do like leaning into that abstraction. And as you'd mentioned, some of those porting projects, I haven't been on one specifically, but I've seen that they are a lot of work. And so, if we have that in our system, then we want to continue to use it. It does reduce some of the readability. Like you said, maybe there's a VS Code plugin or some way that then we can help people be able to see if they want that full context in the test and not have to jump over to YAML. But yeah, otherwise, unless it's overriding default behavior or complex, then that's what I'm going to go with is with the keys. But I really appreciate this person's very thoughtful question and approach to testing because, normally or typically, I fully agree with I want full context in the test. And this one was one of those outliers that came up for me, and I had to really think through all the feelings and the reasons that I have for those feelings. On that note, shall we wrap up? CHRIS: Let's wrap up. The show notes for this episode can be found at bikeshed.fm. STEPH: This show is produced and edited by Mandy Moore. CHRIS: If you enjoyed listening, one really easy way to support the show is to leave us a quick rating or even a review on iTunes, as it really helps other folks find the show. STEPH: If you have any feedback for this or any of our other episodes, you can reach us at @_bikeshed or reach me on Twitter @SViccari. CHRIS: And I'm @christoomey. STEPH: Or you can reach us at hosts@bikeshed.fm via email. CHRIS: Thanks so much for listening to The Bike Shed, and we'll see you next week. ALL: Byeeeeeee!!!!!! ANNOUNCER: This podcast was brought to you by thoughtbot. thoughtbot is your expert design and development partner. Let's make your product and team a success.

Software Unscripted
Crossing the Chasm

Software Unscripted

Play Episode Listen Later Mar 25, 2022 69:42


Richard and Shawn Wang discuss how technologies "cross the chasm" from early adopters to mainstream.

Enjoy the Vue
Episode 88: Learning in Public about Learning in Public with Gift Egwuenu

Enjoy the Vue

Play Episode Listen Later Mar 7, 2022 57:59


Support us on Kofi! (https://ko-fi.com/C0C86NYJW) There are very few barriers keeping you from creating the career you want. For many developers, formal education no longer matters. What matters is demonstrating your skill and your dedication to the craft you've chosen to pursue. When you learn in public, you do just that; you share your skill development and your work in progress online. Originally from Lagos, Nigeria, today's guest is a frontend developer, content creator, speaker, and conference contributor who advocates for the benefits of learning in public. Gift Egwuenu relocated to the Netherlands in 2020 to begin her journey as a Frontend Engineer at Passionate People, a Javascript-focused consultancy based in Amsterdam. Since then, Gift has gained experience working in various environments, with various people, and in a multitude of frameworks and, in today's episode, she shares some of the pros and cons of learning in public and what it means, from sharing what you're learning on Twitter to creating video tutorials and live streams. We touch on the concept of conference-driven development, self-motivated learning versus audience-driven content, and work-life balance, and we share some of our favorite resources and suggestions for getting started on your learning in public journey! For all this and so much more, including our weekly picks (of course!), make sure not to miss this insightful conversation with Gift Egwuenu! Key Points From This Episode: Introducing Gift Egwuenu and today's topic: learning in public. The concept of conference-driven development and #100DaysOfCode as public learning. Why Gift believes that Twitter isn't necessarily the best forum for public learning. Alternative methods for learning in public, including YouTube videos or Twitch streams. Alex and Tessa share their opposing views on the benefits of seeing learners struggle. How having knowledgeable guests on your stream can be beneficial. Why you get more flexibility from having a specific framing context for public learning. Gift highlights the value of using her edited video content as practice for live streams. Creating audience-driven content versus self-motivated learning in public. How learning in public can engender accountability, according to Tessa. Gift shares the benefits of learning in public, from gaining visibility to community support. The panel reflects on the challenges of maintaining a healthy work-life balance while also learning in public and creating content consistently. Setting boundaries around learning in public without creating extra work for yourself. Some of Gift's favorite resources, including Shawn Wang and Kent C. Dodds. Tips for getting started, from setting yourself up for success to embracing failure. Gift's advice for those who want to try public learning: don't take it too seriously! This week's picks: United Parcel Service, live-action Sweet Home, Sally Rooney, and more! What headphones Gift is currently using and whether or not she likes them. Tweetables: “A lot of people [think], ‘Why would I come out and publicly humiliate myself? Because this is not something that I'm an expert in.' They shy away from doing it, but I like to advocate for [public learning], because of the benefits that it comes with.” — @lauragift_ (https://twitter.com/lauragift_) [0:09:54] “One of the reasons that learning in public is popular is because it can engender accountability.” — @EnjoyTheVueCast (https://twitter.com/enjoythevuecast) [0:22:39] “Job opportunities, getting access to mentors, or just people helping you out is another benefit you get out of [public learning].” — @lauragift_ (https://twitter.com/lauragift_) [0:25:51] “The most important thing is to have fun with it. No one's sponsoring you. No one's paying you to do it. If you're just doing it for the heck of it, have fun with it. Learn however you want to learn. Don't let anybody get you down.” — @EnjoyTheVueCast (https://twitter.com/enjoythevuecast) [0:41:35] “Feel free to ask questions. Feel free to make mistakes. That's definitely the idea of [public learning] in the first place. You're not perfect, so you learn stuff, break stuff, and then you get better at it.” — @lauragift_ (https://twitter.com/lauragift_) [0:43:30] Links Mentioned in Today's Episode: #100DaysOfCode (https://www.100daysofcode.com) Sketchnoting 101 (https://speakerdeck.com/nitya/sketchnoting-101-getting-started-with-visual-storytelling), Nitya Narasimhan Learn With Jason (https://www.learnwithjason.dev) “I hate writing, but loved having written.” —Dorothy Parker Simone Giertz (https://www.youtube.com/channel/UC3KEoMzNz8eYnwBC34RaKCQ), YouTube Conversations with (https://bookshop.org/books/conversations-with-friends/9780451499066) Friends, Sally Rooney JBL Live 460NC (https://www.jbl.com/over-ear-headphones/LIVE460NC-.html) Where to find Gift Egwuenu online: Twitter: https://twitter.com/lauragift_ Instagram: https://instagram.com/lauragift_ Github: https://github.com/lauragift21 Blog/website: https://www.giftegwuenu.com Other: https://youtube.com/egwuenugift This week's picks: Gift Egwuenu Beautiful World, Where are you, Sally Rooney (https://www.goodreads.com/book/show/56597885-beautiful-world-where-are-you) (audiobook) You 3, (Netflix show) (https://www.netflix.com/nl-en/title/80211991) Buildspace.so (https://buildspace.so/), Learn Web3 Alex Atlanta Braves! Oscar New MacBook Pros again (mostly UPS) Tessa Play It as It Lays (https://bookshop.org/books/play-it-as-it-lays/9780374529949), Joan Didion Sweet Home, Studio Dragon, Netflix (https://www.netflix.com/title/81061734) I Tried Every Nespresso Pod (https://www.youtube.com/watch?v=EvMwNnAtTL8), James Hoffman

DevX Pod
The radiating circles in DevX with Swyx (Head of Developer Experience, Temporal)

DevX Pod

Play Episode Listen Later Feb 15, 2022 34:44 Transcription Available


In this episode, we chat to Shawn (also known as Swyx online) about his take on developer experience as a discipline - we have hot takes, developer love for Svelte, video content and have analogies about radiators. This one's a good one! The hosts  ▻Pauline Narvas, Senior Community Engineer at Gitpod  (https://twitter.com/paulienuh)Mike Nikles, Senior Developer & Success Engineer at Gitpod  (https://twitter.com/mikenikles)Our guests  ▻Shawn Wang (https://twitter.com/swyx)Things mentioned ▻Temporal (https://twitter.com/Temporalio)Obsidian (https://obsidian.md/) LogSeq (https://logseq.com/)Reflect.App (https://reflect.app/)Swimm.io (https://swim.io/)Let's chat some more! ▻Gitpod Discord Community (https://www.gitpod.io/chat)Start a Gitpod workspace! (https://www.gitpod.io/)DevX Conf (https://www.devxconf.org)

DevDiscuss
S8:E1 - The Many Benefits of Learning in Public

DevDiscuss

Play Episode Listen Later Feb 9, 2022 38:42


Since CodeNewbie is doing a learn in public challenge this month, in this episode we talk all about learning in public with Gift Egwuenu, Frontend Developer, and past CodeLand speaker on the topic of learning in public, and Shawn Wang aka Swyx, head of developer experience at Temporal Technologies. Show Notes DevNews (sponsor) Duckly (sponsor) CodeNewbie (sponsor) Compiler (DevDiscuss) (sponsor) Scout APM (DevDiscuss) (sponsor) CodeNewbie Challenge: Learn in Public [Keynote] One Rule to Rule Them All: Learning in Public Shawn Wang (Swyx): Learn In Public Why I switched from Atom to Visual Studio Code

Changelog Master Feed
Temporal is like React for the backend (JS Party #208)

Changelog Master Feed

Play Episode Listen Later Jan 14, 2022 57:38 Transcription Available


Swyx is known for learning in public, and he joins the party to teach Ali and Nick about what he's been working on with Temporal IO, what it is, and why he's excited about it. We also talk about his role as Director of Developer Experience, including what developer experience is, how to do it, and what goals to set.

JS Party
Temporal is like React for the backend

JS Party

Play Episode Listen Later Jan 14, 2022 57:38 Transcription Available


Swyx is known for learning in public, and he joins the party to teach Ali and Nick about what he's been working on with Temporal IO, what it is, and why he's excited about it. We also talk about his role as Director of Developer Experience, including what developer experience is, how to do it, and what goals to set.

The Cloudcast
2022 Look Ahead, Developer Careers

The Cloudcast

Play Episode Listen Later Jan 12, 2022 49:37


Shawn Wang (@swyx, Head of Developer Experience @Temporalio) talks about the breadth of developer skills needed, how developers learn new technologies, and insights into important future trends for a broad set of developers. SHOW: 582CLOUD NEWS OF THE WEEK - http://bit.ly/cloudcast-cnotwCHECK OUT OUR NEW PODCAST - "CLOUDCAST BASICS"SHOW SPONSORS:JumpCloud (homepage) At the intersection of devices, identities, and access, JumpCloud's cloud directory platform unifies the IT resources in any company's infrastructure – anywhere work happens. Fully evaluate JumpCloud for free today CloudZero - Cloud Cost Intelligence for Engineering TeamsDatadog Kubernetes Solution : Modern Monitoring and AnalyticsGet started monitoring your container environment with a free 14 day Datadog trial. Listeners of The Cloudcast will also receive a free Datadog T-shirt.SHOW NOTES:Shawn's homepageTemporal.io (homepage) - open source microservice orchestrationLearning in Public - The Coding Career HandbookThe Coding Career (community)Topic 1 - Welcome to the show. You seem to be at the center of (or around) so many developer-centric conversations. Tell us a little bit about your background, and some of the areas you've been focused on. Topic 2 - You're well known for The Coding Career Handbook. With so many options out there for developers, how do you frame conversations about where people should focus? Topic 3 - At some point, developers (like many engineers) get bored of working on the same things. Right now it seems like we're in the middle of big changes. What should they think about the transition process? Cloud distros https://www.swyx.io/cloud-distros/Self provisioning runtimes https://www.swyx.io/self-provisioning-runtime/ Video in DevRel https://sacra.com/research/lenny-bogdanoff-milk-video-infrastructure/?highlight=ecommerce Topic 4 - As a developer, what are some of the best ways to get visibility of your projects? How do you find the right balance of public projects, side projects, and whatever you're currently getting paid for (main company job)?Topic 5 - Any tips or tricks that you've learned to accelerate your learning process? Topic 6 - How is WFH changing the developer work-life-balance?FEEDBACK?Email: show at the cloudcast dot netTwitter: @thecloudcastnet

The Swyx Mixtape
[Weekend Drop] Cloudflare vs AWS, API Economy, Learning in Public on the Changelog

The Swyx Mixtape

Play Episode Listen Later Dec 12, 2021 68:13


Listen to the Changelog: https://changelog.com/podcast/467Essays: https://www.swyx.io/LIP https://www.swyx.io/api-economy https://www.swyx.io/cloudflare-go TranscriptJerod Santo: So swyx, we have been tracking your work for years; well, you've been Learning in Public for years, so I've been (I guess) watching you learn, but we've never had you on the show, so welcome to The Changelog.Shawn Wang: Thank you. Long-time listener, first-time guest, I guess... [laughs]Adam Stacoviak: Yeah.Jerod Santo: Happy to have you here.Adam Stacoviak: Very excited to have you here.Jerod Santo: So tell us a little bit of your story, because I think it informs the rest of our conversation. We're gonna go somewhat deep into some of your ideas, some of the dots you've been connecting as you participate and watch the tech industry... But I think for this conversation it's probably useful to get to know you, and how you got to be where you are. Not the long, detailed story, but maybe the elevator pitch of your recent history. Do you wanna hook us up?Shawn Wang: For sure. For those who want the long history, I did a 2,5-hour podcast with Quincy Larson from FreeCodeCamp, so you can go check that out if you want. The short version is I'm born and raised in Singapore, came to the States for college, and was totally focused on finance. I thought people who were in the finance industry rules the world, they were masters of the universe... And I graduated just in time for the financial crisis, so not a great place to be in. But I worked my way up and did about 6-7 years of investment banking and hedge funds, primarily trading derivatives and tech stocks. And the more I covered tech stocks, the more I realized "Oh, actually a) the technology is taking over the world, b) all the value is being created pre-IPO, so I was investing in public stocks, after they were basically done growing... And you're kind of just like picking over the public remains. That's not exactly true, but...Jerod Santo: Yeah, tell that to Shopify...Shawn Wang: I know, exactly, right?Adam Stacoviak: And GitLab.Shawn Wang: People do IPO and have significant growth after, but that's much more of a risk than at the early stage, where there's a playbook... And I realized that I'd much rather be value-creating than investing. So I changed careers at age 30, I did six months of FreeCodeCamp, and after six months of FreeCodeCamp - you know, I finished it, and that's record time for FreeCodeCamp... But I finished it and felt not ready, so I enrolled myself in a paid code camp, Full Stack Academy in New York, and came out of it working for Two Sigma as a frontend developer. I did that for a year, until Netlify came along and offered me a dev rel job. I took that, and that's kind of been my claim to fame; it's what most people know me for, which is essentially being a speaker and a writer from my Netlify days, from speaking about React quite a bit.[04:13] I joined AWS in early 2020, lasted a year... I actually was very keen on just learning the entire AWS ecosystem. You know, a frontend developer approaching AWS is a very intimidating task... But Temporal came along, and now I'm head of developer experience at Temporal.Adam Stacoviak: It's an interesting path. I love the -- we're obviously huge fans of FreeCodeCamp, and Quincy, and all the work he's done, and the rest of the team has done to make FreeCodeCamp literally free, globally... So I love to see -- it makes you super-happy inside just to know how that work impacts real people.Like, you see things happen out there, and you think "Oh, that's impacting", but then you really meet somebody, and 1) you said you're a long-time listener, and now you're on the show, so it just really -- like, having been in the trenches so long, and just see all this over-time pay off just makes me really believe in that whole "Slow and steady, keep showing up, do what needs done", and eventually things happen. I just love that.Shawn Wang: Yeah. There's an infinite game mentality to this. But I don't want to diminish the concept of free, so... It bothers me a little, because Quincy actually struggles a lot with the financial side of things. He supports millions of people on like a 300k budget. 300k. If every single one of us who graduated at FreeCodeCamp and went on to a successful tech career actually paid for our FreeCodeCamp education - which is what I did; we started the hashtag. It hasn't really taken off, but I started a hashtag called #payitbackwards. Like, just go back, once you're done -- once you can afford it, just go back and pay what you thought it was worth. For me, I've paid 20k, and I hope that everyone who graduates FreeCodeCamp does that, to keep it going.Adam Stacoviak: Well, I mean, why not...?Shawn Wang: I'd also say one thing... The important part of being free is that I can do it on nights and weekends and take my time to decide if I want to change careers. So it's not just a free replacement to bootcamps, it actually is an async, self-guided, dip-your-toe-in-the-water, try-before-you-buy type of thing for people who might potentially change their lives... And that's exactly what happened for me. I kept my day job until the point I was like "Okay, I like enough of this... I'm still not good, but I like enough of this that I think I could do this full-time."Adam Stacoviak: I like the #payitbackwards hashtag. I wish it had more steam, I suppose.Jerod Santo: We should throw some weight behind that, Adam, and see if we can...Adam Stacoviak: Yeah. Well, you know, you think about Lambda School, for example - and I don't wanna throw any shade by any means, because I think what Austin has done with Lambda... He's been on Founders Talk before, and we talked deeply about this idea of making a CS degree cost nothing, and there's been a lot of movement on that front there... But you essentially go through a TL;DR of Lambda as you go through it, and you pay it after you get a job if you hit certain criteria, and you pay it based upon your earnings. So why not, right? Why not have a program like that for FreeCodeCamp, now that you actually have to commit to it... But it's a way. I love that you paid that back and you made that an avenue, an idea of how you could pay back FreeCodeCamp, despite the commitment not being there.Jerod Santo: Right.Shawn Wang: Yeah. And Quincy is very dedicated to it being voluntary. He thinks that people have different financial situations. I don't have kids, so I can afford a bit more. People should have that sort of moral obligation rather than legal obligation.I should mention that Lambda School is currently being accused of some fairly substantial fraud against its students...Jerod Santo: Oh, really?Shawn Wang: Yeah, it actually just came out like two days ago.Adam Stacoviak: I saw that news too, on Monday.Shawn Wang: Yeah. It's not evidenced in the court of law, it's one guy digging up dirt; let's kind of put this in perspective. But still, it's very serious allegations, and it should be investigated. That said, the business of changing careers and the business of teaching people to code, and this innovation of Income Share Agreements (ISA), where it actually makes financial sense for people to grow bootcamps and fund bootcamps - this is something I strongly support... Whether or not it should be a venture-funded thing, where you try to go for 10x growth every year - probably not... [laughs]Adam Stacoviak: Yeah...Jerod Santo: So after FreeCodeCamp you didn't feel quite ready, so you did do a bootcamp... Did you feel ready after that?Shawn Wang: [08:03] Yeah. [laughs] I did a reflection, by the way, of my first year of learning to code, so people can look it up... It's called "No zero days. My path to learning to code", and I think I posted it on Hacker News. And doing everything twice actually helped me a lot. Because before I came into my paid bootcamp, I had already spun up some React apps. I had already started to mess with WebPack, and I knew enough that I wasn't understanding it very much, I was just following the instructions. But the second time you do things, you have to space, to really try to experiment, to actually read the docs, which most people don't do, and actually try to understand what the hell it is you're doing. And I felt that I had an edge over the other people in my bootcamp because I did six months of FreeCodeCamp prior.Jerod Santo: So this other thing that you do, which not everybody does, is this Learning in Public idea... And you have this post, Learn in Public. You call it "The fastest way to learn", or the fastest way to build your expertise - networking, and second brain. I'm not sure what the second brain is, so help us out with that one... But also, why is learning in public faster than learning in private.Shawn Wang: Yeah. This is a reflection that came from me understanding the difference, qualitatively, between why I'm doing so well in my tech career versus my finance career. In finance, everything is private, meaning the investment memos that I wrote, the trade ideas that I had - they're just from a company; they're intellectual property of my company. In fact, I no longer own them. Some of my best work has been in that phase, and it's locked up in an email inbox somewhere, and I'll never see it again. And that's because tech is a fundamentally open and positive-sum industry, where if you share things, you don't lose anything; you actually gain from sharing things... Whereas in finance it's a zero-sum battle against who's got the secret first and who can act on it first.And I think when you're in tech, you should exploit that. I think that we have been trained our entire lives to be zero-sum, from just like the earliest days of our school, where we learn, we keep it to ourselves to try to pass the test, try to get the best scores, try to get the best jobs, the best colleges, and all that, because everything's positional. For you to win, others have to lose. But I don't see tech in that way, primarily because tech is still growing so fast. There's multiple ways for people to succeed, and that's just the fundamental baseline. You layer on top of that a bunch of other psychological phenomenon.I've been really fascinated by this, by what it is so effective. First of all, you have your skin in the game, meaning that a lot of times when your name is on the blog posts out there, or your name is on the talk that you gave, your face is there, and people can criticize you, you're just incentivized to learn better, instead of just "Oh, I'll read this and then I'll try to remember it." No, it doesn't really stick as much. So having skin in the game really helps.When you get something wrong in public, there are two effects that happen. First is people will climb over broken glass to correct you, because that's how the internet does. There's a famous XKCD comic where like "I can't go to bed yet." "Why?" "Someone's wrong on the internet. I have to correct them."Jerod Santo: Right.Shawn Wang: So people are incentivized to fix your flaws for you - and that's fantastic - if you have a small ego.Jerod Santo: I was gonna say, that requires thick skin.Shawn Wang: Yeah, exactly. So honestly -- and that's a barrier for a lot of people. They cannot get over this embarrassment. What I always say is you can learn so much on the internet, for the low, low price of your ego. If we can get over that, we can learn so much, just because you don't care. And the way to get over it is to just realize that the version that you put out today is the version you should be embarrassed about a year from now, because that shows that you've grown. So you divorce your identity from your work, and just let people criticize your work; it's fine, because it was done by you, before you knew what you know today. And that's totally fine.And then the second part, which is that once you've gotten something wrong in public, it's just so embarrassing that you just remember it in a much clearer fashion. [laughter] This built a feedback loop, because once you started doing this, and you show people that you respond to feedback, then it builds a feedback and an expectation that you'll do the next thing, and people respond to the next thing... It becomes a conversation, rather than a solitary endeavor of you just learning the source material.So I really like that viral feedback loop. It helps you grow your reputation... Because this is not just useful for people who are behind you; a lot of people, when they blog, when they write, when they speak, they're talking down. They're like "I have five years experience in this. Here's the intro to whatever. Here's the approach to beginners." They don't actually get much out of that.[12:17] That's really good, by the way, for beginners; that's really important, that experts in the field share their knowledge. They don't see this blogging or this speaking as a way to level up in terms of speaking to their experts in their fields. But I think it's actually very helpful. You can be helpful to people behind you, you can be helpful to people around you, but you can actually be helpful to people ahead of you, because you're helping to basically broadcast or personalize their message. They can check their messaging and see - if you're getting this wrong, then they're getting something wrong on their end, docs-wise, or messaging-wise. That becomes a really good conversation. I've interacted with mentors that way. That's much more how I prefer to interact with my mentors than DM-ing and saying "Hey, can you be my mentor?", which is an unspecified, unpaid, indefinitely long job, which nobody really enjoys. I like project-based mentorship, I like occasional mentorship... I really think that that develops when you learn in public.Adam Stacoviak: I've heard it say that "Today is the tomorrow you hope for."Shawn Wang: Wow.Adam Stacoviak: Because today is always tomorrow at some point, right? Like, today is the day, and today you were hoping for tomorrow to be better...Jerod Santo: I think by definition today is not tomorrow...Adam Stacoviak: No, today is the tomorrow that you hoped for... Meaning like "Seize your moment. It's here."Jerod Santo: Carpe diem. Gotcha.Adam Stacoviak: Yeah, kind of a thing like that.Shawn Wang: I feel a little shady -- obviously, I agree, but also, I feel a little shady whenever I venture into this territory, because then it becomes very motivational speaking-wise, and I'm not about that. [laughs]Adam Stacoviak: Kind of... But I think you're in the right place; keep showing up where you need to be - that kind of thing. But I think your perspective though comes from the fact that you had this finance career, and a different perspective on the way work and the way a career progressed. And so you have a dichotomy essentially between two different worlds; one where it's private, and one where it's open. That to me is pretty interesting, how you were able to tie those two together and see things differently. Because I think too often sometimes in tech, especially staying around late at night, correcting someone on the internet, you're just so deeply in one industry, and you have almost a bubble around you. You have one lens for which you see the world. And you've been able to have multi-faceted perspectives of this world, as well as others, because of a more informed career path.Jerod Santo: Yeah. When you talk about finance as a zero-sum game, I feel like there's actually been moves now to actually open up about finance as well; I'm not sure if either of you have tracked the celebrity rise of Cathie Wood and Ark Invest, and a lot of the moves that she's doing in public. They're an investment fund, and they will actually publish their moves at the end of every day. Like, "We sold these stocks. We bought these stocks." And people laughed at that for a while, but because she's been successful with early on Bitcoin, early with Tesla, she's very much into growth stocks - because of that, people started to follow her very closely and just emulate. And when she makes moves now, it makes news on a lot of the C-SPANs and the... Is C-SPAN the Congress one? What's the one that's the finance one...?Shawn Wang: CNBC?Jerod Santo: CNBC, not C-SPAN. And so she's very much learning in public. She's making her moves public, she's learning as she goes, and to a certain degree it's paid off, it's paid dividends in her career. Now, I'm not sure if everyone's doing that... When you look at crypto investors, like - okay, pseudonymous, but a lot of that stuff, public ledgers. So there's moves that are being made in public there as well. So I wonder if eventually some of that mentality will change. What do you think about that?Shawn Wang: [15:45] It's definitely changed for -- there's always been celebrity investors, and people have been copying the Buffett portfolio for 30 years. So none of that is new. What is new is that Cathie Wood is running an ETF, and just by way of regulation and by way of innovation, she does have to report those changes. [laughs] So mutual funds, hedge fund holdings - these have all been public, and people do follow them. And you're always incentivized to talk your book after you've established your position in your book...Jerod Santo: Right, but you establish it first.Shawn Wang: ...so none of that has changed. But yeah, Cathie has been leading an open approach...Jerod Santo: Is it the rate of disclosure perhaps that's new? Because it seems like it's more real-time than it has historically...Shawn Wang: Yeah. I mean, she's running an ETF, which is new, actually... Because most people just run mutual funds or hedge funds, and those are much more private. The other two I'll probably shout out is Patrick O'Shaughnessy who's been running I guess a fund of funds, and he's been fairly open. He actually adopted the "learn in public" slogan in the finance field, independently of me. And then finally, the other one is probably Ted Seides, who is on the institutional investor side of things. So he invests for universities, and teachers pensions, and stuff like that. So all these people - yeah, they've been leading that... I'm not sure if it's spreading, or they've just been extraordinarily successful in celebrity because of it.Adam Stacoviak: This idea of "in public" is happening. You see people too, like -- CopyAI is building in public... This idea of learning in public, or building in public, or exiting in public... Whatever the public might be, it's happening more and more... And I think it's definitely similar to the way that open source moves around. It's open, so it's visible to everyone. There's no barrier to see what's happening, whether it's positive or negative, with whatever it is in public. They're leveraging this to their advantage, because it's basically free marketing. And that's how the world has evolved to use social media. Social media has inherently been public, because it's social...Jerod Santo: Sure.Adam Stacoviak: Aside from Facebook being gated, with friends and stuff like that... Twitter is probably the most primary example of that, maybe even TikTok, where if I'm a creator on TikTok, I almost can't control who sees my contact. I assume it's for the world, and theoretically, controlled by the algorithm... Because if I live in Europe, I may not see content in the U.S, and the algorithm says no, or whatever. But it's almost like everybody is just in public in those spaces, and they're leveraging it to their advantage... Which is an interesting place to be at in the world. There was never an opportunity before; you couldn't do it at that level, at that scale, ten years ago, twenty years ago. It's a now moment.Jerod Santo: Yeah. Swyx, can you give us an example of something learned in public? Do you basically mean like blog when you've learned something, or ask questions? What does learning in public actually mean when it comes to -- say, take a technology. Maybe you don't understand Redux. I could raise my hand on that one... [laughter] How could I learn that in public?Shawn Wang: There are a bunch of things that you can try. You can record a livestream of you going through the docs, and that's useful to maintainers, understanding "Hey, is this useful or not?" And that's immediately useful. It's so tangible.I actually have a list -- I have a talk about this on the blog post as well... Just a suggestion of things you can do. It's not just blogging. You can speak, you can draw comics, cheatsheets are really helpful... I think Amy Hoy did a Ruby on Rails cheatsheet that basically everyone has printed out and stapled to their wall, or something... And if you can do a nice cheatsheet, I think that's also a way for you to internalize those things that you're trying to learn anyway, and it just so happens to benefit others.So I really like this idea that whatever content you're doing, it's learning exhaust, it's a side effect of you learning, and you just happen to put it out there; you understand what formats work for you, because you have abnormal talents. Especially if you can draw, do that. People love developers who can draw. And then you just put it out there, and you win anyway just by doing it. You don't need an audience. You get one if you do this long enough, but you don't need an audience right away. And you win whether or not people participate with you. It's a single-player game that can become a multiplayer game.Specifically for Redux - you know, go through source code, or go through the docs, build a sample app, do like a simple little YouTube video on it... Depending on the maturity, you may want to try to speak at a meetup, or whatever... You don't have to make everything a big deal. I'm trying to remove the perception from people that everything has to be this big step, like it has to be top of Hacker News, or something. No. It could just be helpful for one person. I often write blog posts with one persona in mind. I mean, I don't name that person, but if you focus on that target persona, actually often it does better than when you try to make some giant thesis that shakes the world...Adam Stacoviak: [20:22] Yeah. Too often we don't move because we feel like the weight of the move is just too much. It's like "How many people have to read this for me to make this a success for me?" You mentioned it's a learning exhaust... And this exhaust that you've put out before - has it been helpful really to you? Is that exhaust process very helpful to you? Is that ingrained in the learnings that you've just gone through, just sort of like synthesize "Okay, I learned. Here's actually what I learned"?Shawn Wang: Yeah. This is actually an opportunity to tie into that second brain concept which maybe you wanted to talk a little bit about. Everything that you write down becomes your second brain. At this point I can search Google for anything I've ever written on something, and actually come up on my own notes, on whatever I had. So I'm not relying on my memory for that. Your human brain, your first brain is not very good at storage, and it's not very good at search; so why not outsource that to computers? And the only way to do that is you have to serialize your knowledge down into some machine-readable format that's part of research. I do it in a number of places; right now I do it across GitHub, and my blog, and a little bit of my Discord. Any place where you find you can store knowledge, I think that's a really good second brain.And for Jerod, I'll give you an example I actually was gonna bring up, which is when I was trying to learn React and TypeScript - like, this goes all the way back to my first developer job. I was asked to do TypeScript, even though I'd never done it before. And honestly, my team lead was just like "You know TypeScript, right? You're a professional React dev, you have to know TypeScript." And I actually said no, and I started learning on day one.And what I did was I created the React to TypeScript cheatsheet, which literally was just copy-pasteable code of everything that I found useful and I wish I knew when I was starting out. And I've just built that over time. That thing's been live for three years now, it's got like 20,000 stars. I've taught thousands of developers from Uber, from Microsoft, React and TypeScript. And they've taught me - every time they send in a question or a PR... I think it's a very fundamental way of interacting, which is learning in public, but specifically this one - it's open source knowledge; bringing up our open source not just to code, but to everything else. I think that's a fundamental feedback loop that I've really enjoyed as well.Break: [22:31]Jerod Santo: One of the things I appreciate about you, swyx, is how you are always thinking, always writing down your thoughts... You've been watching and participating in this industry now for a while, and you've had some pretty (I think) insightful writings lately. The first one I wanna talk about is this API Economy post. The Light and Dark Side of the API Economy. You say "Developers severely underestimate the importance of this to their own career." So I figure if that's the case, we should hear more about it, right?Shawn Wang: [laughs] Happy to talk about it. So what is the API economy? The API economy is developers reshaping the world in their image. Very bold statement, but kind of true, in the sense that there is now an API for everything - API for cards, API for bank accounts, API for text, API for authentication, API for shipping physical goods... There's all sorts of APIs. And what that enables you to do as a developer is you can call an API - as long as you know REST or GraphQL these days, you know how to invoke these things and make these things function according to the rest of your program. You can just fit those things right in. They're a very powerful thing to have, because now the cost of developing one of these services just goes down dramatically, because there's another company doing that as a service for you.I wrote about it mainly because at Netlify we were pitching serverless, we were pitching static hosting, and we were pitching APIs. That's the A in JAMstack. But when I google "API economy", all the search results were terrible. Just horrible SEO, bland, meaningless stuff that did not speak to developers; it was just speaking to people who like tech buzzwords. So I wrote my own version. The people who coined it at Andreessen Horowitz, by the way, still to this day do not have a blog post on the API economy. They just have one podcast recording which nobody's gonna listen. So I just wrote my version.Jerod Santo: You're saying people don't listen to podcasts, or what?Shawn Wang: [laughs] When people are looking up a term, they are like "What is this thing?", and you give them a podcast, they're not gonna sit down and listen for 46 minutes on a topic. They just want like "Give me it, in one paragraph. Give me a visual, and I'm gonna move on with my day." So yeah, whenever I see an opportunity like that, I try to write it up. And that's the light side; a lot of people talk about the light side. But because it's a personal blog, I'm empowered to also talk about the dark side, which is that as much as it enables developers, it actually is a little bit diminishing the status of human expertise and labor and talent. So we can talk a little bit about that, but I'm just gonna give you time to respond.Jerod Santo: [28:05] Hm. I'm over here thinking now that you're not at Netlify, I'm curious - this is tangential, but what's your take on JAMstack now? I know you were a professional salesman there for a while, but... It seems like JAMstack - we've covered it for years, it's a marketing term, it's something we've already been doing, but maybe taking it to the next level... There's lots of players now - Netlify, Vercel etc. And yet, I don't see much out there in the real world beyond the people doing demos, "Here's how to build a blog, here's how to do this, here's my personal website", and I'm just curious... I'm not like down on JAMstack, but I just don't see it manifesting in the ways that people have been claiming it's going to... And maybe we're just waiting for the technology to catch up. I'd just love to hear what you think about it now.Shawn Wang: Yeah. I think that you're maybe not involved in that world, so you don't see this, but real companies are moving on to JAMstack. The phrasing that I like is that -- JAMstack has gone mainstream, and it's not even worth talking about these days, because it's just granted that that's an option for you... So PayPal.me is on the JAMstack, there's large e-commerce sites... Basically, anything that decouples your backend from your frontend, and your frontend is statically-hosted - that is JAMstack.I actually am blanking on the name, but if you go check out the recent JAMstack Conf, they have a bunch of examples of people who've not only moved to JAMstack, but obviously moved to Netlify, where they're trying to promote themselves.Jerod Santo: Sure, yeah.Shawn Wang: So yes, it's true that I'm no longer a professional spokesperson, but it's not true that JAMstack is no longer being applied in the enterprise, because it is getting adoption; it's moved on that boring phase where people don't talk about it.One thing I'll say - a thesis that I've been pursuing is that JAMstack is in its endgame. And what do I mean by that? There's a spectrum between the previous paradigm that JAMstack was pushing back on, which is the all-WordPress/server-render-everything paradigm, and then JAMstack is prerender-everything. And now people are filling in--Jerod Santo: In the middle.Shawn Wang: ...I'm gonna put my hands in the Zoom screen right now. People are filling that gap between fully dynamic and fully static. So that's what you see with Next.js and Gatsby moving into serverless rendering, partial rendering or incremental rendering... And there's a full spectrum of ways in which you can optimize your rendering for the trade-offs of updating your content, versus getting your data/content delivered as quickly as possible. There's always some amount of precompilation that you need to do, and there's always some amount of dynamicism that you have to do, that cannot be precompiled. So now there is a full spectrum between those.Why I say it's the end game is because that's it, there's nothing else to explore. It's full-dynamic, full-static, choose some mix in the middle, that's it. It's boring.Jerod Santo: Hasn't that always been the case though? Hasn't there always been sites that server-side render some stuff, and pre-render other things? You know, we cache, we pre-render, some people crawl their own websites once, and... I don't know it seems like maybe just a lot of excitement around a lot of things that we've been doing for many years.Shawn Wang: [laughs] So first of all, those are being remade in the React ecosystem of things, which a lot of us lost when a lot of the web development industry moved to React... So that's an important thing to get back.I mean, I agree, that's something that we've always had, pre-rendering, and services like that, caching at the CDN layer - we've always had that. There's some differences... So if you understand Netlify and why they're trying to push distributed persistent rendering (DVR), it's because caching is a hard problem, and people always end up turning off the cache. Because the first time you run into a bug, you're gonna turn off the cache. And the cache is gonna stay off.So the way that Netlify is trying to fix it is that we put the cache in Git, essentially. Git is the source of truth, instead of some other source of truth distributed somewhere between your CDN and your database and somewhere else. No, everything's in Git. I'm not sure if I've represented that well, to be honest... [laughter]Adam Stacoviak: Well, good thing you don't work for Netlify anymore. We're not holding you to the Netlify standard.Shawn Wang: [31:58] Exactly. All I can say is that to me now it's a good thing in the sense that it's boring. It's the good kind of boring, in the sense of like "Okay, there's a spectrum. There's all these techniques. Yes, there were previous techniques, but now these are the new hotness. Pick your choice." I can get into a technical discussion of why this technique, the first one, the others... But also, is it that interesting unless you're evaluating for your site? Probably not...Jerod Santo: Well, it does play into this API economy though, right? Because when you're full JAMstack, then the A is your most important thing, and when the A is owned by a bunch of companies that aren't yours - like, there's a little bit of dark side there, right? All of a sudden, now I'm not necessarily the proprietor of my own website, to a certain degree, because I have these contracts. I may or may not get cut off... There's a lot of concerns when everybody else is a dependency to your website.Shawn Wang: Yeah. So I don't consider that a dark side at all.Jerod Santo: No, I'm saying to me that seems like a dark side.Shawn Wang: Yeah, sure. This is the risk of lock-in; you're handing over your faith and your uptime to other people. So you have to trade that off, versus "Can you build this yourself? And are you capable of doing something like this, and are you capable of maintaining it?" And that is a very high upfront cost, versus the variable cost of just hiring one of these people to do it for you as a service.So what I would say is that the API economy is a net addition, because you as a startup - the startup cost is very little, and if you get big enough where it makes sense for you to build in-house - go ahead. But this is a net new addition for you to turn fixed costs into variable costs, and start with a small amount of investment. But I can hire -- like, Algolia was started by three Ph.D's in search, and I can hire them for cents to do search on my crummy little website. I will absolutely do that every single day, until I get to a big enough point where I cannot depend on them anymore, and I have to build my own search. Fine, I'll do that. But until then, I can just rely on them. That's a new addition there.Jerod Santo: One hundred percent. So what then do you think is the darker side? You mentioned it, but put a finer point on it.Shawn Wang: Yeah. The dark side is that there are people -- like, when I call an Uber ride, Uber is an API for teleportation, essentially. I'm here, I wanna go there. I press a button, the car shows up. I get in the car, get off, I'm there. What this papers over is that the API is calling real actual humans, who are being commoditized. I don't care who drives the car, I really don't. I mean, they may have some ratings, but I kind of don't care.Jerod Santo: That was the case with taxis though, wasn't it?Shawn Wang: That was the case with taxis, for sure. But there's a lot of people living below the API, who are economically constrained, and people who live above the API, developers, who have all the upside, essentially... Because the developers are unique, the labor is commoditized. My DoorDash pickers, my Instacart deliverers - all these are subsumed under the API economy. They're commodities forever, they know it, and there's no way out for them, unless they become developers themselves. There's a class system developing below and above the API. And the moment we can replace these people under the API with robots, you better believe we'll do that, because robots are way cheaper, and they complain less, they can work 24 hours, all this stuff.Jerod Santo: Yeah.Shawn Wang: So that's the dark side, which is, yeah, as a developer now - fantastic. I can control most parts of the economy with just a single API call. As a startup founder, I can develop an API for literally anything, and people will buy it. The downside is human talent is being commoditized, and I don't know how to feel about that. I think people are not talking enough about it, and I just wanna flag it to people.Jerod Santo: Yeah.Adam Stacoviak: So dark side could mean a couple things. One, it could mean literally bad; dark as synonymous with bad. Or dark as in shady. And we're not sure, it's obscured in terms of what's happening. And so let's use an Instacarter or a Dasher - to use their terminology. I happen to be a DoorDash user, so I know they're called Dashers; that's the only reason I know that. It's not a downplay, it's just simply what the terminology is...[35:59] You could say it's below the API, but I wonder, if you've spoken with these people, or people that live in what you call below the API, because I would imagine they're not doing that because they're being forced. Like, it's an opportunity for them.Shawn Wang: Oh, yeah.Adam Stacoviak: And I remember when I was younger and I had less opportunity because I had less "above the API" (so to speak) talent... And I do agree there's a class here, but I wonder if it's truly bad; that dark is truly bad, or if it's just simply obscure in terms of how it's gonna play out.Shawn Wang: This is about upside. They will never get to that six figures income with this thing.Adam Stacoviak: Not that job.Jerod Santo: No.Shawn Wang: It's really about the class system, which is the dark side. You don't want to have society splinter into like a serving class and whatever the non-serving class is. It's also about the upside - like, I don't see a way for these people to break out unless, they really just take a hard stop and just go to a completely different career track.Jerod Santo: Right.Adam Stacoviak: Here's where I have a hard time with that... I'm not pushing back on that you're wrong, I'm just wondering more deeply...Shawn Wang: Sure.Adam Stacoviak: I imagine at one point in my life I was a DoorDasher.Shawn Wang: Yeah.Adam Stacoviak: I washed dishes, I did definitely unique jobs at a young age before I had skill. And so the path is skill, and as long as we have a path to skill, which you've show-cased through FreeCodeCamp in your path, then I think that dark side is just simply shady, and not bad.Shawn Wang: Okay.Adam Stacoviak: And I'm just trying to understand it, because I was truly a DoorDasher before DoorDash was available. I washed dishes, delivered papers, I had servant-level things; I was literally a server at a restaurant before... And I loved doing that kind of work, but my talents have allowed me to go above that specific job, and maybe even the pay that came with that job. I've served in the military before, got paid terrible dollars, but I loved the United States military; it's great. And I love everybody who's served in our military. But the point is, I think the path is skill, and as long as we have a pathway to skill, and jobs that can house that skill and leverage that skill to create new value for the world, I just wonder if it's just necessary for society to have, I suppose, above and below API things.Jerod Santo: Until we have all the robots. Then there is nobody underneath. At that point it's all robots under the API.Shawn Wang: Yes, and that is true in a lot of senses, actually. Like, farming is mostly robots these days. You do have individual farmers, but they're much less than they used to be. I don't know what to say about that, shady or dark... I think it's just -- there's no career track. You have to go break out of that system yourself. Thank God there's a way to do it. But back in the day, you used to be able to go from the mailroom to the boardroom.Adam Stacoviak: I see.Shawn Wang: I see these stories of people who used to be janitors at schools become the principal. Companies used to invest in all their people and bring them up. But now we're just hiring your time, and then if you wanna break out of that system - good luck, you're on your own. I think that that lack of upward mobility is a problem, and you're not gonna see it today. It's a slow-moving train wreck. But it's gonna happen where you have society split in two, and bad things happen because of it.Adam Stacoviak: I mean, I could agree with that part there, that there definitely is no lateral movement from Dasher to CEO of DoorDash.Shawn Wang: It's just not gonna happen.Adam Stacoviak: Or VP of engineering at DoorDash. I think because there is no path, the path would be step outside of that system, because that system doesn't have a path. I could agree with that, for sure.Jerod Santo: Yeah. I mean, the good news is that we are creating -- there are paths. This is not like a path from X to Y through that system, but there are other alternate paths that we are creating and investing in, and as well as the API gets pushed further and further down in terms of reachability - we now have more and more access to those things. It's easier now, today, than it ever has been, because of what we were talking about, to be the startup founder, right? To be the person who starts at CEO because the company has one person in it, and they're the CEO. And to succeed in that case, and become the next DoorDash.Adam Stacoviak: True.Jerod Santo: So there are opportunities to get out, it's just not a clear line... And yeah, it takes perhaps some mentorship, perhaps ingenuity... A lot of the things that it takes to succeed anyway, so...Shawn Wang: [40:05] I'll give a closing note for developers who are listening, because you're already a developer... So the analogy is if you're above the API, you tell machines what to do; if you're below the API, machines tell you what to do. So here's the developer analogy, which is there's another division in society, which is the kanban board. If you're below the kanban board, the kanban board tells you what to do. If you're above it, you tell developers what to do. [laughs]Jerod Santo: There you go.Shawn Wang: So how do you break out of that class division? I'll leave it out to you, but just keep in mind, there's always layers.Jerod Santo: I love that.Adam Stacoviak: I love the discussion around it, but I'm also thankful you approached the subject by a way of a blog post, because I do believe that this is interesting to talk about, and people should talk about it, for sure. Because it provides introspection into, I guess, potentially something you don't really think about, like "Do I live below or above the APi?" I've never thought about that in that way until this very moment, talking to you, so... I love that.Break: [40:58]Jerod Santo: So another awesome post you have written lately is about Cloudflare and AWS. Go - not the language, the game Go... I know very little about the language, and I know even less about the game... And Chess... How Cloudflare is approaching things, versus how AWS and Google and others are... Given us the TL;DR of that post, and then we'll discuss.Shawn Wang: Okay. The TL;DR of that post is that Cloudflare is trying to become the fourth major cloud after AWS, Azure and GCP. The way they're doing it is fundamentally different than the other three, and the more I've studied them - I basically observed Cloudflare for the entire time since I joined Netlify. Netlify kind of is a competitor to Cloudflare, and it's always this uncomfortable debate between "Should you put Cloudflare in front of Netlify? Netlify itself is a CDN. Why would you put a CDN in front of another CDN?" Oh, because Netlify charges for bandwidth, and Cloudflare does not. [laughter]Jerod Santo: It's as simple as that.Shawn Wang: And then there's DDOS protection, all that stuff; very complicated. Go look up the Netlify blog post on why you should not put Cloudflare in front of Netlify, and decide for yourself. But Netlify now taking on AWS S3 - S3 is like a crown jewel of AWS. This is the eighth wonder of the world. It provides eleven nines of durability. Nothing less than the sun exploding will take this thing down... [laughs]Jerod Santo: Right? You know what's funny - I don't even consider us at Changelog AWS customers; I don't even think of us that way. But of course, we use S3, because that's what you do. So yeah, we're very much AWS customers, even though I barely even think about it, because S3 is just like this thing that of course you're gonna use.Shawn Wang: There's been a recent history of people putting out S3-compatible APIs, just because it's so dominant that it becomes the de-facto standard. Backblaze did it recently. But Cloudflare putting out R2 and explicitly saying "You can slurp up the S3 data, and by the way, here's all the cost-benefit of AWS egress charges that's what Matthew Prince wrote about in his blog post is all totally true, attacks a part of AWS that it cannot compromise on and just comes at the top three clouds from a different way, that they cannot respond to.[44:17] So I always like these analogies of how people play destruction games. I'm a student of destruction, and I study Ben Thompson and Clay Christensen, and that entire world, very quickly... So I thought this was a different model of destruction, where you're essentially embracing rather than trying to compete head-on. And wrapping around it is essentially what Go does versus chess, and I like -- you know, there's all these comparisons, like "You're playing 2D chess, I'm playing 3D chess. You're playing chess, I'm playing Go." So Cloudflare is playing Go by surrounding the S3 service and saying "Here is a strict superset. You're already a consumer of S3. Put us on, and magically your costs get lower. Nothing else about it changes, including your data still lives in AWS if you ever decide to leave us." Or if you want to move to Cloudflare, you've just gotta do the final step of cutting off S3.That is a genius, brilliant move that I think people don't really appreciate, and it's something that I study a lot, because I work at companies that try to become the next big cloud. I worked at Netlify, and a lot of people are asking, "Can you build a large public company on top of another cloud? Our second-layer cloud is viable." I think Vercel and Netlify are proving that partially it is. They're both highly valued. I almost leaked some info there... When does this go out? [laughs]Jerod Santo: Next week, probably...Shawn Wang: Okay, alright... So they're both highly valued, and - like, can they be hundred-billion-dollar companies? I don't know. We don't know the end state of cloud, but I think people are trying to compete there, and every startup -- I nearly joined Render.com as well. Every startup that's trying to pitch a second-layer cloud thesis is always working under the shadows of AWS. And this is the first real thesis that I've seen, that like "Oh, okay, you not only can credibly wrap around and benefit, you can actually come into your own as a fourth major cloud." So I'm gonna stop there... There's so many thoughts I have about Cloudflare.Jerod Santo: Yeah. So do you see that R2 then -- I think it's a brilliant move, as you described it... As I read your post, I started to appreciate, I think, the move, more than I did when I first read about it and I was like "Oh, they're just undercutting." But it seems they are doing more than just that. But do you think that this R2 then is a bit of a loss leader in order to just take a whole bunch of AWS customers, or do you think there's actually an economic -- is it economically viable as a standalone service, or do you think Cloudflare is using it to gain customers? What are your thoughts in their strategy of Why?Shawn Wang: This is the top question on Twitter and on Hacker News when they launch. They are going to make money on this thing, and the reason is because of all the peering agreements that they've established over the past five years. As part of the normal business strategy of Cloudflare, they have peering agreements with all of the ISPs; bandwidth is free for them. So... For them in a lot of cases. Again, I have to caveat all this constantly, because I should note to people that I am not a cloud or networking expert. I'm just learning in public, just like the rest of you, and here's what I have so far. So please, correct me if I'm wrong, and I'll learn from it.But yeah, I mean - straight on, it's not a loss leader. They plan to make money on it. And the reason they can is because they have worked so hard to make their cost structure completely different in AWS, and they've been a friend to all the other ISPs, rather than AWS consuming everything in its own world. Now you're starting to see the benefits of that strategy play out. And by the way, this is just storage, but also they have data store, also they have service compute, all following the same model.Jerod Santo: So what do you think is a more likely path over the next two years? Cloudflare --Adam Stacoviak: Prediction time!Jerod Santo: ...Cloudflare steals just massive swathes of AWS customers, or AWS slashes prices to compete?Shawn Wang: So I try not to do the prediction business, because I got out of that from the finance days... All I'm doing is nowcasting. I observe what I'm seeing now and I try to put out the clearest vision of it, so the others can follow.I think that it makes sense for them to be replicating the primitives of every other cloud service. So in 2017 they did service compute with Cloudflare Workers. In 2018 they did eventually consistent data store. In 2019 - website hosting; that's the Netlify competitor. In 2020 they did strongly-consistent data store, with Durable Objects. In 2021 object storage. What's next on that list? Go on to your AWS console and go shopping. And instead of seven different ways to do async messaging in AWS, probably they're gonna do one way in Cloudflare. [laughs]Adam Stacoviak: [48:34] A unified API, or something like that...Jerod Santo: Yeah, they'll just look at AWS' offerings, the ones they like the best, and do it that way, right?Shawn Wang: Yeah, just pick it up.Adam Stacoviak: Maybe the way to get a prediction out of you, swyx, might be rather than directly predict, maybe describe how you win Go.Shawn Wang: How you win Go...Adam Stacoviak: Yeah, what's the point of Go? How do you win Go? Because that might predict the hidden prediction, so to speak.Shawn Wang: Okay. For listeners who don't know Go, let me draw out the analogy as well. So most people are familiar with chess; individual chess pieces have different values and different points, and they must all support each other. Whenever you play chess, you need the Knight to support the pawns, something like that... Whereas in Go, you place your pieces everywhere, and they're all indistinguishable from each other. And it's more about claiming territory; at the end of the day, that's how you win Go, you claim the most territory compared to the others... And it's never a winner-take-all situation. Most likely, it's like a 60/40. You won 60% of the territory and your competitor has 40% of the territory. That's more likely a mapping of how cloud is gonna play out than chess, where winner-takes-all when you take the King. There's no King in the cloud, but--Jerod Santo: Are you sure...?Shawn Wang: ...there's a lot likely of territory claiming, and Cloudflare is really positioned very well for that. It's just part of the final realization that I had at the end of the blog post. And partially, how you take individual pieces of territory is that you surround all the pieces of the enemy and you place the final piece and you fill up all the gaps, such that the enemy is completely cut off from everything else and is surrounded. And that's what R2 does to S3 - it surrounds S3, and it's up to you to place that final piece. They call it, Atari, by the way, which is the name of the old gaming company, Atari. They have placed AWS S3 in Atari, and it's up to the customers to say "I'm gonna place that final piece. I'm gonna pay the cost of transferring all my data out of S3 and cut S3 off", and they cut off all the remaining liberties. So how do you win in Go? You claim the most amount of territory, and you surround the pieces of the enemy.Adam Stacoviak: Which, if you thought maybe that was oxygen, the territory, you might suck the oxygen away from them, so they can't live anymore, so to speak... And maybe you don't take it by killing it. Maybe you sort of suffocate it almost, if their space becomes small enough; if you take enough territory and it begins to shrink enough, it's kind of like checkmate, but not.Shawn Wang: Yeah. There's also a concept of sente in Go, which is that you make a move that the opponent has to respond to, which is kind of like a check, or checkmate -- actually, not; just the check, in chess. And right now, AWS doesn't feel the need to respond. Cloudflare is not big enough. Like, these are names to us, but let's just put things in numbers. Cloudflare's market cap is 36 billion, AWS' market cap is 1.6 trillion; this is Amazon's total market cap. Obviously, AWS is a subset of that.Jerod Santo: Sure.Shawn Wang: So your competitor is 40 times larger than you. Obviously, Cloudflare is incentivized to make a lot of noise and make themselves seem bigger than it is. But until AWS has to respond, this is not real.Adam Stacoviak: Nice.Jerod Santo: So as a developer, as a customer of potentially one or both of these... Let's say you have a whole bunch of stuff on S3 - I'm asking you personally now, swyx - and R2 becomes available... Is that a no-brainer for you, or is there any reason not to use that?Shawn Wang: You're just adding another vendor in your dependency tree. I think for anyone running silicon bandwidth, it is a no-brainer.Jerod Santo: Yeah. So over the course of n months, where n equals when they launch plus a certain number - I mean, I think this is gonna end up eventually on Amazon's radar, to where it's gonna start affecting some bottom lines that important people are gonna notice. So I just wonder - I mean, how much territory can Cloudflare grab before there's a counter-move? It's gonna be interesting to watch.Shawn Wang: [52:12] So Ben from Vantage actually did a cost analysis... Vantage is a startup that is made up former AWS Console people; they're trying to build a better developer experience on top of AWS. They actually did a cost analysis on the R2 move, and they said that there's probably a hundred billion dollars' worth of revenue at stake for Amazon. So if they start to have a significant dent in that, let's say like 40%, AWS will probably have to respond. But until then, there's nothing to worry about. That's literally how it is in Amazon; you have to see the numbers hit before you respond.Jerod Santo: Yeah. It hasn't even been a blip on the radar at this point, the key metrics to the people who are important enough to care are watching. You said you started watching all of these CDNs. Of course, you worked at Netlify... You take an interest in backends. There's something you mentioned in the break about frontenders versus backend, and where you've kind of been directing your career, why you're watching Cloudflare so closely, what you're up to now with your work... Do you wanna go there?Shawn Wang: Let's go there. So if you track my career, I started out as a frontend developer. I was developing design systems, I was working with Storybook, and React, and all that... Then at Netlify I was doing more serverless and CLI stuff. At AWS more storage and database and AppSync and GraphQL stuff... And now at Temporal I'm working on a workflow engine, pure backend. I just went to KubeCon two weeks ago...Jerod Santo: Nice!Shawn Wang: What is a frontend developer doing at KubeCon...?Adam Stacoviak: New territory.Shawn Wang: It's a frontend developer who realizes that there's a career ceiling for frontend developers. And it's not a polite conversation, and obviously there are exceptions to frontend developers who are VPs of engineering, frontend developers who are startup founders... And actually, by the way, there's a lot of VC funding coming from frontend developers, which is fantastic for all my friends. They're all getting funded, left, right and center. I feel left out. But there is a Career ceiling, in a sense that survey a hundred VPs of engineering, how many of them have backend backgrounds, and how many of them have frontend backgrounds? And given that choice, what's more likely for you and your long-term career progression? Do you want to specialize in frontend or do you want to specialize in backend? Different people have different interests, and I think that you can be successful in whatever discipline you pick. But for me, I've been moving towards the backend for that reason.Adam Stacoviak: Describe ceiling. What exactly do you mean when you say "ceiling"?Shawn Wang: Career ceiling. What's your terminal title.Jerod Santo: Like your highest role, or whatever. Highest salary, highest role, highest title...Adam Stacoviak: Gotcha.Shawn Wang: Like, straight up, how many VPs of engineering and CTOs have backend backgrounds versus frontend.Jerod Santo: Yeah. I mean, just anecdotally, I would agree with you that it's probably 8 or 9 out of 10 CTOs have -- is that what you said, 8 or 9?Shawn Wang: Yeah, yeah. So there's obviously an economic reasoning for this; it's because there's a bias in the industry that frontend is not real development, and backend is. And that has to be combated. But also, there's an economic reasoning, and I always go back to the economics part, because of my finance background... Which is that your value to the company, your value to the industry really depends on how many machines run through you. You as an individual unit of labor, how much money do you control, and how much machine process, or compute, or storage, or whatever runs through you. And just straight-up frontend doesn't take as much. [laughs] Yes, frontend is hard, yes, design is hard, yes, UX is crucially important, especially for consumer-facing products... But at the end of the day, your compute is being run on other people's machines, and people don't value that as much as the compute that I pay for, that I need to scale, and therefore I need an experienced leader to run that, and therefore that is the leader of my entire eng.Jerod Santo: I wonder if that changes at all for very product-focused orgs, where I think a lot of frontenders, the moves are into product design and architecture, and away from - not software architecture, but product design. And it seems like maybe if you compare - not VP of engineering, but VP of product, you'd see a lot of former frontenders.Shawn Wang: [56:03] Yeah.Jerod Santo: Maybe that's their path. Do you think that's --Shawn Wang: Totally. But you're no longer a frontend dev. You suddenly have to do mocks...Jerod Santo: Yeah, but when you're VP of engineering you're not a backend dev either.Shawn Wang: Yeah.Jerod Santo: So you're kind of both ascending to that degreeShawn Wang: Backends devs will never report to you, let's put it that way.Jerod Santo: Okay. Fair.Shawn Wang: [laughter] But somehow, frontend devs have to report to backend devs, for some reason; just because they're superior, or something. I don't know, it's just like an unspoken thing... It's a very impolite conversation, but hey, it's a reality, man.Jerod Santo: So do you see this personally, or do you see this by looking around?Shawn Wang: Yeah.Jerod Santo: Yeah. You felt like you had reached a ceiling.Shawn Wang: Well, again, this is very impolite; there's a ton of ways to succeed, and there are definitely exceptions. Emily Nakashima at Honeycomb - former frontend person, now VP of engineering. I don't know, I could have done that. I have interest in backend and I'm pursuing that. So I will say that - this is a soft ceiling, it's a permeable ceiling. It's not a hard ceiling.Jerod Santo: Sure.Shawn Wang: But there's a ceiling though, because you can see the numbers.Adam Stacoviak: What is it in particular the VP of engineering does that would make a frontender less likely to have that role? What specifically? I mean, engineering is one of the things, right? Commanding the software... Which is not necessarily frontend.Jerod Santo: Well, frontend is also an engineering discipline.Adam Stacoviak: I guess it kind of depends on the company, too. Honeycomb is probably a different example.Shawn Wang: I haven't been a VP of engineering, so I only have some theories. I suggest you just ask the next VP of engineering that you talk to, or CTO.Adam Stacoviak: Yeah.Jerod Santo: Yeah. That'd be a good one to start asking people.Adam Stacoviak: What do you do here? What is it you do here?Shawn Wang: What is it you do here?Jerod Santo: Exactly.Shawn Wang: [laughs]Adam Stacoviak: Well, I just wondered if there was a specific skillset that happens at that VP of engineering level that leads more towards a backender being more likely than a frontender to get hired into the role.Shawn Wang: I think there's some traditional baggage. Power structures persist for very long times... And for a long time UX and frontend was just not valued. And we're like maybe five years into the shift into that. It's just gonna take a long time.Jerod Santo: I agree with that. So tell us what you're up to now. You said you're doing workflows... I saw a quick lightning talk; you were talking about "React for the backend." So you're very much taking your frontend stuff into the backend here, with React for the backend. Tell us about that.Shawn Wang: Let's go for it. So at Netlify and at AWS I was essentially a developer advocate for serverless. So this is very cool - it does pay-as-you-go compute, and you can do a lot of cool stuff with it. But something that was always at the back of my mind bothering me, that serverless does not do well, is long-running jobs. It just does not do well. You have to chain together a bunch of stuff, and it's very brittle; you cannot test it... It's way more expensive than you would do in a normal environment.Jerod Santo: Yeah.Shawn Wang: And it made me realize that in this move to take apart everything and make everything as a service, we have gained scalability, but we've lost basically everything else. And what I was trying to do was "How do we reconstruct the experience of the monolith? What are the jobs to be done?" When you break it down, what does a computer do for you, and what is not adequately addressed by the ecosystem?I went through the exercise... I wrote a blog post called "Reconstructing the monolith, and I actually listed it out." So what are the jobs of cloud for a computer? You want static file serving, you want functions, you want gateway, you want socket management, job runners, queue, scheduler, cold storage, hot storage. There's meta jobs like error logging, usage logging, dashboarding, and then edge computing is like a unique to cloud thing. But everything else, you can kind of break it up and you can locate it on one machine, or you can locate it on multiple machines, some of them owned by you, some of them not owned by you.The thing that serverless -- that had a whole in the ecosystem was job running. Not good. Basically, as an AWS developer right now, the answer is you set a CloudWatch schedule function, and you pull an endpoint, and that should read some states from a database, and check through where you are, and compute until the 15-minute timeout for Lambda, and then save it back in, and then wait for the next pull, and start back up again. Super-brittle, and just a terrible experience; you would never want to go this way.[01:00:08.13] The AWS current response to that is AWS Step Functions, which is a JSON graph of what happens after the other, and this central orchestrator controls all of that. I think we could do better, and that's eventually what got me to temporal. So essentially, this blog post that I wrote - people found me through that, and hired both our head of product and myself from this single blog post. So it's probably the highest ROI blog post I've ever written.Jerod Santo: Wow. That's spectacular.Shawn Wang: It's just the VC that invested in Temporal. So what Temporal does is it helps you write long-running workflows in a doable fashion; every single state transition is persisted to a database, in idiomatic code. So idiomatic Java, idiomatic Go, idiomatic JavaScript, and PHP. This is different from other systems, because other systems force you to learn their language. For Amazon, you have to learn Amazon States Language. For Google Workflows - Google Workflows has a very long, very verbose JSON and YAML language as well.And these are all weird perversions of -- like, you wanna start simple; JSON is very simple, for doing boxes and arrows, and stuff like that... But you start ending up having to handwrite the AST of a general-purpose programming language, because you want variables, you want loops, you want branching, you want all that god stuff. And the best way to model asynchronous and dynamic business logic is with a general-purpose programming language, and that's our strong opinion there.So Temporal was created at Uber; it runs over 300 use cases at Uber, including driver onboarding, and marketing, and some of the trips stuff as well. It was open source, and adopted at Airbnb, and Stripe, and Netflix, and we have all those case studies on -- DoorDash as well, by the way, runs on the Uber version of Temporal.Jerod Santo: There you go, Adam.Shawn Wang: And yeah, they spun out to a company two years ago, and we're now trying to make it as an independent cloud company. And again, the

The Changelog
Connecting the dots in public

The Changelog

Play Episode Listen Later Nov 5, 2021 69:07 Transcription Available


Today we're joined by Shawn “swyx” Wang, also known as just “swyx” — and we're talking about his interesting path to becoming a software developer, what it means to “learn in public” and how he's been able to leverage that process to not only level up his skills and knowlege, but to also rapidly advance his career. We cover Swyx's recent writing on the light and dark side of the API economy — something he calls “living above or below the API,” his thoughts on Cloudflare eating the cloud by playing Go instead of Chess, and we also talk about the work he's doing at Temporal and how's taking his frontend skills to the backend.

Changelog Master Feed
Connecting the dots in public (The Changelog #467)

Changelog Master Feed

Play Episode Listen Later Nov 5, 2021 69:07 Transcription Available


Today we're joined by Shawn “swyx” Wang, also known as just “swyx” — and we're talking about his interesting path to becoming a software developer, what it means to “learn in public” and how he's been able to leverage that process to not only level up his skills and knowlege, but to also rapidly advance his career. We cover Swyx's recent writing on the light and dark side of the API economy — something he calls “living above or below the API,” his thoughts on Cloudflare eating the cloud by playing Go instead of Chess, and we also talk about the work he's doing at Temporal and how's taking his frontend skills to the backend.

The New Stack Podcast
What It Takes to Become a Senior Engineer

The New Stack Podcast

Play Episode Listen Later Oct 21, 2021 34:05


It takes more than just years of experience to become a senior software engineer — among the prerequisites are having a good marketing sense, interviewing skills and other personal qualities required to become one.In this The New Stack Makers podcast, guests Swizec Teller, a senior software engineer, Tia — a healthcare company— and author, and Shawn Wang, head of developer experience for microservices orchestration platform provider Temporal.io, describe the mindset and other attributes required to become a senior engineer.Darryl Taft, TNS news editor, hosted the podcast.

The Swyx Mixtape
[Weekend Drop] Developer Relations (with Sai Senthilkumar of Redpoint)

The Swyx Mixtape

Play Episode Listen Later Sep 26, 2021 49:50


I was interviewed by Sai of Redpoint based on these blogposts: https://www.swyx.io/community-builder/ https://www.swyx.io/measuring-devrel/ The session was covered by Tom Tunguz, whose blog I love (https://tomtunguz.com/shawn-wang-offi...) and the feedback was wonderful!Full video on YouTube https://www.youtube.com/watch?v=guK1XiLQbH8Timestamps [00:01:42] What is DevRel?  [00:04:59] Where should DevRel report?  [00:06:57] Getting Started with Early Stage DevRel  [00:12:28] How to Structure DevRel Efforts  [00:16:02] When to Hire First DevRel  [00:18:23] Community and DevRel  [00:25:41] How to Start a Community  [00:29:47] Technical Community Builders  [00:31:04] Social Media Managers  [00:33:14] North Star Metric  [00:39:20] Product DevRel  [00:40:37] Finding Great DevRels  [00:43:47] DevRel for Dev Platforms of non-DevTools companies  [00:46:38] DevRel Tooling  Transcript [00:00:00] Sai Senthilkumar: My name is Sai and I'm at Redpoint investing primarily in B2B software with a focus on developer oriented business. I'm very excited to be chatting with Shawn Wang today about the importance of developer relations for any company selling to developers. You know, we find that several developer companies we work with today are hiring for diverse leaders and oftentimes it's function gets overlooked early. Or maybe not built out soon enough. So today we'll talk a little bit more about how to structure and measure our world-class Debra organization for any startup and why it's so important for a company's overall health. So I'm wanting you to be joined today by Shawn, who is the head of developer experience at Temporal. Shawn, do you want to briefly introduce yourself?  [00:00:39] swyx: Yeah. Hi everyone. I am Shawn Swyx online as well. I guess my dev role ex experience starts at Netlify where I was the second DevRel hire. And we grew from about 30 ish people when I joined to about 250. And. I think something like 300,000 developers to 1.5 million. And then we, and then I left in 2020 to go to Amazon where he spent a year working at amplify and thinking about AWS level or branded Daryl. And we can talk about what it's like to work at. You know, a series B to C stage company. The rail versus a big company devil. And then I joined Temporal this year in in February to head up developer experience. And we're a series, a company focused on microservice orchestration, which is a bundle of words, but basically we're reinventing asynchronous programming. And if that doesn't hook your interest, I don't know what will, so I'm happy to talk more about that. [00:01:42] What is DevRel?  [00:01:42] Sai Senthilkumar: Awesome. So is that Shawn is the, is the guy to speak with, in terms of structuring and starting out in Beverly also Shawn, I guess starting with the basics here, you know, many people wrote in asking for clarity around the devil row. So, so in your, in your mind, what is Deborah and the various roles and responsible. [00:02:04] swyx: In what is dev route and the various rules and responsibilities. Okay. There a very big question. So dev REL I think is essentially for a lot of people is essentially rebranded marketing. Developers. Don't like to be marketed to every time you hire a professional marketer and you get them to talk at developers, their eyes glaze over and they're turned off by your marketing buzzwords and your emphasis benefits over features because you refuse to talk about how things work because marketers don't know how things work. Cause they're not technical. You hire developer relations before. Developers want to be spoken to by other developers. And they want to be explained on how to use things, why, and not to be handheld too much to do some hand hand-holding, but not to do too much handholding that you restrict their creativity. Because I think some of the best DevRel programs have often just said, we can't wait to see what you build, which is a very cliched term in Debra. It's actually, it's pretty true. If you talk to the early Twilio, derails, they just held hackathons and they're like weird a communications layer. What can you come up with? And they are often impressed in a lot of their new products direction comes from the, the stuff that developers want to take their product in. And so Val is very much of a bottom line. Developer first marketing efforts. And I personally segments the growing sub specialties that devel into three set, three segments, which is community content and products. The reason I add products in there, which is not a very common thing to, to emphasize with Daryl is because developer relations has. Background or backstory as developer evangelism, which is kind of the old Microsoft slash Google name for it, which is essentially you hire professional influencers to travel the world and give talks. And it's very us to the rest of the world. Like I'm pre. The good word, which is very nice because a good talk and a good useful demo or a good you know, explanation is, is actually a very important, but there's not much of a two-way street. So, it's very, it's very like us coming out to them. And I think now people understand that they, once they're devils. Their PR company in front of developers. And they talked to them so much that we can actually use that product feedback to feedback into the development of the actual product itself. That's the vision. That's the, that's what a lot of people say that Debra is a two way street developer. Evangelism is a one-way street in practice. It's more like 99% outbound anyway. And 1% inbound. The reason being that no one has time for your product feedback. Everyone has their own product roadmap. You're not proud of the PM org. You're not part of the engineering org. Who are you that I have to listen to you. So people are still figuring this out, but I think the content and community pieces REL are a bit more developed. [00:04:59] Where should DevRel report?  [00:04:59] Sai Senthilkumar: Totally. 100% agree. And when you mentioned this in the beginning, but I think it's important to flush out the difference between. Developer advocacy and Deborah and for marketing, I think oftentimes those, those two those two topics get confused with each other. So, so yeah, I, yeah, I think that is that's important for any startup that starting out. And this is a separate organization,  [00:05:21] swyx: Hopefully, well, so there's there that kind of leads us into a natural segue of where does deferral report to, but you can have that conversation. I'm not sure that it's a solved question yet. I think a lot of people are converging on the consensus that dev roles should report into product. And I think that's fine, but I'm also, I don't judge people where dev REL reports into marketing. I don't judge people went there for all reports into engineering or, you know, at Netlify we were a separate org. We were separate from products, separate from engineering, separate from marketing. And we reported up to the CEO. Okay. It matters basically as a founder or, you know, or based on company direction, how important your dead relatives, your liver function is how senior you are a different leader is and also how you measure them because at the, at the end of the day, even if your dev REL team reports into product, but the way you measure. Is entirely marketing metrics. Like how many hits did you get to a front page? Then they are our marketing team. It walks like marketing talks about marketing, their marketing, even though they technically, you put them in your org chart under the product team. So be very careful about just play playing at like making your devil or you know, part of product, but not actually, because that leads to some interesting tensions between. What it means to be a representative for your company and how that actually leads to tangible impact for your business. So yeah, I'll leave it at that.  [00:06:57] Getting Started with Early Stage DevRel  [00:06:57] Sai Senthilkumar: And it, even before you get getting into building, you know, Deborah, I guess like what, what are some tips that, you know, any early stage startup or founder that's in that develop that is selling to develop. What are some tips that they should know when getting started? Yeah, I guess what are some lessons learned from, from your time of  [00:07:13] swyx: peripheral? How early stages are we talking? Let's say series  [00:07:18] Sai Senthilkumar: a, you know, you've just raised some capital, you know, you're scaling to the series B, you're selling to developers, developers, easy. These are core bread and butter, you know, I guess what are some.  [00:07:27] swyx: I think some amount of focus and regular cadence is important. So, so at, at a point of series, a like you have some form of products like your, you have been around enough that you, that you raise your seed and you, you convince people, okay. Invest in serious. Say. That's probably where you should start hiring you know, a different team like we hired to, to I, I came on in February and then we hired two DevRels this year and I think that's where you start trying to figure out what the public story is. You want to tell, because you have some core base of early adopters, but you need them to not just you know, not just grow into like, the early majority, which I love to use this model of crossing the chasm. And I like to say that my personal specialty is helping developer tools cross the chasm, which is a very. Profitable a specialty, if you can actually do that repeatedly. But yeah, so you need to start basically like kind of start building machine of like curious what here's a collateral that we here's the typical story, like our, our one sentence pitch, our five minute pitch, our 10 minute pitch. So 20 minutes a patient on a one hour pitch and you need to kind of market. Among different sets of audiences and figuring out what kinds of audiences like how to qualify these audiences immediately so that you can go down, you know, between two to three different talk tracks that are usually relevant. Because the reason I say two to three talk tracks is because I'm not a strong believer that there is one marketing message to rule them all. Because a lot of developers who was companies are horizontal companies and it can be used in multiple different ways. And the things, the words, the. Influencers, the concepts that appeal to different audiences vary based on their own background. So you need to figure out like what, what the, what that fit is. And then I think for me, like, the most important thing to establish at this early stage is the developer journey. Like what, yes, you probably have as CSA stage, you probably have a working products. You're probably building more features that are going to take you to the next level. And your products is pretty dense already. And probably a lot of people barely even scratched the surface. That's what everyone says, right? Like it's a little bit depressing as a deputy founder to build a bunch of features. And then like people just use you for like the bare minimum. That's, that's just how it is. A lot of people don't have time for anything more than the, the core. So first of all, your core value proposition needs to be really good, but second of all, you need to guide them through the rest of your product to see how awesome it is so that it can grow and usage. So that I termed the developer journey. What should people. Land on your landing page. And then they're like, okay, like my friend said, this is cool. I'm going to come check it out. But I only have five minutes. What are you going to give them in those five minutes? Are you going to dump your entire feature set? Are you going to give them a hello world that is trivial? That is that they could do in a weekend? Like what is the, what's the wow moment that you're really trying to deliver? And what's the open question that you're trying to leave in their minds. They're not happy with the five minutes and they want more. So I think that's something I think about a lot. And I, I draw a lot of inspiration from game design where it's a progressive review of features. And you don't give them that much apart from like, do this and then do that. And then, and then go here and then go there. And you have a very strong sense of like what level one level, two level three, it looks like. And so that's the journey throughout through to products for me, it's about what a core, what the core concept is. You know, doing a hello world or like, you know, deploying the, playing a basic app and then building, and then branching out into maybe like performance or security or deployments monitoring that kind of stuff. But that's for us, you know, and your, your message could be a bit different. Finally, I'll, I'll talk a little bit about specialties within the team. So , we are very focused on front end developers. So the way that. We'll thought our team was that we had different framework specialists. So I was the react specialist because I'm a well-known speaker in reacts. And we have view, we had angular, we had you know, sort of static site generators specialists for us at Temporal. We have SDKs in different languages. So we have a Java slash PHB guy, and then we have a gold person and I'm going to be the TypeScript person. And we'll, we'll have Python, ruby.net, whatever. You might want to split it up by, by that because there's a certain audience that each of these developer relations people speak to that maybe they're already known in the conference circuit. Like it's super easy for me to get into any JavaScript conference. And I think that's, that's a, that's a home ground or unfair advantage that you should play when building out a different team. It's a bit hard to hire like super well known people. So sometimes you need to have an eye for trajectory rather than. You know why rather than you know, where they are today because they Def Netlify definitely took a bet on me very early on when I was getting started my speaking career and it paid off for them. But sometimes it doesn't work out and sometimes you have developers where we kind of are not that productive, but I think that's where a really good dev manager can come in. And up-level your individual contributors. [00:12:28] How to Structure DevRel Efforts  [00:12:28] swyx: So. Yeah,  [00:12:30] Sai Senthilkumar: no, that's a great point. And I think you know, we'll get, we'll get into this later when we, when we discussed how to actually measure the ethicacy of if you done an organization, but you, you have a great way of thinking about it. You know, I think in the seminar we said something to the extent of there are four pillars of developer relations. And I think that is that's a company like Hashi Corp, where they have. You know, there, there are much later stage that they're not a series a or series B startup. And I think they bring it into education, community events and audience, but you know, that's just not realistic for a series a or series B startup. That's just starting out. And I think you just have a great framework for this by just asking what kind of Deborah are you? I think you get, as you mentioned, you have those three emerging subspecialties and Beverly the community focused upon think focusing product focus. Just asking that very basic question in the beginning. I think we'll go along with.  [00:13:18] swyx: I think so, too. So, I mean, since we're on zoom, can I screen share the visual? Just so we so that, so the audience members can actually see what we're talking about. So, what size talking about is this four pillars thing from the previous session with Adam Hashi Corp. And I mean, you know, there are a series what F or E company. And I w yeah, I would love to have an education team, you know, especially former teachers. A really good every time I see a former, you know, someone who actually has done teaching in like a public school setting or something crossover into developer education, they're amazing at it. A formal events team. Amazing, fantastic. You know, but I, you know, I think these require fairly large, large budgets and have a very long PR cycle. Whereas I think maybe a lot of earlier stage companies are more focused on community advocacy and audience, right. So my, the way I break it down is a little bit simpler. I and for the record, like I, I had seen this before, but like I just kinda made up, meet this up based on the people that I know. So like I have. Certain archetypes in my end, when I look at these things and that's kind of how I view it, right? Like at the end of the day, all everyone wants this monthly active developers. That's not screw around. Like that is the source of truth for where Deborah is going to feeds into the, the rest of the value equation for a startup. There are certain specialties for people. Like some people are not that great at content. You know, they, they, they don't produce like, especially inspiring blog posts or talks or anything, but look, they're charismatic as hell. You know, they, they, they just know everyone who's anyone. So their community devils, you know, whereas some people are just like thought leaders. They're just, you know, they just get chunk out like amazing and visually appealing and just like fantastic stuff. But then maybe, you know, and, and so maybe it should be applied. And then others, like they can, they're, they're sort of more quiet, but they are very inside. The understand the core user insight that like people, you know, when they aggregated a lot of feedback from people, they can really sort of channel that into a very strong sense of product feedback. So I liked this and I liked that for me, the most impactful time as a dev REL on. Was on product launches. So really focusing on making a launch successful by being the first beta user internally within the company RV products and just being brutally honest, like if you cannot pay someone to be brutally honest at you, then you don't have an intellectually honest culture. And then, but then also like making the demos and making the the collateral and the, the storytelling that will make your launch successful and a really good launch. You can't really emphasize it enough to, to really help you. So I'll, I'll leave it there. I don't want to like spam people with, with too much, but I can, I can talk a bit about intern about each of these specialties and we'll get  [00:16:02] Sai Senthilkumar: him.   [00:16:02] When to Hire First DevRel  [00:16:02] Sai Senthilkumar: We'll get more into that when we, when we get into measuring measuring the ethicacy. You know, you mentioned you know, after series a maybe even after your seed, but it seems that there isn't a black and white answer in terms of, at what stage in a company's growth earnings, should it consider building a debt relative? But it, it, it seems that you know, it may where it may be different from company to company, but generally it's when you, you're starting, you have a product out in market and you're starting to get developers to start paying for it. [00:16:30] swyx: Was there a question in there? I mean, I agree,  [00:16:33] Sai Senthilkumar: I guess for Temporal, when did, when did they hire you? And then when did you know, when did they start thinking about it? Was it after this year?  [00:16:42] swyx: Yeah. Yeah, exactly. Right after series a, they they started reaching out to me and I, I said, no, at first. And then I said, yes. So that's the short history. Cause like I just joined Amazon and I was like, I was very, very ready to rest, invest for four years essentially. But like, you know, I think when you, when a rocket ship comes along and something that. Fundamentally feel at your core has been missing all this? Well, I think we should take the totally. [00:17:10] Sai Senthilkumar: And you were getting into this earlier before, but the question of who should that role report up there? It, I mean, ultimately it touches multiple facets of the business, product marketing, customer success. So I guess there isn't a black and white answer there as well.  [00:17:24] swyx: There's no black and white, but I think most people agree on products. They just don't. You know, it's one thing to like, all right, move some people around on your org chart and just say, okay, you're under products now. And then job done. Right. But then your metrics haven't changed. You. Okay. Ours are all marketing. So what does it mean to belong in products, but then you measure them like, That you just, you're just treating them like a marketing team. And they're a very expensive affiliate marketing team for a lot of people. That's how it is like at you know, at, you know, Phil in previous company, we counted our Google UTM tag attribution, right? Like, oh, I drove 10,000 visits to our blog this month. And you can pay for that way, cheaper, elsewhere. You can pay for inorganic surge. You can pay for like, you know, there has to be something else that your devils are giving you because otherwise they're just very, very expensive affiliations.  [00:18:23] Community and DevRel  [00:18:23] Sai Senthilkumar: Yeah, that's a great way of putting it. Awesome. You know, I, I want to make sure we hit on community, the importance of community here, a strong developer relations or John UI communities on the side. You also have a community at Temporal, I guess. Why, why invest in community, you know, in the first place you have a great post here, but I, you know, the audience would love  [00:18:41] swyx: to hear. So I guess someone will share it. The post. So I'll give, I'll give my community credentials for people who don't know. So I got started in the New York tech scene where I was very much, in-person just getting to know everybody at every single meetup. And then I moved online where I was the moderator for the R slash react to a subreddit. And we grew that subreddit from 20,000, 30,000 people to 220,000 people before I left. And then I started small society from scratch. And now that was about. A year and a half ago, and now we're at about 11,000 people. And then I wrote a book where I run a paid community for the book. That's about 2000 people. And then for Temporal, I run the community events, forums and stuff like that. And when I say I run, I mean, with a lot of help from actual other people who actually know way more than me. So, I've just like kind of the coordinator it's, it's pretty funny. Cause like at Temporal. One of the least technical people there. It's just very unusual position for me anyway. So that's my community backgrounds. And obviously I, I have a lot of friends in the community manager space Rosie, Sherry, or the orbit, love people comScore and yeah, Mac written from from, from all these, all these community funders. Like it's a very hot topic right now. Okay. Why community? Basically it's the. It's the, it's your users that are identifying with your company and a lot of community forums, a lot of company, community forums, like glorified support channels, right? Like, it's just, Hey you know, you don't like answering questions on stack overflow. All right. I'll come to your custom discourse deployments and ask questions to you, but it's basically stack overflow. And what you really want is your users talking to each other, what you really want is your users hiring each other where you really want is your users building on top of you because they believe that you're, you're here to stay and they expect that their association with you will outlast their current employment. The problem with this is good luck fitting any of this in an OKR that is measured quarterly because community is a relationship based. Long-term goal rather than a short term transaction. But I mean, I think people are understanding that at least for developer tools, that's the strength of the community is very important for crossing the chasm. And I think a lot of people realize that when they cross the castle. Early adopters don't need community. They just need the tool to work. They just need to, like, they don't even need like that great of a docs. They don't need like a functioning, a vibrant job market for that technology. They just need to understand that the tool works and they can use it to solve problems that they have. But once you get into the mass market, the majority, then people start deciding on like, Hey, I picked a. The TensorFlow community, because that community is really great at helping beginners. And it's got, it's got plugins and resources for everything that I could possibly want, that those are not core to the technology, but there are a lot of the reasons why people pick technologies, which is there, there's a strong community. And I think to invest in that is a very, very long-term game, but it's a moat as well because everything else about your technology can be cloned or out competed, but a community is very, very hard to.  Yeah,  [00:21:50] Sai Senthilkumar: and I think you, you have a great point there. That community is, is a feature that cannot be copied and it itself is a moat for you and helps you gain these network economies. I think you elegantly structure that in your, in your post.  [00:22:03] swyx: There is a, there's a VC out there. I'm, I'm really, I'm really sad that I'm blanking on her name because she wrote a really great book. I refer to her in my own blog posts on technical community builders. So, so please go check her out, but I'll give you the thesis of the blog post, which is previously. Traditionally community. It was like the community manager at now. The five was kind of like Lewis on the totem pole. You know what I mean? Like, they would be going through the forums and seeing like, okay, like this person asked the question three days ago, it hasn't been answered. Please can anyone in the company help answer this question? That is such a pathetic, like, I mean, you know, they were great, but like that, that just shows that the company. Value community, right? It went when, when that is, that kind of behavior is, is around. But then also the community experience or someone's interaction with a company is very fragmented. Like on the forums, I'll be interacting with the support team. In, in, in conferences, I'll be interacting with the dev team in webinars. I'd be interacting with the marketing team in sales conversations. I'll be interacting with. It's very disparate thing and there's no sort of central. I guess CRM to manage like the interactions, but also I think more, more, more, more to the point who in the C-suite or who in the VP suite is responsible for community and who's managing that journey through, you know, through your company. I think as I think. The community goes from periphery to core. Then a lot of things start deriving their insights from community. Like instead of having community be the afterthought of like, Hey, we launched this product from that's now go support it in the community forums, like actually go engage community users in the forums and help to drive product insights. Or, you know, or beta test with like a super user community where there's just some, which is a topic I really like as well. Like the, the idea that every, every company, like I'm, I'm a part of a few super-user programs like GitHub stars Stripe community experts. I am blanking on some of the others, but we're looking into establishing our own as well, because it was very, very helpful for basically not just like recognizing some experts within the community, but also giving them preferential access. As a ways to say thank you. And, and I think, I think it's just a very, it's a win-win proposition all around for your most engaged users. Yeah.  [00:24:26] Sai Senthilkumar: And Shawn, you're wearing multiple hats control your community, fellow Corps experience this, this community eventually become a separate role within, within Deborah. Let's say you get to that stage on that.  [00:24:38] swyx: I haven't seen it personally myself. But yeah, I've, I've seen some companies basically have a head of community or VP of community or chief chief community officer is also a title that I've seen thrown around. But it takes time, you know, it takes it takes the right person to lead that. And so I don't have a. Either way of like when the right time is, cause I haven't been through that myself. But I would love to see it. I would love someone at the highest level to say I represent the user and, and not, and this is very, by the way, this is very true for open source dev tools. I represent the. Who never pays us a single cent, but contributes so much in tangible value in terms of code in terms of content and sort of like just buzz around the tool. And sometimes that, that person is just not represented in meetings, you know, that, that free user. So, yeah. I love, I love for that to happen right now. A lot of that falls on their roles laps and that's a, that's a job that we need to just formally recognize that we do. And I think that's. Yeah. Awesome.  [00:25:41] How to Start a Community  [00:25:41] Sai Senthilkumar: So the, the $1 million question here, I guess, what are your recommendations for kick-starting a community, especially you guys have done a great job, you know, and you just pay in a year or so. Like what  [00:25:54] swyx: are some recommended. So, first of all, I don't think we've, I think we can do better. Let's just leave it at that. I, you know, I'm sorry that it's just never happy. And I want to acknowledge so many in the Q and a James light. Yes. I think that's Lisa. She I haven't personally connected with her, but I have, I think, I think her posts for like drawing, like sort of community led growth, I think is a, is a very core insight that I think a lot of founders should have a good think about if not actually implement. So. So recommendations, you said, right? Two things, like, I think obviously there's, there's this, there's this standard stuff, like have a slack, have a discord by the way, slack versus discord. If you're open source and maybe sort of more Indy go discord, if you're more enterprise Eagle slack, that's just how it is. I don't love slack either, but that's just how it is. And then So the two recommendations are this like one. Events are underrated for community. So you saw how into Hashi court, four pillar thing events where different team and community. But I think at a smaller stage, those are the same thing. People need gathering points, and this is about the temperature of. Your community as well. You need to manage your temperature. It's not always hot, but there's hot and cold and you need to make sure that the hot wet hot moments are really good. And when I'm not kidding around when I talk about temperature, so, for the sort of communication, immediate theorists in the room, you should refer to Marshall McLuhan who talks about hot media and cold media. And I think it's very, very true that there, there are a lot of community and. Forums which are cold. And then there is some community community engagement methods that are hot and you probably want a variation of these things. So slack, so slack is one of those interesting ways in which a cold can sort of upgrade to a warm, but a hot you know, event would be a, would be a meetup, right? Like a conference. And that's something that I think really helps. Netlify kicked it up, kick it off. Like we launched the conference where we weren't sure if we could sell up, sell up the seats. But we did. And then, you know, we went from one conference a year, it's a three conferences a year and that just really helps kick it off because once people have shown up and they start talking to each other and they have no choice, but they're kind of, they, they're kind of committed to like being in a room with you. One to two days and like sitting through a bunch of vendor presentations it's such a really powerful thing. And, and, oh, by the way, getting your users onstage to talk about how proud they are of using your product. Amazing. Right? So events are super under four, and you want to, if you want to get good at community and get good at events, because then people have a reason to, to come show up and join you. But also there there's a bunch of people who are just. Participate. So you need to be decent at a cold outreach as well. What is cold or what is you know, basically building an issue, distribution channel it's basically the stuff that you, you imagine like a mailing list like a Twitter presence, like a YouTube presence. I think those are the main channels that I focus on. And obviously blog posts that, that drive. The second part, which I really like to talk about community, which is underrated, I think is content content is the minimum viable community in the sense that all right, you know, you have your products and it's kind of like it exists and people can use it, but really good blog posts would drive people from hacker news straight onto your community. And they want to talk about your blog posts and give them a place to talk about it. Right. So, that's kind of how I drive my own. Writing community. That's how I think if you look at like basically the playbooks of the independent creators out there, they're writers for. Or there a YouTuber service, and then you have a community attached to them and the community aggregates around their writing or a content, but then they spread out from there. But at least it's a reason to show up that is not about asking for support. And once, once they see a place to promote themselves or actually, you know, get into related conversations that are about what you stand for, rather than just about using you then you have. Vibrant like a self-sustaining community where people just show up because they know that's where they're going to get good feedback or responses. [00:29:47] Technical Community Builders  [00:29:47] Sai Senthilkumar: Yeah, that's awesome. And I guess the point here, in terms of finding someone to drive your community, you have a great post you're on, on that technical community builder would love to just double click there and what you mean by that  [00:30:04] swyx: finding content, right. I mean, you know, at a bare minimum, just curation is really nice. So if you think about like the big newsletters in the tech industry, like software lead weekly you know, pointer there, there's a bunch of these like basically aggregation blog posts, but curated by someone fairly knowledgeable. And that can be enough. Like you don't have to write the content, you can just aggregate it and that's, that's still a form of content creation. So maybe someone to start there is, is good enough because writing original content that that's a hit after hit is, is a fairly tall ask. Like I write a blog post a week and I only get one hit a year. That's how bad it is. Right? Like that's how bad I am. But, but also like, that's just how brutal the content industry is. And at the end, at the end of the day, like what all you're trying to do is provide a space for people to come to, to connect with other professionals who are solving the same. That's right. Like, Yeah, we  [00:31:00] Sai Senthilkumar: had a question come in here. I'm going to weave it in because it's relevant to the community section. It goes. [00:31:04] Social Media Managers  [00:31:04] Sai Senthilkumar: What, what if you have a great team of devs and Deborah ELLs, but they don't necessarily want to run social for the company. So the company developer handle is run by an actual social team that doesn't necessarily have the developer chops. And so any, any tips for the not dev teams per se, the social teams running dev communities, or should you just, you know, maybe look otherwise elsewhere and get a technical community builder? [00:31:31] swyx: Oh, okay. Social. I think it's okay. So, by the way, for those who don't know, like the post for my, my block wasn't think community building was actually making a case for why your community managers should be technical rather than non-technical obviously that's a. More expensive, higher, but I think it does pay off because people, it really helps when developers understand that the person they're sitting across from actually gets what they're trying to do and can connect them with the resources or the people that they need to get stuff done, or, you know, just have mutual shared interest in. But social media, if you have a social professional, a professional social person I haven't worked with those. I'll be honest. So I don't know what it's like. I mean, I know I'm, I'm friends with Rob or gala boob as he, as he's known on Reddit and Twitter. And he's a professional social media guy, and he's funny as hell. And people follow him for that. If that's the brand that you're building more power to you, but sometimes that's not the brand of your building. And. And you need to make a conscious choice of like, is this, is this like, yeah, you're getting a lot of internet points for your social media person's output, but is there anything relevant to what you're trying to build as a business? And if it's not, you gotta cut it. If it is then great. So I, I don't want to say like, so, I'm, I'm an investor in a company called Swyx. And they're amazing at me marketing but that's just the founders who love developer memes. It's not a separate social team. So I, I, haven't worked with a separate social team to, to understand how to work best with them to, to really give you a good feedback there. [00:32:55] Sai Senthilkumar: Super base is great. I love that. I love it reads as well. I guess. Okay. So let's say you have a couple of folks in your Deborah or, you know, you're starting to build a community you're, you're driving that forward. The question that we, that that was most asked, you know, before the seminar is just measuring your devil efforts and then your, you already flopped that slide,  [00:33:14] North Star Metric  [00:33:14] Sai Senthilkumar: Shawn, and you, you shared your north star metric, but now people continue to talk about how hard it is to measure Deborah also, you know, would love to hammer. The point of just why, you know, monthly active developers is, should be your north star metric. We would love and will.  [00:33:28] swyx: It's it's, it's the one that keeps you honest, right? Because your usage at the end of the day, and there's, you know, you couldn't men measure monthly active deployments or monthly active cluster. And by the way, if you're hosting platforms this is a very relevant question. If someone deploys on you and just hosts on you and, but never touches, never logs in. But you know, they're, they're still getting value from your site. They're still paying you is that a monthly active developer? Right. But the definition of monthly active developer is up for grabs as well. What most people who I talk to who are in the hosting business agree on is that if they're not developing their sites then they're not active. So, so be more brutally honest with yourself. Like, are you delivering enough features or are you getting the kind of developers who are growing usage and if they are, they should be constantly in your dashboard kind of tweaking stuff. Like it's kind of like in how, in how consumer apps, like, you know, the people want. To build a recurring habit of coming back to you at least once a week, if not daily. And for developers that small, probably like at least monthly, if not weekly. So there should be some kind of recurring behavior, but monthly active developers, basically, you want to land within more and more different logos, and then you want to expand within those different logos and monthly active offers is like the one metric that kind of covers that, right? So you're not, you don't just want to do evangelism, but then you also want that. W make sure that people don't turn off and you also want to make sure that people are growing within within the, within the companies that they landed. So, I think that kind of covers all of it, you know? It's especially hard, especially for open source because developers are very touchy about telemetry. Yeah. As long as the contract is clear and you're, you were steadfastly just only measuring activity and not identity. I think people are fine with that. Okay. So, the one thing, one thing I will say as well, is that like, that, that is obviously the, the point where you know, sales can take over and, and start looking for leads and, and, and all that. So that most directly translates to money. The reason I do not. Stare at like, I don't know what my med is on a month to month or even a quarterly to quality basis. I just, I just need to know if it's like up. So it's just like up, it's fine. Like I will have good bites. I'll have bad months. Some of it will be driven by product launches. Just by the seasonality or whatever. It's very hard to control. It's a lagging indicator. And so you need to compliment it with a leading indicator. In fact, a bunch of leading indicators, and that's the way I set it up. Right. You have one lagging indicator, that's the source of truth. And then a bunch of leading indicators that should correlate in the long run with the lagging indicator. So the leading indicators depend on your. You're a devil efforts ranging from community activity to your contents, you know, views and your, your distribution channel growth, like emails, subscribers, subscriptions, and YouTube, and all that. So your product metrics on bunch days and and NPS scores. Well, and I, and I guess  [00:36:22] Sai Senthilkumar: the point of what are some metrics that you shouldn't necessarily care about as much the vanity metrics, the bad metrics per se.  [00:36:30] swyx: Yeah, I have a, I think I might get in trouble for saying some of this cause officially I'll get up. Stars is one of our cars for as many for Temporal, but I don't like it. It's it's so it looks so sad to beg for a star. Like people should want to start you anyway. And then when people start you, they don't, they're not using you at all. They're just starting you cause they're throwing you a bone. So it's just so meaningless that. Basically the only time get off stars convert into real value is when someone is just completely naive about how this works. And they're just like, wow, it's 20,000 stars. It looks amazing. And, and also there's also like the trending page, right? Like if you get on there, some people do discover projects through the trending page and get up. What else have I said, oh, I have. At conferences to scan badges we're going to cube con and like you have to pay for like the device thingy to like scan a badge for customers. I don't think those ever work. First of all, it's like cheapens the interaction between you and them. They're just like, okay, I'm just a business card or to you. And then second of all falling up is super hard and very leaky. And those aren't good leads, you know, maybe the leads a week, maybe I'm weak, you know, And if we can, we can do all Glinka Glengarry Glen Ross there, but. I, I don't, I don't think, I don't think the transactional interaction of like, let me scan into a database on my first interaction with you works very well. So I'll just, I'll just put it as my 2 cents. I, I did at one time and I have a permanently negative impression of it. What else did I say? Oh, GitHub Google analytics, UTM tag. Yeah. So that one, that one I have been measured by as well. And I mean, yeah, I, I, the, the problem with that one is that it, it biases you towards writing a superficial Papa fund, like super top of funnel that may not have content that may not actually have anything to do with the business itself. Like as long as it's funny, as long as it's controversial, as long as it's It buys you spices, you twist the wrong thing, like in the worst ways of like how it, how the Twitter algorithm or the Facebook algorithm biases you towards clickbait. And then finally NPS I don't love MPS, even though I did mention NPS just now. I know, I understand that it's an industry standard and understand that you know, everyone understands that it's a flood metric, but it's so flawed and particularly developers. Implement NPS. Like I've been on the side where I've been asked to implement an APSI. Everyone knows how this works, and everybody knows that you don't care. You throw out the seven, you count the eight nines and tens and you, you know, so like what are you really measuring? What insights are you really getting? Like, I much rather have narrative insight rather than an arm's length. Like, am I doing, you know, approval rating essentially, of, of my, of my job, because I don't think that actually gives me much actionable insight apart from things that trending up or down, which I already have with my reactive. [00:39:20] Product DevRel  [00:39:20] swyx: Yeah, did, this  is  [00:39:22] Sai Senthilkumar: a question that came in by the way, next it's relevant from an average conversation, but let's say you're never out several reports up to product. What are, what are some good metrics there that you should, that you should care about?  [00:39:33] swyx: Okay. Yeah. So this is this is the thing I haven't personally figured out that much. So what, what I wrote is. If I that makes sense for running devel, which is coming community content, and then product is like a third wheel. Product is one of the things that we're still figuring it out. How do you think products should be measured? [00:40:00] Sai Senthilkumar: I think.   [00:40:03] swyx: So there's a lot of philosophy of what product is, which varies from company to company. And that's an unsolved question. And then there's the philosophy of metrics, how you think you should measure the thing. And then we're, we're doing so many bad shots here then, then you're like, how should reporting into product should, should be measured, right? Like this is like three tiers down of unexamined core beliefs that you, that we haven't really figured out yet. So, that's why I keep it to tangible. Related to the activities that we're doing feeding into the, the one lagging metrics, which keeps us honest because we can monetize it.  [00:40:37] Sai Senthilkumar: Awesome.  [00:40:37] Finding Great DevRels  [00:40:37] Sai Senthilkumar: You know, I, and I know we only have 10 minutes left here. I do want to touch on the last point, which is just hiring you know, Temporal, they locked out on, on finding you what were some other folks like you, you know, if you were, you were just starting to hire folks for your devil organization, where would you say. [00:40:54] swyx: Yeah, this is a tough one. So yeah. By the way, I get maybe three calls a week from founders asking about how to hire differs DevRel which is like, it's so amazing to me cause I, I kind of lucked into the job and then, you know, I randomly now have a reputation for it, but it's so amazing to me that this is something that's in demand because like, it seems like a fun job that everyone should want. What I usually say is true. Think of the ideal user that you have, that you would most like to clone and hire that person? Because what a devil is essentially going to end up doing is cloning themselves by everything that they do in their community and the, every content that they write. They're essentially going to put out signals that, Hey, this is a place that I believe in. And if you're like me, you should join me. And that's obviously, you know, had its problems with diversity, but it was a little we'll, we'll sort of leave that as a separate topic. It's hard because when I say. Typically you're the users that you would most like to clone is also your most ideal customer. So you don't want to poach your Deno from your customer? Sometimes oftentimes that ends up happening anyway, because usually the customer, you know, the person is a champion at the customer they implemented successfully and they're off to the races and then customer. The person probably believes in your company more than they believe in the company that they work at. So they leave to join you. That's how this all happened for us. And for offers there for hire. So yeah, I mean, that's very natural and very organic and if it happens great for you if you have, if you're struggling to get that, and I completely understand, one thing I like to say actually is maybe you don't like, especially if you're like pre series a. So I talked to a lot of like seed stage founders, cause I'm an angel investor. If you're pre series a like. You may want to make sure that at least your founder you know, your CEO CTO can be effective. . If you can't do it, why you, what do you expect that? So you can hire someone else who, who, who can do as good a job or better like yesterday, because they could probably do a better job if they're like an experienced speaker, expensed their phone or whatever. But if you can not be a PR, if you personally, as the founder, as, as like someone in the C suite, Can I do a good job of evangelizing for your company, then you haven't figured it out. You'd, haven't figured out like the, the core message to pass on to your detriment, to, to execute on. So make sure that you you've, you've done the job first because you're also part of the default team as a founder, like it or not. Right. You're the most credible one too. And the one with the most power to fix anything that comes up. So, maybe don't like, if you're struggling to hire your first role, maybe don't hire like someone who's already an established level who comes from a different community, because if you try that and expect them to transfer their audience to you, like NPM installed. It may not work because they don't come from that same mindset. They don't have, they haven't experienced the same problems as you. I much rather take an existing engineer who you know, has some skill that at writing posts and stuff and, and train them up because I think that their roles are more made than bored. And that's, that's kind of, I.  [00:43:47] DevRel for Dev Platforms of non-DevTools companies  [00:43:47] Sai Senthilkumar: Awesome. Well, Shawn, I know we have like another five or six minutes. I want to hit on some questions that came in through the audience. There, there was a good one here about how deck row is different when the product is not specifically for developers like Salesforce, HubSpot, or where it's enterprise stats, but you still want a developer community using the APX. How, how is demo different there? How would you think.  [00:44:12] swyx: I haven't worked on that stuff. So please, please take this with a grain of salt. I've seen Spotify DevRels at work, which is fun. Did you know Spotify has their roads? And yeah, I, I understand that. Sometimes you just have a developer that notion has a devil. Yeah, there, there, sometimes it's not the core thrust, but you're still in developer community. I think that this one is more straightforward in the sense that like, Hey, come build a business on top of us, right? Like here are the existing users, here's the monetization. Hopefully there is monetization. Usually a lot of platforms develop a preference when they launched. They don't have any money to division figured out, which is super annoying. That's what happened to the Alexa by the way. A ton of crap because they never figured out monetization. And and yeah, I mean, basically sell it as a way to. An audience that a captive audience that is behind a walled garden that they could not reach otherwise. And here are all the APIs. Here's how seriously we support it. You know, you don't want to be Twitter where you deprecate APS every so often so that no one believes in you anymore. And you know, you want to host hackathons. You want to, you want to show examples of early success. You want to show, you want to give your developers. An idea of what is most demanded by your community of of your non-technical users. And then, you know, you want to show the re the revenue potential. Honestly, I think Shopify does an amazing job at this, right? You don't, you don't think of, I mean, I think more Shopify has like a dev focused company, but actually they're not like they're selling it. They're selling. It basically rails e-commerce rails to non-technical e-commerce users and the developers come along for the ride and build out the Shopify ecosystem. Right. That's a very successful dev ecosystem because Shopify has monetization figured out. So people gravitate to where the money is, which is why, you know, all right, let's apply this to the very app that we're sitting in right now. Zoom launched a dev community with no monetization, right? There's a whole, there's a bunch of plugins. Maybe you can use them. No one, no one has any idea. What they are you know, that's, that's not going to be that successful, even though zoom has a massive, like billions of users, audience it's hard to build a company on top of it, like slack launch the fund Companies when there are certain sizes, they launched like a creator fund or like a startup funds. So the cave come build on top of us, we'll fund you. And like, you know, we'll turn you into like a legit startup. I don't think there's, there's been like maybe one successful slack based startup, but that's it, you know? So yeah, you gotta really figure out monetization built into the. Yeah, totally.  [00:46:38] DevRel Tooling  [00:46:38] Sai Senthilkumar: Another good question that came through with some of the tool recommendations here technology that devil's stack, I we've actually been following a company called orbit.love that I believe you're familiar with as well. And you know, we're, we're calling it almost a deck as a Debra L CRM that effectively acts as the operating system that rolls in from agents and any other good ones or is orbit the one like, yeah. Well, what were your tool stack be if you were to recommend that.  [00:47:03] swyx: So it's funny. Cause basically I knew Josh before he started, orbit. And so I'm reasonably friendly with them and recently actually sat them down for like an hour and just. Just like unloaded on them on like, all the ways that I don't think their product is good enough. So it's, it's so fun because like, when you have to actually use the thing versus like show a pretty dashboard, like it's, it's a world of difference. So orbits orbits at the pretty dashboard stage right now they need to basically become the definitive source of how every Silicon valley company measures their developer community. They're not there yet because they present with too many numbers. Okay. So, common room is the other one. Have you seen it? Have you seen anybody?  [00:47:41] Sai Senthilkumar: That's   [00:47:41] swyx: a good one. They seem neck and neck. I think common room has has more focus on the integrations aspects. Whereas orbit is maybe more on just general open-source community. I'm not sure. I mean, in the common room seems to have very good enterprise sales for whatever reason. It's super weird. I don't, I don't understand it, but yeah, both of these things are okay or good. Like, I don't think they're amazing because they haven't changed my life as a dev community person. Yeah, that's kind of what it's kind of where I leave it, you know, and I don't, I don't have a formal system, I think for, for sure other people are going to have a formalized CRM. We run ours in notion. It's, it's manually attracts not automatically integrated. I would love for it to be automatically integrated, but also it's not going to materially change my life because I know who my most active users are. I know, you know, I know, I know who is like, you know, super active and I know who's falling off, like, I don't need a machine to tell me that yet. When I may be you know, a much bigger company, maybe like C stage S a CVC probably I'll want to have that so that I can at least have a shared understanding of reality with my team. But right now, you know, there's three of us. It's fine. You guys are doing  [00:48:49] Sai Senthilkumar: an awesome job and, and, you know, we're, we're big fans of what you're building over there and the community you're building over there. I think we're coming up on time, Sean. Unfortunately, I I'm gonna, I'm gonna kick it off. It's obvious.  [00:49:01] Travis Bryant: Shawn we've been running these COVID office hour sessions for since we all went into lockdown and I think this was the most engaged audience. We've had of any one of these. And it was the first time we had in the Q and a, a request for how to reach out to you directly. So what's the best way to to connect with.  [00:49:19] swyx: Oh, sure. You can find me on Twitter at Swyx. I'll drop it in the chat and you can find my sites where I have like a newsletter and more blog posts, all the blog posts you could possibly want. And Swyx.  [00:49:31] Travis Bryant: Yeah, great. And what we'll be doing in the recap of this, along with the recording, number of you asked for that, and we'll be publishing that in our recap blog post, as well as we'll just make it an index of all of Shawn's blog posts so that you have an easy way to pop to those are the ones that he referenced as well as the the graphic that he put up there.

Working Code
041: The Third Age of JavaScript, with Shawn @Swyx Wang

Working Code

Play Episode Listen Later Sep 22, 2021 68:42


Shawn Wang - known as "swyx" online - is a financial investor turned software engineer and journalist. With a passion for history and a knack for "trend spotting", Shawn uses a keen analytical sense, honed through years of financial due diligence, in order to organize the world of web development into a series of epochs, each with its own theme. He's recently codified these observations in a blog post titled, The Third Age of JavaScript. Today, we're thrilled to have Shawn as a guest on our podcast to discuss the past, present, and future state of JavaScript as well as the world of developer ergonomics and the magical possibilities of effortless platform management.Notes & LinksShawn Wang: The Third Age of JavaScriptShawn Wang: The Self Provisioning RuntimeShawn Wang: Temporal.ioJohn Resig: jQueryDouglas Crockford: JSONanalytics.usa.govJavaScript (ES) ModulesEvan Wallace: esbuildSWCParcelBenedict Evans: Platforms, bundling and kill zonesBase Rate FallacyRogers Curve of Adoption: Diffusion of InnovationsCrossing the Chasm: Marketing and Selling High-Tech Products to Mainstream CustomersSvelteSvelte SocietyWebpackPulumiAWS Cloud Development KitServerless.comBegin.comAmazon DynamoDBChris Richardson: Microservices.ioThe Burning Monk: Choreography vs Orchestration in the land of serverlessFollow the show! Our website is workingcode.dev and we're @WorkingCodePod on Twitter and Instagram. Or, leave us a message at (512) 253-2633‬ (that's 512-253-CODE). New episodes drop weekly on Wednesday.And, if you're feeling the love, support us on Patreon.With audio editing and engineering by ZCross Media.

code wang javascript orchestration third age shawn wang chasm marketing selling high tech products
devtools.fm
Shawn Wang - Temporal

devtools.fm

Play Episode Listen Later Sep 10, 2021 56:10 Transcription Available


Join us as we chat with Shawn Wang who's Head of Developer Experience at Temporal and a staunch advocate of learning in public.

The Bike Shed
306: If You Want To Go Far, Go Together

The Bike Shed

Play Episode Listen Later Aug 31, 2021 45:14


In this episode, Steph and Chris talk about things they've changed their minds about over the course of their careers as software developers. Steph talks about as it turns out, arm chair rests are good, feature flags and comments are also good, she's changed her mind about how teams structure the work that each person is doing at once, and believes strongly in representation in the field. Chris is not a fan up upgrading his operating system and when he first started out, he gravitated towards learning dynamic languages, and since then, much prefers functional languages, static typing or more broadly, static analysis. He also no longer believes in the 10x engineer, and also very much believes that URLs matter on the internet. So basically, don't call them single-page applications; call them client-side applications instead! Arq (https://www.arqbackup.com/) Karabiner-Elements (https://karabiner-elements.pqrs.org/) Kent C. Dodd's Epic React Course (https://epicreact.dev/) The Art of Code Comments by Sarah Drasner (https://www.youtube.com/watch?v=yhF7OmuIILc) Gary Bernhardt: Functional Core, Imperative Shell (https://www.destroyallsoftware.com/screencasts/catalog/functional-core-imperative-shell) Transcript: CHRIS: I still have dreams that I missed an entire semester of math class, and now it's time for the final. I don't know that I'm ever going to grow out of that. STEPH: That's wild. CHRIS: You don't experience that? It's a mixture of I'm in elementary school, but it's a college final. Like, the physical school that I'm in is my elementary school, but it's a calculus college course that I missed. And now it's time for the final, and I won't graduate college as a result. But it's also high school at the same time. Just every part of education sort of melded together into this nightmare scenario. Do you not experience that? I thought this was normal. STEPH: [chuckles] Not in a very long time, not since I was in college. But I'm imagining this very cute, young Chris showing up with a backpack to the calculus final like, "Oh no." [laughs] CHRIS: Yeah, pretty much, yeah. I really thought I would grow out of it at some point. But it shows...I think it manifests when I have anxiety about something else in the world, and then I have a math terror dream. STEPH: That's your stress sign. That's your terror dream. CHRIS: Apparently. STEPH: Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Steph Viccari. CHRIS: And I'm Chris Toomey. STEPH: And together, we're here to share a bit of what we've learned along the way. Hey, Chris, how's your week going? CHRIS: Oh, it's going fine. Yeah, I'll go with fine. I had to upgrade my operating system. Enough things had stopped working or seemed to be pestering me about it regularly, which normally I'm going to ignore that for as long as I can. That's sort of where I'm at in the world these days. Like, I don't want to upgrade because I don't know what's going to break and whatnot, but then things had broken already. Text messages were no longer showing up on my computer. And it turns out that the primary way that I interact with text messages is by replying to them through my computer. I don't want to type on my phone, that's not a thing. I'm already grumpy enough about text messages, to begin with, that I will regularly respond switching to email, and then I'll go off from there. But yeah, they stopped working, it stopped connecting. And then I got this really weird message from Apple when I tried to sign in. And I was like, I feel like I should at least try to upgrade to the new operating system, which I think has been out for a long time, and I've just been ignoring it. But then I had the added problem of I didn't have enough space on my computer to install it, which I tried once before. So I downloaded the installer, but the installer downloader doesn't check whether or not you have enough space to do the install. So it's just like, hey, so you know how you didn't have enough space? Well, we took up the remainder of it, and now you can't do anything about it. And the installer is hidden somewhere in the computer. So at one point, it just went away, and then suddenly had a lot of space on my computer. But finally, I decided to bite the bullet. I found a bunch of caches on my computer. So there was a cache for my backup utility, which is called Arq, A-R-Q, which was a lot of space. It was like 20 gigs or something like that. So it was like, sorry, you have no more cache. I'm pretty sure my computer's going to light on fire the next time it tries to do a backup because it has no cache to rely on, and it's got to try a lot harder, pull a lot more data down. I don't know what it does, but whatever. It's going to do that. And then, I found the more general application caches on the computer. Spotify had like six gigs of cache. Well, what are you doing? Aren't you streaming from the internet? Stop it. That's not okay. That is not acceptable. Yarn had three gigs. I was like, what is everybody doing? And I busted all of these. I threw away everything, and my computer seems to be doing fine after the fact. So, were the caches even doing anything? I ask. Anyway, so I upgraded, and then some stuff didn't work. And so then I had to find the versions to make stuff work. The particular one that stood out was Karabiner-Elements, which I used to make my mechanical keyboard do the right things for the function keys. That stopped working. And I tried to upgrade it to the newer version because I figured okay; they probably hopefully released a new version, but it failed in the upgrade process. And it turns out the secret was I had to upgrade to an intermediate version. I was on 12.3, and I needed to go to 13.4. But in between, I had to go to 12.10. And if I went to 12.10, then the upgrade to 13...everything about it was everything that I hate about upgrading software. It's like, I just know it's working right now, and I feel like if I even just look at it wrong, this whole tower of software is going to fall over. The worst thing, the thing that I have not been able to fix, is now I use iTerm as my terminal, my terminal emulator as it were. And I typically run with transparency mode on which some people look at and say, "Wow, that's a choice." And I say, "I kind of like it. I don't know; it makes me feel like a hacker or something." I don't know, whatever. [chuckles] Let me live my life. But for some reason, switching to Big Sur, the version of OS X that I'm on now, iTerm doesn't have transparency anymore. And I just haven't been bothered to fix it yet. But, man, I got rambly. I clearly have some feelings about upgrading software. STEPH: You have so many feelings. The fact that you kept going...People can't see me, but I'm just dying because of that whole story. [laughs] CHRIS: I kind of felt like I had to get through it. I had to exorcise the demons, tell my tale, and then be done with it, which I think I'm at now. STEPH: When I start laughing that hard, [laughs] I try to hide from the camera view because I want you to keep going for people to listen. CHRIS: But what's fun is you bob and weave. You'll hide for a minute, and then you'll come back and be like, okay, I'm composed, never mind. And then you'll just fade off to the side again. So yeah, but I powered through. [laughs] STEPH: Oh, all right, there is so much there. [laughs] Upgrading is the worst. I agree with that. That was actually something I ran into earlier this week. Well, it was a mix of where upgrading presented a problem and then upgrading something else resolved that problem. And so that was an adventure where I shared a tweet. I can link to it in the show notes as well. But Ruby was just taking up 100%, a full core, just all the time, and I couldn't figure out why. I wasn't doing anything with Ruby. We weren't talking at the moment, but it was just turning up one of those 100% CPU or higher. And so then I did some searching. And I did find the resolution, which was to upgrade the Listen gem because there was something in the Listen gem that didn't fully support Big Sur. Is that the name of the thing that I am on? CHRIS: That's the new one, yeah. I know because I've just upgraded to it. I have thoughts on the matter. [chuckles] STEPH: Cool. [chuckles] Yeah, when I upgraded to Big Sur. But then someone had kindly marched in to fix it, then upgrading resolved that problem. And Ruby is back to a peaceful level as to the amount of process, the amount of CPU that it should be taking up. Transparency mode, I'm thumbs up on it. I like how you called that out, how that's a choice. And I'm with you on that choice, although I didn't realize that's broken. I guess I just hadn't...I guess I don't care deeply enough that I've tried to restore my transparency, but you're telling me to hold on. CHRIS: We're going to get realer now in this moment. So I have a very old version of iTerm because it has a different way of going fullscreen than the default operating system level fullscreen. I really hate that it animates to fullscreen, and it doesn't quite fill the full screen. Like, it still had a border around it or something. So I have a very old version of iTerm that I've been running with forever, and I refuse to upgrade in any way as a result of I want to cling to this old version of things working. But as a result, I think I finally hit the end of the road on that. This is like years running now too. I remember I kept it in a Dropbox folder so that each time I upgrade or get a new computer, I'm like, okay, good. I still have my old special version [chuckles] of iTerm. But I think that time is over and I got to find...I feel like there are new terminal emulators out there. It's like Alacritty and other stuff that people talk about. So maybe it's time for me to try and find something new as long as I can get that transparency because I want to feel like an uber lead hacksaw. STEPH: You have such a brand of new-new that I'm now discovering that you are also a software hoarder, so you have both in your personality. [chuckles] CHRIS: There was a period early on in my software career that was like, oh, I got to find all this stuff. I got to figure things out and configure it. And then I was like, wow, that's taking up a lot of my time, I should stop it. And I think since then, I haven't upgraded anything. If you go look at my .files, I don't know the last time I pushed to them, but it's been a while. I'm still doing things, of course, but not as much. I know the cost of it, and I know the cost of maintenance. And really, this is an allegory for software overall. This isn't just about our local development environments, but entropy exists in software. Software does not exist at rest, and it will decay over time. And so the idea of we've worked with so many clients where they're like, yeah, we're on Ruby 1.8, and it's Rails 0.9. So okay, all right, well, we're going to have to deal with that, it turns out. We can't just keep ignoring that. So really, it's the same story played out but in my local hoarder cavern. STEPH: There was a part of the saga, the story that you shared with the installer and that you don't have enough space, and it took up the rest of the space, and you can't do anything. I'm very nervous; what happened to your stuff, your space? How did that resolve? [chuckles] CHRIS: I finally bit the bullet. And so I have a bunch of...I've tried a bunch of the different pieces of software that will visually analyze your disk space. So they crawl the whole directory starting from the very root of your computer, and it will be like, all right, applications has this much, and the library directory in your home directory has this much. Here are all of the different places that stuff might be hiding on your computer. And then you can visualize and be like, okay, that's where the most of it is. Node modules, as an aside, we did not choose an efficient way to approach how to put code on my computer because Node modules take up a lot of space on my computer, but they're so spread out. Multiple times I've seen people share a version of rm -rf, and then it's some subshell that does find every Node modules directory underneath a code folder. So you can find every single Node module and just blow them away. That will regain you some space. But that was not the solution this time. I've tried lots of piecemeal solutions over time. But eventually, the thing that got me there was just busting all of those caches. So I cleared the backup utility, Arq's cache. I cleared a bunch of them, Spotify Yarn, et cetera. And that cleared enough space for the installer to actually run. And then, once that was done, the installer program itself was no longer around, so I reclaimed that space. But it was this weird chicken and egg thing where I had to have enough space to complete the installation such that the installer could go away. And now...actually, let me see what my hard drive looks like now. So somehow, according to the Macintosh hard drive info, I have 50 gigabytes of available space, which is really frustrating because there were a number of weeks where we went into a Bike Shed recording, and I was like, I have one gigabyte. I'm not safe right now because this audio is going to be more than that. And so I don't know how now I'm sitting at 50. I guess all those caches that I cleared and the installer being gone probably puts me in a good spot. But anyway, I'm living in an upgraded, wonderful world. As an aside, Big Sur is ridiculously rounded and colorful and almost cartoonish. They're really leaning into the iOS vibes. And I'm not sure it's my personal aesthetic, but that's fine. I spend most of my time in the terminal anyway. But I think that's enough of me ranting about upgrading my operating system, which apparently I had a lot to say about. But what else is up in your world, Steph? STEPH: I do appreciate the ranting, though. You're not often grumpy, and when you are, it's quite humorous. [laughs] I really enjoy the grumpiness. And it's often a painful process. So I appreciate all of that story. Something that I really need to share with you and get off my chest is a couple; I don't know, x number of episodes back, you and I were talking about computer chairs. And I bragged about the fact that I have a computer chair that has no armrest, and I love it. I love my chairs like this, and it's wonderful. And I just think it's the best way to live. And it turns out that that's bad because I happened to go see a massage therapist who's also very well-skilled in physical therapy and other areas. And they were talking to me about my desk setup. And I mentioned the fact that I get these typical headaches, and I have my chair, but there's no armrest. And they're like, "Oh, that would do it." I was like, "Why? I like my setup. What's wrong with it?" And they're like, "Well, if you don't have armrests, then your back is having to compensate and to hold up your arms and your shoulders all day. So while you're typing, you're using more muscles to then hold that. And then they eventually tighten and contract, and then that can cause headaches." So in case, I have led anyone astray into having no armrest, they are apparently very important to not having headaches or having your back overworked to the point that you have headaches, which I'm a bit sad about. But on that front, I have ordered a new chair, and we'll see how it goes. I will have to assimilate into the world of chairs with armrests. CHRIS: We welcome you with open armrests. [laughs] Sorry, I saw it, and then I went with it. Anyway, I'm realizing now I actually don't use the armrests on my chair per se. I actually end up putting my arms on the desk, which is probably not ideal either. I have a little wrist pad so that my wrists are brought up and so that I don't have the upward breaking of the wrist thing going on. I think that matters a lot. And then my arms are supported by the desk, but it is just right on the desk, and I wonder if that's worse. But I've never...I don't know, getting the armrests just right and then also having the wrist pad. But I can't adjust my desk is probably the main problem. If I could bring my desk down a little bit, and if it were a thinner top, then I'd have more flexibility. The chair that I have is wonderful and has flexibility. The arms can go up and forward into the side and lumbar and this and that. And so I'm able to make the chair work to the desk. But I do wish I had more of an adjustable...ideally, like a stand-sit desk. But I haven't made that jump just yet. STEPH: When you're ready to make that jump, I'm going to share with you where I bought my desk because I'm really happy with it. And it's also not nearly as expensive as most of the other desks that will go up and down. CHRIS: Presumably, we can include it in the show notes as well so that we share it with everyone. STEPH: Definitely, yeah. CHRIS: Otherwise, that's just kind of mean. [laughs] You and I have a weird back channel that we talk about on the show, but they're not actually put in the show notes. STEPH: We're not mean. We wouldn't do that. I love my desk. And it was from someone else. They're the ones that shared it with me, so I'm happy to pass it along because it has served me well. And yeah, I'm also not sure about how this is going to work with the chair and the armrest because I'm just worried they're going to be too wide, and they're not going to actually offer support. I have doubts. I have lots of doubts, but I'm willing to investigate. And we'll see how this goes because I would like for the headaches to stop. CHRIS: Good luck on that front. That definitely seems like an indication of worth putting in some effort there. STEPH: Agreed. I also have some other exciting news. Stephen Hanson at thoughtbot has organized a number of other thoughtboters to get together who are interested in really diving into leveling up, learning React, and specifically focusing on purchasing the Kent C. Dodd's Epic React course. And it's for anyone that is comfortable writing code, whether you know React really well or if you're new to it. Everyone's welcome to join. So we just kicked that off today where we're going to go through the course together and then meet every Friday. I think the cadence is probably three hours, three and a half hours every Friday, that then we're going to commit to working through the course together. And I have to admit, I always nerd out a bit over how does someone build a course? Like, I'm really excited about the content as well, but I just want to know how did someone go about producing this content and then sharing it with everyone? And then what's their outline? How do they help people that are getting stuck because they can't be there in the same room? How do they record their videos? So I'm really excited to see all the ways that Kent has crafted this workshop. And so far, there's so much content, but I'll have more to report as we really start to dive in. But I'm excited to revisit React because I haven't been in React land for at least a year and a half; it's been a while. And so it's one of those areas that I know some bits, but a lot has also changed. And I would like to just revisit that world. So I'm really excited to dive into the course. And so far, I really like the structure that Kent has taken with the curriculum where we're focusing first on what exactly is happening and all the effort that goes into if you wanted to actually write HTML and then layer on JavaScript on top of that. But then here's how React makes that easier for you. Here is how JSX makes it even easier on top of the React API. I really liked that. Here's some pain; feel a little bit of pain, let's get a little bit better. And then let's get even better on top of that. And that has been a really nice reminder and progression into the course. CHRIS: I'm definitely a fan of the way you're describing it like, feel some pain, and then let's get better. But then, like, what's the hook? With any educational content, this is the sort of structure where there can be full education. But this is the thing that I feel very deeply about conference talks is my goal isn't to teach you everything if I'm giving a conference talk; it is just to get your attention just to say, "Here's the thing, here's why you might care." And starting from the problem, starting from the pain is always such a good way to do that. Because you know how this stuff is hard? What if I had an option that was easier? And then building from that totally makes sense. I want to say that course, Kent's course was built in conjunction with the egghead team, egghead.io. And it's a distinctly branded course. But it was built on top of the framework in the platform that's there and all of that, and then some of the editing support. I don't know this for certain, but I think there was some teamwork there. And I love just pushing forward the envelope of how we do educational content in the world of development because it is such an interesting world that has, frankly, such a need for ongoing development. The world is changing out from underneath us every two days. And therefore, having great educational content is so important. So yeah, definitely interested to hear how your experience goes both with the course and then also diving deeper into React. Well, switching gears just a little bit, I had a topic that I wanted to dig into with you today. And so to give some context, the topic, the thing that we're going to be talking about today is what have we changed our mind about? So you and I have both done a little bit of thinking and tried to come up with some answers to this. The background, this was actually inspired by a tweet that I saw between Shawn Wang, aka "Swyx" on the internet, and Charity Majors, a recent guest here on this podcast. And Charity is someone who is known for having strong opinions. But Shawn asked the question of what are some opinions that you've changed your mind about? And Charity actually had a wonderful list, which we'll link to her tweet thread where she shared some of her both technical and then also more personal ones, but really talking about the sort of evolution of thinking and the way someone's thoughts can change over time. And I thought it was just such an interesting thing because, for most points in time, we experience someone's sort of snapshot of where are you at now? What do you believe to be true? But I think there's such an interesting story and sort of the arc there of what did you believe to be true that you don't anymore? What have you softened your beliefs on? What have you strengthened your beliefs on? So yeah, with that as the context, what have you changed your mind about, Steph? STEPH: Yeah, this one really got me thinking, and I feel a little stumped on it. I have a few that I'm excited to share. But I'm very excited to hear your list to see if that also helps me reflect more on some of the things that I have changed my mind about. And I have found that there's only a couple maybe that I feel like I've really solidly changed my mind about. The others, I've either dialed up the strictness, or I've dialed it down. So the ones where I've really changed my mind about are feature flags and comments. Those are two of them. Well, there's a third one, but I'll get to that in a moment. So starting with the first one, feature flags I was more in the camp where I very much appreciate feature flags, but I use them sparingly because then there is a tedious nature of introducing them and then having to clean them up, and then having to maintain two states of code. But now I've really seen the value of feature flags and how we can make sure that we have calm releases and ensuring that main is always in a deployable state. So feature flags is one for me. I'm very invested in having more of a robust feature flag system because I see the benefit to that. The other one was comments. I used to be very rigid about comments are bad. We should never have comments in our code. They are just waiting to go out of date, and they're not going to be helpful. But I have since dialed down that strictness where I have certainly seen moments where comments do feel very helpful, and I can see how people use them. I still want to avoid them for the most part, but I am less strict now in regards to people who really find value in comments. I'm more open to that discussion. I want to understand what it is they find helpful about that comment, and if it is something that we can't capture with code or a test, where does that live? CHRIS: Those are both interesting. Feature flags, for me, I think I actually was more strongly opposed in the beginning. Earlier on in my career, I saw them as added complexity, as noise. I often would encounter them left behind in a codebase. And so, I had this negative association with them. And I didn't see the value; I hadn't yet felt that pain. And over time, I've definitely shifted to where you're at where I'm like, I love feature flags. This is a critical tool in our toolset of how we actually…like you said, calm deploys, being able to always deploy main, making sure that we don't have long-running feature branches. There are so many benefits that come out of it that I'm now very strongly in favor of them. But it's interesting; I think I would say that I started in a more strongly opposed place. So that wasn't on my list, but it's an interesting one that you've brought up and probably one that I've moved more on. Code comments, I think, actually started in my career being like, obviously, you comment your code. It's the thing that I read about and stuff. And slowly, over time, I think I've just dialed in on I don't think we should be doing that. There are, of course, going to be exceptions. And actually, one of the things that I discovered about myself as I was trying to go through this exercise is there are very few things that I believe are black and white. If anything, that maybe is one of the things that I've leaned into over time. It's like, nothing is binary. Nothing is black and white. Everything is on a continuum or shades of gray. There are things that I believe a little more seriously. But there's almost nothing that I can be like, nope, absolutely I will not equivocate on this beyond how we interact with other humans and being reasonable, kind people. And in terms of software practices, not really. Comments, though, are one that I still am pretty strongly not going to lean into. So it's interesting that you're like, eh, I've kind of opened up to that one. STEPH: There's a particular talk, The Art of Code Comments by Sarah Drasner, and that's the one that really shifted some of my opinions around comments, and then how we talk about them, and what benefits they can play. But I will admit, if I see a PR that has code comments, I still immediately have a negative reaction to that. And I want to have a conversation around why that comment was added and if we can remove it, and how we can remove it. But even with that negative perspective, I still find that I'm more open to that discussion versus before, where I would have been like, no, that's just unequivocally bad. CHRIS: I do like that you always bring up that talk whenever we talk about comments. This is a great talk. And in the background, I just looked up Sarah's Twitter profile because every time you bring it up, then I mention that she has a still from the movie Labyrinth in her Twitter background, but she actually changed it. And so now that's not true anymore. It's now something from The Force Awakens. Well, it's actually a joke, but I'm still going to suggest that you watch the movie Labyrinth at some point. That's the thing that I feel actually kind of weird about. It's a weird movie. STEPH: I'm going to take your suggestion, but not watch it. But thank you. [laughs] To share my truth today. CHRIS: That's fair, that's fair. STEPH: What are some of the things on your list? CHRIS: Okay, I have a couple, some more on the technical. Let's lean into one of the technical ones. Early on, I started with dynamic languages. I think I started with Python primarily and a little bit of JavaScript. I eventually found my way to Ruby and felt very at home there. And then, I started to explore functional languages. And I started to lean into them really hard and felt that immutability and functional programming and true pure functional programming was the thing. It was the answer, and I just needed to figure out how to do it. And so I would say that is the belief that I have since changed my mind on and decided, you know what? Actually, it feels like a bit of a force fit. I have tried. And maybe for others, it is actually a really fantastic way to build software. But having worked with a number of other people in more functional contexts, I find that it is a bit of a force fit. It's a bit rough. And in particular, of late, I've been working with Svelte as opposed to React, and React does sort of lean into the functional paradigm, especially with Hooks and all those sorts of things. And it's a little bit rough because it turns out UIs are these deeply mutable things. We're changing values or typing things in. There are actions that are changing the state over time, and having a system that just more directly models that feels very natural. I still love functional programming for the more core of an application. So again, I reference this talk often, but Gary Bernhardt's Functional Core, Imperative Shell. Gary has really formed some of my thinkings on this. And now I've started to find the examples in the work that I'm doing of like, oh, okay, I see that pattern actually applied here. But much as I would love to use them, the functional languages I find just aren't quite landing for me. And additionally, the mutability, particularly in the front end right at the edge of the UI, is not quite as good of a fit. STEPH: So I think that resonates with me although I do still get very excited about following more patterns that represent more immutable state just because I felt so much pain and found bugs from the fact that we have mutated state in surprising ways. I'm honestly not quite sure how I feel about it. I'm going to have to think on that one. That's a very interesting one that you've changed your mind on. CHRIS: Yeah, similarly, my feelings are lukewarm, whereas before, they were stronger. I was like, oh, okay, I think I found something here. And then, in attempting to use it across a wide variety of applications, it just didn't quite feel right. I felt like I was swimming upstream sort of thing. Actually, there is an interesting counterpoint. One thing that I have leaned into and definitely changed my mind on and embraced is static typing or, broadly, static analysis. But I think static typing being the most pointed version of that. Early on, like I said, I got my start in very dynamic languages in Ruby, and Python, and JavaScript. And so that dynamic duck typing runtime can be anything. We just make our systems respond to the messages, and all of that sounded great. But it turns out I really love having a compiler that can tell me some truths about my program before it ever reaches runtime. And the idea that a typo can make it to production feels absurd at this point. And actually, as I'm working in Ruby, I'm like, man, I really got to go look at that whole Ruby typing thing we got going on. I don't know what the state of it is. I've looked at it in the past, and I need to revisit it soon. But like TypeScript, I've definitely embraced that very strongly. And I would not work without TypeScript in a JavaScript project at this point. I've loved the work that I've done in Elm, although that also sort of blends into the functional stuff where it's like, it was a little bit noisy, though, I'll say that. But the type system and the fact that the compiler can give you so much rich information about your program, I would not trade that at this point. And I don't see myself going back on that front, which is an interesting place for me to be on of actually, I'm not that into the functional programming as the core way that I build my applications. But I do like static typing. And I feel like functional programming and static typing actually go together incredibly well. And functional programming and, more imperative, whatever it is that I'm doing with my day-to-day life these days is a more interesting fit. But it is interesting to me to observe that sort of combination of opinions where I really like static typing, and having a compiler, and something that can tell me about my program before I get to runtime. But also saying that I don't quite want the functional programming thing, or at least not as the entire way that I modeled my application because I found it a bit difficult to work with. Because I think static typing or compilers and functional programming go really well together. But I think generally, what I'm finding is a more middle ground dynamic optimization of a bunch of different things. And the answer is like, well, it depends which I guess if you've listened to the show before, you'll have heard those words said, so I guess it makes sense. STEPH: Yeah. All of that makes sense to me. And I can see why you might have a favor for types or why that feels more valuable initially because that is giving us so much feedback right off the bat versus following a more functional paradigm is something that could feel like more of a force fit and doesn't provide that same immediate feedback. But it has a longer-term or a longer cycle of that reward system. So I can see why you might favor one over the other or why I myself would favor one over the other. CHRIS: How do you feel about types? STEPH: I'm a big fan, although I say that, but I work in Ruby. [laughs] I don't have them. But when I have worked with types, I very much enjoyed it because it makes me think more about the design of my code in a way that I don't as much with Ruby. And working with types has heavy influence than when I am working in Ruby and thinking about the design of my code. So I think working with types is a wonderful thing that, frankly, all of us should do as developers at some point because it is so influential. So I'm for types, but I'm not using types in my day-to-day. Another thing that I have changed my mind about is how we structure the work that each person is doing. So I used to be more in the camp of everybody can work on their own very complicated piece of codebase, their own complicated feature. We can have a bunch of complicated things in the sprint, and everything will just be great; it'll be fine. And we'll get a bunch of work done, and we'll ship it. And then we're an even more productive team. And I very much disagree with that now where I have found where everybody is working in their own silo on a complicated feature has slowed down the progress of then being able to ship that feature. Because we often want to collaborate with someone, we need to collaborate with someone. Then the PR review process is tough if I really have no idea what you're working on, and I don't have a context that then when I look at your code, not only am I evaluating at the code level, but then I'm also trying to understand the feature and gain all of that context. And that's a heavy cost for me to have to pay to then pick all of that up and then for you to have to reintroduce me to what's happening. Or I might make the bigger mistake, and I may look at your code and just evaluate it from the code perspective but not really understand the feature, the value that's being delivered. And that doesn't feel useful. And I have a recent example where that happened where someone was working on a very complicated feature that I didn't have any insight into. So then, when I was looking at the PR, it was easier for me to just look at the code and get feedback on that. But then it was probably a day or two later. It wasn't until then that I finally started asking, what are we building? Like, what purpose is this serving? And that opened up a much larger discussion where we realized what was being built didn't actually really deliver what we needed to deliver. So I no longer agree with the idea that everybody should be working on their own complicated features independently, and there should be some collaboration. And, you know, it's the buddy system; we all need a buddy. CHRIS: Well, I like that one. I feel like I've shared similar ideas where it made sense. It was just the efficient thing to do, to split the work up and have everybody very independent. I also feel like earlier on in my career; I was more scared of Git conflicts and things like that or people interacting with the same parts of the code. And so in my mind, it made sense to really strongly separate like, oh, you shouldn't even be touching the controller for this. I'll handle the views, and you handle the controller; it'll be separate. And I care less about that now. And I think what you're saying of like, it's actually better if we have some shared context, and we understand what we're working on, and it's more of a collaborative process. Yeah, I like that one. I think I followed a similar arc, and I'm at a similar place now as well. Interestingly, to go into another one of mine that I think you'll probably be most surprised by on my list is I think I used to believe in 10x engineers. I used to believe in the idea of that one developer just off in the corner fueled entirely by Mountain Dew that would just produce the perfect code. They would just solve it. Over the weekend, they would write the entire billing system, and it would be great. And I think it was predicated on the idea that the coding is the hard part, which I no longer believe. I think coding at its core is communication. It's taking this thing that we want to be true in the world and then communicating it to a computer but also ideally communicating it to our teammates, and to future versions of ourselves, such that we can revisit that code, we can maintain it over time, other people can add to or augment it. And so the idea of this loner that can just do incredible volumes of work and have that be a good outcome that just doesn't make sense to me anymore. I've worked with incredibly talented developers, to be clear, folks that I was sort of in awe of. I've worked with people who have, I think, just truly photographic memories. They seem to remember every single bug that they've ever had and exactly where they can look it up. Or from the top of their head, they can just intuitively know, oh, this bug means this. Go look at this line of code. I'm like, how did you do that? How did you do that magic trick? And they're incredibly capable developers. But at the end of the day, the folks that I see being most impactful on a team are the folks that are able to communicate and collaborate most effectively and make the whole team more effective. STEPH: Maybe it's the Mountain Dew; maybe that's actually the secret sauce here. That's what I'm missing from my life to take me into that status. CHRIS: I'm now imagining Mountain Dew but in a more viscous form, like a barbecue sauce, but it's Mountain Dew flavored. That's the secret sauce because it's a very…anyway, moving on. [laughs] STEPH: It's a terrible product. We should make it and sell it. [laughter] CHRIS: Career pivot, we now sell Mountain Dew sauce. STEPH: [laughs] CHRIS: But yeah, I do not believe in 10x engineers anymore. If anything, I believe that that is a huge warning sign if you have anyone that's behaving in something close to that space. STEPH: Yeah, I'm super interested in that you've shared because I don't think...We've talked about 10xers, but we haven't talked about the fact that you used to think that they were more of a thing and that they existed. And now it's all I'm sorry, but it's all crap. [chuckles] That's super interesting to me. Do you remember what changed your mind? Do you remember that pivotal moment of where you were like, oh, maybe this is all bullshit? CHRIS: I think it was just an amalgamation of experience over time. I've encountered people who fit the archetype. But if anything, I would say they're deeply problematic in teams. They're that individual who refuses to collaborate, who just goes off and heads down, writes a bunch of code, but then it doesn't integrate with the other pieces, or no one else knows how to use it, or they won't let anyone contribute to it. And yeah, I've seen that just be very, very problematic. So the folks that most fit, I think the imagined version of this, actually end up, in my experience, leading things astray. And the folks that are actually most productive and really cause teams to improve in a drastic way behave very differently. They're much more collaborative; they're much more engaged with the team. It's less about their individual contributions and it's more about building a system together, collaborating, communicating, engaging external stakeholders, et cetera, et cetera. It's all that stuff that matters. And so, it's very much in contrast to what the 10x engineer ethos is about. But there's no one day where suddenly this idea that I had in my head crumbled when I saw that behind the pile of Mountain Dew cans, there was nothing there. [laughs] STEPH: It's all a mirage. [laughs] I do like what you just said around that there are very impressive people out there. And those impressive people often focus less on their individual contributions and more at a higher level around communication. And then they are the powerhouses that then is helping facilitate everybody else be their best and have high levels of individual contribution. Those are the ones that...I'm still not going to endorse a 10xer, but they are the ones who, to me, embody the idea of someone that is incredibly efficient and really good at their job. CHRIS: There's an adage that comes to mind here that "If you want to go fast, go alone. If you want to go far, go together." And that does ring true to me. I think an individual can have their individual productivity be higher if they're working entirely on their own, if they understand every line of code because they wrote every single line of code if they know where every feature of the platform is integrated because they wrote the whole thing. But they're going to be fundamentally limited. And in order to do bigger, more complex things, fundamentally, we have to work as a team. And then the way you have to interact just fundamentally changes. So I think it started from that, like, one person on their own I think can be individually more effective. But the minute you start to have a team, that one person acting on their own is actually dragging the team down because other people can't then work in that space, and that's a problem. STEPH: I really like that adage that you just shared where, "If you want to go fast, go alone. If you want to go far, go together." And that touches on something else that I have really changed my mind about, and that's representation. And this is more specific to me. So when I joined engineering and became a web developer, and I joined a team, and I was the only female engineer on that team, my initial feelings were I am the only female engineer, and that is fine. We're all just a group of engineers. We're here to solve problems together. It really doesn't matter if there's anyone here on this team that's like me. It's fine if there's no one that I can see myself in that's in leadership because we're all just people, is what I was coming down to. And I've completely changed my mind and realized that that's not true. And I've experienced this where I've worked on other engineering teams with female engineers, and it's fucking awesome, and it does make a difference. And then when I can see someone that I can see myself in, in a leadership position, that is also inspiring. So that is something that I went in where I think it was more of I was trying to shield myself from the idea that I am different from everybody else in this room, and that could be a problem. And instead, I just tried to neutralize it by saying it's not. But I think representation is incredibly important. People are not just people. We all have very important social and racial, and cultural identities. And it's very important that we get to feel that we can express all of those identities and see people that represent those identities in spaces where we would like to go. That's a big one that I've changed my mind on. CHRIS: Yeah, I certainly agree that representation certainly matters, and being able to bring your full authentic self to work and seeing others around you that reflect that. And frankly, having teams that are made up of people that represent the users of the software that we're building feels so critically important. And it's very interesting to hear about the arc that you've had on that where initially, you tried to downplay it, but then you found a little more truth in it. And so yeah, thank you for sharing. STEPH: You're welcome. It feels good to say that, too, because that's something that I've admitted and realized on my own, that that is something that has changed and shifted. But it's nice to be able to share that here with you as we're going through the things that we've changed our mind about. What else is on your list? CHRIS: Well, to round us off with one more very technical version because, of course, that's where I'm going to take us after a much deeper and more nuanced topic that you led us on, single-page applications. Broadly, I'm opposed to the name; that's a side conversation. But, man, URLs matter on the internet. So don't call them single-page applications, but client-side applications or whatever. Broadly, the idea of a bundle of JavaScript, and so you send down an empty HTML document, and then you reference a bundle of JavaScript, which that thing boots up and it then makes a bunch of API requests to the backend, and then it starts to fill in the page. I was convinced for a while that this is a reasonable and perhaps even necessary way to build software. We need APIs for our mobile apps anyway. So if we're doing that, then let's have that be the consistent way that we are accessing information. This is going to be fine; it's not a problem. And then eventually, we found some problems. So then we got GraphQL, and we tried to solve it that way. But overall…and I have spent a lot of time trying to make this thing work, trying to find a version of this that I'm happy with that I find the end outcome of the software to be as pleasant to work with from an end-user perspective as a server-driven application, and I can't find it. And so, to be clear, I'm still doing client-rendered applications these days. But Inertia.js is the framework that I've leaned into that helps me bridge that gap. And the idea that the server owns routing, that the server owns statefulness, things like that, not having to think about client-side routing, not having to think about client-side state management, being able to use traditional auth mechanisms built into cookies, all of these familiar things that we've had. Leveraging the fact that the server is the more privileged in terms of the information it has access to, the more secure, the more powerful environment, all of these things feel right to me. And the nature of the application that I can build just feels more robust, more consistent, easier to evolve. There were a lot of promises that I heard when we started building applications in these ways. And I just haven't seen an example or have not worked on an example, at least of an application that is built as a client-side bundle that boots up and does some stuff and had a good experience with that. So Inertia, as an aside, is my answer to this. And I continue to be extremely happy with that as a solution, as really a middle-ground solution. Because going all the way back to true HTML server-side rendering is limiting in other ways that I didn't like. But I find that Inertia really strikes an ideal balance in the middle there. STEPH: I feel like I completely agree with everything you're saying. But I also feel like I have a developer secret to share where I really haven't worked on single-page applications, and I am okay with that. [laughs] CHRIS: It's fine, skip it. Just go straight to Inertia. It's better. STEPH: Cool, cool, cool. I am working on leveling up React, and then the plan is to go to Svelte and Inertia. So I'll just completely...I'll skip that. I'll skip that part of my career. CHRIS: I actually want to back up just a little bit as I'm saying this because I really try to avoid being in a more negative space. And I think this space, this architecture for building applications, is complex, and there are things that will warrant it. So things like Google Maps, it makes sense to have a lot of Dynamic JavaScript and to be doing complex things on the client-side. Trello is another example of an application that that as a server-rendered thing, doesn't really make sense. And frankly, using a tool like Inertia wouldn't quite work there. That said, that is, in my mind, truly a single page within the broader application. So the Trello board page is a very, very complex stateful application, and I think modeling it as such makes sense. Google Maps, similar. But there's still the profile page, and the login page, and all of these other things. I think routing is probably where it breaks down for me. I think client-side routing is the thing that I feel the most pain on. Because at the end of the day, the server still needs to know the answer. And if we do client-side routing, we end up with this duplication of logic across the client and the server-side. We end up with disagreements from time to time. We end up with the weird flashes of half-rendered layout, and then we go to the login page because we get an API response that is different. And so, I think that is probably the kernel of the thing that I struggle with. And, of course, it is possible to build great things using any of these technologies. But I think my summary is I've really tried on that front, and I've just not been able to make the fidelity of application that I want using…primarily; I'd say it's client-side routing is the thing that I struggle with the most. STEPH: Yeah, it sounds like you're saying there are very valid use cases for using a single-page app or following that structure. But we haven't really gotten there in terms of our web development expertise, where we've made that easier to maintain and easier to implement. And there's still enough pain points around it that even though it seems like a very valid idea and approach, it still feels painful enough that you actively avoid it until it feels like something that you have to then invest in at that point to then really deliver the user experience that you want to provide. CHRIS: Yeah, I think that's an accurate summary. And I think adding on to that, I'm noticing it becoming more and more of the standard approach; this is the way we build applications, and I don't agree with that. That is probably the thing that is the kernel of what I don't believe in. I think actually server rendering is a great way to start, and then you can slowly augment or move more things into complex client-side behavior. But starting with this as the mode that we're building our applications just feels like a less stable foundation than I would want. So it's perhaps an architecture that you want to evolve to at some point as the complexity necessitates it, but I definitely wouldn't be starting there. Similar to service-oriented architecture, not going to start there. Client-side routing, I'm not going to start there. STEPH: Ooph. I feel like I've been holding my breath this episode. I feel like this was a very interesting topic that has been challenging to reflect on what we believe and what we've changed our mind about. CHRIS: I think it's perhaps more nuanced than a lot of our episodes where often we're saying this is what we did, and this is how we felt in the moment. And that can be very experiential and true. But this, yeah, we had to draw the line in the sand and say what do we believe? I similarly definitely feel more tension in this episode than other ones. But hopefully, it was useful. Hopefully, folks found some value in the things, and hearing our story, also, the idea that we have singular formed opinions. Hopefully, this episode has broken that idea in anyone's head. And we're all on a journey. STEPH: I really like how this has prompted me to reflect on the things that I used to hold dear and really cherish or follow strictly to then reflect on what are things that I used to believe versus what I believe now? Because that transition often happens so seamlessly for me that I don't really stop to think about it to be like, oh, something just happened that is really changing how I approach things, how I build, how I work with teams. And I really like this reflection point to be like, oh, what did I used to believe, and what's different today? I'd like to keep this practice going and just try to track the things...I'll have to make a list of all the things I believe. That seems like an easy list. [laughs] CHRIS: Just the easiest list to write. STEPH: The easiest list to write. And then I'll just check in with it every so often, scratch stuff out, or update it with the things that have changed my mind about. This is the good idea, terrible idea where you go, "Stephanie, that's a terrible idea." [laughs] CHRIS: I don't know, write it down on a list, and then look at it in six months and see if it sounds like a good idea, and then we'll be able to close the loop on the whole thing. But with that, should we wrap up? STEPH: Let's wrap up. I've got a list to write. CHRIS: The show notes for this episode can be found at bikeshed.fm. STEPH: This show is produced and edited by Mandy Moore. CHRIS: If you enjoyed listening, one really easy way to support the show is to leave us a quick rating or even a review on iTunes, as it really helps other folks find the show. STEPH: If you have any feedback for this or any of our other episodes, you can reach us @bikeshedor reach me on Twitter @SViccari. CHRIS: And I'm @christoomey. STEPH: Or you can reach us at hosts@bikeshed.fm via email. CHRIS: Thanks so much for listening to The Bike Shed, and we'll see you next week. All: Byeeeeeeee! Announcer: This podcast was brought to you by thoughtbot. thoughtbot is your expert design and development partner. Let's make your product and team a success.

The Swyx Mixtape
[Weekend Drop] Why Invest in Developer Community? GitHub OCTO Speaker Series

The Swyx Mixtape

Play Episode Listen Later Jul 18, 2021 54:33


Video: https://octo.github.com/speakerseries/swyx Blog Post: https://codingcareer.circle.so/c/dx-blog/technical-community-builder-is-the-hottest-new-job-in-tech Slide dec: https://docs.google.com/presentation/d/1WGCfellGTboDwtM_D9uMwsHtD0qCFeBv6AYNUSxlDLg/edit?usp=sharing My talk at Heroku's conference where I met Idan: https://www.youtube.com/watch?v=1_w1YWCHXFg Timestamps 00:01:17 Intro presentation on Why Dev Community 00:16:15 Discussion between Idan, Brian, and Swyx Transcriptswyx: [00:00:00] Hey everyone! On weekends, we do long form audio from one of my conversations with people. [00:00:06] And a few months ago, I published an article on why technical community building is the hardest new job in tech. And it got a lot of traction. In fact, some of the other weekend drops on this podcast are related to that. Podcasts, but I was invited by the GitHub office of the CTO to talk about it. [00:00:25] These are two people that I knew from prior engagements before. Idan Gazit. I actually  met at the Heroku conference. When I spoke aboutNetlify CLI and Netlify Dev. And then Brian Douglas, BDougie , it was the dev advocate at Netlify before any of us were dev because another fi. So he kind of pioneered and originated the role, which I stepped into. [00:00:46] And both of them are just very well. The tunes to dev community. So I thought we had a really good conversation. About it. So the first part of this talk basically is me presenting a few slides on the, my thoughts on dev community. And then it was just a freeform discussion between. Myself and these two experts at GitHub. so enjoy [00:01:17] Idan Gazit: [00:01:17] Hello, welcome to the Octo speaker series. My name is Eden and I'm with Gibbs office of the CTO. We look at the future of development, developer experiences and try to figure out how to make development faster, safer, easier, more accessible to more people and more situations. All I find jazz today we're trying something a little different.[00:01:43] Our guest is GitHub Star, Shawn Wang, better known by his internet handles Swyx and we'll also be joined by Brian Douglas, AKA B Douggie, who is a developer advocate and educator, and my colleague here at get hub. So, excited for that. I first met Swyx at a conference in the before times before the Corona, almost two years ago when he was giving a talk about state machines for building CLIs.[00:02:07]I knew of him in the context of his famous learning in public essay. And the talk that he gave was a fantastic demonstration of that diving into an area where he had relatively little expertise and making sense of that territory and jumping back out to explain it to the rest of us after his talk, he can.[00:02:28] To me that he he's actually a refugee from programming, Excel for finance. And I think coming out of that background, Swyx excels at finding that place of empathy for developers in the middle of the unglamorous, the hard parts of development the parts that we don't like to show off to one another, because they don't make us look smart.[00:02:49] They don't make us look, look cool. His work normalizes, the feeling of I'm stupid right now, which is very much a part of every developer journey and with which I identify very, very much. I think that's what makes his thoughts on community building so relatable and so topical developer facing businesses have to find a way to channel empathy into action.[00:03:13] And Swyx is figuring that out in all of its messiness in public for us to see and learn from. And in fact the reason I reached out to invite them onto the show is this recent post that he wrote called technical community builders. And looking critically at, at how that's different from the way Deborah has done today.[00:03:30]And I think this is a very interesting take on the future of, of, of this business function for developer facing businesses.  Okay. So before I bring him on I'll remind everybody that we have a code of conduct it's really important to me that chat is a place where everyone feels welcome. So, please make sure to make that possible.[00:03:47] And without further ado I would like to welcome Swyx and be Douggie. Hello. [00:03:52]swyx: [00:03:52] Hey, Hey, Hey  [00:03:54] Idan Gazit: [00:03:54] Swyx, you're, you're out in Singapore and it's like the middle of your night. Thank you so much for coming in and joining us for, for, for this talk. [00:04:02] swyx: [00:04:02] Oh, it's my pleasure. Yeah, I mean, I work specific hours specific time anyway, so, this is I guess the start of my day. [00:04:10] Idan Gazit: [00:04:10] Okay, well, good morning to you then.[00:04:12]Doug, [00:04:14] Brian Douglas: [00:04:14] I'm doing perfectly fine enjoying my normal time of the day, [00:04:19] Idan Gazit: [00:04:19] the north, the morning. That includes the day star. Fantastic. Swyx you said that you wanted to give a little bit of a, an upfront a mini talk about this before we dive into this discussion. Why don't I bring you on.[00:04:35] There we go. Okay. So like enlighten us. [00:04:39] swyx: [00:04:39] I can't, I can't actually see the screen cause I just have my slides full screen. So just pause me if there's anything I just wanted to, I guess, set some context for people who may not have read the post. You know, I think you and I, and, and Douggie, like we, we've all talked about community for a bit, so we may have more context than others.[00:04:58] And so I just wanted to, you know, whip up a few slides just to set some context and then we can actually talk because I'm very inspired by what GitHub does. And I'm definitely learning a lot from what you know, you guys do for, for community. Okay. So why invest in developer community a little bit?[00:05:16] I feel like this is a bit obvious, but, but the reason I write, like I would normally never write something like this because it just seems obvious. But the reason I write about it is I do a lot of conversations with startups and Sometimes for investing sometimes just to give dev REL advice sometimes, you know, marketing or whatever other network I can offer to startups.[00:05:38] I, I often do that. But in, in the past week or so, like at least when I wrote that book blog posts in one week, I had three conversations that all ended in can you help us find somebody to build developer community? And I was like, okay, this is, this is not just like one-off thing. This is a trend.[00:05:53] A lot of startup founders are feeling and there's no one really dedicated to it. There, there are people of course, but it's not like a, an industry trend yet. So I decided to write a blog post about that. And that's, that's why, I guess we're here today to talk about going on. Wait, wait, communities becoming more of a thing.[00:06:12] Always has been a thing, but it's becoming more of a thing and maybe professionalizing as well. So a bit of context about me, I think you done already introduced me quite a bit. I did change careers at age 30 but I definitely owe a lot of my career change and learning to code. To community, right?[00:06:27] I joined the free code camp community, the coding blocks slack group and podcasts was also a very big part of companionship through the journey of learning to code, which is a very rough one even for me. And and then of course I also did a bootcamp, which is a paid community, but one that's very, very focused on getting you hired.[00:06:46]And that got me into two Sigma Netlify AWS and I work at Tim portal. I think what I'm better known for maybe in the community space is, is my volunteer work in this reacts subreddit where I helped to grow the subreddit from 40,000 developers to over 220,000 before I stepped down I stepped down to basically, cause I started moving my interests to another front end framework spelt and I started that from zero to now it's like eight, eight to 9,000 feet.[00:07:12]And I also run a paid community for learning in public. So, I wrote a book, people like the book, and then we chat about career related stuff in, in our discord and then also go community. So that's my community credentials, I guess I should preface that. I guess I'm also, I had to put this here because a get hub at GitHub universe did this really cool Octo cat thing here.[00:07:33] So I just redid my profile as a GitHub look at which is really fun. And I did, I am pretty honored to be invited as a GitHub star which I think is a way that get hub recognizes community members as well, which we can also talk about, like, how do you recognize and promoted? You know, I, I guess your, your, your super fans and, and what does that really do for you?[00:07:54]Okay. So, I'll just, I'll just re blast through a few points and then we can, we can set it up for wherever you guys want to talk about. So to me, I think the, the main articulation that I want to have is like community is increasingly the moat of a lot of developer companies. So developers have always self-organized communities like IRC and BB SS.[00:08:12]But now companies, entire companies have communities where that's the entire mode like get hub is essentially get a plus a social network. And it's really like anyone can offer get, you know, but it, it, it's it's a V it's very hard proposition to replace a social network. And, and you find that the same for stack overflow.[00:08:29] There's a question and answer site. Anyone can build that, but you can not build the community. And same for hacker news. So it seems like very. You know, very key modes. And you would think that a lot more companies should be focused on that. But it doesn't seem so at least in, in terms of hiring, when you look at job titles and stuff like that they're more focused on the content creation and marketing, not so much community.[00:08:50]And I think that's changing right now and that's why I write about it. So that's the real question, like whose job is it anyway? There are community managers but typically we, we had one in LFI. They're typically focused on giving the forums and social media, like maybe making inoffensive posts or whatever.[00:09:08]They can do it. They're capable of a lot more. These, these are just stereotypical tasks that are assigned to community managers and then developer advocates have a bit of community as well. They do a lot of content and outreach to other communities. So it's not so much forming your own community rather than.[00:09:23] Let's how do we reach out and present and be a part and meet developers where they are rather than draw people to us, which there is a lot of as well. But the, they maybe don't have as much of a focus on sticking around and making interrelationships customer success is support documentation, solutions, engineering, all these are, you know, community of people who pay you and marketing, mailing lists, webinars, conferences.[00:09:45] These are all, you know, isolated communities of people who don't yet pay you, but could pay you. And then I think there's also, you know, apart from function functional split, there's also or chart split. And I do find that a lot of people who are directly responsible for community are at the lower rungs of the, of the org chart rather than at the, at the upper rung.[00:10:04] So it's pretty weird that it's just splintered all over the place. It's not really organized. I don't know. Doesn't seem like a organizational priority in a lot of the. Companies that I've seen. So the, the, the main realization for me is that community is basically part of the product. And in fact, in a lot of companies, it is the main part of the products, but it's, under-resourced compared to the products or engineering.[00:10:25]And I think something that is key is like, maybe we should not call it just community management, even though that's a default title. So I offered a few suggestions, like community developer or community tumbler. Tumbler is a word from I guess the circus. I took it from an Alex Holman post blog posts, but essentially a tumbler is someone who gets conversations going in and then pieces out.[00:10:47]So a lot of the times community manager does a lot of the heavy lifting. But you need to, in order for functional community to form into something that has many to many interactions, instead of one too many you, you need to get, so you need to have someone to create events where people feel safe and, and and inspired and motivated to, to share and to help each other out.[00:11:09]My preferred term right now is technical community builder because it's very similar to technical product manager, which is an actual job title at Microsoft and Amazon and a bunch of other places. And it has an emphasis on technical and the, and there's a question of like, must they be technical?[00:11:24] Of course not, of course you can have very, very good community builders and community managers who are not technical at all. But I think people who are technical have this extra dimension, which they can really empathize with developers on and connect people, solve their, solve their problems right away.[00:11:40] Basically just, you know, be one of, one of them. Like when you, when you talk to someone who fundamentally empathizes with your problems as a developer, you share more and you, you have deeper discussions. And then the other question is why must the title be different? I posit that it's very similar to, to the once in a lifetime upgrade in status impacts authority and career prospects for ops professional.[00:12:02] When the dev ops and got started, like dev ops used to not be a thing. Now it's a very highly in demand thing. And that's because it was a rebrand of existing skills that were, that, that were around, but, you know, repackage with, with new technology and a new focus in in a lot of organizations that the, that they realize that they need to invest in it.[00:12:22]So I think a similar movement needs to happen and you, you can't really rebrand something by calling it the same exact name. So th so that's why, that's why there's an opportunity to rebrand this discipline here. Okay. I'm very influenced by this model from comScore, which is essentially the opposite of what I showed you earlier, where community used to be at the fringe.[00:12:42]And you used to have all these other, other things in control of community and here, and, and the community led model kind of inverts that where community is at the core of everything. And from your insights from community and building relationships you, you spin out marketing, you spin out products, you spin on sales and so on and so forth.[00:12:59]And I think it's very interesting migration from periphery to core which. Been told actually is the same thing. That's happening to data science, data science, at least in, in the, in the companies that I've worked with used to be a fringe thing where like it's a bunch of geeks, you know, messing around with their with the analytics to like now it actually is part of the reporting process that generates a lot of product and sales and marketing insights.[00:13:25]And I think, I think community can, can do that with humans and not, not less, less less data, but you can, you can have a lot of data with, with it as well. So the question is why invest in it? And really, I think my, my fundamental assumption is that traditional marketing and support isn't cutting it.[00:13:38]This is the traditional idea of a marketing and sales funnel. You have awareness, evaluation, and conversion, and we as developer relations people definitely biased towards awareness for better or worse. But I think it, it is only one part of the picture and it's very transactional, right. It, you start at the top.[00:13:53]And then you, you, you come out at the bottom as a, as a salesperson and then, and then you're, they're done with you. I wash my hands off you and I, and you're handed off to someone else. The, the problems here are a few, few fold, right? Like marketing, especially in development. Marketing has extremely long cycles.[00:14:08]In traditional digital marketing, you need to touch you know, th th the traditional advice is that someone needs to hear about you six to seven times before they even check you out. For me. I know a lot of technologies. I ignore them for a year just to see if they stick around. And if they're still relevant after your, then I check them out.[00:14:24] So try to do marketing attribution. Impossible. So, very, very difficult. And, and not within any con China performance evaluation timeframe. And then also what happens after I convert, right. What happens after I come out the funnel? Do I feel supported there? Do I, do I grow and succeed and all that?[00:14:39]So the solution is to change from mostly transactional finite games to relationship-based infinite games. And this is the bigger picture that I see there's marketing and sales going on here. But then you, it exists within a broader scope of community that kind of catches all the other stuff that isn't really handled by marketing and sales.[00:14:55]We actually has loaded up the orbit model, which we can, we I'm sure we're going to talk about, so instead of the funnel, which is a very linear approach the orbit model, like kind of is isn't or. So characterize as the people around your company, as a people orbiting your company and they may be in wider orbits, or they may be in closer Orbitz.[00:15:14] Sometimes they may drop out. Sometimes they may come back in. It's a very infinite relationship model, the way they just constantly orbiting. And you're just trying to draw them closer with more and more gravity towards your, your software or your community. The reason I think it's important for startups in particular is that it's a very big part of crossing the chasm because there's a small set of people who actually picked technologies based on pure technical merit.[00:15:38] And there's a large set of people who pick technologies partially on merit partially because there's a strong ecosystem. And there's a very, very big steep gap in between that. And people who can help companies cross this gap can deliver a lot of value for, for the companies involved. And, and that's a, that's a really core insight, I think.[00:15:57] Okay. There's even more reasons. In my blog post, I don't have time to go into all of these, but we can talk about them in a discussion. I don't want this to be a lecture and I will refer and I have the last part on why now. And I'll send people to the blog post if they want to see it, but that's my short little primer for my thoughts on community.[00:16:15]Idan Gazit: [00:16:15] Fantastic. That was a solid, that was a solid introduction. One thing that really strikes me about what you're calling out here is that I can't, I can't highlight another area where there's a business motion. That's so central to success, which is which is so undefined. Like you think about most, most functions in a business like marketing or engineering or product.[00:16:40] And if I took, you know, 10 random people and asked them, you know, what does this job entail? What does success. Look like, and how does it contribute to the success of the overall business? And I'll get 10 answers that are more or less the same. And here, I think what's, what's special and maybe is in a, in a difficult sense is that I don't think that if I asked 10 people, like, you know, what's the purpose of this business function?[00:17:05] What does success look like? What does the job entail? What level of talent do we need to hire in order to accomplish this? Well, even, you know, things as boring as, like you say, sort of like, you know, where on the totem pole, like, you know, who, who does, who's responsible for this and who do they report to that level of, of definition?[00:17:25] I don't think I'm going to get 10 answers that are mostly the same. I think I'm going to get 10 wildly different answers that that don't resemble one another[00:17:33]Brian Douglas: [00:17:33] If I can add to as well. This is something that's come up really recently for me. Cause I, I shipped a YouTube video yesterday focused on like what the future of dev role looks like. So think about community and how that sort of changed even in us being over remote. There's no real like structure.[00:17:48] I think the everything, everybody can do something to move the needle, but I think the folks who are doing really good jobs is when you look at that, that model of the orbit, the folks as you bring more and more people closer to the nucleus they stick around longer. And I think one thing that Swyx and I had in common is that, well, a couple of things, we had a comment, like I was part of that react sub subreddit as well.[00:18:07]We also spent time at Netlify. So like I've saw a lot of the same stuff that Swyx us all and what I agree with everything that he said too as well. And the things that I think I saw successful at notifies that we had a committee. Folks who are just really excited about the product. And we found ways to bring them closer to the inner circle, to the point where there are Netlify employees, who now, who, who came from that community.[00:18:27] So when you think of like recruiting or not just actually using the product, but if you're looking for your next advocate, it should come from the community that's already existed. [00:18:35]swyx: [00:18:35] Yeah. I, one of the points that I made was that if hiring is your biggest problem just like 99% of other startups or companies in general, it doesn't have to be startups.[00:18:46]Then building a strong community helps you source very, a much higher quality of employee than you know, just picking any random developer off the street. [00:18:53] Idan Gazit: [00:18:54] I mean, yeah, like there's, there's in the post, you actually highlight that there's this sort of litany of, of of benefits. And I don't remember all of them off the top of my head, but I remember as I was reading through the post.[00:19:06]Excuse me. I thought that there was a lot more there than I expected, you know, like I expected going into it. It's just like, well, what benefits am I going to, I see from, from doing this well, well, you know, I'll do a better job at outreach. I'll do a better job at uptake of my product. But you know, I hadn't thought of the hiring angle, even though that's, you know, it's playing right there in front of us.[00:19:26] You know, if you build a strong community, you have a very like high quality pool in which to fish for, for, for, for standout employees. That it's a source of, of not exactly free marketing, but you know, it's like you have a chance of growing a class of evangelists, people that are going to go out and spread the word about, about what, whatever it is that you're doing.[00:19:46]I've even [00:19:47] swyx: [00:19:47] sorry. I've even gone one step further. So I took the hiring thing to the extreme. So, the, they started that I work at right now, it's in portal. We actually started listing jobs for our customers so that we can help them hire based on at least through us. So, so like, okay, if you don't work for us, but can just come work at one of the, one of the company, one of the customer companies.[00:20:07]And it's just like, like we win if they win, you know what I mean? And, and it's, you can just take this to an extreme level where you just start becoming a de facto recruiting agent. Really good. But I do, I do that, like, you know, if you do a really good job community, actually your the person's membership in the, in your community actually outlives there.[00:20:24]Present employer. And that that's a really strong community. That's like, okay. I'm, I'm I'm first and foremost, a member of your developer community. Then secondarily, I just happened to be at this company right now. But you know, I do, I do have my primary network within, within your community.[00:20:38] That's a really strong one. [00:20:40]Brian Douglas: [00:20:40] And I guess, can I add actually get some clarification too, from you Swyx when you talk about these terms like dev ops, who like everybody knows what dev ops is now, it wasn't an unknown thing, you know, 10 plus years ago. But when you build a community, like what are some sort of like ways you can avoid those pitfalls?[00:20:56] Because I know every time I go to an event and I join a random slack channel for just that event, like I leave that slack channel as soon as it's done. So like, I'm curious what your, your, your thoughts are. As far as building community from scratch. [00:21:11] swyx: [00:21:11] Oh, wait, are you saying that this is a problem with DevOps?[00:21:14] Or are you just so [00:21:15] sorry? [00:21:15] Brian Douglas: [00:21:15] I use dev ops because dev ops is a very clear term. There's already established community, but if I started B Douggie conference and wanted to everybody joined the movement, like it's going to be a challenge because it's going to be me and maybe a couple of people in chat. So like, how do I make sure that this is not another community that's become stagnant or stale?[00:21:34] Like I want to create the next devil. [00:21:36] swyx: [00:21:36] I gotcha. I gotcha. Yeah. I think so you and I, of course were very informed by our Netlify experience for anyone who doesn't know  actually started the whole debt roll practice at Netlify. And I basically, you know, was one fourth of his job after he left. Anyway and something that nullify did, which was brilliant was that they didn't create the Netlify movement.[00:21:57] They didn't create the Netlify conference. They created the JAMstack movement and the jazz that conference. And, and, and I really. I like this idea that you build something that's bigger than yourself. Like you build a movement that other people can evolve get involved with and see themselves in to the point where they start competing with you and you have to be okay.[00:22:15]If you're, so mission-driven that you're okay. Losing because someone did your job better than you. Then you, then you've really found something that's worth building a community around because otherwise it's just, you're building a cult, I guess, where it's centered around you. And, and so I, I really like that.[00:22:32] For example, I'll give you a concrete example, which is at, I think our second JAMstack conference Netlify we invited people from Microsoft competitor in, in some ways who did not use Netlify at all, did not pitch another fight at all. But just presented their ideas on JAMstack and we invited them as a speaker.[00:22:49]Yeah. Ha. Yeah. I mean, I, I, and I think that we should have more you know, competitive competitor companies also visited the conference as well. I think we should have more of that. I think it shows a fundamental level of security that you're like, okay, I'm not threatened by you. Or like, I care about this enough that you know, this is big enough that multiple players can win in this space.[00:23:11] That's a real community where, whereas you know, a lot of other times you're just running it to as a feeder service into, into, into your marketing funnel. [00:23:22] Brian Douglas: [00:23:22] Yeah. I like the, the thought about building a community that's bigger than yourself. And I think like speaking from good hubs perspective, cause I was a time user recently employed at GitHub in the last three years.[00:23:32] Not really that recent, but it startup worlds. That's, that's kinda, that's like forever ago. But what I'm getting at is like the whole get collaboration, open source protocol. I, I liked that GitHub didn't try to strangle it and try to own it completely. There were other competitors are doing a great job and having collaboration tools around, get up, get, just get in general.[00:23:53]And that sort of funnel of new users, community conferences, slack rooms, discords it's been helpful for me in doing my job because there's already established community that I can just go in and not try to take leadership on, but more of like, Hey, I want to learn from you as well. [00:24:10] swyx: [00:24:10] Yeah, totally, totally.[00:24:11] I do think that at some level there's, there's a transition from like, okay, this is bigger than yourself, but then at some point you're, you're big enough that you are a community on your own. And I think, you know, once you're past like 50 million developers, you can have your own community. That's totally fine.[00:24:27]Same thing for like Salesforce at Dreamforce and AWS and reinvents. Like we all have, you know, huge companies have their own conferences and this totally fine, but I think when you're getting things off the ground, that's a totally different story.[00:24:38] Idan Gazit: [00:24:38] I think, I think you, you, you touched on something interesting there about picking, you know, it's always, it's always hard to stay away from like blatant advertising when it comes to like developers, like, you know, who do I work for? What is it that they make? That's obviously going to be a central part of the discussion if, you know, I'm representing, you know, company X or Y but you highlighted that, you know, for Netlify the story was not it was not Netlify, it was JAMstack forget hub it wasn't look at GitHub and, and and our specific web app, but the the collaborative nature of open source, specifically powered by decentralized version control.[00:25:18]And like, you know, the get is important. The polar requests are important. The rest of the stuff that get it brings is important, but it's not that's not the thing that's going to emotionally resonate with with people on its own. Not unless you have such a, you know, so much of a better product that it's like, oh my God, people are wowed by just the existence of this thing.[00:25:38]Which is great. If you can pull that off, like more power to you, you know? I think you, you touched on this sort of linear path. Okay. Like you have a story, you tell it and you think about this, this path that, that you want to take people, a journaling journey that you want to take people along that starts in marketing territory and ends in sales territory.[00:25:57] Hope. And then by contrast, you know, coming back to that. To the orbit model. One of the sort of assertions you made there is that your remodel is not, it's not strictly linear, that it has these other dimensions. It has this love dimension, basically like a measure of, of activity and reach as a, as a, as a measure of influence.[00:26:14] But when I still look at this at this model, it's still talking about these sort of concentric rings of, you know, you start at the very outer, most orbit, you know, as just an observer and accessibly, you move, move your way into the middle. That's still seems like a relatively, you know, linear journey to me.[00:26:30]I think it's curious, I, you know, that they, that they put advocates at as the closest, the inner most ring versus contributors. Because when I think about like, where, where do I spend the maximum amount of energy? It's in contributing, it's not an obvious, it's really easy for me to advocate.[00:26:48] I can advocate. React until the cows come home. And you know, all I got to do is write like nice things about react, but contributing to react like an effortful activity. So, I'm curious, you know, about that journey, like, what do you think, is it, is it really about getting people to contribution is contribution just a, like a left turn on this.[00:27:09] Does this make sense to you? I don't know. I'm curious what you think.[00:27:11] swyx: [00:27:12] I, I feel like they've probably written this up. So I'm actually looking up the, the, the writer right now, cause this is probably a better question for Patrick Woods who came over this model. But I, I agree if you want in principle, at least in an open source context that people who number of people who contribute are far less than the number of you who advocate for the thing.[00:27:29] And maybe that, that should be the inner circle. I would say that it's less linear because the whole point is that you can jump in and out of different orbits depending on your life situation or just whatever projects you're working on. That's totally fine. And it's not considered a failure. Yeah, I don't know if that.[00:27:47] Brian Douglas: [00:27:47] Yeah, I do have some thoughts cause I know Patrick and I know Josh pretty well and I have been able to rub shoulders with them so that the founders of the corporate model or the orbit company as well. And I talked to Patrick on his podcast, which is called developer love and episode one, you can hear way more detailed what I go into and right now but the one thing that I had to figure out when I joined GitHub as a developer advocate and at the time we had advocates, but no one actually had the title at the time at GitHub.[00:28:12] So I was even the reigns to do developer relations at, get up, figure out what that meant. And at that time I had to figure out also what that meant, but also give a talk at developer dev role con cause we had a speaking slot and I call myself the Beyonce of get hub. And I do that tongue in cheek and I joke around about that, but I do that because like, I don't play.[00:28:33] I don't play Beyonce music all day, every day. Like I don't, you know, I don't know how to play the backing tracks on base or anything like that. So I'm not really contributing in that sense, but I will tell you about Beyonce and tell you her story. And I think it's the same thing with open source. Like I made a contribution to no JS back in November, it was a really painful process.[00:28:50] I learned a ton and my contribution to the no JS was that I read blog posts. I did a contribution on their repo, but the difference is when I get on stage and I show you how to write a script in node and I go around and I share, I'm like, well, I noticed still great despite dyno or Dino and all these sorts of Russ compiler times, like I'm still advocating for no JS.[00:29:12] And I think. If you can bring more people to the sort of inner circle. I think that's, that's always going to be super helpful. And if you have people who are going to be the mouthpiece, I guess what I'm getting at is my job at GitHub is not to be the number one developer advocate in the world. My job is to build more developer advocates.[00:29:30] So if you can advocate, get, get help on behalf of get hub and I don't have to be involved, then that's an entire automation automated process. Now you can argue contributions that can automate that and just grow and sustain the project. But there are a lot of GitHub projects or sorry, open-source projects have lots of contributions that you've never heard of.[00:29:48]So like until someone tells me that exists or I see it on the trending tab it's going to be a hard a hard thing to focus on to try to get more contributors when no one's actually knows about this project. [00:29:57]Idan Gazit: [00:29:57] Right. There's there's definitely, I mean, that's definitely like a, like a hurdle to be crossed in terms of just like, you know, where do I even hear about this?[00:30:05] I mean, obviously there's, there's, you can think of that as a, I'm sure. Not coming from a marketing background, you know, I'm sure there's entire textbooks about the phase of like, you know, how do I get people to even know that I exist before I like, you know, how do I wedge the door open long enough for me to attempt to get across?[00:30:23] Like, and here's why you should care about me. There's a whole phase of, of, of just spreading the word. [00:30:30] swyx: [00:30:30] That's why, that's why I think, you know, we I do, I do think that we do need technical community builders, whatever the, you know, whatever we call this thing. They, they, they probably need to be technical because they need to have that technical leadership of like, I authentically went through the same journey that I'm telling you that I'm hoping that you also go through with me on this.[00:30:48]And, and this is something that non-technical community managers cannot do. So it's like a. Thing where you have to hire someone on who has a software engineering background or is it, you know, pay them like a developer, but then put them on non-technical things, which is communities less Senegal.[00:31:09] Brian Douglas: [00:31:09] Right. You know, I don't know. It's a weird job. It's just this thing, authenticity to it too as well. Like I would not have know how to be a developer advocate if I wasn't a developer first. So like, I always put myself in the mindset of like, if I had to use this thing and it takes me 12 minutes to get it set up, like, I'm probably never going to use it again.[00:31:24] So like, how can I advocate on the behalf of this product to make this better? And how could I bring that information back to whoever makes decisions at this project company maintain her level or whatnot. And it's just like, I, I just still think it's one step more than just contributing, keeping the lights on.[00:31:41]It's more of like, Hey, I want to also bring that feedback. How can I improve this? And I think. The, the roles inside the community. I think technical community manager, it's a great world because it actually touches all those different pillars. And specifically in the  model, I know we're focused on that, but like being able to turn it on, turn it off and also know how to listen as well.[00:32:03]Are very valuable like attributes that I would love to have on my team. I get hub for sure. And we do have those by the way. I just want to set the record, [00:32:13]Idan Gazit: [00:32:13] Just to be, just to be upfront and clear. So, I think, I think we're all dancing around a little bit, the, the, the bigger question of what are the qualities like, what are, what does success look like for this role?[00:32:25] How does it, how has it changed? Like, you know, if we, if we called the role previously developer relations, and now we're calling it this subtly. Name around technical community building and sort of the, the, the stewardship and the shepherding of, of a community. What what's success, how is success different in, in this sort of like a slightly different like mental model and, and what's different in the day to day?[00:32:50] Like, you know, if, if previously, you know, previously I was doing Debra and that meant I was doing X, Y, and Z with my days in order to succeed at my job and contribute to the success of the business. What does that look like in this sort of new, mental framing of community building, as opposed to simply developer relations?[00:33:11] swyx: [00:33:11] Yeah. So I can give a crack at it and then I'm sure Doug has, has other thoughts. You know, at Amazon, I can tell you directly the, the, the KPIs that we were reporting and, or. To the outside world. That's, that's the only thing that they expect out of us, which is number of views on the content that we produce.[00:33:28] Right. Very depersonalized. You're just a number to me. Did I get a thousand? Did I get 10,000? Did I get a hundred thousand? I did a better job if it was a bigger number. Great. But there's no relationship there. There's no measurement of quality, like was, was that they just glance at the title.[00:33:43] Where did they actually read the whole thing and try out the demo? There, there are different weights for different you know, actions that people can take. And we do try, they check that, but it's all a joke. Like it's not okay. Everyone knows that it's a joke. You know, it's a proxy to what we really want, which is people trying you out and seeing if they like you and you know, short of standing over their shoulders, you can't really get that.[00:34:06] I'm so sorry. What I, what I do, what I do like is that orbit is trying to innovate on that by measuring you know, what they call love, which is just the intensity of activity which is the same thing, but tracks on a per person basis. And, and, and suggest in, and that opens up the possibility of like, having more of like a CRM model, which is very much the sales idea of like, you know, have, have an idea of that, the customer journey from beginning to end and suggests or automate engagements as they, as they come along on the journey.[00:34:36]Which, which is less, it's just, it's just a lot less transactional, like at, even at Netlify. Like I was, when, when you get to the point of like attaching UTM tags to your posts, to see the, the response of of, of your campaigns that's just, you're just marketing. You're not there role. I mean, and so, so, so I definitely care a lot more about the relationship aspect and how much you can, you can cultivate just by understanding the customer journey rather than treating them as a sort of faceless numbers [00:35:04]Brian Douglas: [00:35:04] to add to that too, as well.[00:35:06] Like I am all, I'm definitely against trying to look at views and how many people are in the stream right now. Cause I think that's you you've lost it at that point. But I think what success looks. Is the names that I see in the chat right now. I see a lot of familiar names. So how many of those familiar names do I see next time?[00:35:21]Because as those were my, I didn't even know this term tumblers that you mentioned in your slides. Cause I've seen this around, but I didn't know what that was. The party corgi chat has tumblers and I didn't know what tumblers were today. But I guess I have an anecdote too, as well from net network.[00:35:33]Netlify when I was doing, and we, we were bottom growing and we have this opportunity to speak or speak and also attend and have a boot that react rally. And it would have been super easy to say, Hey, can you fill out this form? And we'll send you, we'll get your email. And then you have a chance to win, you know, this thing at Netlify.[00:35:52]And instead my approach at that conference, which was like one of the first conferences I ever had, any sort of marketing, advertising, whatever my approach. Come to the booth. We had an Nintendo switch on the, on the booth table, and then we had a bunch of stickers. And the thing was if you switched to Netlify, which is like, it was a pine, really.[00:36:10]And then we'll give you a chance to win the switch. And the step was, all you had to do is scan a QR code and then click the deploy to Netlify button. And it was on that, that website or, sorry, it was a get hub repo. You put click the deploy Netlify button, and then inside the site you deployed from Netlify.[00:36:24] After 15 to 30 seconds, it took happened to be a gap suicide. So we were at on-brand for the conference. Then you read the website you just deployed and the instruction says, click this button to tweet. And if you tweet that would actually put you in a hashtag and I had a node server that would then pick a random person.[00:36:38] So we did this for three days. We gave away the switch by the second day, cause we'd had enough people. I think the conference was like 600, 700 and we had about 320. People who participated. And then after the first day we knew we engaged the community because the next day two or three people came and said, Hey I clicked the button and then I saw what you deployed.[00:36:55] And it was a Gatsby site. And at the time Gatsby wasn't even 1.0, so like nobody would use Gatsby at that time. And they're like, yeah, I switched my entire blog to Gatsby. And it's hosted on Netlify. So then we know, Hey, this person is actually super engaged. This is, this is my next advocate. Like, I'm going to, whatever you need, I'll give you a sweater or a t-shirt eat.[00:37:12] If you don't win the switch, like I will engage you and give you everything. You need to continue down this path. And that was the focus. And like for marketing, it looked great. But we didn't have the sort of traditional fill out this web form. It was this click, this button used a product if you don't want it, or if you want to delete the repo by all means, get hub out at the time, get hub had all hit all your information.[00:37:33] Like we weren't even collecting your information. So like the goal was just really. Taking it for a test drive. And then if it works out for you we have this forum, we have this community, we have get up issues like this jump in where you, where [00:37:46] swyx: [00:37:46] you fit in. Yeah. And then we also, I think potential enterprise team customers.[00:37:52] This was after Brian left, but you know, w w we also had like a separate process for potential customers to highlight to the sales team where we actually scanned their badges and took down info and basically fed indirectly to their CRM or whatever. And that was pretty good because w we were able to capture a lot of really useful detail that gave our salespeople are really good [00:38:10] Brian Douglas: [00:38:10] headstart.[00:38:11] Yeah. And you just don't know who you're, who you're chatting with too as well. Cause that, that story. About being at react rally. One of the people who walked up and said, Hey, this is actually pretty cool. That person was maxed away, Burr and max Storybird. A lot of, a lot of people know him. He used to actually work at, get hub for a time.[00:38:25] He built a whole product, got acquired by GitHub, and now he's at Gatsby as well. Coincidentally. But I never met max. I just knew who he was. I knew of his story. And then we connected and like, he didn't like, he wasn't like the number one Netlify fan boy, I don't, I'm pretty sure he didn't walk away shipping everything to Netlify, but we made that connection.[00:38:42] So every time I had a conversation with max or he remembered me, that was like a nice serendipitous moment of like, oh yeah, we met at that one time that when I did that thing and like, you just can't put a metric to that of like, what big names do you know that like, at the time max was like, he wasn't even a big name, but like you just, yeah, you just can't quantify that you can't put a number to that.[00:39:02] Just have to go. [00:39:04] swyx: [00:39:04] I mean, it probably contributed to the reacts to be on Netlify as well. Yeah, it's, it's, it's a domino effect and there's a sort of like a density effect, like one person using it. All right. Cool. Two people. All right, cool. But then like three prominent people then it's starts to become a thing, you know?[00:39:19]So I like that concentration of like, presence which, which also points of it being more of a community. Right. So, yeah. I don't think, I don't think we gave you that like a lot of like numbers, we're just like, we just talked about people, which is very natural thing. [00:39:34] Brian Douglas: [00:39:34] Yeah. And the one thing that I did want to add to real quick is that the one thing, when I joined GitHub, my biggest goal was I spent four years in San Francisco and I only needed like a handful of get up.[00:39:43] Employees never went to, to get hub office. And my goal is to get up employee today. And a developer advocate is I want to put, be a face to a company that has an Okta cat for a face. Like I want you to know who to reach out. And if it's me, or if it's not me, like, I'll give you the right person. And that's like one of my goals that get hub to do, to be an advocate for getting you in the right router.[00:40:02]Idan Gazit: [00:40:02] That's, that's interesting. I mean, like, you know, there's a part of my brain in the back and it's like, you know, like the true wind was the friends we made along the way. Exactly. It turns out that It's interesting though, because this role that you, you just described, this thing exists, it's called an ombudsman. And if you're familiar with this, I think it comes out of the military. Like, you know, this is like the person that the families at home are in touch with in order to like, you know, reach their, their loved ones that are deployed wherever and have any concerns or whatever.[00:40:31] And so the there's a, there there's a sort of like, a name for, for, for this role of like, you know, liaison into the company and actual human that can, you know, step in and maybe not help you solve your problem directly, but at least point you in the right direction, like, you know, attach you to the person that can actually help you move forward.[00:40:51]But you're, you're right in saying that there's like, you know, these aren't, you haven't really given me like hard metrics. Like, you know, if I'm now going to pitch to a company like, Hey, here's what I'm going to do for you. They're going to be like, okay, like, What are, what are the, what are the OKR is what are the KPIs?[00:41:09] What, what, what is the thing that you're going to be measured on? How do we know if what we're doing is succeeding. [00:41:16] swyx: [00:41:16] There is a company that actually does that, which is Weaver that AI, they call it community qualified leads, and it takes a very salesy model to, to this direct attribution towards sales and marketing and all that.[00:41:27]And so, yeah, I mean, once you have the tracking system in place, you can Def you can absolutely do that. And if you need to quantify in that way then absolutely. Yeah, you know, I, I, I don't necessarily feel that strongly because it tends to be. Then become a fight for whoever is the last touch who gets the most attribution which makes it a very political thing.[00:41:49] Idan Gazit: [00:41:49] Sometimes between departments in some senses, that sounds like it's going to set up all the wrong incentives inside. You know, it's like when you're like, you know, at a store and you get mob by like, you know, it was like, no, I'm the one who like, you know, did anybody help you today? Well, [00:41:59] swyx: [00:41:59] yeah, it's like, so for me, I don't know if you guys have played Kerbal space program.[00:42:04] No, [00:42:05] Idan Gazit: [00:42:05] only her only her. [00:42:08] swyx: [00:42:08] Okay, I'll just give you like the rough intuition. When you, when you start off trying to get the rocket from off the ground, into, into orbit you're very concerned with all the tiny little mechanics of like what degree tilt you're doing, what what your yall is and pitch and whatever and your, your velocity and your weight and, and the stages that you do.[00:42:24]But once you're basically at velocity and in space you then only care about your like DV. I forgot what the, the, the, the calculus is, but like, you only care about your high level metrics and you don't actually care about the low level stuff, because you're, you're, you're beyond that.[00:42:41] You're, you're cruising at a speed where you, you should just move the big controls that actually matter, and then leave the lethal minor attribution's to, to like random noise or like, it's going to bubble up if it actually becomes. And I, I think that that's how large and our community should be managed.[00:42:57] Like, as long as, as long as your efforts are growing at a, at a decent rate, you can trust that it probably will trickle down to whatever and you don't really have to be too precise about how exactly you attribute it. That's at least my intuition. It's going to be, it's going to bother me now that I don't remember what the it's like DVD or something like that for your, your, your Delta Delta V or yeah.[00:43:18] Anyway, I'm sure someone in chat is yelling at me. I have a question for you guys if, if, if you want to enter entertain this. So there's a, there's a problem in my mind, which I haven't resolved, which is this idea of a super user. So at Netlify Netlify we call them the other friends at get hub.[00:43:32] You call them, get up stars. Stripe has drug community experts. These are an AWS as, as community builders. These are basically unpaid super users, which you give some kind. Yeah, but you know, perks but they're your external third party advocates. What do you think about them? How do you, how do you make them effective?[00:43:49]And, and basically everyone is new to this game. Like GitHub stars program is like a few months old. Right. Or maybe a year old. Yeah. Since September. What's your, what's your, what's your take on these kinds of programs? Like what, what is, what are what's their role compared to you guys? [00:44:06] Brian Douglas: [00:44:06] Yeah. I, I could speak on partially behalf of get hub and something that I've always also put a lot of thought into before I got, I could have, because I was trying to it's ironic because I was trying to help build what is now the net difference.[00:44:18]And but I, I just didn't have time before I left to, to actually see that. What it is today. But I had that same thought of like, what is the reason I gave that talk on being the Beyonce of GitHub is because Beyonce has a super fan group. And they're called the beehive intents of if you go after Beyonce, that beehive will show up.[00:44:37] And and it's not as that intense, but it's like when people came after her, after she had the baby, like [00:44:42] swyx: [00:44:42] people will know. SNL had a really great skit where there was like someone who had admitted that they didn't, they didn't like a Beyonce song. And then they just, the beehive showed up. Yeah. And it's [00:44:52] Brian Douglas: [00:44:52] the same that we saw with the the K-pop stands like BTS that's a little, like more extreme, but like there is a group that will go to bat for you.[00:45:01] And like, my job is to really go to bat for the hive. So to answer your question, like success looks like these are the folks that are creating the courses, writing the books, they're there on the forefronts of creating the YouTube videos. When the thing is announced, like it's the opportunity to give them as much information as they want.[00:45:20] So if they want to monetize it, they can, if they want to grow a community around it, they can. But it's simply like they're doing a good job. And we want to make sure that we're catering to them because. If, if someone's already doing like my job for me, like I'm all for, Hey, let's, let's have a coffee.[00:45:35] Let's let's learn. What are your blockers? How can I unblock you in the future? Or are there any features you're looking to like to ship? Like, let me introduce you to the PM and let me let the PM get your feedback directly. So like you just take the company directly to the source of the growth and that's, that's what I see it as.[00:45:52] And I've seen very, I've had similar talks to other leaders of these sort of groups. And that's usually what their goal is, is like this help empower folks through the people who are empowering the,[00:46:02]swyx: [00:46:02] yeah. Yeah. I like that. [00:46:05] Idan Gazit: [00:46:05] I, I I'm like strongly reminded of there's a post from way back in the dinosaur ages. About success being a function of, of being able to grow a thousand fast. And that if you can find a way to, to reach that sort of threshold and it's thrown out there, I think in the same census at our member who coined the, like, you know, mastery comes at 10,000 hours or something like that is like a order of magnitude.[00:46:28] Like when you reach this this, this tipping point, and that's, that's a signal that like, you know, what you're doing is working and maybe, maybe this is the kind of metric that that we're looking at. It's not views, it's not posts. It's like, you know, how many, how many engaged, super fans are? Are we creating?[00:46:44] How many people do we have that love the thing that we're doing so much, that they're going out of their way. To spread that to more people and looking at that as the like you say about the Kerbal space program, sort of like, you know, the gross leavers of, of success, not the little like fine tuning adjustment dials, but like, you know, the big steering wheel that indicates that like we're doing the right thing.[00:47:05]I don't know. I mean, the, this, this question of like, you know, what has been the impact of, of GitHub stars? This has only existed, I guess now since Doug, you said since September, September. Yeah. So this is like a hot minute old or maybe it's like a thousand years old. It's unclear. [00:47:19] Brian Douglas: [00:47:19] Yeah.[00:47:20] And actually, I, I think the official launch was September. We actually started formatting this form I guess making the formation of the stars around may, June. And I get to have like a very clear impact that we, I saw from my end which we, we watched this feature called to get hub profile, read me it's a feature everybody has access to, but at the time we had the sort of under wraps in like a super alpha we do for all features that get hub.[00:47:42] We have the staff ship that we call it. Alpha alpha or whatever comes before alpha, but that's what we, we have, we test our feature. So get up, employees all leverage it. And it sort of like came out of nowhere as far as this feature goes and what I have access to it. We are able to get this in front of stars pretty early on to the point where we actually had to get up star who created some content on how to build your, your profile.[00:48:04] Remi was like pretty cool, like within a week of launch. And that basically is the de facto tutorial on how to create a profile. Read me because it was so early, it just came out and this individual Monica, which I guess I can, I can name them as well. They are now like, they're, they're SEO wise, like that's the post, like it's not the docs.github.com and like that's success to me.[00:48:26] That's like seeing someone win in the, in the source in the sense of content and engagement of the community. And now as the point person, when it comes to that. [00:48:36] Idan Gazit: [00:48:36] That's that's actually a, really a really great it's like, you know, I know that I've succeeded at this job when, when other people's like, you know, results, outrank mine on, on on Google then success.[00:48:46]That's fantastic. We actually have a question, meaning a question here from Jeremy feel what's the feedback for, for a feedback loop for these super users? Like, I, there's a follow on question. There is, should the company be monitoring the output to manage their message? I'd argued that, you know, you can't manage other people's message otherwise you have to pay them a salary.[00:49:07]But but there is, there is a question if this is, if this is part of what you're trying to do as a community builders to build up this frontline, like top tier. Set of, of super fans. How do you help them succeed at that? Like what ammunition are you giving them? And how can you influence, I guess sort of like what the Diane's like, I launch a new feature.[00:49:29] What I really want is for my super fans to go out there and create content that shows off like, you know, what this new feature can do. Maybe use it in ways that I didn't even think of show how it fits into like a million different workflows. And each of those super fans, also, they have another foot into whatever communities they came from.[00:49:47] So, you know, you say like reacts Velt view, whatever, all these front end frameworks I'm going to have super fans from all of these different sort of walks of life. And each one of them is going to take the new thing that I did and show like, this is how it matters to the view community. This is how it matters to the whatever community and that's I think a very different thing.[00:50:07] So what do, what do you both think about that?[00:50:09]swyx: [00:50:09] I like it. [00:50:13] Brian Douglas: [00:50:13] Yeah. I don't know if you, if you had connections to the AWS community builders when you're AWS. [00:50:17] swyx: [00:50:17] Swyx yeah, yeah. We I know, made it something. Yeah. [00:50:22] Brian Douglas: [00:50:22] Awesome. Yeah. So I get we mentioned the get up stars but we have other groups as well. Like we have some members of our support team that also have a support community give him very likely a 56 million developers worldwide, which is, it sounds like a flex.[00:50:35] It is, but it means that we just have multiple groups. So another group that you might not know we have is we have a group of open-source maintainers that we talk to on a regular basis. And it's, it's actually a structured conversation and a group, and we get feedback from some of the largest open source projects that you've heard of.[00:50:51]And it's, it's very important for us to actually treat them. With this well not treat them. I was going to say treat them with respect, but it really is respecting their time providing, getting their feedback directly to the source of the people who can actually impact that feedback into our, our platform.[00:51:06]But as far as structure goes, the structure, it looks like we have a monthly meeting with all the stars. Everybody's invited and we call these the stars inside calls and like the PMs will show up and talk about some really early ideas of features and they get to see the feature develop over the course of time until it's ready for beta.[00:51:23] And at that point it starts with like, oh, I knew this was coming out. I'll use this, I'll incorporate this in my team at work, or I'll write some content, whatever you want to do with that. You just have some interactions. And that's what we did the stars conference which is, again, it wasn't a huge public events.[00:51:38] It was more just for the stars. So it's the point where I think I've even used Swyx you mentioned like, oh, I didn't know. This was a thing and never heard of this before. And it was like, because yeah, we just did it. It's only for the stars is not meant to promote GitHub in any way. It's just to give you access to all the information [00:51:54] swyx: [00:51:54] we even had an astronaut and swing by [00:51:57] Brian Douglas: [00:51:57] did have an astronaut from NASA.[00:51:59]But in addition to that, like we did have, we do give you the opportunity to have some unfiltered conversations too, as well. So one of the requirements for stars is to sign an NDA and it's just so we can have some really freeform conversation about GitHub, the platform, but also complaints wins everything across the board.[00:52:17] Idan Gazit: [00:52:17] Yeah. [00:52:18] swyx: [00:52:18] Candor. Yeah. I mean, I, I like it. I, I, it's a, it's hard to organize. I think it's a full-time job, actually, if you do it, if you, if you want to do a good job of it, you know, and again, points to this thing becoming, because it it's probably is not, I mean, I don't know who handles it, but it's probably not developer relations handling it.[00:52:35]It's. It's just like, it is yeah. I think, I think this is a growing field where we're all defining what different categories of activities we can invest in. This is one of them. Another trend I see a lot is as people building universities like, Apollo building Odyssey Netlify building gems like explorers.[00:52:53]I forget who [00:52:54] Brian Douglas: [00:52:54] the nation academy from Angie, [00:52:56] swyx: [00:52:56] Angie, you know, while she has she's the orgy. And then you know, GitHub has had labs or I forget what, what you guys call it. We did [00:53:02] Brian Douglas: [00:53:02] that the iLab. [00:53:04] swyx: [00:53:04] Yeah. Yeah. I tried to go through it for actions, but I didn't really get very far to be honest. But I think, I think, you know, like people are building like LMSs, their custom custom LMS is for their learning.[00:53:16] And I think that's another investment in community anyway. Sorry, I don't mean to ramble. I just like, these are all really cool trends where I think you know, it's part of the whole future of develop thesis. Yeah, [00:53:27] Idan Gazit: [00:53:27] fantastic. We are at time even a little bit over time. So, I think we could probably keep jamming on this for awhile, I'm going to throw up a banner on screen.[00:53:39] There's an, a thread in Okta discussions where if people have questions or maybe, Swyx, if you can drop some interesting resources in that thread. So, folks who are maybe coming out this later from the YouTube recording or who didn't get a chance to ask the question, you know, think about it later when they're like, oh, falling asleep.[00:53:57] Oh, wow. I should have asked this it can drop in and ask those questions and, and, and get some followup engagement. Thanks so much for joining us. Swyx. Especially because it's like, I don't it's tomorrow in the middle of the night in Singapore. It's unclear to me what time it is. Thank you so much for joining us and thank you so much.[00:54:13] Be Douggie  for joining me here on the Octo speaker series. This has been a blast and have a lovely day, [00:54:20] swyx: [00:54:20] right?

#StoriesByScrimba Podcast
How to make your own luck with Shawn Wang (Swyx) from Temporal

#StoriesByScrimba Podcast

Play Episode Listen Later Jul 6, 2021 32:43


Shawn (Swyx) Wang joins us to discuss his book, The Coding Career Handbook. In this episode, you'll learn principles, strategies, and actionable tactics that will help you become a hireable junior developer. For everything else, there's Swyx's book, for which you can receive 30% off using special code, SRIMBA30.Timestamps 00:00 Introduction 1:37 When are you ready to apply for junior developer jobs? 03:40 What is learning in public and why is it important? 07:05 Learning in public is more selfish than alturistic 09:56 How to start learning in public 11:05 Preview of next week's episode

Educative Sessions
#63: "#LearnInPublic & The Career Coding Handbook" with Shawn Wang aka swyx | Educative Sessions

Educative Sessions

Play Episode Listen Later Jun 1, 2021 15:30


Before Shawn Wang became @swyx, he worked in finance in Singapore, eventually realizing that the most interesting aspects of his work were ... based in code. Yet studying online and attending coding bootcamps was just the beginning: Shawn realized he had to start a movement inspired by his own love for creating developer experiences. Shawn talks about his work with the #LearnInPublic movement and his own contributions to the Educative platform. Check out swyx's course here: https://www.educative.io/courses/coding-career-handbook Watch the YouTube HERE: https://youtu.be/9maORXuCBHk ABOUT OUR GUEST   swyx aka Shawn Wang helps build great developer experiences, from documentation to dev tools to dev communities.He is a frequent writer and speaker best known for the Learn in Public movement and recently published The Coding Career Handbook with more advice for engineers going from Junior to Senior. swyx is currently working on Developer Experience at Temporal.io. He am also a regular on the Svelte Radio podcast and my own Swyx Mixtape. You can find him on Twitter at @swyx. Don't forget to subscribe to Educative Sessions on YouTube! ►► https://bit.ly/39sIrUN   ABOUT EDUCATIVE   Educative (educative.io) provides interactive and adaptive courses for software developers. Whether it's beginning to learn to code, grokking the next interview, or brushing up on frontend coding, data science, or cybersecurity, Educative is changing how developers continue their education. Stay relevant through our pre-configured learning environments that adapt to match a developer's skill level. Educative provides the best author platform for instructors to create interactive and adaptive content in only a few clicks.   More Videos from Educative Sessions: https://www.youtube.com/c/EducativeSessions/   Episode 63: "#LearnInPublic & The Career Coding Handbook" with Shawn Wang aka swyx | Educative Sessions

Software Developer's Journey
#152 Shawn Wang from the "fine I'll do it myself" team

Software Developer's Journey

Play Episode Play 60 sec Highlight Listen Later May 25, 2021 54:17


Shawn took us along on his transition from his very well-paid trading job to his career as a developer. We talked about re-using your skills, boot camps, the power of networks, #LearnInPublic, motivation, and much more.Here are the links from the show:Shawn on Twitter https://www.twitter.com/swyxPickup What they Put Down Essay http://swyx.io/PUWTPD30% Off Shawn's Book "The coding career handbook." http://learninpublic.org/?c=DEVTO30CreditsCover Campfire Rounds by Blue Dot Sessions is licensed CC BY-NC-ND 4.0.Your host is Timothée (Tim) Bourguignon, more about him at timbourguignon.fr.Gift the podcast a rating on one of the major platforms https://devjourney.info/subscribeSupport the podcast, support us on Patreon: https://bit.ly/devjpatreonSupport the show (http://bit.ly/2yBfySB)

The Swyx Mixtape
[Second Brain 2] Organizing with PARA

The Swyx Mixtape

Play Episode Listen Later May 22, 2021 55:32


I am a mentor for the Notion Advanced track of Tiago Forte's Building a Second Brain, Cohort 12. This is the cleaned up audio of the second of 5 mentorship sessions with Q&A at the end. The first session was last week.Recommended reads PARA: https://fortelabs.co/blog/para/  Blogpost Annealing: https://www.swyx.io/blogpost-annealing/ Twitter as Universal Meta-Commentary Layer: https://www.swyx.io/twitter-metacommentary/ Digital Garden TOS: https://www.swyx.io/digital-garden-tos/ Devon Zuegel on Epistemic Status: https://devonzuegel.com/post/epistemic-statuses-are-lazy-and-that-is-a-good-thing Slides and Video.Timestamps Prelude [00:00:00] Housekeeping [00:01:09] Content Recap [00:02:34]  Q&A: Constancy/Consistency [00:11:17]  Q&A: Maintaining the Second Brain [00:14:34] Q&A: Weaknesses of PARA [00:17:55] Q&A: Broken Links in Notion [00:19:16]  Q&A: Automation with Zapier [00:22:34] SMART Goals [00:23:25] Denormalizing Notes [00:25:01] Open Source Knowledge [00:28:27] Brag Documents [00:29:28] Just Do It [00:30:57] Q&A: How do you share in public? [00:31:45] Q&A: Atomicity/Denormalization [00:34:02] Q&A: Why Notion? [00:37:33] Q&A: Book writing? [00:38:28] First Wrapup [00:40:23]  Q&A: Twitter Links Extension [00:42:30] Q&A: Chrome Extensions [00:43:33] Q&A: How do you balance research and writing? [00:44:39] Q&A: Converting Resources to Projects [00:47:37] Q&A: Video/Audio Capture [00:49:11] Q&A: Speaking [00:50:39] Q&A: Writing My Book [00:52:58] TranscriptPrelude [00:00:00]swyx: [00:00:00] Why PARA? Have you considered why only four letters? I really liked the thought process going into that.  That's actually touched upon in the blog post. I'm not sure that you covered it in the lectures, but I think it's just really great to have something that's barely minimal enough that it covers the span of everything that we organize our information because I think in past attempts, I know I have probably, this is a common experience, you try to organize all the things and then you have like 15 different categories to spot stuff in and you just get overwhelmed because  you're like, I don't know where to put stuff in. So the second week, week two is really about organization. So that's what we're trying to optimize for.And that's what PARA is. Christopher says some of the mentors have modified the acronym shock. What, what modifications have they said?  Some mentors only have PAR or PA. Yeah.  I will say my A and my R are merged, Maria says PTARA for tasks with silent T that's. Cool. Yeah, because you do need tasks as well.  So I'll mention something about your calendar as a to-do list, because that's pretty important. Someone should blog about that because then you scoop Tiago. Alright. Okay. So I'm going to get started and I'm going to try to keep the chat alive. Housekeeping [00:01:09]This is a little bit stressful as always, cause I'm not used to such a big zoom but thanks for everyone for making the time on the weekend. This is the notion advanced group that I lead. It's Sundays at 5:00 PM, as you might know. And it's a very developer focused the meet up because there are a lot of developers in BASB, but we do try to keep it generally accessible. Part and just I'm going to give an agenda that's happening cause last time it didn't. So you know what to expect and you can jump off  if you have other stuff going on. So we're going to do a little bit of content recap. I got very positive feedback from last week about what did we cover this week? From my point of view, and then we'll talk a little bit about projects versus areas. I'll give some extra content around what I think para is. I don't have, I didn't modify the acronym. That's a very smart move. I wasn't smart enough to think about that. And then we'll just have a general Q&A . Last time we went for 90 minutes, this one, we try to keep it to an hour, but.Some housekeeping, the three rules that we have from zero, because we start at zero in this house stupid questions are welcome Second rule Often beats perfect. So don't try to do it right, but I try to do the best, just do it a lot and you'll find that you do more than if you try to do the best and third rule this is a discussion, not a lecture, so I'm not an expert and I don't have the right answer. And I fully welcome people here to answer questions that other people have asked, because I don't know the right answer as well. So it's a discussion that I'm  facilitating. So that's the framing that I want to set for this session. Content Recap [00:02:34] Okay. So now into the content recap I'm just basically going to pick the three best slides that I thought really represented this week. So if you remember nothing else from this week, hopefully you remember these slides.So the primary thing I think that everyone needs to get from this week is that completed creative projects by the oxygen of your second brain. In other words, action. Right. Or what did someone say at the start of the session, christopher said, para is a methodology to organize the action ability, basically like optimize for taking action, nothing else matters.And your system needs to help you get there. And your second brain has helped me get there. I like the metaphor of oxygen because without oxygen, your second brain is going to starve. And I definitely find that very true of myself. We all have stuff, we haven't competed. And then we just reinforced this identity of a person who does not complete projects. So the smaller your ambitions the more you can feed them the more you have reinforces image of someone who completes projects and you get more done. This is PARA in one slide, very ambitious. I basically wanted to summarize, what the main aspects of PARAwe should have for those who might've missed it. I did share the slide deck, so you don't have to screenshot or anything. So I'm going to share that in the chat right now. Well, it's actually P stands for projects, A stands for Area, R stands for resource and archive is basically inactive  items from all three categories. And one of the key insights is that it's arranged in order for more actionable to less actionable.And the other order that you see as well is that there are less projects in there. There should be the most number of archives. So I think if you saw Tiago live session, he showed you his own Evernote where he actually showed like the number of projects was like 5% of the total number of notes that he was taking and yet hundreds of archives.And that's what the rough order that you shouldn't taking it. Things can also move fluidly between categories. So something to start off as a project and then broaden out into an area and eventually make his way to an archive, but he can also make us wait the other way. So that's the purpose of this blue and green circle things that's going on. And then finally, the thing that he wanted to really drive home with the project list was that the project should be connected to a goal. And a goal should be connected to a project and the project without a goal is a hobby. And then go without a project. It's a dream because you don't have plans to accomplish it.So that's para in a slide for me. I that's why I like  asking people to summarize what para is, because I think it's a very personal thing because it's the way you organize your information. But I think trying to have a decent summary of what para is for other people helps you internalize it as well.Partially why I'm doing this mentorship thing. Okay. So I think there's something that people have really tried to struggle with is the difference between projects and areas. That's something that toggle mentioned, in, in David Allen's book, getting things done. He mentioned that the people can surprisingly have a lot of difficulty separating between projects and areas. So project has an outcome to achieve, and it hasn't been like, whereas an area has a standard with no deadline,  but as per the standard quality while we were at 50 people already. Okay. So, I just want to share people. Yes. Someone asked me just like that again, it's down here.But I just want to see in the chat a little bit This week, your homework was to figure out your project list  and sort your stuff into projects that areas. So what are some examples of projects that you have identified for yourself? If you can just share in the chat that'd be really great. I just want to see people's projects and I can give more examples if you want.  Dennis's project is a weekly podcast episode.Very nice, man. He says tax filing for 2020. I hope he got that done. Cause I think the deadline was tomorrow or Friday. I got my, I thought that I thought the tax filing deadline was April 15th. So I got my deadline there. I think everyone should have a extension automatic extension for tech solving.Sam Wong says crypto training and seminar. That's excellent. Excellent. So all of these have defined deadlines except for Dennis. Dennis has a weekly podcast episode. Arguably that's not a project it's not specific enough. It has to be this week's podcast episode. Yani is project. Very good. I was hoping for this on and Karen as well. What would them, once you complete the ASB and have a functional second Brain by June obviously that's something that we all hope to get you to at the end of the day Maria says she wants to work on newsletter volume three. Peter brace has a very specific work within the deal. Close the deal with jet Beck. Good luck, Peter. I hope you close that deal. I'm working on a couple of deals at work as well, and Yeah, well is out of my control sometimes. You just, once you've done all the paperwork, yeah. Okay. Slobodan an interesting one, implement power for kids and powerful family.So this is another level of,  once you really internalize para, you want to do it for work. You want to do it for family. You want to do it for kids. It's super interesting. Just, take it easy.  It's a long game. Okay. And Christopher Horn wants to refactor notes. Is that what Gaston by me, 16th? Yeah, have a deadline. And see a lot of people with desired outcomes, but make sure you have a deadline, make sure it's not too far in the future. And if it's too big you gotta break it down. You go more to something  achievable because of the motivational factor of completing projects.Oh, we do have a question from Sam Wong. I think this is relevant to Dennis. The other person want to do podcasts. So Sam Wong's question is how do you handle monthly tasks, invoicing, for example, it is a project when it repeats.Yeah. So you have an area of responsibility, which is a would you say standard to be maintained and it doesn't have a deadline. It just keeps repeating, but it spins out projects every month. That is one way to think about it. But obviously if it's a task, like if it's, if it can be done in one session then it's less of a project and more like a task that you can probably knock it out in five minutes or something.Then yeah, that's why I think people, when they establish a fifth category apart from PARA probably the other one that makes sense is T the task category. So, we'll talk about that at the end. But essentially I just put it on my calendar as like thing I need to get done. There's no point having a to-do lists because the to-do lists.It very wishy-washy it doesn't actually set aside time. So you might as well use your calendar as a, to do this. That's the I'm giving away the ending there, but that's, that's really the conclusion. Okay. I had some feature quotes from this one this week. I thought this week where it's particularly quote worthy, I like collecting quotes. And in fact, if you notice in the circle community, there is a section just for quotes. And I think quotes can help you really crystallize some of the learnings. And that's why I wanted to focus on some, but please feel free to share also in the chat some course that you liked Or did it stuck in your head?You don't have to get it precisely right. But try to remember some quotes because you're going to have to repeat them for yourself, for other people. So one thing I think people don't focus on enough is the importance of archiving. So this is why I want to feature this quote here. We can not do our best thinking when all the information from the past is cutting our attention.That's why that archive stuff is so crucial. Right? That's actually the first thing that he showed how to do in his live demo. The other thing, and this is very much in line with, well, number one, I think that we had the value. It doesn't come from the tool. It comes to you using it repeated thing. So despite people really identifying themselves by the tool, right? Like, we are the notion group. Then they're getting teams that the wrong group and never the Twain shall meet. It's less about the tool because the tool will come and go and it's more budgets getting more use out of the tool. Same for blogs, by the way, a lot of people resolve to start a blog and then they'll write the blog.And they'll say like, you know how I wrote this blog? The first book was a bit of a world. Of course, second blog would be how I meet this blog. And then third blog posts would be, sorry, it's been a while since I last updated. And that blog will be less updated as a two years ago. So definitely, well, you don't want to have that kind of thing where you're, over-invested picking the tool and then you never use it.Okay. So, and then difference between projects in areas, projects of sprints areas and marathons. So you do want to go for sustainability in areas and then projects juggle says, give it everything you've got. That may be a little bit harsh, but  I do definitely sprint a lot for some something projects, which a lot of should have blogging.Right. But also when I published my book last year I realized I didn't. I didn't introduce that part of myself but for those one year two micro yes. Part of the reason why this is an advanced group for BSB is that I do definitely want to people to ship and even make money from shipping.So if you, if your intent is to publish a video or a book something from as a capstone for this course, this is the right group for you. And I'm definitely open to questions about that. Okay. Finally, a project without a goal is a hobby. You go without a project is a dream. That's not something we covered earlier and completed creative project. So the oxygen of your second brain. So that's that those are the quotes that I pulled out. I do definitely encourage you to save your own quotes. That's probably one of my main research areas or  just like collecting quotes, I do like collecting quotes and questions.Okay. Brief reminder that you can also share your stuff here in, in the project list on, on the circle. And I think it's a very good motivational tool to check out what other people are working on and how to how to see what's what's happening there. Q&A: Constancy/Consistency [00:11:17] Questions and discussion on this week's content in general.Speaker1: [00:11:20] So I raised my hand  on the interface, which I'm doing for the first time from an iPad. So I had to reach for it as well. My question is you were talking about the value of what I characterize as constancy, the repetition, the rigor that's my number one problem. And I don't know that I'm unique in that.There's always, I read somewhere that there's always this point when you're cultivating a new mental model or skillset or whatever, That works. It works, it works. And then all of a sudden, the old way that you used to be rears its head and tries to pull you back in and then you fall off of it. And I guess I'm wondering, based on anybody's feedback here, what is the best practice around achieving or cultivating or keeping that constancy?swyx: [00:12:00] Is there a reason you call it a constancy instead of consistency? Speaker1: [00:12:03] Because I'm weird. Okay. That's cool. I read a lot of, I read a lot of archaic texts and when I say constancy of probably drawing from Thomas Jefferson, which I was just reading this morning. Sorry. I apologize. swyx: [00:12:17] Wonderful. I mean, Hey, he's a good person to learn from. Does anyone have thoughts on constancy? Feel free to speak up?  I can give some thoughts, but I didn't want to take all the air in the room. Joseph I don't know how to pronounce the last name. Sorry. You need to form a habit, which means it takes around 60 days to form. I like that. So a lot of consistency or constancyis about identity.I like this. I like this thing about identity change that James Claire has. So he has this three circle thing. We're effectively doing some kind of behavior change and this is. This is effective for para is effective for capture and the other habits that you're going to learn in the other weeks of the class.So, it's around your identity, right? So check out this, there is a behavior change idea. So they're, three shells to your model, right? Like, so, there's your appearance, there's what you do. And then there's your identity, how you, how you think about yourself. So, you can try to be the person who do, who does like a hundred pushups in a row, or do PARA for 60 days. That's a very forced motivational thing. Like you can publicly commit to it. You can pay a charity and say like, if I don't know, if I don't complete this, I will lose some money.There are a lot of little tricks that really hack at the outward appearance of that. Then there's the performance, like the actual actions you take to ensure that you do that. So, so that can be like actually doing the thing. So instead of saying that you're doing it, you actually do the thing.But the one that really sticks with you is identity change. Once you to say, I am a person who does PARA for me, I am now a BSB mentor. Which means I am someone who just like inherently people can come to me to talk to for BASB advice. That has changed the way I approach BASB, because now it's part of my identity and someone who identifies as someone who's cause forming the habit was capturing this building a second, bring.You don't need some trick. It's just a thing that you do. If you're a religious person, you just go to church, you don't have some counter of like how many times I've been to church in a row. You just go. And if you it's okay to break it every now and then, but then you pick the rabbit up again because that's your identity.To me, that's the most motivational thing I don't need anything else, but joseph just let me have other thoughts as well. Yeah, peter says, I prefer to keep my identity inconsistent so that doesn't work too well for me. You do it, you are allowed to change your identity and that, that is a fluid concept. So yeah. Are there other forms of commitment to me work as well? Okay. Hopefully that was a decent start. Thank you for breaking the ice.Q&A: Maintaining the Second Brain [00:14:34] There was another question here, but I'm going to, I'm going to acknowledge Yanni, who has had her hand.Speaker2: [00:14:37] So I think it's actually probably can be a followup out the previous question that Christopher dresser mentioned. I think first of all, thank you so much for sharing the identity part, because I think that's a big owl consider as a principal that I can follow up.I can think of, but now the question is the implementation of that identity. I think I think about the consistency aspect of the second brain comes out the main tennis aspects. So I'm curious about how you maintain your second brain. I used to just unconsciously associate the main tenants as a reviewing process.It can be, but I'm just curious you, Shawn, as a person who creates a lot of value on a weekly or monthly basis, I'm curious how you're maintaining your second brain. At the implementation level. swyx: [00:15:20] Yeah, I knew I was going to be  asked this and I knew I was going to have a terrible answer for this. So Maria, you might want to do you might want to show your system in case I fail and crashed and burned, but I'm just going to be brutally honest. I don't do much maintenance. I I do rent, so I do have I have show this  in the past preview. So, these are resources. I don't. I started on with para and that was a year ago and things have evolved since then.So part of I've been told that it's actually a good idea to show people how para is used in real life, that it shows you that it's okay not to be perfect because Tiago is  perfect PARA.  So I do have projects. One of them is BASB mentoring, for example, that's what we're on today.And I do have resources that I share. I do have special categories of resources. These are just resources that I have for myself. But for example, when I worked at Amazon, I did have public resources that I shared is it public notion. And I think Sharon dozers, reusable resources are, is very helpful because it's no extra work on your part.Other people might find it very valuable. And I do encourage showing the resources as far as maintenance go, actually. The, so the other part of my system is simple note. I do a lot of review on weekends. So every Saturday I do my newsletter and the newsletter helps me triage things as they come in. And that goes in from right to left . From simple note, which is my quick access thing. That's always fast cause notions slow into notion in the right categories. So that's really it for me, in terms of maintenance maria, I don't know if you want to jump in and you have anything to add for maintenance.Speaker3: [00:16:47] Yeah, I put something in the chat about it just really depends on what I care about. So, my projects are maintained daily and then I have a weekly review where I think about like the areas in my life that are most relevant. So it really depends on like what I care about now. And then I organize as I, as things come up.Yeah, so that's, that's about me. That's depends so much on how I do it in notion, but it's like the mindset around that.swyx: [00:17:16] I think it's a good idea to set like a quarterly or annual reminder to archive all the things. And that's something I haven't done, just quite, quite frankly I haven't done any archiving. I have just a mess of stuff since I took BSD last year. So I really should archive it,  check out this thing where I say, Oh, projects, I didn't really archive anything. So it's a good idea to clear the deck every now and then. And just like Jonah says, don't be afraid about archiving stuff. You can, it's always still in the same system. You can always search it. Christopher says he archives annually. That's something that's good as well over a visual overwhelming is a real thing. All right. Thanks, Danny. Thanks. Good question for that. Q&A: Weaknesses of PARA [00:17:55]Julian says, Julian Alvarez says what weaknesses and drawbacks have you experienced implementing PARA and how can those be addressed? So I think a lot of people  have talked about the weaknesses, which is that it doesn't have any room for tests. Julian. So the way that I think about tasks is that so I do have a work to do list. That's a lot of my stuff. I do have 70, this is like the most overused of simple note. I'm not sure if this is like the right thing. I do a lot of speaking, so here's my speaking calendar. So I make sure I'm on top of my my talks and I'm recording and speaking.My blogging goes here. That's essentially all it all. I need, in order to inform my personal stuff, my worst stuff has a different notion tracker, which I probably should not show and publicly. But then I also have this concept of the calendar is a to-do list. So, you're on Kevin calendar as a, to do list. So, I have written that up here. I'm going to share that in the chat. But I do like basically this idea of time block planning that when you want to get stuff done attach it to a time just thinking it to do this without any notion of priority or amount of time estimated to complete is not enough.So that's that's, what's going on over there. If anyone else had like weaknesses, a para that they've come across, I'll just leave room for one more response. Yes. Nope. Okay, parents. Perfect. I am interested in the other questions, the other formulations of para. Q&A: Broken Links in Notion [00:19:16] I'm going to go to Juliana now who also has her hand raised Hey, hi. Speaker4: [00:19:20] Right. So, it's a question about archiving things. I started setting up my bearer and I already have I already have a task management system, so I have a database with the tasks and I started to another database with the projects and another for the areas and another for the resource.And I, I thought it was a great idea because I could Link all the stuff and make relations like in the database, but  I'm having difficult. I, sorry about my English. I am, I'm having a hard time to archiving these things because when I try to move to another archive database, I lost, I lose the relations.swyx: [00:20:13] Oh, okay. Got it. So I don't Speaker4: [00:20:16] know if somebody has the same problem and could help me. And swyx: [00:20:21] and yeah, I think that's it. Great question. I have no idea how to answer this. Cause I don't have a solution for that as well.   Christopher Horn says I created a page and I'm city and that collects all open tasks into one master page.I put it into a template for my daily planning notes. Joshua says filter status of archive works. Okay. So you add a filter status, Juliana, like basically add a filter. Nope. That could work. Speaker4: [00:20:44] Yeah. I filter the task in dance, but like, the projects in the areas, maybe like putting a filter might be good.swyx: [00:20:54] Yeah. Speaker4: [00:20:55] But then I wouldn't, well, I C I can create  another view of the database and just filter with the archive.swyx: [00:21:04] Okay. Joshua. Yeah ductal Joshua is sharing what what works for him? Yeah, we do use views at work for what it's worth notion is our project management too. I work as well. So yes. Music grief for that. Correct. Yeah.  In terms of breaking relations I don't actually know how to fix that. If you move stuff around, I don't move stuff enough to, to answer that I do like duplication. So I'd rather copy and paste that link. But that's just me. I know that people like to link back and forth when stuff  I think the backlink functionality in notion is pretty good.  So if this is if broken links is something that you care about then having that, this is a new, basically the wrong column of notion  you can establish back things and if you move stuff around, I think this was, this will be always correct, because the identified based on the IP of the document is structured within the note taking system.Yeah. Joshua says I like to avoid databases and just link pages with linking instead. Yeah. Which means he can move it without them breaking. So maybe just don't use linking or use backlinking. That seems to be the answer. Filters are really good for what it's worth Joseph. I don't actually recommend using notion is like a read later app. So I noticed that  Joseph says that he has a reading list in notion. I actually use, you can use instead of paper you can use. So I have up next, this is what I have , I'll just add it to up next and then I'll read it on my iPad. But you can use Instapaper, you can use some sort of meet data. Okay. All right. Joshua has book notes. All right. All right. So Juliana hopefully that was good.  I don't think it was like a perfect answer, but maybe notion wasn't really designed for that. Definitely try to make more robust things that won't break.Q&A: Automation with Zapier [00:22:34]All right. We'll take one more question. Thank you. Take one more question. Cameron has has an interesting one. What kind of workflow automations do you use with if this, then that Zapier? So this is about automations. Kevin says I created a zap so that every time I create a new notebook, it creates a new folder on Dropbox that you drive. That's pretty handy. That's more backup. Yanni says I use, I have TTT for Evernote Instapaper pocket highlight evernotes goes to Evernote.Yep. They are all going under inbox folder for me. Maria says Google calendar to notion database with Zapier. Wow. Okay. Why Google calendar like tweets the notion. Wow. Okay. This is really good.  I think this Lightspeed's emotion thing.  That's a good idea. Cause there's it's not intuitive to search your own. The tweets that you've liked before. So having the automation makes sense. The calendar one makes is unusual. SMART Goals [00:23:25]Alright, I probably missed some questions on the way. So I'm gonna leave those to the end, but I'm gonna go into some of the unique content that I think about we've covered some of these areas.I'm going to go into a little bit about some other thoughts that I've had personally, as part of this BSB journey. There's probably one other. Weakness, maybe at the power content that we talked about this week is that we talk a little bit about goals, but we didn't define goals, right?Like we talked about where is it in here? We said PA already, there's no G here. And jeez are very important for projects this and we didn't really talk that much about what a good goal is. So I think this framework, which I use, you can't go very far into, in productivity canon without coming across smart is a good idea for thinking about your goals.Does is it specific, measurable, attainable, realistic, and time bound? Timeline is obviously the deadline thing, but the other elements very helpful as well. I think the measurable ones. Yeah. A lot of goals are binary. So did you do it or not? So in that case, it's a very, it's very simple measurement. And I think the other one is attainable that people really should think about like is if the goal is too big, then it doesn't feel attainable. It's gotta be something that's within reach. So I think a lot of goal setting, a lot of smart goal setting is really just narrowing down the size of your ambitions. If you want to do something perfect, or if you want to do some huge, impressive thing you may not have built up the muscle to do that yet. You might need to break it down into something smaller and just make smaller goals along the way to that big goal. Okay. That was the first thing that I have planned.Denormalizing Notes [00:25:01]The second is for a little bit of the developers in the room, because I like these analogies. There's an idea of normalized schema versus de-normalized schema. Normalize is where you split everything into this most atomic categories where you can think things back and forth without knowing what, how are you going to need them ahead of time?Denormalize is where you put everything in a single object where you know, you're going to need it together. So the, my assertion is that projects are essentially de normalize and areas of resources or not. And so you want to break stuff down into the six areas, whereas projects you often are bringing together content from a few different areas of resources and synthesizing them in a special way.That's the idea about thinking about projects and I do encourage actually just copying and pasting. Like if you have, if you come across something useful, some piece of content, that's some thought that's really useful.You can just paste it in areas and paste it in projects. So I do like the idea that you don't follow this strict idea of like. One thing goes in one place. I do a lot of double pasting of stuff and that's just intentional denormalization and the way that I approach this is what I call MES on plots writing.Like you want to place everything that you're going to write about ahead of time in, in a place that you're going to use them. And this is independent of the areas of resources  where you're collecting them. So that when it comes time to write, you're only right. So all this happens, asynchronously serendipitously as a pre-writing phase.And then when you're writing, you're just sitting down and focusing on converting all of this pre work into the final finished product. That's I think, a sustainable way to essentially reduce the amount of time that you spend researching and ideating and looking at the right references. Oh wait. Okay. I do have a, do you have a response there from Christopher Horn, another interesting feature to add to the ethnicity debate? Do you normalization? Yep. Okay. Yep. Great. So I'm going to drop a link to this doc for people who this is specifically for people who write a blog posts, as well as books, I'm going to show you a little bit about when I say I do this, I really take it to heart. This is the, this is how I wrote my book for my BSB sort of capsule last year. I planned out all the chapters that I was going to write originally, all of these things were white. And then I just slowly converted them into blue links, one by one, but each of these linked to the issue where I just slotted ahead of time.The ideas and the resources that I wanted to talk about. So that when I felt that I had, I was ready to compile all these things. I started from a good base of these are the points I wanted to touch on that I spent, three months thinking about and collecting.But everything was in its place. When I finally wrote the final chapter and this is me writing it. And that's something I encourage people especially people who are planning big books. If you're working on, for me, I was working at 40 chapters simultaneously to really think about just slotting everything in its place and having like a measle class attitude to writing.So obviously this works for a book, but you can also think about it as working for a blog where I'm working on simultaneously. 20 different vocals ideas and you should have some amount of idea of velocity where you're thinking of all of these things at the same time. So yeah. I encourage you to try to denormalize for action, at the end of the day, you want to try to produce output and then you're trying to normalize for resources.When it goes to resources, I'm just loving it. I've been here and you can do it twice. It's fine. There's no perfect system. If you figured out a way to automate it, Great for you. I haven't got there yet because I'm so pretty and so busy and focused on producing. Open Source Knowledge [00:28:27]So let's talk about source knowledge.So this is another developer analogy again if you're not familiar with open source knowledge, just think about. The old school, one encyclopedias versus Wikipedia and how Wikipedia completely destroyed encyclopedias because it was collaborative. The assertion here is that resources should be, open-sourced like everything else in para can be close, can be closed, can be private, but there's no reason why resources themselves should not be shared because as long as someone can benefit from it, then you essentially, when a friend while you're sleeping, if you just share it and if people can contribute and that's the open source nature of it then you really benefit because they help to correct you or they help to ask the question or they actually just give you extra things that you may not have known about.So I really liked that. I do have a talk on this copy open source knowledge doc. I really should have edit the link open source knowledge, right? I I'm just gonna give you the slides.That's my slides for open source knowledge. But yeah, I think when you combine para with learning in public, it becomes extremely powerful for building a brand as well as you are a network facing time.Brag Documents [00:29:28]Something that was briefly, very briefly mentioned in Tiago is lecture, which I think is super underrated, is this idea of a brag document. So let me see where he talks about it. So here doing during this is during one of the lectures that he had, and you can see, this is my own notes. I'm going through the course with you. During one of the lectures he had this idea that this comparison between projects was serious and you talk, and he talks about why you need to connect projects to goals. So there are three reasons why you need to collect the goals. You need to know the extent of the commitments need to connect current work to your long-term goals.But then the last part, you also need to know if you're making progress towards your goal. This is something which I think is understated in terms of para, which is at the end of your project, you should. Not just wipe it off, but actually stick it somewhere in a brag document, in a materialized view of the things that you've done this year.And so that you can actually review it because you're not going to, it's hard for you to remember them sometimes. And and especially at work, it's really helpful for a peer reviews and promotion packets and stuff like that. Even for the psychological pick me up, I think it's very helpful.And personally, in, when I work a stack is actually a stack is actually a really good channel like a prototype channel for bank documents. So it might have a sectional with only me in it. And I just post in that channel whenever I've finished something that I probably know, I want to review in my like three 60 feedback session, if you want to brag about yourself you need to be the best bragger of yourself because the one else is going to do that for you.Okay. Just Do It [00:30:57]Glen, I'm going to get to your question a little bit cause we have one more slide left and that is insert generic motivation. Just I think ship Ira Glass, the gap video is also pretty common. Like this idea that you need to just do it more, right? All this there's all this theory.There's all these Images and advice. You just need to do it more like this parable of the pottery class as well, because something that people say a lot and I've referred to it as well, as far as I can tell it never actually happened. So it's literally a parable or a fable. But anyway just do it right.And that's a recap of the kind of stuff that we covered in the extra content section of this talk. So I'm going to head over to questions and discussion. We have a few I did have someone raised their hands, so now's a good time to raise your hands for some chat.I'm going to answer things in reverse order so that I can keep on top of things. Q&A: How do you share in public? [00:31:45] Glenn G says. Could you show how you share your resources in public? Was it making your notion public and people can contribute to it? Or how does the contributing part work? Okay. So notion is not very conducive to public collaboration because I think it will be a mess if people can randomly rearrange stuff.But yeah, these are my notions and then I'll just share it in public. So you can, you're welcome to see my BWS bullshit. But for collaborative stuff, nothing's better for developers than get help. Right. So here is my launch cheat sheet. So when I launched my book I took my notes as a resource and I just posted it all up. And so you can see,  I didn't have that many contributors, but the people who did actually volunteered information and for, and now whenever I need to launch my next thing, I have this resource available so that people can find it. So, Hey, I need to do it endorsements and testimonials.These are all the notes that I've taken for myself. And it's useful for other people, like so far. 500 people have started on GitHub. So probably more people have seen that. And it's also a nice way to promote my own book. So it's a very useful thing. I do this a lot. If you go to my GitHub profile, you see that the extent to which I have bought into this idea that you should open source your resources.So I have done a launch cheat sheet, a CLI cheat sheet podcasts. This, these are design resources. So here are my design resources. This is the biggest one. 5,000 people that start this. And it's just got things I use. So if you want to reference and typography I can pick my fonts in a way that has been pre-vetted by people I trust because I don't know anything about design, but I can, I can look like I know by stealing from other people I can steal code.So here's a fun loading strategy that some expert has approved. So I'm just going to steal that. It's essentially a swipe file and it's open source. So people contribute. So I had 32 contributors so far, and yeah, it's just a really great way to have your resources open. So the work you're doing anyway helps to benefit you professionally.I like it a lot. There's this concept that comes to mind call it the friend catcher, which isn't my idea, but I didn't, I do have the reigning Google search on it. Think. Yeah, I had number one to Google for that.  So this idea that you should make friends online, what you seek by, by sharing these resources.So para are in Paris, extremely soul, super powerfully. We just keep it up and make it useful. Put a little bit of design on it. It's great. So highly recommend. Okay. Do you want to brag about myself too much? Peter braceQ&A: Atomicity/Denormalization [00:34:02]okay. Christopher Horn, let's go.Speaker1: [00:34:04] Okay, there we go. I'm sorry. Head down mute. My question is going back to that French term that I am not going to try to say that ends in the word place. I think. So we have two concepts that I, in my fevered brainer intention. One is the notion of normalization and de normalization. The other is that French term.And I guess what I struggle with and is if I am pursuing a philosophy of atomicity, which is to say that, where I fall on the normalization versus denormalization the reason that one of the reasons I'm doing it is because there are ideas or concepts in my second brain that are not going to feed just one project, but might feed many projects.And instead of pulling them all into one place and associating them with one activity, I might need to refer to them from two different directions at once. Does that make sense? swyx: [00:34:51] Okay. So what's the question. How do you reconcile that tension? So Speaker1: [00:34:55] it feels like what I understood you to say was you pull all the resources into one place and you dedicate it to one task.And I'm just trying to reconcile that with my notion that there might be multiple tasks that need or projects that need to draw from the same swyx: [00:35:08] artifacts, if you will. Yeah. So that's what I was saying. Like I do the lowest tech. Thing possible, which is I just, I double paste I'll, I'll copy it out into the other place, needs it. But if you are a little bit more sophisticated, you can use the linking, you can use the Rome style of the cake to irrigate. Are you familiar with those? I Speaker1: [00:35:30] am. Yeah. It's just a matter of, are you tolerating redundancy or are you just going to handle it by reference swyx: [00:35:36] only, right? Yeah. Yeah. So people are really like starts.I find them in practice, not that useful because they're just pretty. Anything that's great for ultimately I tell you what's the best thing to link to a public URL that you've blocked, right? Like last week, we talked about the three strikes rule.If you reference an idea for multiple times, don't keep it to yourself, just put it on your blog and then link to that. Fair enough. That's a good, I that's a good note. Yeah. And, just break down that idea that you're your, everything you blog has to be as like big thought leading piece or anything.It used to be a resource. Okay. We had some other questions. Julian had a really interesting one that I want to address. Would you recommend using GitHub for open source knowledge that is not coding related? So get helps really good because it has a really good collaboration model, but it might not be accessible for people who are not technical Google docs.So this guy frameworks, the 0.1. So they have that, oh my God, this guy does such a good job. I'm gonna read this to you because it's so true. I realized that the main reason I don't publish as much content online is that I prefer to Erie my thinking continuously making your part to publish something extraordinarily high we'll work around a shipping, an alpha version of a thought.And then blah, blah, blah. He published his work in progress, thoughts as a Google doc. And of course he never actually published the final document. Like that's how it's helped people are  with their thinking. But a lot of discussion happens. There you go. Okay. Yeah. There's so much discussion here. When you can write your, you can write what you're thinking or researching and you let people comment and that's a really nice way to open-source it as well. Some collaborative thing like that, it can be useful to a lot of people. Cause this one went viral, look at them on a discussion it's still ongoing, and yeah, it's a really great tool and actually you should use this more.It's so simple. Everyone has access to Google docs. So there may be other tools, I think there are there like collaborative notepads that are out there that I've used no pads. I forget the name of them though. Deep note, no bureaucratic, no joy. There are a bunch of these that, that you could try using, but there's, they're just like startups, they're less reliable because they might go away some time. So, yeah, you don't have to use GitHub. Q&A: Why Notion? [00:37:33]Okay. We have a question from Probita. Hey. Speaker3: [00:37:35] Hi, John. Thanks. Fantastic succession. So, just a couple of quick questions, if you don't mind starting with a comment I think you do speak very well.You have clarity of thoughts and a it, it like the sort of the wisdom and the knowledge that you applied comes out very easily. So thank you for that. I think I I might've picked up that you took the course last year. Is that right? Yeah. Right. So were you already using notion at the time, or did you, were you in between a couple of programs and then you decided to work with swyx: [00:38:06] notion?  I was even worse than that.  I was using one note going in and then I switched halfway in the middle because I got frustrated with one notes and then I saw that most people using notion. So I jumped on a notion bandwagon. Speaker3: [00:38:17] Yeah, yeah. Right now I'm using Evernote, but I'm just wondering if, for folks who are more tech oriented or tech savvy, it's easier to establish themselves in notion, but that's something for me to just try that out and figure it out.Q&A: Book writing? [00:38:28]But a related question the book that you have published, which looks great. So I will check it out.  Is that like the writing of it? Did you use notion for that? For most of swyx: [00:38:38] it. I used GitHub, like I just showed you, I showed you the process. I don't know if you were here for that. So this is for version two of that. I'm hoping to publish mix in July. But yeah, I use GitHub to draft. I had reviewers come in and these are my editors that came in and gave me comments. So this guy, I paid him to edit my work and he submitted and get up, Salesforce is great. It's a great experience. But like, drafting, I think you can pull in your ideas wherever I just happened to use GitHub. Like the tool doesn't matter to me, just so much as like the process. Right. I did use typable I forget the name of it. Basically. There's a better markdown drafts app. So the motion does export markdowns. And I do use markdown to publish, but it doesn't have I don't like the way it edit stuff. So I needed a simpler interface and Typora. That's the tools use pepper. This is a free open source tool. That just gives you marked down and is not as complex as notion. It only does marco. So no, no fancy blocks. When you slash it, doesn't try to search your whole database for you.It just doesn't work out and it presents it nicely. So that's a really good writing app. I think anything that distracts you from the act of writing can be a negative sometimes. So I used that poorer, if you want to try and check it out. Speaker3: [00:39:47] Yeah. Fantastic. Thank you. Yeah, it sounds like you're just All these tools that you apply them greatly, or you have applied them in the past and you just have a great wealth of information.So think thanks swyx: [00:39:57] for sharing. This is also by the way you can use GitHub projects for people with developers. Like this is literally my launch plan T 14 T minus 14, all the way to T minus one. He has, I hope ended up, whatever tool you can get pretty creative. And I find that my brain doesn't require one tool to rule them all.So I can segment by like, okay, I'm working on book, totally different set of tools than like regular knowledge ingestion and someone that works with me. If you're okay with that, okay. First Wrapup [00:40:23] Thanks, Maria. I want to acknowledge Maria for swinging by the mentor sessions here have always had like this. Do of support and I just want to acknowledge, thank you so much, Marina for swinging by to help out. Okay. All right. I think we're over time. So that's it, as far as the present, the pre-prepared questions have our concerns. You're welcome to email me@swyxandsix.io. That's my email  if you're not comfortable asking questions here or you think of them later on. Email me here and I'll see you here again next week. And yeah, that's it next week is C O D distill. So we're going to go into distilling and I really like the progressive summarization idea, I don't necessarily do all the steps by I'm a fan. I'm a fan of  Reviewing multiple times so that you really get to the gist of of a piece that you're writing about. I'll give you one example of that. So   this is going to look super overwhelming to you. So please don't feel like you need to do this.  I did have an example of people always think about this quality versus consistency. Trade-off of Hey, I want to produce, but do I produce on a regular schedule and trade-offs and quality, or do I infinite highest quality thing I can do and maybe not be so consistent with what I do. And so I've been, I actually collected three different podcasts clips from audio doll. My audio doll from Tim urban and then from James, Claire over here and I synthesize them into this blog post. And that actually did very well for me. I think the, the post that I had by the way, this is a really cool extension. If you work a lot with Twitter, I do use Twitter as my second Brain sometimes. I think this post did really well, just because of the number of people that picked it up independently. You're doing the work by summarizing and synthesizing and comparing, right? So, I was able to find someone who stood out for consistency and made that case.I was able to find someone that stood up for quality of me, that case. And then I just put together that debate and then offered some solutions to it by synthesizing different resources together. And distilling is a key part of that work. So that's what we're going to cover next week. Speaker3: [00:42:10] Okay. Thanks Shawn.Just if you don't mind, three quick questions sorry. I did miss your introductory session last week. So, Shawn Wang, of course, that makes sense doubly or rather why X, what does that stand for? swyx: [00:42:21] That's my English and Chinese initial sec. SW was English and NYX is Chinese. And I don't bother to tell people what the wax is because they're not going to remember.Yeah. Q&A: Twitter Links Extension [00:42:30]Speaker3: [00:42:30] Okay. And then this Twitter extension that you just mentioned with the design, swyx: [00:42:34] So this is a unpublished Chrome extension, just from a friend who wrote this, essentially, whenever you go to some somebody's site, if you want to see the metal layer discussion around this, here's the blog post that I wrote about that. Let's say that's what you want to find the power of blog posts whenever you're like, okay, I read this, I want to discuss it with people.Who've also read the thing what do you do? Right. You drop it in a Slack, you drop in a discord or something. And then people who have also read it. But what's better is you can actually just say like, okay, I'm going to click this Twitter links thing and just plug into the stream of people who talk about this stuff.So Joel talked about it. So Shawn talks about it and then you can respond directly to them. But you can see like the disagreements or you can post about it. Yeah. I don't know. I think it's, it's very useful for, and this is me talking about it. Yeah. I think it's helpful.  You can also do this on hacker news. I just like plugging into the commentary layer because it opens your mind as to if people strongly disagree, if people like, have extra points that they want to make.I think Twitter is a meta commentary. Raider is a very interesting idea.  Q&A: Chrome Extensions [00:43:33] Speaker3: [00:43:33] okay. So because the topic of extension has come up and I've been meaning to find the right opportunity to ask this to someone A lot of people use the Evernote clipper and similar extensions. And when you try install them, be it on Firefox or Chrome, it does ask for permission. And part of the permission is that it, it can have access to all your websites and whatnot.And I'm not necessarily big on confidentiality or whatever security, but at the same time it does yeah. For data for all websites. So is that something that that's just standard or like, do you have any thoughts on that as a tech person? swyx: [00:44:15] Yeah. Unfortunately it's pretty standard people and, and this may be a slightly alarmist, but at the end of the day, you just do have to trust them. The trust model for Chrome extensions is  just that broken. You just have to trust the publisher. If you don't trust them, then don't install it because they can for example, you can look safe at a time of publishing and then you install it and then they can secretly update it.And they might get you that way. So you just have to trust that the, they won't ever abuse that. Q&A: How do you balance research and writing? [00:44:39]Speaker2: [00:44:39] Awesome. So just question around, I really do appreciate the idea of set your focus, your focus on creation. I think that's what the whole point of the second brain. Now the question comes down is how do you eat? I just curious about your personal experience, last preference.How do you balance research and value creation in terms of time and energy perspective? So I do, for instance, when you were making a blog paused. Yes. There's a creation for sure, but definitely there's some, a lot of research going on. It can be the pre-writing work. I wondering how you balance that activities.swyx: [00:45:15] Oh, okay. That makes sense. Yeah, of course. The research is just always ongoing in the back of my head which is why I have this idea of pre-writing right. This is passive. This is just a background process. It's always happening. And whenever it's something relevant comes up to a top favorite problem or a project that I'm working on, then I'll just slide it right into there.I'll find I'll pause what I'm doing and just go add that piece of information. So research the passive for me. And then when I make time to write, which is often like, probably a Saturday when it, like I have like three, four hours open. I think I'm trying to move to one hour a day before work.I think that'd be a really good model for me, but just quite honestly, I don't do that right now. But you should have everything in place. So David Perellcalls this start from abundance or write from abundance. I don't really like the way you phrase this. Okay. Yeah. Start with abundance. There we go. How to cure it, write it, write this book. There we go. All right. So , you can take his word for it, but essentially you just have the research as a background process. And then when you write, just write you can of course, improvise and research here.But if you do too much of that, then you will not ended up publishing, so I totally get it. Yeah. I do have the same process by the way. When you publish, because it's a digital document digital garden terms of service. So I have this idea of a digital gardens. So it's like when you publish you, can you have the right to be, to update it as you go along.Right? So as long as you as a contract, if you're with your with your readers is very clear, then people won't expect you to be complete and you're not promising to be complete. You can even insert disclaimers. So I've been starting to insert disclaimers as well. So for example, stuff like here, I think I have the disclaimer here.So you can have like this where you can say like, blah, blah, blah, I'm gonna, I'm gonna come back from it. It's not fully formed yet. Devon Zuegel has this idea of epistemic origin. So she'll tell you a friend, the kind of work that she put into the post, is it high? Is it high confidence?Is this a high confidence post or is it just the theory? This episode, you guys, and then the amount of effort that was put into it, is this just a random thought or is this like the result with three years of research? And that  sets the tone for people. So they don't get upset, especially if you have a lot of readers, they're like fuck you.Like you're an expert. And you didn't consider all these concepts and you should be open about that. I just, I don't like the word epistemic, cause it sounds very pretentious. So I just simplified it disclosure. When  I tried to make that a thing.Yeah. Q&A: Converting Resources to Projects [00:47:37]Speaker2: [00:47:37] Thank you. Just one last follow up question. So I'm trying to map that blogging whole process to the para modal. So for instance, that the older passive activity going over research, I can see based on my knowledge, you go, we'll go to the resources. But when that let's say that content for specific blog pause is filled like ready for 80% that I think I can, I can see that I can convert that blog post for that particular topic to a project.Is it how you also organize it? I see. Okay. Sounds good. Speaker3: [00:48:06] Thank you very much.swyx: [00:48:07] Yeah, no worries. I have another thing which I, after you publish this, a really interesting conversation you can have with your readers is you should not think about it as like a one to many thing. It should be like a back and forth.So I call this annealing — I almost included this in my slides, but I didn't. But essentially like when you image three, go. Okay. So when you have the idea for posts, right? You're like researching, researching, researching, like accumulating knowledge stuff like that. And then towards the end, when you're ready to write, you'd just do the sprint of writing.And then you have this draft. Maybe you have a group of friends that are peer reviewing. So you're workshopping this idea and I have a separate post on that. And then you publish, but right after you publish, you have a bunch of public feedback and you can actually have a conversation with them. And your posts continues to have increasing quality because you have a conversation with readers, gives people an incentive to respond to you quickly because there'll be shot at there'll be mentioned.This one, I didn't have it, but people mentioned, I, I shut people out one day when to respond. Yeah, it's just a really good model of of don't think about it as a single game. There's multiple stages that it's okay.All right. Thanks, Danny. Yeah.  I'll take one more question.Q&A: Video/Audio Capture [00:49:11]Sam Wong question for Sam Wong. I do a lot of YouTube on iPad and have taken screen capture.Is there a method to sort them into different projects in areas? Every ? I have no idea. YouTube and iPad and screen captures. Who does, if it is  video, any ones? I don't really, I take, I think a timestamp. So yeah. Does anyone have thoughts on YouTube or iPad screen captures like part of the I'm sure. Toolkit. Yeah. Part of the capture toolkit, one of the six is audio and video transcription. I just haven't had, I haven't cracked it.  Yeah. So  part of your toolkit is audio video transcription. And I only do audio I don't do video, so yeah, I'm not sure. I'm not sure what this tools are, but you can check out the tools that people are using here.Sonic study, I guess. I don't know. I haven't tried. I haven't tried these notion YouTube. Yeah. I do a lot of timestamps, so these are my podcast notes, I'll do here's the, what I want to feature. And the it's 36 minutes in that's essentially the extent of work that I do.Probably no thinking it's really crappy, but at the same time, I'm going to minimalist in the way that I do this stuff. Yeah, right. Thanks that. Okay. Well,  I think that's it. I don't see any other hands up and we've gone over time, so you're welcome to ask me questions through email again, if I can find it a success six, that IO and if not, we'll meet again next week and talk about distilling. So thanks.Thank you.  hang around say hi to people. We'll say, bye. Thanks Dennis. Thanks for all the questions, everyone. It really helps to make this not a monologue. Q&A: Speaking [00:50:39] Speaker3: [00:50:39] I'll just say all those speaking gigs that you do, it definitely shows in your presentation.So you do quite well swyx: [00:50:47] trying to do more. Yeah, this is so for those  who are speakers, this is what happens when you have this extra speaking schedule and no time to update them. So these are, you said the talks that I do.So these are all my talks, but I haven't updated them since december. And these are all the talks I haven't added yet. God. Yeah, I need to, I need to go make myself, I don't, I know I didn't, I need to update my own documentation, but yeah, if you want to do something well, do it a lot and I don't think I do it very well. I have a little bit I speak at it roughly about 10 times. A minute and that's not very good. I think so. Speaker3: [00:51:28] Yeah. No, I think your sort of weapon is what'd you swyx: [00:51:32] mean collegequantity? Yes, exactly. Speaker3: [00:51:38] I was just going to say while the EMEA, so I think you be at writing or be at speaking. I, I feel like that's how you're going about things and the more you do it, the better you get just your, your you're finding the time to do everything, or that's just the discipline that you've developed over the years, but it's, swyx: [00:51:54] it's pretty good.Cool. It's funny. Cause you can think about it as discipline, but you can also think about it as just. Being less perfectionist, right? Like I'm just lowering the bar on what I do in order to do more of it. And I think he also noticed when you have speakers where you didn't think about speakers well there two things.So one is when you think about the greatest features in the world, the Steve jobs and they have very pre prepared speeches, but then when they speak off the cuff, they have all the ums and AHS, they have the false starts and rambling around random rambles. So you don't have to be the best speaker in the world, but you can, you just have to be functional.You can get a message across, you can think while you talk. So you can plan ahead what you're about to say. And the other point I was going to make is that writing helps you speak better because it helps you rehearse things and be heard as the freezing and think of what structure.  I have this quote  in my writing chapter about, again, I'm not going to look it up right now, but when you write, when you have written down something and then you speak about the leader, whether it's a conference talk or workshop, or like a podcast, or just a regular one-on-one chat you sound smarter because you've written about it.So you should write more and you will magically become a better speaker. That makes Q&A: Writing My Book [00:52:58]Speaker3: [00:52:58] sense. What when did you have the thought of writing a book on the specific topic that you have written on the coding manual or whatever manual it is like, when did that sort of come swyx: [00:53:08] up? I have an exact date sorry. So you can see how often I use Twitter as my second break. So, Daniel was a friend now tweeted this if you're tempted by this. So, so Nevada tweeted this, I, there's never been a better time to launch a digital product. This is April last year, which is like the depth of the recession.Right. And then you were like, and this guy, this advice was like create a small product, something you can finish in two weeks and charge $10 for it. So I decided that I was going to do that. I think I did it here. Hmm. I don't know. I don't know where I actually quoted it, but essentially I have, that's the exact date that I started April 10th, 20, 20, 20. I decided that I was going to launch this, this book and then it just carried on from there. And originally was going to, it was going to try to finish it in two weeks, like you said.And it blossom into two months because I found that I had so much content to share. So, books, I hear that it tends to happen to books because people, especially when they're first time authors want to squeeze everything in. I think for, for second and third books, you tend to try to foc

Design Details
398: Proof of Curiosity

Design Details

Play Episode Listen Later May 19, 2021 22:55


This week, we dig into two frameworks for leveling up at work: Proof of Curiosity and The Helpful Hierarchy. Whether you’re looking for more accountability, want to stand out in a job interview, or just want to be more intentional with your professional growth, we think these frameworks will help.Golden Ratio Supporter:AroundAround is a better way to video call. It’s designed specifically to make it easier to gather small groups together to collaborate in real time, without all the distracting and frustrating interfaces that comes with most video chat software. We love the small floating heads and emphasis on making it easy to work alongside the video call, rather than constantly having to app switch.You can get started for free by signing up at Around.co!Latest VIP Patrons:Mark HuserStephanieFrancis CortezFrederik RømmingEthan MachadoLudens TranThe Sidebar:The Sidebar is an exclusive weekly segment for our Patreon supporters. You can subscribe starting at $1 per month for access to bonus content going forward! Sign up at patreon.com/designdetails.Follow up:Online workout trainer alternatives:growingannanas8fitUhl Albert tweeted: TIL: "Elephant paths" is another term for desire paths or desire lines.See more on 99% InvisibeMaximillian Piras tweeted: Although the mature product distinction does bring to my mind the Innovator’s Dilemma of being held hostage by your users’ feedback & what have you.Main Topic:This week we talk about how to stand out as a designer, centering on a WIP idea we’re calling proof of curiosity.Neil Sardesai is a great example of demonstrating a proof of curiosity on Twitter. Learn more about learning in public from Shawn Wang.Cool Things:Brian shared Paddington, just a wholesome, lovely movie that we finally watched together this past week. Part 2 to follow, we hear great things.Marshall shared Fist to Five, a technique for quickly getting feedback or gauging consensus during a meeting.Design Details on the Web:

The Swyx Mixtape
[Weekend Drop] Grifters and Content Creation Traps

The Swyx Mixtape

Play Episode Listen Later May 1, 2021 48:09


Welcome to Weekend Drops! Every weekend I drop one full length interview or conversation I had recently. This is for folks who want to keep up with me — if you came for the 5 minute mixtapes, I hope its easy enough to delete! Let me know how I can improve this for you.Video source: https://www.youtube.com/watch?v=sL_uefhT51gShare original tweet: https://twitter.com/swyx/status/1372013877731368961TranscriptMaksim Ivanov: [00:00:00] having a one today. We're going to be talking with Shawn Wang. Who is mostly known as Swyx and we're going to discuss, Oh Shawn, could you please introduce yourself first? swyx: [00:00:19] Hey everyone. I'm Shawn. I am also known as Swyx. I am head of developer experience at Temporal dot IO, but I'm also on Twitter a lot, and a general content creator.And my principal capacity. So I'm here to talk about that. Maksim Ivanov: [00:00:32] I mostly know about Shawn by reading his article learning in public, which is great. And also other essays. You probably know him as well. If you read this article, it's about we surely learning in public, actually showing your progress, sharing your progress putting out the material and learning by, by doing right.swyx: [00:00:49] Yeah, exactly. It's something that when I reflect on my own career every time I've done it it's really been the determinant of the majority of my success. So that's when I went to do a speech for my bootcamp. That was the title of my speech. I wrote it down in like one afternoon and then I tweeted it and it just went viral.I was like, okay, this is something that people want to hear about. And three years later I'm still doing it. It's it's still amazing. And I want to spread the word. Maksim Ivanov: [00:01:14] Shawn has some great essays. So for sure, Shawn knows how to make some great content, but I would like to give some backstory to this call.Let me share my screen. I want to show the tweet and what will be the matter of today's discussion. Share this screen. swyx: [00:01:29] It's always scary. It's always scary when people show you on three you're like, what am I going to say? Yeah. Maksim Ivanov: [00:01:36] So there is this thing in Twitter, which I understand totally. And I also did it.This is why we're doing this stream today. So their power is growing, the singularity approaches and then a bunch of tweet threads with five websites or whatever amount of websites that will save some amount of time. Per week or per day or per something you can see I'm here as well. One funny thing though, is that they have on the one, like, and retweet, but whatever, usually they get a lot of engagement and this is why people do it.swyx: [00:02:06] It is even if ours, that's what this is a problem. Maksim Ivanov: [00:02:10] That's a problem. So, as I understand, do you think that this is a wrong approach to create concentrate? And first of all, like to discuss. What is wrong with this thing? swyx: [00:02:20] Wrong is a strong word. I'm making fun. And it's okay to make fun is looking at me.Funny things. That's all. That's all. So, what that team was doing was that what, if you took them seriously, right? Like, cause every tweet was like, I was, this tweet will save you two hours per week. And then the next day it was like four hours. And then she was taking five. It makes me think it's 10.So I was like, why did you just edit it all up? Will you just not need to work anymore? Maksim Ivanov: [00:02:43] Yeah eventually this is why this is a tweet where I posted about this stream. I said eight hours a day, straight ahead. So we can skip the whole word. They be swyx: [00:02:51] free. Yeah. So it's obviously making fun of the exaggeration.And I mean, I get why people do it, so yeah, that's, as far as I go, I don't call it out as like anything evil. I just think it's obviously not a very genuine, because nobody really thinks that you're saving any amount hours. So you're obviously lying to your own people just to get some clouds.And it's also, I think that there's a Buzzfeed notification of Twitter where people are. Yeah, people are trying to turn their threads into listicles. Basically the promise, something absurd at the top, and then they'll list five or seven or 10 projects. Most of which they just saw when Googling around just before tweeting that they don't actually use.Right. I see a lot of this as well on grifter Twitter with like, here are the top seven JavaScript projects ranked by a number of GitHub stars. Well, thank you very much. I didn't know that. And it's very clear that there's just no effort put into it now, but people just like it.Maksim Ivanov: [00:03:45] Yeah. It's the path of the least resistance. And actually I was with my Twitter was actually even less genuine. I was actually. I didn't even care for the actual content or they wanted to see if does this technique work. So it was like double to let two layers of swyx: [00:04:01] uninjured equity, I guess nine is fine.Yeah. I mean, monkey see monkey do we are all Twitter is partially a game and you're always trying to figure out what you're playing for. It turns out that every people have different rules and I'm trying to inspire people to have a higher level of. Quality or purpose for themselves than likes, because I think that is the lowest common denominator.And I, that's not something I want to see in my life. I think my I've wasted enough of my own life on that. It's fine. If you want to do it, I. It's it's it's an open platform. Do whatever you want to do on your own account. It's I'm not telling you what to do on your own car. I also have the right to be fun, Maksim Ivanov: [00:04:43] even walking my next week that actually got some bitter tastes after doing it.Just like when using Tinder, I got into some mode that they didn't really like when I was dehumanizing people who. I consider just as followers instead of like trying to make genuine connection, but I totally understand why I would continue doing it just because it's the path of least resistance and you eventually might get very good responses on that.So this I would say platform or the platform itself encourages people to continue pushing out this sort of content to get likes and retweets. swyx: [00:05:17] Encourage is a strong word that you are, you have agency in your own choices and the kind of people that you wanted that connect with you based on those kinds of tweets are very low quality people.Just quite frankly, in my opinion. And the, and I, there's no point engaging with those people. So yeah, I mean, th there, there are other games to play on Twitter, which is for example, networking with high value people. And I'm not saying like, of course every everyone is variable and everyone, every person has value.There are just. Some people who don't value quality and it, they just respond to very like, okay. It's like the people who click on like the Buzzfeed articles. Right. And like the, here's the seven secrets to losing weight. You won't believe number five, that kind of, Maksim Ivanov: [00:06:08] so basically by taking a shortcut, I'm sorry, I interrupted you.swyx: [00:06:12] No worries. It is a shortcut. It is very bottom tier content. And there are a lot of people who respond to that. In fact, probably the majority of the population. But you're saying that because Twitter gives you a lot of likes. Twitter is encouraging you to do it. I pushed back on. Yeah.And push back on that because they're just not doing anything is all these people responding to what you're doing. And you don't have to, you don't have to respond to it. You don't have to accept it. You don't have to sink to that level. You can stand for something better that you can look back on in five, 10, 20 years and say like, I'm proud of that.Hopefully, I'm trying to push people towards that because all these things, all these legs, it doesn't fucking matter. Maksim Ivanov: [00:06:51] I would like to not to push back, but a little bit clarify my previous statement about Twitter, actually encouraging you to do this. First of all, a lot of people talk right now, a lot of articles exist about how growing on Twitter might help you with your career might just directly help you to earn money.Might help you to launch products and so on. So people come to a lot of people come nowadays to Twitter, not to communicate, but just to earn money eventually. At some point in time. And then when you go there and first things you see, you follow a bunch of topics that's what the app encourages you to do.It's the first thing that they ask follow some topics, and then it starts showing you the materials on those topics. And I, for example, followed the web development open source. Computer science and a bunch more related to programming. And what I saw then was mostly this sort of tweets, not only threads, but also repetitions of the same question.Like, are you a programmer or a developer and things like that, or semi jokes that are basically repeated over and over and over again. And they're promoted by those topics. So I see your point. I don't necessarily agree that the platform doesn't encourage it. For instance, inside Twitter, there is right now, clubhouse Twitter spaces.And at this moment, at least while clubhouse already became, at least in Russia SMM, a cement platform where people basically communicate to only promote themselves. So majority of interactions, there are about growth into the clubhouse. It's like Metta. Social network, where people connect for the sake of connection to gain something out of it.And growing for the sake of growing in Twitter spaces, it didn't happen yet. At least I didn't see it. And there a while you're talking directly to other humans, it all feels much more genuine and they don't see, how could you make this kind of discussions even like, okay, I'm going to discuss top 10 articles would not, you can't even post links there.So you see my point that plat platform and the medium that they're using actually matters. swyx: [00:08:47] And that. I agree. I agree that by pushing the topics and making the topics of a low quality I recommend they are pushing that onto you and encouraging that. So, yeah, I agree on that.Maksim Ivanov: [00:08:57] It could be the right counteraction for this, so that when people join Twitter, they see good content because eventually, like at some point you get some traction and you get like on YouTube and posting videos. First 1000 followers was very hard to get. I think it took me more than one year or something.Then second thousand was easier. And then now I'm getting a thousand a month I guess, single foot for the Twitter. How to start good because making materials that no one watches or reads is not fun, what would you recommend to people who okay. I want to make genuinely good quality content and we can talk about what is good quality content a bit later, but now if I'm starting out, how do I make it fun for myself?I mean, get some engagement in this. So people actually react, communicate, discuss. What is the good way to get it? swyx: [00:09:46] Yeah. I have the blog posts about this, that I call pickup what you put down. And so I'm trying to offer an alternative where you're, don't evaluate the quality of your work by the numbers that you engage and usually evaluate the quality of your work by how well it.Sorry, it's a conversation with people that you respect on topics that you're very keen on. So here's the difference, right? I'm trying to learn machine learning and I, this is an example I'm not doing machine learning is an example. But if Andre Carpathy, who is the head of. Machine learning at Uber puts out a new paper or a new library.I can go write a blog post about that or contribute to the library or like, make a demo with a library and send it back to me. And he has a higher chance of reviewing that because it directly responds to something that he did, right. There's a social contract in creators where you're entitled, you're encouraged to respond.And. If you become a frequent collaborator with him, you might start to get to work with him. You might become a peer. You might learn a lot more from him. And to me, one of those relationships with industry experts, where you start having a very sustainable long-term relationship with the people in the industry that is.Much more valuable than 10,000 faceless names who you will never see. And who will don't really care about you. And the reason you do this is because that's how you avoid the content grind, right? I think you may have heard about this on YouTube as well, but it's the same in a lot of other platforms.Not really. I Maksim Ivanov: [00:11:17] don't know. What does this term yeah. Could you please clarify? swyx: [00:11:20] Yeah, because the algorithm rewards consistent output that one, I'm sure. And if you couple that together with needing to boost the numbers on every single piece that you write, then you start doing very beginner posts, like how to get into development, how to, make six figures w in only six months of study stuff like that.And that is something that is, is fun, is going to get a lot of numbers because it's a very beginner focus and there are always more beginners than there are experts. But it's not very fulfilling and it's not very genuine after a while. Right? Like you can start off doing it for sure. But everybody runs out of steam because that's not the level that you're at anymore.You're always talking down to people. Not in none of the sense of like you don't think they're beneath you just in a sense of expertise, right? Like you're always like not pushing your comfort zone is what I'm thinking. And and you're not building industry relationships that are two way that are sustainable, that are helping you grow professionally as well.You're just you presenting yourself as an expert and then you're like here's the content that YouTube seems to want me to create. I have no choice in the matter you do. So, so please. Try to push us off a little bit harder, try to make interesting content that engages with the relevant, industry topics and build a network rather than an audience.Does that make sense? The difference? Maksim Ivanov: [00:12:36] Yeah, I see now, so instead of targeting people with a very few very small expertise in the topic and trying to please the beginners, your advice is to focus on people who you personally aspire, who get inspired with. Yeah. And to make content that would allow to connect with them and have interesting discussions.swyx: [00:12:54] Right. And and I'm not, and this is not about hero worship, right? There's a lot of celebrity culture, especially in tech. And. Some of that is justified because some of these people have really accomplished a lot in their lives. But there's also not about hero worship. So, people who are near you, people who are like just a bit above you, just a bit to the side of you, you can collaborate with them.And you're learning together and growing together and that's a genuine connection and your friends and you'll see each other, five, 10 years down the line. You've grown together into these great industry legends isn't that much better than being like. I don't know, a million subscriber, YouTube where you're just constantly training on tutorials.That's partially the chat. That's the origin of novel.  Have you heard of it? Maksim Ivanov: [00:13:33] It's the venture investor, right? No, no. That's swyx: [00:13:37] Navarro, so right. So retro, we've always a YouTuber who had a machine learning YouTube and he was genuinely good for awhile. But you committed to doing two videos a week, every single week for like three years.Maksim Ivanov: [00:13:52] I, I know real quick talking about yeah. With the gray Stripe of hair. swyx: [00:13:57] Great Stripe of hair, a very smooth talker, very high quality and high energy videos. The problem with that, he is spending most of the time, making videos, talking down to people who are beginners and spending zero time actually advancing his own skills.So eventually he ran out of things to do so he started copying other people's work and presenting it as his own. People have caught him just changing, like. Copy and paste with what do you mean arising or plagiarizing? And it's just a really bad look. And then he started selling courses and he said, it's like a limited sale of like 200 seats.And then he, it turns out he sold six courses, simultaneously fills 200 or something like that. And then of course, people call him because he cannot keep that up forever. And he apologizes and they say the YouTube algorithm made him do it. Did it, or did he just choose Maksim Ivanov: [00:14:43] removing your own responsibility and your own agency?swyx: [00:14:47] You have a choice. And I'm not saying like, do whatever makes you happy? I don't think he was very happy. He's just a captivated by numbers and I'm sorry, it got to him, but like, that's not the way I want to live my life and I want to articulate another path for other people to follow because Yeah.It's it can seem like it's a good deal, but you know, if you want, Hey, if you want to follow us, go and buy them. They're there. They're a bunch of bots and the New York times is, well, Maksim Ivanov: [00:15:15] no, I don't necessarily agree with the whole stance on this. Like when you're good at.Teaching let's say even basic topics and you're just explaining them really well. So that beginners grasp them well. And then you do courses. I think it is still a nice lifestyle. If you like, there are some uni teachers who make a good amount of money, they can support sustain themselves and live a very decent life just by teaching people.Very basic beginner stuff. swyx: [00:15:41] Yeah. Maksim Ivanov: [00:15:42] The would they personally go through their courses? Not all of them. I saw a lot of people there who didn't ever have real production experience. Is it necessarily a bad course? I reviewed a bunch of them. No, actually not really. If you're just starting out, they might be really good over your view of the technology and just get you going initially.So there are other people, like, I like the front-end masters, but from where they sell the. What is it? It's basically workshops recorded. They have really high quality ones with people who have some industry level practice, which is better. But I think there is a niche for swyx: [00:16:19] all of that. Yeah. I think there are multiple successful paths in life.And I will never say that the path that I want to go is the only path that is valid for everybody. They should all listen to me. No, I'm just saying that this is the first half that I follow. Here's why Maksim Ivanov: [00:16:34] now we can slightly pivot and you could describe in a little bit more detail. What is the path you're talking about with these genuine connections and what should be the strategy and what is good content?Like how you already covered it a little bit while talking about directing your writing or recordings towards people who you would like to connect with and network and trying to get at work instead of the audience. So, could we talk a little bit more about that? swyx: [00:17:02] Hm. To me that is the gist of it, try to form real relationships rather than game numbers on on some website.Like here's a good measure, right? Like, can you Is it a two-way street? Are you getting as much out of them in terms of learning as they are out of you and other measures, for example, like, can you work off of the platform, you can work together off of the platform?One of the ones that, yeah, hang on. One of the ways that I like to say one of, one of the goals that I like to talk about on Twitter is that Your Twitter is at his best when you take your, when you meet on Twitter and then you take it off the platform, you start to move into the DMS and then you're like, Hey, let's work together on a project.That's actually you can, I want to hire you to come be my coworker or like something, whatever, right? Like the relationship blossoms into something real instead of transactional. Okay. And if I have to explain that, I don't know how to go further. Yeah. Yeah. Another thing I think that happens a lot on platforms is that there are a lot of one-offs.So, it's like, I'll do a sprint and then I'll like put out something amazing. And then that's it. And then I'm moving on to something else. So, intro to reacts, intro to view, intro, to spots, intro to TensorFlow and whatever. That doesn't compound over time. And I think that people should try to compound things because that will deepen your relationship in your satisfaction and your expertise rather than spreading it out in a number of areas.Just because you're planting a flag, right. Because intro to whatever is always like where people start And that's what you do when you get, when you go for numbers. Again, no hate on you, if you're very good at that, and that's your job but that is not intellectually fulfilling to me.And that's all I want to say really about that. But I, if you can compound and like build a whole universe of like interconnected, Content articles. That probably is a very good content strategy in and of itself. But it's also very fulfilling for you personally, because you're built, you're exploring the map and going deep on topics that really peak your curiosity and people who are, who think like you can find you and go down a path together with you.You're leaving a trail behind you of like, here's where I'm going. I'm sharing my journey as I go is a very authentic journey. And you can follow along with me and see where this ends. I think that's a lot more fun and fulfilling than intro to whatever for the, until the end of time.I have another concept which is not very open for YouTube which is this idea of open source knowledge. That's another blog post that I've talked about. So, closed source open source code is, has helped to replace a lot of closed source code. And I think open-source knowledge.We can do that for a sort of private learning versus public learning. Right. But not just public learning. It's also collaborative learning. For YouTube. YouTube is not a very collaborative place. Like you can do, I guess, chats like this, but you're not really ever collaborating with your, with their readers.What about free code camp? What about it's Maksim Ivanov: [00:19:50] this sort of concept being on YouTube where people can contribute to this channel? Or are you mean something very different? swyx: [00:19:57] That's fine. That's okay. I mean, obviously it's a nice resource to have and it's it's a really good learning platform.Maksim Ivanov: [00:20:03] That's open source learning. swyx: [00:20:04] Sure. I mean, Maksim Ivanov: [00:20:05] how would it look like, okay, let's say open source learning on YouTube. How would it look like? swyx: [00:20:09] Sure. Who's the guy who read for you, friends. The FICO can eat you. Bill cartons, both Heinz runs the free YouTube. They post something like four to seven hour videos, every week or every day.Do you think he watches all those videos Maksim Ivanov: [00:20:22] or everything that they post? I don't know. swyx: [00:20:24] Absolutely not. Come on. Are you serious? Maksim Ivanov: [00:20:27] He personally might be not, but they probably have editors. Do you think they don't watch it swyx: [00:20:31] pretty muchbecause I submitted Maksim Ivanov: [00:20:36] it. And what did you have some Easter eggs there or how would you swyx: [00:20:43] it's just like he just comments on the intro and the ending. That's it like the middle he doesn't really see is some QC for like engagement and stuff like that. He's not learning, he's running a TV network.Okay. And that's a different thing. Is that open-source knowledge to you? I don't know. To me it's a form. It's a, it happens to be a nonprofit, a public charity, TV network, but it's still a TV network. And that's fine. You know what I'm trying to say here is for example like what is Wikipedia?Wikipedia is the first most successful. Example of source knowledge, where we used to have this printed, exactly PDs, where we do hire experts and you have to buy it every single year. Like here's the new stack of 26 books or something. And it just completely got destroyed, right? Because people just collaborated on updating the one resource on, on, on I guess encyclopedic knowledge.What if we could do that for anything that we were just added, right. Hey, I'm learning reacts type scripts. Let me just throw up a, get a repo and there's no code in here, but there's there's every everything that I learned about it organized in a way that makes sense to me and people who come along and see what I'm doing.And once it helps. Also on that they can be a bit behind me. They can ask questions or they can be a bit above me and they can contribute advice or fixes. And that's build this into a good resource that's collaborative and long-term I think that's a fundamentally. Awesome thing.And that's actually what happened to me by the way. So two years ago I did react to tactical cheat sheets and that's become the de facto community documentation for reactance associates, because people from Uber and Airbnb and Microsoft and wherever, it just came by and added content. And that's open source knowledge, right?It created a long-term long running thing I've been taught for free by all these very high value people. And that's a wonderful way to do this. So instead of like a top-down like here I'm the content creator. I will do a bunch of work and then I'll put out the finish product at the end.And once I'm done, I'm going to move on to do some other random thing. That's completely unrelated to the previous thing. There's an ongoing growth. Right. And there's a built in network effect. And people can see that there's a, they have a part to play as well. That's pretty cool. So, so if you when you asked me all the way back, I don't know about like five or six minutes ago, about what forms of content I find.Interesting. I think that's pretty interesting. Maksim Ivanov: [00:22:57] I also wanted to ask how would you envision open-source content on YouTube or any other video platform? How would the collaboration look like? Because the accent is nice. It's editable videos, not so much. Yeah, swyx: [00:23:10] well, I'll be honest. I haven't figured it out.You can let me know when you do. Cause YouTube is very final format when you upload a video, that's it? Well, you can collaborate on the streams, I think Twitter channels and stuff like that, but I hate it when people. And content creators. So, I used to work in developer relations and development marketing, and people are like, Oh, you can use YouTube or Twitch.And like, come on. Like YouTube is a hundred times bigger than Twitch, right? Like in terms of audience size, especially for developers. So, sure. You can do collaborative work on your Twitch channel with like 20 people watching. It's not the same thing as you. Maksim Ivanov: [00:23:43] With open source, there comes another question about earning money.And if you don't like this question, we can skip it. But With, when you make materials videos, courses, books, articles, you can just earn money with this and then making beginner targeted materials is just more profitable because you have more people who are beginners. And with I'm trying to ask a very complex question.I probably should just ask a bunch of questions instead. So let's go with first. swyx: [00:24:09] Just lay it all out and met up with we'll chat. You don't have to break it up. Maksim Ivanov: [00:24:13] All right. First of all, making content for the beginners is easier. Second is that when you make open source, and this is a very, let's say popular problem for open source is that open source often struggles finding getting funding or getting money, earning money.So what is your take on that? How would you earn money? Let's call it the ethical way of earning money or like how, what is the good way to do it without this sort of putting out ju I don't know what to say. Cheap material, cheap materials is just not necessarily true, but you know what I'm talking swyx: [00:24:46] about.It's a tricky topic. First of all, I applaud making anything and trying to sell it for money on the internet is very difficult and don't let any criticism get in the way of you trying. Okay. So, just go and try whatever you try. And as long as it works good for you.Okay. This is for people who have some experience and can. Are smart enough to do whatever and have some responsibility for their for their choices. So, that's one thing I should mention the other thing, I think that your question that I don't like about the question or that I want to push back on the question is that you said there's a there's, there's like two things that are pulling in opposite.Directions. So one is like, you want to make money. And the best way to make money is to make intro courses. And the other is you want to fund open source, right? Maksim Ivanov: [00:25:29] Another one was about your let's. See you write the book. If you write it alone, you can just get revenue by selling it. If you make an open source, let's say book or cheat sheet or whatever you won't be able to sell it.swyx: [00:25:41] I see sure. So Maksim Ivanov: [00:25:42] that's not swyx: [00:25:45] okay. Like, first of all, you don't have to monetize everything. Second of all a lot of open source like is a means to an end, right? It's not about the code is about the knowledge and coded inside the code. And you can monetize that a bunch of different ways.Like, you can use that as part of your CV for hiring, right? If the company already uses your. You call it they're much more likely to hire you because you're the betaine or something that they use. That's fantastic. But then also you can sell consulting services. So my friend Tanner Linsley made react query at reacts table and a bunch of other popular, which is a main library.Yeah. Consulting hours. And that's a perfectly fine to, we don't monetize. And you can keep the open source free because code is only a part of the overall value of software. Maksim Ivanov: [00:26:23] I like this answer. It's very good that you don't necessarily need to make the direct sales. swyx: [00:26:29] Well, the different, the slightly different answer, which I thought you were going in slightly different directions because you were saying, okay, I definitely see a lot of people making intro, intro tutorials and courses, and they make a lot of money from it.And then you're trying to link that to like how can that, how can I use that to fund open source? Well, not Maksim Ivanov: [00:26:45] the way of the questions. What's really two different questions and I got. Confused. swyx: [00:26:50] I just wanna make the point that teaching is his own valuable skill and source is a different skill.That is, that tends to be monetized in a very different way. So the people, the kind of person who like works on Redux and it like isn't the issues every single day is probably. I know, cause he's a friend of mine is not a very good self promoter and teacher of intro introductory courses, because they're just not at that level.And they don't enjoy that kind of work. And it's it's it is a stent, it is a good skill to to be able to teach beginners. So, these are all, these are both specializations and they monetize in different ways. Maksim Ivanov: [00:27:20] Okay. That's a good answer. Overall throughout the discussion, I got the point that there are things more important than money.It's more important to do things that fulfill you. It's more important to make connections, that, to try to gain the audience. And what else did we, swyx: [00:27:37] can I, can I want to, I also want to share this. Money is very important to me. Okay. I I do expect a lot and I think people should try to make the most out of the limited time that they have for available for it.But I think that you can both be more fulfilled and make more money by going deep. Okay. Rather than broad and shallow. So, this is not a choice between either, either I want money happy to do deep work and Maksim Ivanov: [00:28:02] don't money shovel. swyx: [00:28:04] I have a lot of money. It just needs to be more patient. Okay. Don't go for the near-term rewards of likes, go for the long-term rewards of like here's a productive working relationship where it spins off like job opportunities, like collaboration efforts, like whatever, and like mutual learning, stuff like that.And. And to me, I think that will probably open to you opportunities that most of the other people, because they are playing a completely different game. They're just playing the likes game. Those opportunities will not be open to them because are, they're not even caring about relationships. They're not even caring about like collaborations and learning.So, I'm simplifying things. Greatly. Okay. And so, take this with a lot of caveats. But I think that you can make money and you can have deep relationships at the same time. Maksim Ivanov: [00:28:46] I think a good example is Josh Camille with his CSS course, he's worked for a long time for saw him on rec Europe.And then I was amazed by the depth and the quality of his articles. Tutorials, it's just amazing animating react overall working with CSS. And now I, as far as they've heard, the launch of the CSS course was very successful. swyx: [00:29:09] Yes. Half a million dollars. That's very good. Yeah, but he spent 10 years making educational tech platforms and just being extremely passionate about them and meeting basically everybody in that space.Right. And then whenever you want to monetize sure. Just put out a course, people buy it because they trust you and you are going to have the skills to back it up. Right. It's just so much easier than like. Trying to start out hunting for likes and like going into the content grind and during the intro stuff and like not really having a purpose or a goal that he stat Josh stands for something he stands for.I guess, animation he stands for is for CSS. It's like yelling. There are a lot of CSS developers who like just yell at JS developers. Hey, you should learn CSS. You suck at CSS. He's not like that. He's a GS for that really understands CSS and wants to just share it with you because he thinks that it can be beneficial for you.And he just genuinely embraces that and has gone deep on it. So that's the kind of thing where there's a class of YouTube content creators or Twitter content creators that will just never get there. Never because they're just focused on the wrong thing and I feel sad for them and I don't judge them in a sense that they can do whatever they want, but I think that maybe they might not know that there's another way.Maksim Ivanov: [00:30:18] Okay. We have, I think just five minutes left and I want to ask a very specific question about concentrate creation is what is the. Purpose of like what kind of, what to post on Twitter because yeah I connect easily with people in Twitter spaces but they have no idea what to tweet about. I do a lot of different things, but it feels like it's not, it's just tweet format is just not for me.I ended up just using it to announce my stream sense swyx: [00:30:45] and such. I see that's fine as well. I, I don't really think I figured it out. And I think as long as you're working on interesting things and you're sharing Cool findings, sometimes storytelling really works, like telling a personal story or something that you just learned that like, you just have to tell people, it's the kind of thing that like, when I read about something and I'm like, Hey, I want to tell my sister that's the kind of thing that you can share and just write it up in an entertaining way because people want to learn, but they also want to be entertained, right?Like, Twitter's kind of like a. Semi-professional place. So, if you can balance the bars of an education and entertainment, I think you'll go pretty far and also making it witty. I think it's something that's pretty pretty key witty like, Some something insightful that someone has never thought about or has never been crazed quite that way.And after you think, after you hear that, you're like, okay, shit like that. That is the way to think about it. So quotes are really good. Unfortunately that gets you into this territory of what it's called fortune cookie Twitter, where everyone, every, the, some of the really high follower accounts, basically you have sharing.Maksim Ivanov: [00:31:50] I put it in the same thing as the threads with ours. The same thing. Why not? swyx: [00:31:54] Because there is some genuine belief in that when they, when you treat that they're just trying to minimize they're trying to compress their insights into the smallest. Amount of characters and words as possible.But they genuinely believe in it. Whereas those engagement and listicle posts are literally just listing Arctic listing projects and then writing absurd number of hours, which nobody believes. So there's a difference. Anyway. So yeah, I mean, I don't, I have a guide for I have a developer's guide to Twitter in the, in a book that I wrote it basically covers like a bunch of these topics.It covers like, Healthy Twitter versus a unhealthy Twitter. But yeah, and I think my advice, so people just getting started is that try to keep it professional, 90% professional, 10% personal is something that I think about a lot basically because people don't know who you are as you grow over time and people know your brand, they trust you.You can let loose a little bit. I definitely play a lot of letters by myself, but when people don't know who you are, you can try to focus and try to connect with the people in that particular part of the Twitter audience. And physically, sometimes it's like responding with helpful links sharing or riffing off of somebody else's work.Like sometimes people will publish a code pen and you can fork that code pen and then build something else with it. And that will be really cool. And they'll share your work as well. And it's a long game. I've been doing this for, I've been serious about Twitter for about three years.And it's really it's definitely helped me, but the people that I don't remember, like, I don't. My, my growth doesn't scale with my follower account. My girls' scales with the number of high quality people that, in my industry that I really want to connect to.And sometimes they can be industry legends, or sometimes they can be people new to Twitter, but who already have really good skills that wants to learn from, and I work with them already. So try to use it as a guide, but don't be ruled by your life. Don't rule your life by likes basically.Maksim Ivanov: [00:33:36] Yeah, for me, the great example was rancor NATO, who, with whom we made a stream about a solid and what is different, the difference between solar. swyx: [00:33:44] Holy shit. Maksim Ivanov: [00:33:46] He's so, I then asked him to send me an article who apparently he wrote, it turned out that he wrote that article about history of hooks. I perceived hooks as something that appeared in reacting 2019, but.Actually it was, yeah, exactly. It is. This pattern existed since 2010 and actually you can backtrack it in other languages even further than that. Like in JavaScript, it was not called JS. That hasn't this sort of thing that was, who cooks swyx: [00:34:12] like sort of Ryan, Ryan has an interesting, so there are smart, there are some developers who are very well intentioned and very knowledgeable, but they're very self-focused.And I think Ryan has genuine intention to want to share but he ends up plugging his own stuff too much. And. He plugged a lot of JS a lot. And sometimes like people would want to learn about SaaS. Yes. They're like, ah, here's this guy talking about solid JSM. I mentioned again, there Maksim Ivanov: [00:34:36] is a limit to what should be the ratio between plugging your own style?I don't know. I dunno. swyx: [00:34:41] Like, no. So hang on. So I wanna let me finish my thought, which is basically, I think that you should try to help others before you serve yourself. Right. Like, give, give, give, take, give, give, give, give, give. No, it's not tick. It's like ask, give you, give me something like that.Right. Gary V has a jab jab, jab, right. Hook, something like that. Right. Whatever it is. At least build that relationship by like offering something of value to the other person. And then they'll be like, okay, check out your thing now. Right. Like instead of like constantly like here's my medium article.Here's my library. Other people exist and like promote them or like help them. And then they'll enter in, in return. There'll be interested in you, not not as shocking,Maksim Ivanov: [00:35:23] really bad. It's just something that you see that he could do better to promote himself by. swyx: [00:35:28] Yeah, I guess I always like, there's another guy as well. Who's one of the maintainers of Webpack and he's very smart, but like he, he has trouble getting people to To notice the stuff that he does basically, cause he doesn't portray, he doesn't seem to give back, in in caring about what they do.So yeah.Maksim Ivanov: [00:35:44] Good point. swyx: [00:35:45] I think one of the ways I think it's Dale Carnegie to win friends and influence people. That's just like a rule of human nature. So even though it's like 70 years old, it's still relevant. One of his causes that to be interesting, be interested, the interested in other people being interested in what they do, what they're what their priorities are, what they're.I guess their personal job whatever they share online that they're happy to engage with. Right. So it's like a, it's like, Hey, like, I'm really going through something in my job. And it's like, Oh no. Okay. Tell me more about that. And like, just being genuinely interested in what's going on in their lives.And like, if you're not, and don't fake it, right. Like if you're not then that's fine. But like when you do like engage in the story, help out and they'll start to care about you as well. Like it's just a fundamental, like reciprocity principle that just always works in human connections.Maksim Ivanov: [00:36:31] But then something that you said is very important that you need to really be genuinely interested. You can't force it. You cannot make yourself be interested in other people. It's just, and I think the core lesson here is just to really know what you like, and we can come, go back to the beginning of our canvas conversation where you said to create material targeted to people who you admire and aspire and Then steal you first need to know what do you like personally?What are you interested in instead of chasing the likes that are, of course is a dopamine kick and yeah. Everyone likes it, but there is some deeper liking that needs to be found, right? Yeah. Yeah. The reason, one question that I would like to answer before we finish. It's the first question that we've got today is like, what is a grifter?And maybe, and I've like, overemphasized it, but w would you like, is it really called grifting or is it is my English bed? I think I've heard that a couple of things.swyx: [00:37:29] If you if you're not in this world, don't feel bad. I, it's a term that I think it's popular in like the very extreme liberal parts of the us. And they just expect everyone to know it. Right. And it's just, you see, I Maksim Ivanov: [00:37:40] Get it. What does it mean concept contextual contextually?swyx: [00:37:44] No, I don't. I haven't spent a lot of time thinking about this, so I don't have a. A good definition, but I'll try for you. And so grifting is a negative connotation. It's a labeled for someone who's trying to get by not doing very much and trying to do, trying to, I guess, profit off of other people's work that's drifted in a nutshell.So a grifter is someone who just does that constantly. Right. And that's the only thing that they do, essentially, someone who doesn't have any interesting value themselves and just. Profits off of other people. And to be fair, there are a lot of those in the U S and that are sometimes I see them a lot when I was very young I was involved in charity work in Africa.And, Oh my God, there's so much Griffs in Africa. Like when you give money to charities, please double check where your money's going. Because a lot of it is just going to people who are already pretty rich and they're just, taking it and acting like they're angels. They're not angels. But in tech it often is people like, like, like the, like that list of people, like here are the top seven libraries of JavaScript.They didn't, they did not contribute to any of the libraries didn't even use it. But they're just doing it for the likes. And that's a form of grift. Maksim Ivanov: [00:38:48] Sorry. So thing is that people will ask me about the VAs called extensions that I use, but probably means that I don't really use any except for VIM and just two extensions.That's it. And most of the extensions that you will find, yeah. They might make you more effective, but that's not the effectiveness that you should strive for. Anyway, usually that's a few minutes. They don't really matter in a big way. Oh, swyx: [00:39:14] that's great. Maksim Ivanov: [00:39:14] What I mean? swyx: [00:39:15] That's great. So you have a unpopular opinion as they call it.And you should just, try to share that because I think that's something that will get people's attention. Maksim Ivanov: [00:39:23] Wait a second. It is an unpopular opinion you think? swyx: [00:39:27] Yeah. The escort is like 50 something percent of the developer market and all of them use the sanctions. So the fact that you use something else is something interesting.And you can say like, yeah, you can have this, I don't know, like the YouTube where terminology, cause I'm not a big user, but you can go like, like something in your top, in your alumni and go like, vs code is overrated. Here's why. And then.Maksim Ivanov: [00:39:49] Yeah, but you leave, you really believe in it. That's great. Yeah. I truly believe, I don't think it really matters. I think it does. Exactly. Even more than that, my work set up is very similar to my streaming setup and it has everything turned off or a completion, whatever, because I'm just lazy. Well, honestly, I don't like switching back and forth between two set up, sets up.It's easier for me to get used to one without any sort of hints. And then your brain does it automatically at some point, that's it. All right. swyx: [00:40:17] I don't agree but night good for you. Whatever works. The beauty of code is like, you can call it your way. I can go my way. As long as the code runs, like I can work with you.That's fine. Maksim Ivanov: [00:40:27] Yeah. That's that is true. Even though naturally we tend to be very defensive about the tools that we are used opinions and whatever. swyx: [00:40:34] Yeah, it is. So there's a, this is a side tangent, but there's an interest for it. I think on hacker news a few, the two days ago where it's like, okay, code is a very interesting, like intermediate representation because at the end of the day, every developer has their own like unique little ID setups and they view code differently.Right. But how come when it comes to the web? We just feel the final product. Like I have to see the CSS and I have to see the topography and whatever choices that you made. And I don't have a say in it. Like, what would be, what would it be like to have an ID for the web? Right. That'd be better.Be pretty cool. I'm just sharing that. The interesting thought that's an interesting Maksim Ivanov: [00:41:07] thought. I have swyx: [00:41:08] so much personalization. Maksim Ivanov: [00:41:09] Yeah. And I have seen different thought in the same direction that the code is not only the tool or a scaffold to create a product that you will serve, but it is also a product on its own because when you use it with your colleagues, they're also consumers, and your code has consumer qualities itself, not as a.Are scaffold or a blueprint. One thing that I've noticed is that at some point I start to sense, like when you work with people for several months, you might start sensing who wrote specific line of code, even without looking at the different style. And you see, okay, this pattern is from this person and whatnot.But also I think it emphasizes the importance of clarity, which I put on top of everything when I write my code, because if it's clear, you can easily fix it. It's unrelated to all the previous discussion, but I think it's related to what you were saying about the code being its own sort of thing.swyx: [00:42:03] Yeah. Yeah. It's a tangent, but like the, yeah. See, this is what a casual conversation where we were both passionate about programming and that's what it happens. If you're here to like, make like, are you a grifter of content? Like we'd be a lot more focused, but I think this is how real conversations work.Maksim Ivanov: [00:42:19] Exactly. This is why I like Twitter spaces. And I don't really like Twitter. That's the thing. It's the same with the tap on some Twitter spaces. You talk to the person you're genuine, that's it with tweets? No idea what to do. swyx: [00:42:32] Yeah, it's a mix of like public broadcasting, a bit of a meme and joke a platform.And then some like, actual education going on. And sometimes people teach really important stuff. And like, for example, I follow what's his name? Eddie as money. And he has money is the engineering manager and he only tweets Chrome updates. So he's the Chrome update, Twitter account accounts.And I follow that and I learned about Chrome from him. That's great. That's fine. He's already given up on like, sharing too much personal stuff. I think, cause he's there's a cost of that, which is people think that they know everything about you and they want to, they have opinions about how you should live your life.And sometimes you need to just turn it off. Maksim Ivanov: [00:43:07] I can imagine. Yeah. Well, that's really all that I wanted to discuss. If you have anything else that you'd like to discuss, swyx: [00:43:14] I, this is an unusual chat for me. Usually I'm talking about like, the basics of learning in public. So, actually you get me a chance to really go deep on this grifting and like, thank you so much.Yeah. No, I'm really glad. I'm sorry. I made fun of you, but like, I think you agreed with, it was pretty funny anyway, Maksim Ivanov: [00:43:28] Was, what's really sucks. There is that I was exposed as a grifter and among them, I was like a loser with one line.Yeah. I thinkswyx: [00:43:42] here's the way I spin it positively. Right. It didn't work because you don't have a brand for grifting. Like the people who follow you don't follow you for that. So they, they don't want to encourage you. So they don't like it. So the people who have been doing it for a while, they build up an audience of like people who want me to do that.And that's what they want Maksim Ivanov: [00:43:58] very hard to then chip, to pivot and change your direction. When you get a, already a lot of engagement, a lot of support, and a lot of people who like your content that is that. swyx: [00:44:08] And then you get this irritable bowel problem. Yeah, so, so, I have a post on this called the medic creator ceiling just Google metal creator ceiling.W where, w we're basically, I say like, if you're a smart and ambitious, you end up wanting to win rather than more than you want to solve problems. So winning to us seems like you have no direction in life. You're like, well, okay. Winning like, Oh let's make the number go up. That's winning to me.Try to have a deeper definition of winning. For you because you have, a limited number of years in life, like try to work on something more substantial than than just numbers on a screen. So, so the line that I end with is assume that you will be successful at whatever you do.Are you playing a game that you want to win, right. Assume that you're going to win. Are you playing a game that you want to win?Maksim Ivanov: [00:44:46] I actually read this article and I really liked the points of it. swyx: [00:44:50] Yeah. So, so, whatever it is, and it's not for me to tell you what, to, what, to, what you want to play and what you want to win at life in. There's another article by clay Christensen called how will you measure your life when you look back after like 50, 60 years, what will you be proud of?Right. It's probably not the Griffin tweets. That's all. Maksim Ivanov: [00:45:05] Yeah, yeah. Good point. Well, thank you so, so much for joining the stream. It was very fruitful. swyx: [00:45:11] Yeah, probably Maksim Ivanov: [00:45:15] about the tweets. Yeah. Thing is with Twitter and with tweets is that you get only a tiny little picture of what the, yeah.Yeah. swyx: [00:45:24] I saw that people have gotten upset with me. I've gone on set with people and then we've patched it up. It's fine. Yeah. The only Maksim Ivanov: [00:45:31] reason why I didn't get upset is that I'm not really attached. To this sort of thing. So I was like, yeah, it's wrong. I also don't like it. So let's yeah. swyx: [00:45:41] That's another principle I have as well.Don't attach your identity to your work because if people criticizing you, sorry. If people criticize you, they're criticizing a past version of you, right. And you always have a chance to improve. Maksim Ivanov: [00:45:51] Yeah. That's true. I, when I was reading your essay about learning in public, you said there that people criticize you, you good?You agree. And you move on. I personally dislike criticizing because I honestly think it can be done by much better if the person has swyx: [00:46:09] a nice about it. Yeah, Maksim Ivanov: [00:46:10] exactly. Because. When you criticize people? Well, the most likely thing that will happen is that they will get defensive. This is just how we operate.You also mentioned that totally agree we're animals by the biggest percentage. swyx: [00:46:25] So, so don't get defensive, turn the other cheek and say like, okay, I agree with you. Can you tell me more? Right. Because there are a lot of people who will never be nice to you when they criticize. They just think they're very smart, whatever, and they are very smart.They're just not very nice. If you can turn those people into your mentors I've done that. Many many times. And that's what I think you have more teachers than, what to do with and that's great. So, it's definitely, you have to swallow your ego a bit and just go like, okay.Yeah. I, I want, I'm willing to listen to you. And sometimes when the, when you show that you're willing to listen, they also back down and they become nice. So instead of telling them, Hey, you should be nice before you talk to me easily. You just go like, Hey, I'm willing to listen. And then they become nice.You know what I mean? Like don't tell them to be like, invite them to be nice.Good point. Yeah. I do have to go but thank you for so much for having me. And this was a really great chat. I'm really I'm going to get as much watch back on this one. All right, bye. 

Modern Web
S08E09 Modern Web Podcast - Sides Projects with Shawn Wang

Modern Web

Play Episode Listen Later Apr 21, 2021 50:15


In this episode, Lindsay Wardell and Hunter Miller talk side projects with Shawn Wang. We discuss the projects they do on the side, and what kind of side projects they enjoy working on. Shawn also talks about his book, "The Coding Career Handbook", and how it started as a side project as well. We also talk about the importance of writing your own blog posts, and sharing your experience and learning in public to help both yourself and others, rather than blogging for numbers. We wrap up with a discussion on being a part-time creator, and finding a company that supports their employees and match what you're looking to do.   Guests: Shawn Wang (@swyx) - Developer & Author of "The Coding Career Handbook"   Hosts: Hunter Miller (@hmillerdev) - Senior Software Engineer, This Dot Lindsay Wardell (@lindsaykwardell) - Software Engineer, This Dot & co-host of Views on Vue    This episode is sponsored by the Media Developers community & This Dot Labs. 

The Swyx Mixtape
[Weekend Drop] Swyx on Svelte — CodingCat Podcast

The Swyx Mixtape

Play Episode Listen Later Apr 10, 2021 41:35


Video: https://www.youtube.com/watch?v=JfZm0tPUxjESite: https://codingcat.dev/podcast/1-15-whats-up-with-svelteDetailsShawn or perhaps more popularly known as, Swyx, is a frequent writer and speaker best known for the Learn in Public movement and recently published The Coding Career Handbook with more advice for engineers going from Junior to Senior. He has worked for Netlify and AWS and is also the co-host of the Svelte Radio podcast.Questions Where are you living these days? What is Svelte and how is it different from other frontend "frameworks"? The website Svelte.dev explains a lot about why I love Svelte. It says, write less code in languages you already know, compiles the framework away to a tiny vanilla JS bundle, and easy out of the box reactive state management. All of this sounds fantastic, so why are companies still choosing the other big 3 frameworks. Is there anything Svelte missing? a. https://www.swyx.io/svelte-sites-react-apps/ I saw you have a course on egghead on Design Systems with React and Typescript in Storybook. Do you think Svelte would be a good choice when building a design system since it is so close to base HTML? Built in animations and actions out of the box are 2 things that really make Svelte stand out for me. Can you explain more about what actions are and how you use them in Svelte? a. https://github.com/sw-yx/svelte-actions The Svelte docs are really nice, but when it comes to video tutorials there isn't much out there. Where would you tell people to go that wanted to get started learning Svelte and would you ever think about creating a course for Svelte? We've all heard the rumors that SvelteKit is coming soon and I know you don't work on that specifically. But, with this new solution coming out that will supposedly handle static site generation and server side rendering, do you know if Sapper is going away or what is happening there? Additional Links Mentioned https://sveltesociety.dev/ https://github.com/sw-yx/svelte-actions https://svelte.dev/ https://svelte.dev/examples#actions https://www.svelteradio.com/ https://egghead.io/courses/getting-started-with-svelte-3-05a8541a https://frontendmasters.com/courses/svelte/ https://www.youtube.com/channel/UCZSr5B0l07JXK2FIeWA0-jw https://sveltesummit.com/ https://podrocket.logrocket.com/swyx https://svelte.dev/blog/whats-the-deal-with-sveltekit Purrfect PicksThese are fun picks of the week. Maybe something you bought online, a great show you are currently watching, or that last book that you thought was amazing.Shawn WangThreejs JourneyBrittney Postma https://www.swyx.io/svelte-sites-react-apps/ Draggable Kanban App with Svelte - https://www.youtube.com/watch?v=mcaYol_XFk4&t=1529s Alex Patterson https://undraw.co/ https://github.com/sw-yx/spark-joy/blob/master/README.md#illustrations TranscriptAlex Patterson: [00:00:00] Welcome back. Perfect peeps to perfect ad dev today on the show we have Shawn Wang also known as Swyx. Hey Shawn, how's it going? swyx: [00:00:11] Hey, thanks for having me. Yeah, happy to be here.Alex Patterson: [00:00:15] Thanks. Thanks for coming on. A little bit about Shawn, or perhaps popular known as Swyx is a frequent writer and speaker best known for the learning public movement. And recently published the coding career handbook with more advice for engineers going from junior to senior, he has worked for Netlify AWS and is also the co-host of felt radio podcasts. That was quite a bit of stuff.swyx: [00:00:39] Yeah. Is that too long of a bio? I've been thinking about cutting it down?Alex Patterson: [00:00:42] I don't think so. I think it's perfect. Honestly, I really like busy. Brittney Postma: [00:00:47] That's really cool. We like swyx: [00:00:48] all the content. Okay. Making up for lost time. I was a career changer, so from 2011 to 2017, I was finance. And now I'm trying to make up for it.Alex Patterson: [00:00:59] I think you're doing a great job. You've probably leaped over a lot of us. So I probably varied deleted as I always tend to do, because I'm just so excited about the guests. Usually not as much, well equally as the sidle and subjects. So, today we're talking about what's up with felt. And possibly some things there.Brittany will probably lead a lot of this conversation today. Folks, you probably hear too much from me, but Brittany loves fell. And so, I'm going to let her take charge on this one quite a bit. The only things that I want to know before we dive in is felt where are you these days? Are you at home or where are you? swyx: [00:01:32] Not for those watching on video. This is clearly not daylight.  It is 3:00 AM my time in Singapore. And basically this is where I was born and raised and where my family lives. Normally I live in New York but. You know exactly a year ago, I fled New York because I wasn't sure if the healthcare system could take me if I got COVID.So I came back to the only place I knew, which is here. And I've been here. It was supposed to be like, I actually packed for like two months and I left all my stuff in my apartment and I was like, it's a short trip. It's fine. And now I'm still here. Repeatedly. It's Brittney Postma: [00:02:06] crazy. That's exactly how we all felt like it's going to be over in a couple months.Like, let's just do this for now and then no, we're still here a year later that you got to go back to the family. swyx: [00:02:19] I've lived through this I've lived through SARS which actually shut down schools here in Asia for a while. And I think Americans don't know how it is. So maybe, I do think that you ha you don't take it as seriously if you haven't been exposed to it.But like everyone everyone of us in Asia knew exactly what to do. And we just did, follow the playbook. But it was over in two, three months. It wasn't like, We were scared. I was scared for my baby sister. I was like, what well did you just get born into? But it was fine. And and I thought this would be the same way and it wasn't.So there we go. Well, I'm Alex Patterson: [00:02:49] even more happy to have you on the show now that I know exactly what time zone you're in, it's crazy early or late defending. So thanks again. I don't know what hours you're keeping these days, so, swyx: [00:03:00] really appreciate it. I call it the reverse nine to five. So we wake up or start work at 9:00 PM and at 5:00 AM.And it turns out that it's not too bad, like as long as like the house is quiet, which it is, then you have to focus on your work and you'll eat dinner with your family. And that's fine. Yeah, Alex Patterson: [00:03:17] that's crazy. Well, awesome. Well, yeah, not to drive too far away from it. I'm glad you're you were able to get home and healthy and we're super excited to talk about smelled.So I hope you're. I hope you're ready to talk about it too. Yeah. I Brittney Postma: [00:03:30] am extremely excited to be talking about like, I, this is my favorite framework, library, whatever you want to call it. Right. Like compiler, but what do you. Thanks spelt is. And how is it different from those other front end frameworks that are out there?swyx: [00:03:48] Well, I'd be interested in your take since you're also, the resident expert. Brittney Postma: [00:03:53] I don't know if I would consider myself an expert, but yeah. I mean, I know spelt is a compiler, so I think of it as a framework because it's structures or code, right? So it's something that structures your code and that you can write some form of markup in it's like an HTML super set.So that's kind of how I view it as a framework that compiles away. Yeah, swyx: [00:04:16] my, my experience, I came from, I started with view and then I moved to react. And then I found svelte. And so I view that I view this progression in frameworks as just ways different ways in which to write user interfaces on the web.And to me it's felt is the simplest by far that I ever tried, it is a full sort of batteries included. It is a joy to to write. And the docs are really easy to explore. And the community is very nice and welcoming and small, which it seems like a surprising thing to want a small community, but having been in the large community like reacts, I was a moderator of the.Reacts, separated where there was over 200,000 people. Large communities have their problems too. And sometimes small is beautiful. And I think that's a lot of the philosophy has felt, like the basic hello world should not. Come with like, 120 kilobytes of uncompressed JavaScript.And unfortunately that's what you get with some of the heavier frameworks. And you that just doesn't matter for things. So Svelte  like its name. It's a compiler framework compiler first. So unlike viewer reacts where you can just drop things in with a script tag, it's felt you do have to run a build step.But. With that one compromise you get a lot of mileage out of that build step including things like first-class animations, first-class styling support which react doesn't have. So I enjoy that. And of course the output bundle is as small as possible. Sometimes an order of magnitude smaller than what you get with react or view.And that's just because it's adopts a fundamentally different approach. I don't necessarily think one is better than the other. I just observe my mood, like, okay. So I think there's a S I still advise. Beginning developers to go learn reacts because that's where the biggest job market is.Okay. But once you're pretty secure and like your front end knowledge and your like your choice of tech stack, doesn't dictate your economic value. Then you should explore two tools that just make you happy and more productive. And for me, that's felt. Brittney Postma: [00:06:15] Yeah. You mentioned a couple of things that are actually some of my favorite things about spelt the developer experience.I feel like it is so fun to write. Like it is just simple and I almost feel like I know job market isn't quite there yet, but it's probably one of the easiest for developers to jump into right out of the gate. Once, you know, HTML, CSS and Java script, you can write spelt. It gets just that simple. So that's one of the things that I really love about it.And if the job market catches up, like, do you think that might be one of the things that we get to where they can learn that first? swyx: [00:06:51] Yeah, absolutely. So, we, we say things like the job market isn't there is it's not zero and it's growing every day. Apple is actively hiring for salt developers.And so as Ikea I think something like American airlines is also using there's a bunch of, so I helped to run this fall society community, which is kind of like the official community as felt. And we just keep a list of who's using salt and production and it's very long list. Yeah.And Brittney Postma: [00:07:16] there's felt jobs, right? It's swyx: [00:07:18] full jobs. Yep. Yep. Schneider electric, there's, household names and then there's less household names, but still very important, big companies that use felt. And I, I just. W at what point, how many, w is there a number at which we're happy or does it have to be a number one in order for people to be happy?Like we can get jobs using salts like that. That's not in doubt. Brittney Postma: [00:07:37] I think that it's easy for people to jump in. Would you agree with that? Like where people could just jump in and learn it right after learning HTML, CSS and JavaScript. swyx: [00:07:47] Yeah, no, absolutely. Yeah. In fact, like, I think the progression from HTML is probably the simplest compared to the other two frameworks, because it is a HTML super set, like you just said, Brittney Postma: [00:07:57] Yeah.And those sugar syntax that we get with smell, I feel like are so much, I don't want to say better, but with react. And JSX like, there's so many of those nuances that you have to do, like class name and you have to do whatever your attribute is equal to. And then you have to put the JavaScript in there and we can just do those shorthand.Syntax is in spelled that are so nice. swyx: [00:08:21] Yeah. There's good and bad in the sense that it does add learning curve to the framework and reacts intentionally for better or worse is on the other side of that. Spectrum, but for things that we do multiple times a day, every day, it's nice to have a shorthand.Brittney Postma: [00:08:38] That's really nice. And you mentioned one of those other things that are my favorites is the built-in animations with spell are just outstanding and it's so nice. Especially if you're building a static site, like you can do page transitions easily. You can bring in like a little. Fade in animation, whatever you want.And it's just, it comes out of the box and you get that easily. Also actions are another thing that's felt provides you. And can you explain more about what actions are and how you used them and spell swyx: [00:09:06] it? Yeah, I haven't tried explaining this. So this will be a challenge. Actions are basically life cycles or side effects of components that mounts on the Dom.So you can instructs felt too. Run some code when something mounts, when something changes data and when something on mounts and that can be anything from measuring where the screen, where the most position is, there's a trick to triggering like a keyboard shortcut registration.There's lots of use cases for actions. In fact we are, we actually starting to collect some of these. I have a felt actions, repo am I GitHub where I am proposing a couple of, I think, six of them so far. For example, you can change a button, like one of the problems with web apps and buttons in general is that if you bind something to click that works fine on a desktop, but then it doesn't translate very well to a mobile.And for example, if you want to have something long press like that, that works on the long press you have to, it there's no event for that in, in I'm mobile. So you have to code it up yourself. So as felt action, how helps to give you reusable pieces of code that you can just say, all right, once this thing is mounted, let's add this additional listener with this preset amount of logic.And that's an action that you can just say, like on long press do this other thing or on, keyboard, shortcut, trigger this other function. And these are just very convenient ways to attach. Individual pieces of logic and sometimes reusable logic to the Dom elements that you work with.Are they all events they can generate events or they can sort of trigger based on events. So, so yeah that's how I think about it. And it's basically, you can map it to the react concepts of use ref and use effects together. You just don't have to write as much because use revenues effects are a little bit lower level.And they give you more power, but they also give you more rope to hang yourself with. And actions are pretty straight forward. You just attach it to them and use them as there is. You're supposed to use them. Yeah. Brittney Postma: [00:11:03] And you said a little bit in there, how we have the on colon.And use colon that we can use those with inside of the HTML super set. So there's like that little shorthand that you can use your action with. Alex Patterson: [00:11:16] I'd almost like to do I love what you guys are talking about, but I'd love to tie a visual to some of it. So I jumped out to the field site and some of what you're talking about, I'm like, I wonder what this looks like.And they actually have some, like, felt examples out here for. swyx: [00:11:33] Hits at a draggable action. There's one there. I love it because I needed it and I just went to dogs and grabbed it and I was done. I didn't have, I did the same thing. Brittney Postma: [00:11:42] I just did it and had to go to the same one. swyx: [00:11:46] Do you see it? I Alex Patterson: [00:11:47] don't say it.I don't know how I'm missing it though. swyx: [00:11:51] Actually it's actually, you just missed it. Alex Patterson: [00:11:53] I see animations. There we swyx: [00:11:55] go. Actions. Yeah, use directive. Okay. Is this the one with the drag? Yeah. Yeah, this is the one. Okay. That's so wild. Yeah. So, so these actions, the use the, the panel vote dot JS, that's the action.And go look up, look at the code, right? It's, it's basically some like low-level mouse, smooth code, right? Which you write once, but essentially once you've written this function, you can go back to your main app. And then look at where Panama is used. So scroll down to use panel down there, right?So you just attach it on and that generates three events that you hook into. So, on pen, start on pen move and on pen end. So these are ways to extend the platform, right? These are not natural, dumb, specific events that are generated by your browser. These are things where you synthetically create out of out of applying their use panel action.And so now you have just event handlers, which you can use to do whatever. And here we were just. Implementing drag and drop just like that. Alex Patterson: [00:12:51] Has it on  felt like expert, I've written a couple of like little things to tie and firestorm, but when you actually write this and then you go through that build step, like you're talking about, and then beginning, this actually becomes just straight JavaScript, HTML on the other side, right?swyx: [00:13:05] Yeah. Yeah. Just dominance functions. There's no intermediate library, which makes it very spelt. So I like the name. Brittney Postma: [00:13:11] Exactly. It fits right in.  Alex Patterson: [00:13:13] Yeah. So for anyone that hasn't checked out, it's, Felia here's the main site. It kind of walks you through just different areas for write less code and you can dive into why that's the case.And it just has these great little snippets of how to start taking in data. So curious, like using name with data Yeah it's pretty simple. And you almost think you're writing which you are basically writing JavaScript most of the time. So it's pretty, pretty awesome. swyx: [00:13:40] And Brittney Postma: [00:13:40] I, Ms. Swyx said earlier, like the docs are really nice.They're really helpful. swyx: [00:13:45] Yeah there's something about single page docs and having an embedded ripple where people can experiment and play. It's a very nice community norm to the point where the first conference, the first fall conference that we organized I was like, Hey, we need a timer.So I just like made a really crappy timer in this fall rapport. And then people just took that rebel and they cloned it. And then just add started adding like wacky animations and SBGs and all that. And it was just like a really fun and remixed cultural type of thing that. Could not have happened in the other frameworks, just because the other frameworks take so much setup and you have to fight over libraries and stuff like that.Spelt is, designed by rich Harris at the New York times. And it's really, you can really tell that it's just like, I, it's one, it's a tool set for someone to be productive without having to make too many choices. And it's very much loved by the data journalists type of people who make interactive graphics and like drop in.Sites and components even though it's capable of making full apps I'm just saying like, that's what hooks people from the start, which is how easy it is to get started. Brittney Postma: [00:14:43] Yeah, that touches a little bit on the article that you wrote. Right. Felt for sites, react for apps.swyx: [00:14:47] That's a controversial one. Cause I got haters from both sides. Brittney Postma: [00:14:51] Oh, I liked it. I think you can write apps was felt, but I mean, it just wasn't there at the time of writing the article, right? swyx: [00:14:59] No, it was, I'm just saying like, you care about different things at different scales and I think.In JavaScript. And in programming in general, we try too hard to make one tool fit all skills. And we should be more respectful of the fact that tools that are made to extends from the smallest thing all the way to the biggest thing we'd like to make claims like that. But you typically are not using the best tool for the job when you do that.And so it kind of shows and, and that's why, I wanted to make the case essentially for react people, to try svelte. And first of all, people to not be so obsessive about salt, owning everything because your nerves are not there yet. And there's no point pretending Brittney Postma: [00:15:34] That is very true.And I feel like we need to use the right tool for the job like that. That's what you're saying there. And swyx: [00:15:40] I do have a blog post. So it's a nuance thing. It's still new ones. I do have a blog post called in defense of hammers, which is this idea that if you have a hammer, then everything was like a nail, right?It's like, it's a criticism of this person who has one tool and is like, use that tool to solve everything. And you know what? That's actually pretty great. Like if, if you have, you can just learn one tool and solve everything. That's awesome. That's good for you, like, cause what's the alternative, like learning a thousand tools.That's also a lot of overhead. Right. So I think people are a little bit too lazy when they say use the right tool for the job. I mean, I just used it. So, I'm not exempt from this. It's a nuance thing. So maybe use two tools to do two different jobs. And just identify, that when you're working at small scale and working in large scale, these jobs are different.They're not, they may not nominally be the same thing. Cause you're kind of working on the same substrate, which is the web, but at different scales, then different things start to matter. And so, so my example for why continue to use react was for example, react native, which is the most advanced sort of cross that forum JavaScript framework port, or whatever you call it, like SaaS native insomnia script exists.Brittney Postma: [00:16:47] Yeah. What is felt native? Like I've heard of it, but I've never worked in it. Have you ever worked in spelt swyx: [00:16:52] native? No, I have not. So, but we did just interview a guy in SWAT radio. And be coming up, it'll be coming out in a couple of weeks, but yeah, it uses native script, which is a way to generate mobile apps, from JavaScript.It, I don't know what the trade-offs are between native script's approach and react native's approach. And I mean, I will I'll figure that out when I get there. I just haven't needed it yet because I'm, cause I'm only web. Brittney Postma: [00:17:14] Same. Yeah, exactly. And yet you touched a little bit on how nice the docs are, but when it comes to video tutorials, there's not really a lot out there right now.Where would you tell people to go that wanted to get started with spelt? And would you ever consider creating a course was felt possibly. swyx: [00:17:30] Ah there are plenty of people who've made courses actually. There are some courses on AK dyo. I think Tomas Lacombe from Poland has made some videos there.Rich Harris, the creator has taught himself has done a full workshop on front end masters. Both of these are paid sites but they're. Pretty worth it. In my opinion, there are free tutorials on YouTube. So probably the free code camp channel has a couple of hours or more of a good spell tutorial.And I also know some people are making salt tutorials on their own. So Scott Selinsky from level of tutorials in syntax that FM has a full course together with like a it's a full stack it's felt core. So it has like authentication and stuff involved in Yeah. Yeah. It's on his YouTube and it's very high quality cause he's a professional video course creator.And there's also a channel called spelt mastery, which which also goes into some of that. And Lee tan, who's also Singaporean. But also one of those core maintainers goes into the core code, has felt and explains how it works on his YouTube channel. So there are a bunch of different. And these are just the ones I know of right there, there are plenty of other things.Like we accumulated a lot of them on this false society, YouTube channel basically any anyone who's a society member. It's free. Just some it can, you can send in, send it in and we just want to make this more accessible to people who want to learn. But there's also as felt Russia as well, India, SWAT, Brazil, there, they all got stuff going on.Brittney Postma: [00:18:47] It's so the community is just like expanding like swyx: [00:18:50] crazy Japan. Hey cool. Cause like, I started as felt society essentially on a whim because I was like, so the story of what was happening is I'm friends with rich Harris just cause we were both in New York and we hang out a bit and and the first felt meetup was going to happen in London.And I was like, I heard about that and I was like, Hey, we have to create her in New York. But the first meetup is in London, we got to beat them. Right. So, and so, so within one week I just announced that, Hey, where we're holding a meetup, I don't have a location. I don't have a place. I don't have attendee lists.I don't have speakers. But we're just going to make this happen because we gotta be first. So it didn't a week. I got a place at a Microsoft building. Someone volunteered 50 developers and three speakers for the first fall society meetup. No, that's Rootstrap Holy smoke. Yeah. It was fun.I mean, Twitter is great. And, I've been involved in the New York tech scene for three years, so it wasn't exactly like, from scratch, but it's a lot of friends and it's really a nice community. So simultaneously we had on the same day, October, first of 2019 we had foster Sadie's Stockholm.So also the, of London is false society. New York. And we continued like that for a few months until COVID hit. So then we all went online and we just decided to merge. And now the three of us are the hosts of the swell radio podcasts, and we have organized two conferences together and we're going to do a third next month.Yeah. Brittney Postma: [00:20:09] It's spelled comp next month. Is that what you just swyx: [00:20:11] said? Yes, faults summit, because we like. Brittney Postma: [00:20:15] All the other conferences swyx: [00:20:17] out there, but like, it starts with an S right. So you got to go with it.I really want to start. So view had a view of Vixens for a while, which is kind of like the female organization. So Jen Lopers on that, right? Jen Looper. Yeah. Well, they've really renamed themselves to front end foxes, so they kept the alliteration. But I want to, I was thinking about like salt sisters is that's what someone suggested.I don't know. But it's still looking for a. Champion of that weak link, Brittany, Brittney Postma: [00:20:49] I'm taking on so much. I don't know about taking on more than right now, but yeah, that sounds great. Yeah. All right. I know we diverged a little bit. Let's get back on topic. Alex Patterson: [00:21:01] I really appreciate it. I'm trying to keep up with all the mentions and all the HTML links are so getting Brittney Postma: [00:21:08] all those notes in the show notes.We actually had Scott to Linsky on last week. And you mentioned his felt course, and he has an animating spelt course too, that I really loved. I actually perfect picked it last week and it's a really good course too. But I saw you have a course on egghead IO on design systems with react and TypeScript in storybook.Do you think spelt would be a good choice for building a design system since it's so close to that base? HTML that we talked about?  swyx: [00:21:34] Oh, this is an interesting question. I think it would be good, but it would not be the only choice. And I would not be upset if people chose something else, because I mean, ultimately. Ultimately what choice of technology you choose for your company. And it really depends on your team and what they know well, and if you just randomly force a new framework on them without consultation, like that's not going to go over very well. So I prioritize the health of the team over anything on technology.So as much as I like to fault it's just I'll do a go with whatever the team that wants to do. So, you gotta be a team player. But I will say that, so it's felt is a better base for a design system than react is mainly because a react design system is going to require you to use react in your main app.Whereas felt it can actually build this web components which you can use in any app. Brittney Postma: [00:22:18] Yeah. And that's what I was wondering is if it's more dynamic in a way, because you can get that base HTML and Java script, and then you can. Move it into whatever you need it to be. swyx: [00:22:28] Yeah. I don't know if I'll call that dynamic, but it's more portable.Yeah. Brittney Postma: [00:22:33] Affordable. That's a good word. swyx: [00:22:35] Yeah. I will also say like, any design system needs styling in react does not have styling. So.Like you just have to solve a lot more problems with starting from a base of react. And some people love that. And then some people don't need to spend their time doing that. Brittney Postma: [00:22:48] Do you like storybook for using design systems swyx: [00:22:52] in react? I think it's. Okay. I think it's I it's born in. Okay. That's good. I'm friends with Dom in the, the team over there.My problem with them is it's slow. So we use storybook in production, not production, but like professionally to develop. Netlify like the, the netlify.com. App and site, we have an entire design system sort of spelled out in storybook that things takes up something like 30 seconds to load. Because it's so slow.I don't know what it is inside of storybook. It could be Webpack, it could be the initialization inside the storybooks internals. It's just slow. And it's getting slower. The more we add to it. So it's gotta be. Faster. I've given them a lot of crap in public about it. So they're aware and they're working on it.And to be fair, to be really clear. I don't know. I'm not saying that I could do a better job. I'm just saying, I think we don't, I don't think this is the final state of things. I think that can be better. And and so, yeah, I secretly wants to build a better story book myself, but I think there's.Laurie you bet Alex Patterson: [00:23:56] on pod rocket. Caleb Mozhan the creator of Alpine JS talking about how he was showing off some things to the storybook folks. And it was so much faster. They're kind of blown away. So I'd be interested to see all these little permeation. Yeah. Brittney Postma: [00:24:14] Shawn was on pod rocket swyx: [00:24:16] today. I am I, well, I recorded it a couple of months ago, but yes, it's released today.Swyx yeah. 68. Yeah, exactly. No they're really cool. And I mean, I just, I. Obviously I've benefited from the blog posts. And I liked that they're branching onto podcasts. And I was very excited that to learn that they were launching a podcast. In fact I heard about it from an unrelated, like non-developer podcasts because those, the founder was on there.He just like casually mentioned it and they searched it up. They hadn't even announced it yet. And I was the first to ever tweet about it. So I kind of got the scoop and then they was just like, okay, well you want to come on Brittney Postma: [00:24:52] and log rockets a little bit into everything and everywhere. It's crazy. How like, guilty about it.Yeah. Related. Yeah. swyx: [00:24:59] Yeah. I mean, th that's a little bit of content marketing and sometimes it's annoying sometimes, but I think they're generally on the good side. So give them a pass on that one. I think they talked Alex Patterson: [00:25:08] about that. Trying not to be annoying part when coder was on.swyx: [00:25:11] Yeah. And you have to, like, if you're not annoying someone, you probably not doing it enough, so that's one perspective because yeah. The alternative is that you never blog and no surprise nobody's ever heard of you. Right. So, I F I feel both sides and I think sometimes it's a tough line to draw and everyone Johns at different ways.So that's my take on that. So Alex Patterson: [00:25:30] This might be a question maybe for Brittany, because I think we brought it up with you. Swyx but maybe both of, and I just have no clue. I'm so confused. Between what's happening with Sapper and felt it. Can you guys explain to me, like what essentially is happening in that world?swyx: [00:25:48] Ready you to take a crack, Brittney Postma: [00:25:52] get into that, like where's the future of spelt going? Like, what is it and is separate, dead. Like, we've heard all these like little key frames or keywords going on. So, I would like your take, like what do you think is happening and is separate going away or what is going on swyx: [00:26:08] there?Yeah. I don't have any sort of inside information, but essentially what happened was last. Conference last fall summit recharge is actually made it, made the announcement that SAPRA would never be reaching 1.0 meaning it will never be considered production ready. He considered the existing foundations, to like he wanted to do a rewrite from scratch using the new tools that.He enjoys, which is he has build and the different foundation for routing and stuff like that. So he eventually announced full kit, which is essentially sappers spiritual successor. There are a lot of companies, including rich rich, his own internal tooling that used Sapper.So there's a natural question of like, what am I, are you just leaving me high and dry? And the answer is no, because everyone who's making salt kit. Has production separate apps and and they're going to ensure a good migration path. So it's full kit is fundamentally rearchitected from like, kind of a next yes.Inspired next. Yes. Like as of like next year's version eight or nine it was like, He was originally architected as like a node server app. Right. You run a server, you run in it in node JS and it would serve requests. Now it's fun to me, fundamentally rearchitected to be a serverless solution.So you would able to be, to split up serving your pages from different serverless functions. And some of them could be static. Some of them could be dynamic. And it's very much in the line of the new. This generation of meta frameworks like remix in the react world. And I think that's a fundamentally good architectural design to make.And also it needs to be faster in, in sort of data generation. Like I, when I had my blog on Sapper, I ran into this so much so that I had to build a separate overlay to make the page generation a lot faster. And so, so there was a, there's a lot that goes into this technical decision-making but it is very exciting because it means that.The server side rendering story in salt is no longer a separate project. Now when you MPM installs felt you actually get a CLI that generates an, an app for you that also does server-side rendering and can be deployed on a number of different platforms. They're going to have multiple adapters to CloudFlare, to AWS, to Netlify, to whatever.And that's a much simpler story for me. It's gonna annoy some people that people get annoyed by change, but that's what's going on. So Sephora is not fully dead. It's not fully alive. It's just going to have a successor. At the time we thought it would be out by like the end of 2020. It is now March, 2021.And but we think there'll be a public beta pretty soon. So, that's all I know, I, it'll come out when it comes up, but I think that it's felt philosophy has always been towards. Unified tooling that is simple and fast. Everyone in the community, has, it's a benefit of being a second framework.Everyone knows what they want when they, when it comes to salt and it's its speed, its simplicity. And and I think SAP focus is going to deliver on that. Brittney Postma: [00:29:03] Yeah, as in the community are just waiting. Cause retires, keep saying Alpha's coming soon and we're like, Oh, is it ready? And I've tried it a couple of times.It does still seem a little bit buggy. And I just saw that they moved from snowpack to Veit. You know what V is or how that's different from snowpack and what the difference of that is. swyx: [00:29:20] Yeah. And these are like, for anyone who's listening these are all new names that popped up in the last year, right?Like if you're out of the loop, it's okay. Like, you're it's a full-time job keeping on top of all of these things. But I can explain it so. The whole goal, the whole innovation, I guess, that's taken place. And this is a broader thesis I called the third age of JavaScript going on is that we are replacing sort of legacy assumptions and, and just going all in, on sort of integrated bundling and IES modules.So. Veit and snowpack are both solutions where they serve a dev experience. That's entirely based on IES modules which are, native JavaScript, important exports. This is different from what you may be used to in web pack roll. Roll-up where the import and export will be transferred to some kind of internal module representation, where they would stitch things together for you to bundle it up.Which means that when you fire up a dev development mode to, run your apps on your, on your laptop it would have to build the entire app in order to serve your first page. Whereas with Veet or S or snowpack they would only just have to serve exactly the components that you requested in the current path.And that scales, because it becomes linear time. Like, the number of pages, the number of components that you have It goes from linear time to constant time, which is just the number of components that you are requesting. So you can have a massive site and your lo your startup time would be exactly the same as something that's that's much smaller.And also because you're basing it on a different base. So both feet in snowpack use IES build, which is a Webpack replacement from. Ironically a side project of the CTO of Figma Evan Wallace, cause he doesn't have enough to do. He made a new bundle that this thing is built and go rather than in JavaScript and it optimizes the hot paths.So, it actually builds a hundred times and this is not an exaggeration. Exaggeration a hundred times faster than Webpack. And whenever you have order of magnitude changes in your development skills like that, you just unlock new levels of play and, and experimentation that you could not have before in your development.So, that's why we basically have to burn everything down because there's just a new foundation coming around in JavaScript. And. Brittney Postma: [00:31:26] Yeah. And like those architectural changes that you were talking about, I feel like next JS just really like exploded in the last year. We're actually rebuilding our coding cat.dev site in next JS now.And with Sapper kind of going away and spelt kit taking over that, those adapters that you were talking about, they have like a static adapter and I think it's a node adapter. Is that right? Do you know, if we're going to be able to do that, like next JS thing where it's on a per page basis or is it going to be like where the whole app is?One way, swyx: [00:31:56] I think there's, I think probably just gonna be a third kind of adapter where you serve it from serverless. I don't actually, I haven't actually seen it and I'm not on the team that maintains it, so I can't promise it, but that was the original vision that I was told. So, That's as much as I can tell, because he's very bought into the serverless environment.So I don't see any and any future in which he doesn't provide a service adapter. Brittney Postma: [00:32:17] Yeah. I mean, the only thing that I have in it is just I've played with it a couple of times. And like I said, I mean, it was kind of buggy. Like I couldn't refresh in the browser and things and I wanted it to do things that it just wasn't doing it and it wasn't there, but I'm really excited for the future of spell and how it's growing.So, yeah. swyx: [00:32:36] In a sense, like, I wish that it's felt had a bit more backing to it, because the reason next year has, has had such success is because there's a company behind it and it's very incentivized to market it and to invest in its development and all that good stuff. Right? Like that's actually open source working at its best.Here it's just like a loose connection of volunteers who like chip in on the weekends. So. That's why we don't have like firm's schedules and like even our conferences, when we put them together, it kind of buggy something, we had downtime and there's, it's just a, it's a mess. It's a community effort.It's charming getting Brittney Postma: [00:33:09] that passion though. Like companies like put just the marketing and just the money into it, and we're getting the passion of the developers because that's what they want and that's what they need to see. So that's one of the nice things about that. swyx: [00:33:22] Yeah, a little bit challenged.Cause like, as it grows clearly the community deserves better than like, it's like, like a fly by night volunteer sort of sometimes you're there. Sometimes you're not effort. Like Vue has figured it out. They, they have the, they do have the funding and they have a good organization and it's felt, I don't think it's there yet.There there's, there's starting to be some kind of some measure of governance. In fact, my, probably my number one wish first of all, is just more open and regular committed governance to the project. And and you don't think about these things when you choose technologies when you're just starting out as a dev, but then the more you rely on these things and you see that you're downstream of the human principles and organizations behind the code, then you're like, Oh, okay.I start to really care.Alex Patterson: [00:34:03] So without knowing, obviously I'm not in the community, as far as you guys are I feel like you've touched on every part of it.You've talked about spell versus fell kid and the production side. The only. Like I would be curious just to leave off with, and I think we touched on it a little bit as like a new developer coming in, like a junior, like just leaving college or a bootcamp or whatever to, to takes felt. And we kind of said, maybe don't learn felt for your next job, but definitely, check it out and learn it for your side project or like your blog or something like that.Is that still pretty accurate? swyx: [00:34:36] Yeah, I think so. In, in the same way that react, represents what's in production today, but there's a new generation of tech coming. I think that's felt could be that that future, that glimpse of the future, you definitely want to stay informed of like, what is possible, even if you don't use it every day.You shouldn't know. What is exciting, what excites the people who are focused on the future? To me, that is swell. That is yes, bill. That is Veet. This whole generation of tooling is, is going to be. A huge differentiator for the next 10 years in, in JavaScript. So yeah, if you're just, if you just graduated from bootcamp, go get that job, no, I'm not gonna stand in your way.But you should know that you deserve better tooling. And also your, the tools that you use for your side projects should not be the same thing as the tools that you use for work, because there are different scales and Yeah. I mean, you should start choosing the things that make you happy and more productive.Yeah. That's Alex Patterson: [00:35:29] well said. I think that we'll probably leave it there because that's a great ending to this podcast. And then the last thing that we always love to do is a fun part of the pod and we called our perfect picks. So Swyx we, we have your perfect pick. Let me bring it up real swyx: [00:35:46] quick here.Oh, yeah. Oh, it's gonna work so great on the visuals. So this is 3g S journey. It's by Bruno Simon whose personal site actually went viral a couple of years ago, because it's all built in web geo and it's like this, you start as this little race car and you drive it around in three JS. And it's just such a gorgeous sight.Move your mouse around and look at it, responds. And it basically shows you how to get involved in three JS in a very approachable and French way. He keeps up a lot of French speakers when they only speak English. They know that they have a very heavy accent that makes them a little bit hard to understand.So they just very apologetic about it. And I watched this video and I'm like, dude, like you already apologize. It's fine. Just say it's gorgeous. It's one of those things where like, at some point, if you do enough with development you're tired of moving boxes around on the screen. It's kind of how I put it and we should look into some of these more interactive and imaginative experiences.And they're not so far away. I, I'm still, I'm still learning it. I'm just thinking like, there's more to life than just, yeah. Moving boxes around and I think. You have to do the, pay your dues to like learning this stuff to recognize opportunities where you can just like sneak it in to a project.And it just has the little pop that makes people, enjoy your work a little bit more. Like you can see it's very tasteful that you don't, it's possible to go overbearing with 3d, but it's very tasteful and I just love it. Yeah. Alex Patterson: [00:37:04] Fantastic. We use three JS all the time, but it's more just for like graphing and stuff because we're getting paid for it.We don't have fun stuff to do. That's awesome. Very cool. Brittany, you are up next. Brittney Postma: [00:37:17] Yeah. My first pick is the spelt for sites react for apps, blog posts that Shawn actually wrote that we spoke a little bit on earlier. It's a really good blog post that kind of breaks down. Like what's the difference between a website and a web app.And why does it matter? And. Kind of what he just touched on with like building what you love, like in a language that you like to write. So getting the fundamentals there and then building what you need for the job and what makes you happy? I thought it was a really good post. swyx: [00:37:49] That's awesome. Thank you.And this side is villain spelt and it's open source. So you can check out the code. Yeah, sure. Brittney Postma: [00:37:54] Swyx the IO. Alex Patterson: [00:37:55] And all the links should be on our blog posts. So. swyx: [00:37:59] Check it out. Yeah. I tend to ramble a lot in my blog post. Brittney Postma: [00:38:02] My second perfect pick is a little bit of, kind of a shameless plug a little bit because I was on Kobiashi Maru last week and I built a draggable Kanban app with spelt and.I'm not an expert by any means. And I stumbled through a lot of that and didn't actually even get to implement the draggable part, but there is a link to the get hub repo in there, and we'll link it in our show notes as well. But yeah, it was super fun. And you kind of learn how to persist local storage with a spelt store in that.So definitely check that out. Alex Patterson: [00:38:33] Sweet. Very cool. And then my last pick, I use it every day and I was struggling to come up with a pick today. So I'm like, why wouldn't I pick it? Aandra if, if you don't use it, we use it all the time. Especially in our kind of our cover images and stuff like that. Fantastic work.I'm totally dropping the name. What's her name? Hang on. I shouldn't give her props. There we go Catarina limpid Sunni. That's why I can never remember it. I had to look at it swyx: [00:39:03] now. She does amazing work. Alex Patterson: [00:39:04] Yeah. Yeah, absolutely amazing artists. And it's all downloadable, all free to use. Using Algolia to search, she can set our famous, or at least to me, five, five, 1186 purple Brittney Postma: [00:39:19] color.Oh, you even know the hex swyx: [00:39:21] value. Alex Patterson: [00:39:22] I got to know the hex of a coding cat and you can search through and when you click it on, the cool part is you can download the SVG or PNG the SVG. You can drop directly in Figma and off to the races you go. So, yeah, it's super cool. And you can break it apart. So like I delete stuff out of there all the time just to use the rest of the SVG.So I swyx: [00:39:41] love it. I dropped a link in our notion for more resources, like on draw. So I collect these in a repo that I call a spark joy for basically like all the design resources that always reach for, you should have them ready. And so I dropped it in a notion more places which you can find Andrae is right up there at the top, but there's humans, there's black illustrations Vic TZ, there's just a lot of really great design resources and we should make it easier to access.So this is my attempt. I'm I'm Alex Patterson: [00:40:10] bookmarking all the ones like this directly. I used to have a, an API one like this, there, a gate to like all the open swyx: [00:40:17] API APIs scroll all the way down. All the way at the bottom. Yeah. It's just like demo APIs. Cause some of them make you sign up. So I don't like that.So I actually I'd make the, actually I record the actually free ones. No next there's another one all the way down at the bottom. Yep. There we go. Alex Patterson: [00:40:33] Very cool. Brittney Postma: [00:40:34] Mark. KPI's. Yep. swyx: [00:40:37] Yeah. Nice. Cause I, I used to do a lot of demos from my previous jobs.Alex Patterson: [00:40:40] I think we're running up on time. So I just wanted to say, thanks again. Swyx for jumping on. I know it's a crazy time where you're at right now, so I really appreciate it. swyx: [00:40:50] No, I appreciate the opportunity to talk about spelt. I'm always down to spread the word, spread the gospel, come join the community.We're pretty active with discord and on Twitter and on YouTube. And then we are holding spot summit in April and it's free. And you just Go to SWAT summit.com I think to drop your email. Brittney Postma: [00:41:08] Awesome. Thank you so much. Alex Patterson: [00:41:10] Appreciate it. So, yeah. Thanks again. swyx: [00:41:13] Take care of me. All right. Brittney Postma: [00:41:14] See you later.

Machine Learning Engineered
Coding Career Tactics - Salary Negotiation, Public Speaking, and Creating Your Own Luck w/ Shawn "swyx" Wang (AWS)

Machine Learning Engineered

Play Episode Listen Later Dec 1, 2020 103:48


Shawn Wang formerly worked in finance as a derivatives trader and equity analyst before burning out and pivoting towards tech. He's a prolific blogger who goes under the pseudonym "swyx" and recently published the excellent https://www.learninpublic.org/ (Coding Career Handbook). He's a graduate of Free Code Camp and Full Stack Academy now working at AWS as a Senior Developer Advocate. Learn more about Shawn: https://swyx.io/ (https://swyx.io/) https://www.learninpublic.org/ (https://www.learninpublic.org/) https://twitter.com/swyx (https://twitter.com/swyx) Every Thursday I send out the most useful things I've learned, curated specifically for the busy machine learning engineer. Sign up here: http://bitly.com/mle-newsletter (http://bitly.com/mle-newsletter) Follow Charlie on Twitter: https://twitter.com/CharlieYouAI (https://twitter.com/CharlieYouAI) Subscribe to ML Engineered: https://mlengineered.com/listen (https://mlengineered.com/listen) Comments? Questions? Submit them here: http://bit.ly/mle-survey (http://bit.ly/mle-survey) Take the Giving What We Can Pledge: https://www.givingwhatwecan.org/ (https://www.givingwhatwecan.org/) Timestamps: 02:45 swyx is back! 05:25 How his book has been received so far 11:35 Why and how to negotiate your salary 24:10 Getting started in public speaking, giving talks at meetups and conferences 35:45 The role of luck in your career and how to create it 51:15 Biggest is not best, best *for me *****is best 59:20 Why swyx angel-invested in Circle 01:12:00 On Randy Pausch's Time Management lecture 01:18:00 Using open source to accelerate your coding skill 01:20:00 Handling information overload and enhancing retention with note taking 01:27:20 What swyx does in his job as a Developer Advocate and why you should consider non-coding roles 01:37:30 swyx's new podcast Career Chats (https://careerchats.transistor.fm/ (https://careerchats.transistor.fm/)) Links: https://www.mlengineered.com/episode/swyx (swyx's first ML Engineered appearance) https://www.learninpublic.org/ (swyx's book Coding Career Handbook) https://www.swyx.io/create_luck/ (How to Create Luck) https://www.swyx.io/time-management-randy-pausch/ (Notes on Time Management from a Dying Professor) https://www.buildingasecondbrain.com/ (Building a Second Brain) https://simplenote.com/ (SimpleNote) https://careerchats.transistor.fm/ (swyx's new podcast with Randall Kanna "Career Chats")

egghead.io developer chats
Shawn Wang Talks About How To Grow Your Reputation As A Developer

egghead.io developer chats

Play Episode Listen Later Nov 10, 2020 54:12


Getting a job as a web developer right out of the gate isn't easy. People often face rejection after rejection. But, you don't have to take the "front-door" to get a developer position. You can also take the "back-door" by taking a developer-adjacent role like a support engineer and then work to become a developer in the company.There are many disciplines and technologies for you to choose to learn. There is always the question of do you become really good in one area, or do you become more of a generalist? You can be successful as a generalist or a specialist. Founders often have to be generalists since they have to figure out how to manage the trade-offs of choices in multiple disciplines. At the same time, specialists can be successful since people will seek you out for your expertise.It doesn't matter if you choose to generalize or specialize. You have to build a reputation in order to fully realize your potential success. Programming is a special industry when it comes to making a name for yourself. You can build your own reputation and network much more freely than in any other industry that Shawn knows about, which is good for you long-term.Once you've established a reputation, it's not uncommon for people to ask you to mentor them. An ongoing one-on-one mentor/mentee relationship isn't often the most efficient use of your time. You could be broadcasting what you know to a wider audience—Shawn advocates for a "project-based" mentorship style where the mentorship is not uncapped. You engage with them on their thing. You meet together, let your minds meld together for a while, and then you part waysResourcesAntifragileFree Code CampHacker101fast.aiShawn WangTwitterWebsiteegghead.ioJoel HooksTwitterWebsite

The Weekly What's Up
Episode 11 - Enter Shikari, Underoath, DUST, & Shawn Wang

The Weekly What's Up

Play Episode Listen Later Oct 4, 2020 48:45


We are The Weekly What's Up Podcast. Humanoids who criticize all forms of art we find among the filthy Earthlings' collection. Today we'll be tackling "Modern Living" by Enter Shikari, "On My Teeth" by Underoath, and the YouTube channel DUST, which featured a short film by Shawn Wang called "Planet Unknown." Jayden will be taking a break for this episode, so William kindly volunteered to do so, he picked his own co-hosts, and the result is... well, you be the judge. Email us at: contacttwwu@gmail.com Tweet at us at: twitter.com/thewhatsupcast Support us on Patreon to take equal blame for this podcast: patreon.com/theweeklywhatsup . . . Today's hosts: William - www.twitter.com/wilfricc Nick - www.twitter.com/guccifursuits69 Dameon - www.twitter.com/dameonvalor Benny - www.twitter.com/batsh1tcrayzee . . . Theme music produced by SteampunkFireflies Productions: https://m.youtube.com/channel/UCOnAyYXocvFrAOy-kCU3QvA https://clockworkk1.bandcamp.com . . . Copyright © 2020 - Album cover art and podcast content by The Weekly What's Up - All rights reserved by the creator. Please seek permission before using this audio or video. --- This episode is sponsored by · Anchor: The easiest way to make a podcast. https://anchor.fm/app --- Send in a voice message: https://anchor.fm/twwu/message Support this podcast: https://anchor.fm/twwu/support

Machine Learning Engineered
swyx (Shawn Wang): Coding Career Strategy

Machine Learning Engineered

Play Episode Listen Later Sep 8, 2020 50:12


Shawn Wang formerly worked in finance as a derivatives trader and equity analyst before burning out and pivoting towards tech. He's a prolific blogger who goes under the pseudonym "swyx" and recently published the excellent https://www.learninpublic.org/?c=MLE30 (Coding Career Handbook). He's a graduate of Free Code Camp and Full Stack Academy now working at AWS as a Senior Developer Advocate. Learn more about Shawn: Blog: https://swyx.io/ (https://swyx.io/) Book (Use code MLE30 for 30% off!): https://www.learninpublic.org/?c=MLE30 (https://www.learninpublic.org/) Want to level-up your skills in machine learning and software engineering? Subscribe to our newsletter: https://mlengineered.ck.page/943aa3fd46 (https://mlengineered.ck.page/943aa3fd46) Take the Giving What We Can Pledge: https://www.givingwhatwecan.org/ (https://www.givingwhatwecan.org/) Subscribe to ML Engineered: https://www.mlengineered.com/listen (https://www.mlengineered.com/listen) Follow Charlie on Twitter: https://twitter.com/CharlieYouAI (https://twitter.com/CharlieYouAI) Timestamps: (05:30) How was the learning in public idea developed? (07:45) No zero days (10:00) Does ego prevent developers from learning in public? (12:30) Pick up what they put down (17:30) Strategic thinking about coding careers (19:50) Betting on new technologies (24:00) Enhancing existing skills vs learning new things (27:40) Reading technical books cover-to-cover (30:00) Systems thinking (32:00) Updating a digitally-native book (35:00) Deciding to work at AWS (38:00) What won't change in tech? (41:30) Software business models (43:00) Rapid fire questions Links: https://www.freecodecamp.org/news/shawn-wang-podcast-interview/ (Free Code Camp interview: Leaving a $350K/year job to learn coding) https://hackernoon.com/no-zero-days-my-path-from-code-newbie-to-full-stack-developer-in-12-months-214122a8948f (No Zero Days) https://kentcdodds.com/chats-with-kent-podcast/seasons/01/episodes/you-can-learn-a-lot-for-the-low-price-of-your-ego-with-shawn-wang (You Can Learn A Lot For The Low Price Of Your Ego) https://www.learninpublic.org/?c=MLE30 (Shawn's book: The Coding Career Handbook) https://www.swyx.io/writing/learn-in-public/ (Learn in Public) https://www.swyx.io/writing/marketing-yourself/ (Marketing Yourself as a Developer) https://www.amazon.com/Crossing-Chasm-Marketing-High-Tech-Mainstream/dp/0060517123 (Crossing the Chasm) https://www.swyx.io/writing/create_luck (How to Create Luck) https://lawsofux.com/ (Laws of UX) https://www.eugenewei.com/blog/2018/5/21/invisible-asymptotes (Eugene Wei - Invisible Asymptotes) https://www.eugenewei.com/blog/2019/2/19/status-as-a-service (Eugene Wei - Status as a Service)

newline
Coding Career Handbook with Shawn Wang

newline

Play Episode Listen Later Jul 10, 2020 48:19


Resources:The Coding Career Handbook WebsiteShawn's TwitterAmelia's TwitterNate's TwitterToday we're talking with Shawn Wang, a senior developer advocate at Amazon Web Services. Shawn is a prolific writer- you should totally check out his blog, if you haven't already. and most recently has written a book about the non-coding parts of your coding career.Shawn used to work at a hedge fund until transitioning to tech, and this gives him a unique perspective on how to be effective in your job - and why you should take ownership of your whole career.In this wide-ranging conversation we talk about the differences between a Jr and Sr engineers, how to find strength in your weaknesses, and how to capture your daily ideas and use them to supercharge your career.I think developers at any level will get a tons of value from this conversation, let's dive in.

Heavybit Podcast Network: Master Feed
Ep. #51, Community Over Code with Shawn Wang of Netlify

Heavybit Podcast Network: Master Feed

Play Episode Listen Later Feb 27, 2020 27:49


In episode 51 of JAMstack Radio, Brian joins Shawn Wang to discuss his role as a developer experience engineer at Netlify, the open-source JavaScript framework Svelte, and scaling community above code.

JAMstack Radio
Ep. #51, Community Over Code with Shawn Wang of Netlify

JAMstack Radio

Play Episode Listen Later Feb 27, 2020 27:49


In episode 51 of JAMstack Radio, Brian joins Shawn Wang to discuss his role as a developer experience engineer at Netlify, the open-source JavaScript framework Svelte, and scaling community above code.

egghead.io developer chats
swyx (Shawn Wang) on infinite building

egghead.io developer chats

Play Episode Listen Later Aug 15, 2018 36:36


Shawn "swyx" Wang is an infinite builder, dual-class CFA, and Developer. Shawn currently works for Netlify.Tune in to hear Shawn talk about what it means to be an infinite learner and builder and how he uses this approach to further his career.Transcript"swyx (Shawn Wang) on infinite building" TranscriptTopics:Infinite learningInfinite buildingJavascript fatigueEngagementFighting feelings of inadequacyQuotes:“I changed myself from a financial career...I thought that was a stable thing...I realized that I needed to move on from that…” -Shawn Wang“You should learn just in time, not just in case.” -Shawn Wang“If you actively write stuff and put stuff out...that you are interested in, guess what? People come and engage with you…” -Shawn WangShawn Wang:eggheadWebsiteTwitterJoel Hooks:TwitterWebsite