

The Swyx Mixtape
Swyx
swyx's personal picks pod.
Weekdays: the best audio clips from podcasts I listen to, in 10 minutes or less!
Fridays: Music picks!
Weekends: long form talks and conversations!
This is a passion project; never any ads, 100% just recs from me to people who like the stuff I like.
Share and give feedback: tag @swyx on Twitter or email audio questions to swyx @ swyx.io
Weekdays: the best audio clips from podcasts I listen to, in 10 minutes or less!
Fridays: Music picks!
Weekends: long form talks and conversations!
This is a passion project; never any ads, 100% just recs from me to people who like the stuff I like.
Share and give feedback: tag @swyx on Twitter or email audio questions to swyx @ swyx.io
Episodes
Mentioned books

Jul 27, 2021 • 10min
The Origin of Yahoo [Jerry Yang]
The incredible origin story of Yahoo from start to $850m IPO in 2 years.Source: https://greatness.floodgate.com/episodes/jerry-yang-how-yahoo-went-from-a-hobby-to-the-early-king-of-the-internetYahoo Origin StoryJerry Yang: When the HTTP and the web and HTML came along, it was this moment of aha. All that information can be put together in a graphical way. That is point and click. You don't have to sit in and typing command line and hyperlink.[00:00:15] So you just kept going. You could keep exploring as owns there's links to click on now. Moment for us to say, wow, this is going to be big because anybody can create a website and can link to other websites. So you don't need a lot of content to start. Right. You could just start and say, Hey, here's my Madonna website and here's five other ones.[00:00:34] And it was totally decentral. There was no way of knowing who created what website, when and how was updated and things like that. So, so there were just websites out there. So there's websites that are popping up everywhere. And so we created a little, just the beginning when we called it hotlist and then David started writing the end to get it into more of a database format, more tagging or labeling more keywords and a more directory structure.[00:01:00] And. Publish it onto a webpage in the front end. And so it was called Jerry's guide to the world wide web. And then. And I don't quite remember exactly when it was, has gotta be, early 94, mid 94. And then at some point I got sick of putting my name out there and David doing 80% of the work. So I put David and Jerry's guide to the world wide web, and then all hell broke loose.[00:01:19] So we said, One night, let's not leave until we come up with a new name. Right. So I remember we were, at the office and God, it must've been midnight and we were getting tired and sick of this. And so, so we said fine, let's look up all the acronyms that had yet another Y There's all kinds of computer tools.[00:01:37] I have Yia references and we looked in the dictionary and Yahoo stood out. Partly it was because if you look in the dictionary, it means people who are very uncivilized uncouth, rude, and were like cost. Great. We're just a couple of years. [00:01:50] Mike Maples Jr: And was David [00:01:51] Jerry Yang: from Louisiana. He was from Louisiana. Yeah, he claims his father called him a Yahoo or Yahoo growing up.[00:01:57] So, and so we just thought it was funny. It was short because we were typing our thing. We could get a short Yahoo that, Stanford IDU, everybody thought we were the chocolate drink it's it was it was just a totally zany off the cuff decision. [00:02:11] Mike Maples Jr: And at the time, did you even really think it was that important of a decision or is this just still a hobby?[00:02:16] Jerry Yang: It was absolutely a hobby. And so it was only important because, we had to go and tell people that this is what is now called. You don't have to type in David and Jerry's guide to the world wide web anymore. And it remained a hobby until. Until it wasn't. [00:02:29] Mike Maples Jr: And when you were designing the original Yahoo product, did you draw on any lessons from like library science or attempts pre prior attempts and just throughout history to classify [00:02:41] Jerry Yang: it?[00:02:41] Thanks. Yeah, it was funny. I, as a college student, I, one of the jobs I had to take was working in the engineering library, working in the stocks too. To restack books. So I was very familiar with it, the Dewey decimal system, and a bunch of other ways of organizing information. And it just didn't seem right when we started Yahoo to go to any existing system.[00:03:00]So we created our own sort of ontology our tagging system, our directory tree that I think lived on for quite a while but it was a bit ad hoc. And so we realized we needed somebody that understood organizing information at a grand scale. And that's when you know, , who was a symbolic systems major, Stanford joined us and she like.[00:03:22] Put order into the chaos. [00:03:23]Mike Maples Jr: And I guess, with libraries, you've got some type of hierarchy, I suppose, right. Books are in a classification or sub classification and you're trying to put them back on shelf. Right. So, but the internet, I suppose, you discover pretty quickly, it's different. Right?[00:03:38] You can cross link to [00:03:40] Jerry Yang: lots of different, right. You're exactly right. So it's more of a graph than a tree, in a it's more interconnected graph. It doesn't. We try to avoid circles. You don't want to get in the place where you just can't get self out, but the idea that you can interrelate, you can get to you can get to a music artist from Iceland, from starting with Iceland, countries, Iceland, or you can start with music artists, or you can start with pop.[00:04:02]The idea was to get people where they want to go. If you think of a keyword, why would you. Not let that keyword get you where you want to go, rather than following some crazy hierarchical system that may or may not make sense to you. So, so it was again, this mental and mentality of really focusing on the user needs and creating a system that you will go, oh, okay.[00:04:21] I see how you got here. So next time I know. I could start here. I would start there and making sure that's consistent. And that's, that was, that's why I ended up being a search metaphor too is whatever keywords you typed in allows you to get to the right place, not multiple places.[00:04:36] Mike Maples Jr: When did it start to occur to you? Whoa, like this is starting to [00:04:39] Jerry Yang: take off. Once we became the place known for having a pretty well organized, pretty comprehensive in a very fast site. I mean, David really emphasize making sure that, we had a really quick loading site and that was really important because.[00:04:54] Back then, most computers were dial ups. Most people viewing our stuff wasn't on a fast connection. So yes, you want to put all these fancy images out there, but if it takes forever to load, so he always really emphasized that user benefit. I can't quite remember it, but probably by the end of, mid 94, towards the end of 94, we had IP addresses from over a hundred different countries, hitting our service.[00:05:17]We have millions of unique IPS that were hitting us. We didn't know about users back then. And people started, we started to become this network effect where if you were putting up a website, you have to register it in different places. And we became one of the places you had to.[00:05:29] People know, you have to let Yahoo know that you have this website, or I have this change, or can I get reclassified because I did this. And so we ended up being in this constant communication with a web community that was very human. That was very there's two guys behind it. And that was an important element because I.[00:05:46] You could have easily written algorithms to do all that, but back then, it wasn't, it was a little too chaotic and it was a little, the quality really varied and websites went up and down all the time. And there's nothing worse than hitting a 4 0 4. Right. So it was just, it was, you could feel the energy of the web growing through.[00:06:03] The work we were ...

Jul 25, 2021 • 24min
[Weekend Drop] Temporal — the iPhone of System Design
This is the audio version of the essay I published on Monday.I'm excited to finally share why I've joined Temporal.io as Head of Developer Experience. It's taken me months to precisely pin down why I have been obsessed with Workflows in general and Temporal in particular.It boils down to 3 core opinions: Orchestration, Event Sourcing, and Workflows-as-Code.Target audience: product-focused developers who have some understanding of system design, but limited distributed systems experience and no familiarity with workflow engines30 Second PitchThe most valuable, mission-critical workloads in any software company are long-running and tie together multiple services.Because this work relies on unreliable networks and systems:You want to standardize timeouts and retries.You want offer "reliability on rails" to every team.Because this work is so important:You must never drop any work.You must log all progress.Because this work is complex:You want to easily model dynamic asynchronous logic......and reuse, test, version and migrate it.Finally, you want all this to scale. The same programming model going from small usecases to millions of users without re-platforming. Temporal is the best way to do all this — by writing idiomatic code known as "workflows".Requirement 1: OrchestrationSuppose you are executing some business logic that calls System A, then System B, and then System C. Easy enough right?But:System B has rate limiting, so sometimes it fails right away and you're just expected to try again some time later.System C goes down a lot — and when it does, it doesn't actively report a failure. Your program is perfectly happy to wait an infinite amount of time and never retry C.You could deal with B by just looping until you get a successful response, but that ties up compute resources. Probably the better way is to persist the incomplete task in a database and set a cron job to periodically retry the call.Dealing with C is similar, but with a twist. You still need B's code to retry the API call, but you also need another (shorter lived, independent) scheduler to place a reasonable timeout on C's execution time since it doesn't report failures when it goes down.Do this often enough and you soon realize that writing timeouts and retries are really standard production-grade requirements when crossing any system boundary, whether you are calling an external API or just a different service owned by your own team.Instead of writing custom code for timeout and retries for every single service every time, is there a better way? Sure, we could centralize it!We have just rediscovered the need for orchestration over choreography. There are various names for the combined A-B-C system orchestration we are doing — depending who you ask, this is either called a Job Runner, Pipeline, or Workflow.Honestly, what interests me (more than the deduplication of code) is the deduplication of infrastructure. The maintainer of each system no longer has to provision the additional infrastructure needed for this stateful, potentially long-running work. This drastically simplifies maintenance — you can shrink your systems down to as small as a single serverless function — and makes it easier to spin up new ones, with the retry and timeout standards you now expect from every production-grade service. Workflow orchestrators are "reliability on rails".But there's a risk of course — you've just added a centralized dependency to every part of your distributed system. What if it ALSO goes down?Requirement 2: Event SourcingThe work that your code does is mission critical. What does that really mean?We cannot drop anything. All requests to start work must either result in error or success - no "it was supposed to be running but got lost somewhere" mismatch in expectations.During execution, we must be able to resume from any downtime. If any part of the system goes down, we must be able to pick up where we left off.We need the entire history of what happened when, for legal compliance, in case something went wrong, or if we want to analyze metadata across runs.There are two ways to track all this state. The usual way starts with a simple task queue, and then adds logging:(async function workLoop() {
const nextTask = taskQueue.pop()
await logEvent('starting task:', nextTask.ID)
try {
await doWork(nextTask) // this could fail!
catch (err) {
await logEvent('reverting task:', nextTask.ID, err)
taskQueue.push(nextTask)
}
await logEvent('completed task:', nextTask.ID)
setTimeout(workLoop, 0)
})()
But logs-as-afterthought has a bunch of problems.The logging is not tightly paired with the queue updates. If it is possible for one to succeed but the other to fail, you either have unreliable logs or dropped work — unacceptable for mission critical work. This could also happen if the central work loop itself goes down while tasks are executing.At the local level, you can fix this with batch transactions. Between systems, you can create two-phase commits. But this is a messy business and further bloats your business code with a ton of boilerplate — IF (a big if) you have the discipline to instrument every single state change in your code.The alternative to logs-as-afterthought is logs-as-tr...

Jul 24, 2021 • 12min
[Music Fridays] Tori Kelly Unplugged
Sources - Olivia Rodrigo - Drivers License (Tori Kelly cover) - Tori Kelly & Alessia Cara - Masterclass Of Impressions (Britney Spears, Xtina)- Tori Kelly & Jessie J - Who You Are- Demi Lovato - Sorry not Sorry (feat. Tori Kelly) - Ed Sheeran - Perfect (Tori Kelly cover)

Jul 23, 2021 • 7min
The Secret To Great Interviewing [Debbie Millman, Jay Acunzo]
Source: https://3clipspodcast.com/design-matters-deep-research-as-respect-ft-debbie-millman/Debbie Millman of the Design Matters podcast shows how she gets tender, emotional moments from her guests.

Jul 22, 2021 • 4min
The Genius of Apple's Name [Brent Schlender]
I recently started the audiobook version of Brent Schlender's Becoming Steve Jobs and this passage on Apple's name made me stop in my tracks:"There are different tales about the origin of the name, but it was a brilliant decision. Years later, Lee Clow, Steve’s longtime collaborator on Apple’s distinctive brand of advertising, told me, “I honestly believe that his intuition was that they were going to change people’s lives by giving them technology they didn’t know they needed, that would be different from anything they knew. So they needed something friendly and approachable and likable. He took a page out of Sony’s book, because Sony was originally called Tokyo Telecommunications Engineering Corporation, and [cofounder] Akio Morita said they needed something much more approachable.”"Indeed, adopting the name Apple foreshadows the expansiveness and originality Steve would bring to the creation of these new machines. It’s suggestive of so much: the Garden of Eden, and the humanity — both good and bad — resulting from Eve’s bite of the fruit from the Tree of Knowledge; Johnny Appleseed, the great sower of plentitude from American myth; the Beatles and their own record label, a connection that would lead to litigation years later; Isaac Newton, the plummeting apple, and the spark of an idea; American as apple pie; the legend of William Tell, who saved his own life and that of his son by using his crossbow to pierce an apple perched on the son’s head; wholesomeness, fecundity, and, of course, the natural world."Apple is not a word for geeks, unlike Asus, Compaq, Control Data, Data General, DEC, IBM, Sperry Rand, Texas Instruments, or Wipro, to mention some less felicitously named computer companies. It hints at a company that would bring, as it eventually did, humanism and creativity to the science and engineering of computers. As Clow suggests, settling on Apple was a great, intuitive decision. Steve was innately comfortable trusting his gut; it’s a characteristic of the best entrepreneurs, a necessity for anyone who wants to make a living developing things no one has ever quite imagined before.I don't know how many times I've looked at names like Asus, IBM, Wipro, and Texas Instruments and never reflected on how they are clearly less friendly than "Apple". It's obvious in retrospect — the best kind of obvious.Longtime readers here will know I have opinions on How to Name Things - mostly in code. It's easy to have strong opinions about stuff only developers see since user validation is just asking people like yourself. It's much harder to name something consumer facing. Here are some useful rules I gleaned from Apple:Two syllables maxFamiliar English word - literal 5 year olds can spell and pronounce it rightStarts with A - useful for alphabetical sort. Amazon did this tooName leads to easy logo/swag/branding ideasEvoke aspirational qualities - knowledge, health, natureI've vacillated somewhat on whether or not to use an English word for a name. My current company, Temporal, is an English word, and by sheer misfortune it exactly coincided with the Temporal JavaScript proposal. Given that we aim to release a JS SDK soon, this is regrettable potential confusion in every customer conversation. Whereas if you just make up a word, like "Netlify", or "Serverless", you not only ensure that you never clash with anyone, you also shoot right to the top in SEO results. Then again, people can just append "Apple Computer" or "Apple Macintosh" and do fine.Whatever you do, the worst outcome of naming something an English word is if it leads people to assume it does something different than you intend. It can help to do a sanity check by asking people to guess what your thing does without context.

Jul 21, 2021 • 8min
Elegant Software [Joel Spolsky]
Two anecdotes from StackOverflow founder Joel Spolsky, on how Google and Amazon wrote elegant software that balances simplicity and power.Audio: https://www.listennotes.com/podcasts/business-of/ep-70-simplicity-vs-value-in-YaRkM5T41IN/ (45mins in)Talk video: https://businessofsoftware.org/2009/01/joel-spolsky-at-business-of-software-2009-video/Oct 2021 update - I snipped it here: https://youtu.be/-QqIyICyXbU

Jul 20, 2021 • 9min
The Challenges of Building Community [Tropical MBA]
Audio source: https://www.tropicalmba.com/ten-years-dynamite-circle/ (24 mins in)

Jul 18, 2021 • 55min
[Weekend Drop] Why Invest in Developer Community? GitHub OCTO Speaker Series
Video: https://octo.github.com/speakerseries/swyxBlog Post: https://codingcareer.circle.so/c/dx-blog/technical-community-builder-is-the-hottest-new-job-in-techSlide dec: https://docs.google.com/presentation/d/1WGCfellGTboDwtM_D9uMwsHtD0qCFeBv6AYNUSxlDLg/edit?usp=sharingMy talk at Heroku's conference where I met Idan: https://www.youtube.com/watch?v=1_w1YWCHXFgTimestamps00:01:17 Intro presentation on Why Dev Community00:16:15 Discussion between Idan, Brian, and SwyxTranscriptswyx: [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 bi...

Jul 17, 2021 • 4min
[Music Fridays] Still Alive - Frank Sinatra Swing Cover
Original "Still Alive" song: https://www.youtube.com/watch?v=Y6ljFaKRTrIStill Alive - Frank Sinatra Big Band Swing Version (The 8-Bit Big Band): https://www.youtube.com/watch?v=22vbhTi1ieI

Jul 16, 2021 • 4min
How to Be Kelsey Hightower [Kelsey Hightower]
Kelsey Hightower discusses embracing individuality and self-respect, promoting learning in public and encouraging individuals to value their unique qualities while staying open to new ideas.