The Swyx Mixtape

Swyx
undefined
Dec 28, 2022 • 24min

[Creator] The Evolution of Social Networks - Mike Mignano

https://www.listennotes.com/podcasts/cartoon-avatars/ep-38-anchor-ceofounder-4m-eDu8Ng75/ (59mins in)https://stratechery.com/2022/instagram-tiktok-and-the-three-trends/
undefined
Dec 28, 2022 • 19min

[Creator] Defeating Impostor Syndrome - Tim Stodz

Listen to the Copyblogger podcast: https://www.listennotes.com/podcasts/the-copyblogger/rather-than-being-helpful-be-jdsk3ni7upa/ (15mins in)Tim's article: https://www.timstodz.com/coping-with-imposter-syndrome/
undefined
Dec 26, 2022 • 14min

[Creator] Optimistic Nihilism - Vincent Woo

Listen to Indie Hackers: https://www.listennotes.com/podcasts/indie-hackers/041-an-optimistic-nihilists-ldribhqGTOM/ (20mins in)special! the making of this mixtape was livestreamed today if you're interested in the behind the scenes processAlso recommend listening to the Dropbox talk that he mentions: https://www.youtube.com/watch?v=J8UwcyYT3z0TranscriptsCourtland Allen19:43What about in the early days? Because I know for a lot of founders, those first few months where you're not sure that this is something that's going to work out or be worthwhile can be pretty nerve racking. I know you started off with CoderPad as a side project, but you eventually decided to make it full time, so where there any bumps in the road, or challenges, or any insights that you had growing from zero dollars to, what was it, $4,000/month?Vincent Woo20:3Yeah, I quit it when I hit $4,000 MRR.Courtland Allen20:6What was that decision like?Vincent Woo20:8This is going to sound really stupid, and I had to explain this in the YC interview as well, they were like why $4,000, you haven't quit yet? I was like, I'm quitting at exactly $4,000 MRR, and they were like, why? I was like, okay, here's a reason... it's stupid. It's because when I hit $40 MRR, I posted on Facebook as a joke, haha my business makes $40/month guys, isn't that funny? Then when I hit $400 I was like haha, guess what, I made 10x what I made the last time I posted, that's crazy bro. Then I thought, oh shit, if I do this again at $4,000 that's actually kind of real stakes money, so I might as well quit then. Also $4,000 kind of pays for rent and stuff, so that's why. There's no reason to it, I just did it because I felt like it. I could've quit at any number, I mean if I quit at the beginning it would have been fine too, it didn't really matter.Courtland Allen20:57In San Francisco $4,000 pays for literally just rent, haha.Vincent Woo21:1I had a roommate, we were splitting a one bedroom you know, I had the converted living room kind of situation, one of the shitty old Victorian's in a basement.Courtland Allen21:11Was it a hard transition going from your developer salary to just $4,000/month...Vincent Woo21:17No.Courtland Allen21:17Would you say that you were motivated to... what was pushing you the most, just to increase your revenue or to...?Vincent Woo21:21These motivational questions are hard for me, I don't think I'm like most people. Why was I doing what I did? The truth is, I don't know. I don't actually believe that most people know why they do what they do. I was doing a thing because it seemed like the right thing to do but... okay, I'm going to take a moment to explain. I'm what you might call an optimistic nihilist, like I don't think anything's really real, up to and including money. Money is like a dead person's face painted on a green piece of paper... that it signifies material wealth to me is almost amazing. That, that system actually works to me is terrifying and awesome at the same time. So yeah, I thought it would be fun to make more money, but I knew abstractly that if I failed at CoderPad, literally the worst possible thing that could happen to me... is I would just get a job. Which I had proven that I had been able to do at least a couple times before that, so I wasn't worried about it. There was no anxiety for, because to me this is all a big game.Courtland Allen22:22Yeah, it's almost like a role playing game. Where you're essentially leveling up and acquiring skills, and to what end... I don't know haha.Vincent Woo22:31I think of it more like an open world exploration game, like GTA or whatever. Like just seeing how much you can get away with before everyone figures out that you have no idea what you're doing, and you're just making everything up as you go along.Courtland Allen22:41So one of the reasons I asked you about your motivation was because one of the earlier things that I saw you in was actually a video where you gave a talk at Dropbox.Courtland Allen23m 9sWell that's what I wanted to ask, why give a talk like that?Vincent Woo23m 12sIt was to provoke the audience.Courtland Allen23m 14sDid you want to tell them that...Vincent Woo23m 17sThat they were doing their lives wrong? Yes.Courtland Allen23m 18sHow did they take that? They seemed pretty supportive.Vincent Woo23m 21sThey liked it. I mean it was tongue in cheek, obviously. It was in this building, probably on this floor, just a different room, it's Stripe now. We could do the same thing if you want... could come back and do the same talk again, in the same room. Why did I do that? I mean...Courtland Allen23m 40sThe impression that I got watching it was that it seems like it was a core principle of yours that people should do this, or that it's better for the world if more people do that.Vincent Woo23m 51sThere's more of the premise for the talk than necessarily a core belief of my personality. I mean I was invited to do a talk and they even payed me, it was crazy. This was a best topic I could come up with, so I tried to make it compelling, but I also gave reasons to not start a business. I actually think there are tons of reasons to not do it. Many people I think are unsuited for it, and also it's not terribly pleasant in a lot of ways, so I don't know necessarily that I actually recommend everybody who's listening to start a business. I know that's sort of the premise of Indie Hackers, and also it's acquisition by Stripe is sort of, how do you put it? Grow the GDP of the internet.Courtland Allen24m 27sExactly, nailed it.Vincent Woo24m 28sRight, so readers at home, if you can start a business, do that, but also maybe don't. It's not easy, it's a lot of work and there are a lot of things that valuable in life that have nothing to do with money, that's how I'd put that.Courtland Allen24m 44sI think one of the cooler things that you touched on, that I've also found to be true is that a lot of people who would love to start a business don't, just because they've never even considered it as an option. Especially being the smaller, Indie Hacker type business where you're just making money and you're not trying to be a unicorn, especially if you're a developer, that doesn't get advertised as much. Do you think that's changing now-a-days?Vincent Woo25m 7sI think it must be changing. If there exists people like you, who's sole job is to promote this lifestyle, I would take as some indication that things are changing a bit. On the other hand, I touched on this in the talk, I think this is kind of cyclical. It used to be a cultural norm that everybody kind of wheeled and dealed, at least that's my impression. If you go in other countries that's way more true too. We probably hit peak corporatism and are trying to dial that back a little bit, I think is natural, it was probably inevitable in some respect that people would get upset with... we've had cultural satire and lampooning of corporate life for decades now. I remember my entire life I would watch stuff like Office Space, or cartoons...Courtland Allen25m 55sDilbert.Vincent Woo25m 56sYeah, no one paints a favorable light of corporate life anymore. There is no work that makes the work of an office seem noble. In some ways that's tragic because I don't think that's necessarily true, but on the other hand it reflects reality. I think the majority of of...
undefined
Dec 24, 2022 • 11min

[Music Friday] Post-Mariah Christmas Songs?

Listen to Switched On Pop: https://www.listennotes.com/podcasts/switched-on-pop/why-do-new-christmas-songs-my7-wjKMVZ4/ (5mins in)
undefined
Dec 23, 2022 • 11min

[Tech] Separation of (Local-first) Client vs Server - Jori Lallo

Listen to devtools.fm: https://www.listennotes.com/podcasts/devtoolsfm/jori-lallo-linear-KS_Gn2v3hqV/Transcript:So one of the big differences between linear and other product products is that it has a local first approach where, uh, it does a lot of things locally in the app before, like communicating with the backend. Uh, why was this such an important baseline feature for you guys to get in? And how, how did you do it? If you can, uh, comment on that. So yeah, optimistic updates. I don't like, that's that, that's the story. first and offline readiness, or someone, they're almost like, like local first, like for sure. But like offline readiness for example is like a byproduct of like how, just how we build linear and we're able to like plug that in afterwards. So the goal is like build something that's really, really snappy and if you see a spinner or like a loader after your every interaction, um, you know, like, it's like if that's your foundation, like it's extremely hard to like change. So we select, build out the foundation from the get go to, uh, do, do updates locally first and then like likes us, communicate them, uh, distribute them like behind the scenes Um, of course some might fail, but like most of them, uh, they don't, uh, often the question is like, okay, like how do you do conflict resolution? Well, the short answer, like simple answer, like, we kind of like don't have to that often. Uh, so In a tool like Linear, most changes are addition on something that's like already happened. We're we're not a, we're not a Notion or Google Docs. You don't edit the same text block. Uh, of course you can edit like the same, uh, issue description at the same time. But reality is that that rarely, rarely ever happens. So hopefully we can like, solve that at some point. But right now the last update, like last update wins. Uh, so how it like technically happens is a little bit like similar to, for example, like how Dropbox builds their desktop, uh, application. Is that when you first, uh, log into linear, you get a larger dump, what we call a bootstrap, um, of kinda like all of your issues and like, like teams and users and that information. Uh, we load that first in memory, then persist in an index db in the background. Um, if you use the product that's the caching, uh, indicator that like pops up one after you're logged in. And after that, uh, we just do delta, delta syncs or like delta packages distributed through web sockets and those get up, uh, applied on the local, uh, copy of the store that you use. Uh, so we, we maintain a copy of the. Connect the whole, like the database, uh, in memory and then persisted in index db. We first update everything into that, uh, show everything in the client, then send those over. If you get something like those, like Delta packages over the wire, they select it applied like the UI react to those. Um, we use a little bit like, like it's a React application, react with type script. We use mobx under the hood, uh, to do all the updating. But, and like the developer experience for this is, uh, It is, uh, it is, it is different from a lot of like applications where you have to, like, we do all the heavy lifting for you. We do like the mutations and queries and uh, like we don't do queries, but like we do mutations. So whenever you like mutate something, we auto generate mutational mutations out of those and send those to the server. The server, uh, which then again, then creates the Delta packages for other clients. But all of that, uh, is abstracted from US engineers at Linear. So we basically only interact with the, with the store. That's the application state and you reach from it, UI updates, you change things to it. Uh, mutations are created in your background. So while it was like it's an engineering geat, uh, Tomas actually has a YouTube video about it. Uh, I can share it after the fact, but, um, It allows us to move faster while putting this upfront investment in place. Uh, it's, it's not like easy system . That's why we have and couple of other engineers working on it, uh, nowadays more, more or less full-time. Full-time as well. Like scaling this, uh, is, um, you know, like we knew like at first, like our customers were relatively small. They don't have that much data, so we can just read every, all of their information into the client. As we grow, like we know that, like, that's not gonna work out anymore. So then we started like chipping off on doing other more unique things, uh, on top of it to help it scale. Um, so that's a, it's an ongoing, ongoing thing as well. But it's kind like at first, you know, we served like the small startups, now we serve companies like cross stage companies of, you know, Brazil, retool like several hundred, uh, engineers. And then Cash App is also using us and they're, I don't remember like how big they are, but it's a sizeable, sizeable engineering organization. So we've been able to like, Scale, linear asset product? Uh, both like on from the product perspective, but also from the, kinda like the technical foundation perspective. And that's, that's in the end, like our goal, like we want linear to be the, the one tool that you use. Like if you're a small startup, like pick up using it, like don't think about it and it should, uh, get you throughout your, your like, scale IPO and beyond . So Really, I really love this. So it's like this really. Complex technical architecture that's required, but the, the thing that you're going for, the thing that you're pushing for is optimistic updates. You know, I want to do an action and feel like it instantly completed. And it's like, it's a difference between a performance first company and a company who thinks about performance after the fact. Because architecting a system or introducing that type of architecture, post shipping a product is a non-trivial endeavor. And, and it would've taken y'all a long time to get to that point. So it's like, uh, I don't know. That's, that's really cool to, to hear about. And yeah, it's, it's hard. Luckily nowadays there are starting to be some technical solutions for this. For example, repliCash, and I'm sure you you know, like bunch of like and, yeah, bunch of others. When we started four years ago, there's nothing Couch db, which, and Coach DB and Fire Base, but they only really, they didn't work for a, uh, kinda like multi-tenant team tool. It, they work really well. If you're like one user who switches between like different applications and your, your state follows you, your settings follow you. But for, for a tool like linear, like nothing existed, so we kinda like have to. Do the investment. And Tomas really went, went to town with it and I'm, I'm glad he did. Uh, I, I don't personally like have the engineering like capabilities like pull that off, but I'm really fortunate to be working with him and yeah, it's now, it's like one of the, like the defining things of, of linear. It's like the speed and the snappiness. We basically don't have, like, there's a couple of, there's a couple of spinner and like loading states in the application, but, uh, you, you, you can use the product and like try to find them yourself. I won't tell where they are. 
undefined
Dec 21, 2022 • 14min

[Tech] Separation of Storage and Compute (Real-time) - Jeffrey Needham

Listen to Streaming Audio: https://www.listennotes.com/podcasts/streaming-audio/streaming-analytics-and-real-XS_gvcBjY2p/ (30mins in)
undefined
Dec 21, 2022 • 11min

[Tech] Separation of Storage and Compute (Databases) - Nikita Shamgunov

Listen to the Changelog: https://changelog.com/podcast/510TranscriptSo elastic compute makes sense, and scaling down because you have like ephemeral on-demand resource usage, right? Like, all of a sudden, I have to answer a bunch of HTTP requests, and so my server has to do stuff, and then everybody leaves, and my website doesn’t get any hits, and I could scale that down. With databases, if I’ve got a one-gigabyte database, it’s just like, it’s always there. I mean, all that data is there, and I could access any part of it at any time, or I need to… And we don’t know which parts. So I have a hard time with database scaling to zero, unless you’re – I don’t know, just like stomaching the cost… Or tell us how that works with Neon. Are you just stomaching the costs of keeping that online, or are you actually scaling it down?NIKITA SHAMGUNOVWe’re actually scaling that down. Let me explain how this works, and it may get quite technical. The first thing is what should be the enabling technology of scaling that down? If you’re just kind of thinking, “How would I build serverless Postgres?” and if you ask a person that is not familiar with database internals, they would say something like, “Well, I would put it in the VM maybe, or I would put it in the container, I would put that stuff into Kubernetes… Maybe I can change the size of the containers…” The issue with all that, as you start moving those containers around, it will start breaking connections, because databases like to have a persistent connection to them. And then you will be impacting your cache. Databases like to have a working set in memory, and if you don’t have a working set of memory, you’re paying the performance hit by bringing that data from cold storage to memory.The third thing that you will find out, that if the database is large enough, it’s really, really hard to move database from host to host, because that involves data transfer, and data transfers are just long and expensive. And now you need to do it live, while the application is running and hitting the system. And so naively, you would arrive with something that you kind of proposed, like just stomach the costs. There is a better approach, though… And the better approach starts with an architectural change of separating of storage and compute.If you look at how databases, storage works at the high level, it’s what is called a page-based storage; all the data in the database is split into 9-kilobyte pages. And the storage subsystem basically reads and writes those pages from disk, and caches those pages in memory. And then, kind of the upper-level system in the database lays out data on pages.So now you can separate that storage subsystem, and move that storage subsystem away from Compute into a cloud service. And because that storage subsystem operates is relatively simple from the API standpoint - the API is “read a page, write into a page”, then you can make that part multi-tenant. And so now you start amortizing costs across all your clients. So if you make that multi-tenant, and you make that distributed, and distribute key-value stores - you know, we’ve been building them forever, so it’s not rocket science anymore - then you can make that key-value store very, very efficient, including being cost efficient. And cost efficiency comes from taking some of that data that’s stored there and offloading cold data into S3.[20:13] Now, then it leaves out compute. And compute is the SQL query processor, and caching. So that, you can put in a VM. We actually started with containers, but we quickly realized that micro VMs such as Firecracker or Cloud-hypervisor is the right answer here. And those micro VMs have very, very nice properties to them. First of all, we can scale them to zero, and preserve the state. And they come back up really, really quickly. And so that allows to us to even preserve caches, if we shut that down.The second thing that allows us to do is live-changing the amount of CPU and RAM we’re allocating to the VM. That’s where it gets really tricky, because we need to modify Postgres as well, to be able to adjust to suddenly you have more memory, or shrink down to “Oh, all of a sudden, I have less memory now.” And so if you all of a sudden have less memory, you need to release some of the caches, and release this memory into the operating system, and then we change the amount of memory available to the VM. And there’s a lot of cool technology there, with live-changing the amount of CPU, and there’s another one that’s called memory ballooning, that allows you to, at the end of the day, adjust the amount of memory available to Postgres.And then you can live-migrate VMs from host to host. Obviously, if you put multiple VMs on a host, they all started growing, at some point, you don’t have enough space on the host. Now you do make a decision - which ones do you want to remove from the host? Maybe you have a brand new hosts available for them, with the space… But there is an application running, with a TCP connection, hitting that system> Storage is separate, so you only need to move the compute. And so now you’re not moving terabytes of data with moving Postgres, you’re just moving the compute part, which is really the caches, and caches only. But you need to perform a live migration here. So that’s what we’re doing with this technology that’s called Cloud Hypervisor, that supports live migrations. And the coolest part is, as you’re performing the live migration, you’re not even terminating the TCP connection. So you can have the workload keep hitting the system as you change the size of the VM for the computer up and down, as well as you can change the host for that VM, and the application just keeps running… So yeah, that’s kind of super-exciting technology.JEROD SANTOSo do you have your own infrastructure that this is running on, or are you on top of a public cloud, or how does that all work?NIKITA SHAMGUNOVSo we are on top of AWS. We know that we need to be on every public cl...
undefined
Dec 19, 2022 • 19min

[Tech] Separation of Control vs Data Planes - Steve Yegge

Listen to Stevey's podcast: https://youtubetranscript.com/?v=Wi8SL-Tot-8&t=1212Transcriptso let me tell you about service mesheskind of like the terminology just to geteverybody up to speed because i knowsome of you haven't looked at this spaceor haven't looked at it recentlyyou're going to hear two terms controlplane and data plane bandied about a lotand it's very confusing at first okaybecause first of all they are sort ofpoorly named and second of all there isactually a fair amount of overlapbetween the two in the in the serviceofferings that we have today all rightand in the tech stacks that we haveavailable so let me walk you throughthem all rightso starting at the uh at the servicelevel so you have a bunch of servicesmaybe they're on vms maybe they're inkubernetes maybe they're in nomad orfargate or whatever right but you've gotservices vms or containers and you wantto have them communicate with each otherall rightwell having rather than having them allcommunicate with each otherwhich obviously means you're going tohave to build like service discoverylogic into the service itselfso if i have a player servicelet's say i have a game server and itwants to go call the player service andsay is this player real okay if so giveme their give me their information giveme their credentials okay typicalservice to service uh you know functioncall rpcall right well you could have the gameserver say well i'm going to call theservice registry service to see uh wherethe player service lives and then i'llmake a call to the player service rightbut now you're building that i'm goingto call the service registry servicewhich is this other service right thatyou would have to build or whatever oruse ncd like grab did or whateverand then it has to call and get theaddress of the player service and thenand then it makes the call and it's likeyou've builtrouting logicand discovery logic into your actualapplication logic which you do not wantyou do not want that okaysoalmost immediately people started movingto proxiesyou have a proxy that's your local proxythey call it a sidecar proxy inkubernetes land because it actually runsin your little cluster as anotherservice along alongside all of yourother servicesand it handles allnetwork uh ingress and egress for youso you the idea is that your applicationonly knows about the sidecar proxy rightso to your application the proxy is theoutside world if if you you know itknows about the service locations and italso knows about circuit breakers andtraffic splitting and load balancing andscaling and everything else that we'lltalk about in a bitand that proxy becomes the thing thatother people use to talk to your serviceas well because your service may be acluster right and so people if peoplewant to send something to the playerservice and there's a bunch of instancesof it your proxy is the one to choosewhich one maybe maybe it interacts withan external load balancer or maybe itdoes the load balancing itself the proxydoes okay by doing the health checks onits local service instances yeahdoes this model make sense so as soon asyou get this basic model of the of thesidecar proxy you've got a helperservice that goes along with everyclusterand it knows about the services in thatcluster and it knows about the outsideworldand your cluster talks to the outsideworld through the proxy and the outsideworld talks to your cluster through theproxy okay you can use nginx for thatand that's what dropbox is doing rightbut these days people always almostalways use envoy or link or d there area couple of other options in addition tothose in nginx but i mean those are thereally popular ones okayenvoy is the the super industrialstrengthdoes everything swiss army knife amazingdata plane okay by the way those sidecarproxies i'm going to introduce you nowto the to the second term you hear dataplane the other one being control planedata planes is just all of your sidecarproxies in aggregate because if you ifyou've got a whole bunch of clustersright uh or even a whole bunch ofservices and you want proxies for eachof them thenthat mesh of proxiesthat are all talking to each otherto work out the service discovery andthe routing and everything on behalf ofthe application services now you'veextracted all of that you know who who'stalking to who what where and how muchand all that you've extracted it intoyoursidecar proxiesthat's your data planeit's because the network data is goingthrough that and i think it's a terriblename it should have been called thenetwork plane or the proxy point proxyplane would have been an absolute greatname for it rightproxy plane but no they call it dataplane so it's completely confusingbecause you'd think the data plane wouldbe either your application logic or itwould be the data layer behind yourapplication logic but noso stupid name really stupid shame onwhoever chose that name really you justyou did a huge disservice to theindustry so if you patent yourself onthe back because you came up with a namedata plane like seriously like punchyourself in the mouth okay it just itwas a bad namenaming you know naming stuff matters manyou don't want to confuse everybody forthe rest of their liveswhatever but the name is stuck and thename is the name now and in fact thereare well we've been ahead of ourselveshere but they're even becoming universalstandards now for data plane uhinterfacesso the data plane i mean like you'rejust going to have to learn what dataplane means it means it's the proxylayer okay the proxies that can uh couldload balance and they can they theyhandle the network for you it's softwareload balancing they actually in envoythey actually communicate through aprotocol called a gossip protocol whichis a family protocols where they're sortof like udp multicast whereeverybody just kind of like spits outthe state and consumes the state and itsort of floods the networkand it's eventually consistentso that's one thing to know about envoyis they chose an eventually consistentmodelif you'll recalli said that etcd and technologies likeit like google's chubby or uhzookeeper or uh even hashicorp consolethey're all they're all key value storesthat areum transactional highly available andstrongly consistent okayuh and that actually makes them uh sortof a pain to operateuh in practiceall of the ones that i just mentionedchubby is an interesting one google'schubby it was probably the first uh mikeburrows i think uh did chubby and if youhaven't heard the name mike burrowsuh you really should know his namebecause you know he's easily one of thethe people who had 10 people who've hadthe most impact of google rightuh he's you know i don't know he's a deor whateverand uh and he he came up with chubby asfar as you know among other things andchubby is umchubby is distinguished ashaving something like seven nines ofavailability it was down for 30 secondsin 10 years something like thatso umso yeah and it's because google has acore competency of operating chubby atscaleright because it's the it's the centralyou know key value service for serviceuh discovery and information ...
undefined
Dec 17, 2022 • 55min

[Weekend Drop] Talking DevRel on the Devmode.fm Podcast

Listen to devmode.fm: https://www.listennotes.com/podcasts/devmodefm/advocating-for-devrels-_0UveTl3BRn/On this episode, we talk with Shawn “swyx” Wang all about developer relations aka devrels, and what their critical role at a tech-based company entails.Is it just marketing for developers? Are they YouTube creators who like tech? Programmers who like teaching? Super fans who want to get paid to work on the product they already love?We answer all of these questions, and also delve into the duality of the devrel role, where they benefit the company and also the developers in the community.Don’t miss this real talk with Shawn about important but often misunderstood role in the tech business!About DevrelManscapedAirbyteNetlify’s Jason LengstorfAWS AmplifyWebflowDeveloper Marketing: Engage and convertDeveloper marketing is the inverse of traditional marketingMeasuring Developer RelationsWhat is Developer Relations?Dealing with Honne and Tatemae in JapanFireship on YouTubeCraftQuest
undefined
Dec 16, 2022 • 12min

[Music Friday] The Piano Guys

https://en.wikipedia.org/wiki/The_Piano_Guyshttps://www.youtube.com/watch?v=QgaTQ5-XfMMhttps://www.youtube.com/watch?v=6Dakd7EIgBEhttps://www.youtube.com/watch?v=DBbOGtpAUHAhttps://www.youtube.com/watch?v=D7SqPiohNDU

The AI-powered Podcast Player

Save insights by tapping your headphones, chat with episodes, discover the best highlights - and more!
App store bannerPlay store banner
Get the app