the following is a conversation with<br>Michael Paulson better known online as<br>the primagen he is a programmer who has<br>entertained and inspired millions of<br>people to have fun building stuff with<br>software whether you're a newbie or a<br>season developer who has been battling<br>it out in the software engineering<br>trenches for decades in short the<br>primagen is a legendary programmer and a<br>great human being with an inspiring<br>roller coaster of a life story this is<br>Alex Freedman podcast to support it<br>please check out our sponsors in the<br>description and now dear friends here's<br>the<br>primagen what do you love most about<br>programming uh what brings you Joy when<br>you program I can tell you the first<br>time that I ever felt love in<br>programming or felt that Joy or that<br>excitement which was in college it was<br>the second class data structures and the<br>teacher that was teaching Ray Babcock he<br>was talking about linked list now you<br>you have to learn Java at Montana State<br>University when I went and so he's off<br>there kind of explaining this whole<br>linked list thing and all that and then<br>he shows code and in the code it's like<br>abstract class node or whatever it was I<br>can't remember what it was and then it<br>had a private member and that private<br>member was of type node and I've never<br>seen that before it is a class that is<br>called node with a member that is of<br>itself and for the first time ever I was<br>like oh my gosh like there's no end<br>there's no way to iterate this is not<br>like a set of 10 items this is a set of<br>infinite items and so like my mind kind<br>of like exploded in that moment like<br>there's actually you like the what you<br>can express is huge I can see what<br>memory looks like like I can see this<br>kind of hopping through space and I just<br>remember being just so blown away<br>because up until that point everything<br>was just all right I have a list of 10<br>items I have a list of 20 items right it<br>was very rigid and small and the things<br>I built were really small and trivial<br>and all of a sudden I felt like I could<br>build like anything in that one moment<br>and it was so amazing I just remember<br>sitting in class for what I don't even<br>remember how long those classes were or<br>anything but I just remember being just<br>completely like profoundly impacted by<br>this notion and so I just sat there and<br>I watched I had the exact same<br>experience in Heaven's forbid by<br>software engineering class when we<br>talked about The Decorator pattern where<br>you can keep on constructing these<br>objects in this recursive way not that I<br>think that's actually a good idea to do<br>but just watching that and realizing<br>like there's so many weird and unque<br>ways you can solve problems and like you<br>can just anything your mind can think of<br>you can just create that and I just<br>remember getting just so excited about<br>the possibility that anything is<br>possible yeah let's uh wax philosophical<br>about a link list it is pretty profound<br>for people who don't know a node in a<br>link list doesn't know anything about<br>the world it's in it only knows about<br>the thing it's linked to its neighbor<br>maybe that's symbolic it's a metaphor<br>for all of us humans<br>there's billions of us on this planet<br>and we only know about our local little<br>Network yeah and it's kind of beautiful<br>and you realize like in that little<br>simple data structure you can construct<br>arbitrarily large systems and they<br>they're like roots that go through<br>memory and then of course that's where<br>you get all the programming languages<br>that allow you to uh dump junk into<br>memory and have memory leaks and that<br>there therefore create infinite<br>pain as you try to figure out where that<br>uh unfreed memory is uh for me yeah<br>probably so it's so beautiful the way<br>you put that link lists are indeed<br>beautiful recursion also for me when I<br>finally wrap my brain around what it<br>means to write a recursive function what<br>was the what was the thing what was the<br>like the one that taught you cuz I think<br>we all probably you probably did<br>factorial where you like you know just<br>do like a quick factorial of it it just<br>doesn't hit home what was the thing that<br>kind of made it hit home I don't<br>remember the<br>first I remember my first how do you not<br>remember your first it was magic I've<br>had so many that just I me you are a<br>lisp guy you're probably pretty used to<br>the recursion yeah all I remember is<br>just surrounded by sea of<br>parentheses I mean that's that's really<br>probably when I uh in high school I<br>think it was either Java or C++ wow how<br>do I not remember that it must have been<br>C++ and then College it was the generic<br>bullshit software engineering classes<br>were uh Java but then the the Renegades<br>the cool kids were all using lisp that's<br>that's when you're doing the AI the<br>quote unquote AI at that time that's<br>that was lisp if you want to write a<br>chess engine you would use lisp and so<br>for me probably the moment I really fell<br>in love with<br>programming was was lisp and writing<br>like aell programs and uh chess engines<br>all kinds of engines that play a game<br>and then I could play against that thing<br>and that thing would beat me the joy of<br>being destroyed by the thing you've<br>created and oh um game of life too cell<br>aoma that's when I I built that you all<br>kinds of programming languages that's<br>less about programming language and more<br>about the system you create and that<br>just filled me with infinite Joy uh<br>having<br>now similar to the link list situation<br>creating a system where each individual<br>cell only knows about its<br>neighbors and operates under very simple<br>rules but when you take that system as a<br>whole and allow it to evolve over time<br>it can create infinite complexity so I I<br>just man those are many pothead moments<br>where I'm just like looking at the<br>beautiful complexity that can be created<br>with cellometer that's that filled me<br>with just infinite joy for sure but yeah<br>the all I remember is parentheses so my<br>first memories of my first are<br>drowned in a sea of<br>parenthesis oh man mine is I have well<br>first off mine was in Java so my first<br>was a little bit more rigid kind of a<br>corporate you know a corporate<br>experience but cold meaningless yeah I<br>was in a lab everyone was using sentos<br>at that or sent Os or however you say I<br>always call that sentos the fresh maker<br>and so it's just like I'm in this very<br>cold that's nice thank you I'm in like<br>this cold rigid environment uh with my<br>Microsoft keyboard programming away in<br>Java and I still I have just such this<br>memory of Despair because I love<br>programming this was after the linked<br>list and I cannot figure out recursion<br>and so I go to you know the university<br>store and I buy a book and it's Dell and<br>Diel learn Java and it has a section<br>recursion so I open it up and I start<br>reading it and it just doesn't hit home<br>and I'm like I'm spiraling into this<br>like kind of I maybe I'm not a<br>programmer maybe I'm not worthy enough<br>to enter into this circle of people who<br>can figure out what what the heck<br>recursion means and so Dil and Dil is<br>like I still remember this their phrase<br>their exact phrase was every young<br>budding developer solved this recursion<br>program and it was the Tower of Hanoi<br>and guess what I don't know if I can<br>solve the Tower of Hanoi to this day<br>it's it's like a very hard recursive<br>problem and I just sat there and thought<br>Oh my gosh I'm not going to make it and<br>I sat there in the lab for 8 hours 10<br>hours doing these things so worried it's<br>the week of recursion we have to do a<br>lab assignment I'm not going to be able<br>to do it and I just remember being like<br>genuinely worried about that uh and then<br>because I always my big problem was is<br>like okay do factorial why not just use<br>a for Loop okay what about Fibonacci<br>Sequence why not use a for Loop right<br>like I don't understand what's the<br>purpose of recursion I don't understand<br>it yet it's so powerful why it looks<br>like a really complicated for Loop and<br>so I just could not understand it and<br>then lab came that day and it was I'm<br>going to give you a 2d array you have to<br>read from a<br>file this is what a starting position<br>looks like this is what an ending<br>position looks like this is what a wall<br>looks like I want you to find me a path<br>through the Maze and so I just sat there<br>I like okay I guess I can just go up and<br>I can create a like a visited grid that<br>so I know not to visit these places<br>anymore and all a sudden just started<br>clicking like well wait a second I don't<br>know the maze but if I just go up right<br>down and left and hop back every time<br>I've been to that square don't visit it<br>like I can just it will just go forever<br>and I realized in that moment I'm like I<br>actually understand Rec I've understood<br>recursion this whole time I just never<br>had a problem in which it actually made<br>sense to use and that was like my big<br>downfall is that I I was measuring my<br>understanding with the problems that I<br>had available which were just you know<br>list traversal which is not a good use<br>of recursion and so I just I just<br>remember that freeing oh man recursion<br>it was a great moment in my life I mean<br>it does require to be fair a leap of<br>faith like because people will tell you<br>those uh conformist dogmatic<br>Java instructors will tell you that this<br>is you know um that's important to<br>understand uh recursion but it takes a<br>leap of faith that this is something<br>this is a different way of looking at<br>the world and it's a powerful way of<br>looking at the world actually<br>remembered when<br>I think I first I think I remember my<br>first now<br>okay uh I think it was uh dub first<br>search for one of the games maybe a<br>fellow something like that and for that<br>implementing recursion understand that<br>you can search trajectories through the<br>the space of states and do that<br>recursively that was mind-blowing just<br>imagining like<br>you can just see possibilities yeah just<br>like numbers flying was like the<br>beautiful mind and then um and that's<br>when I also uh discovered conspiracy<br>theories that and I just saw I saw the<br>truth uh okay yeah so what were we<br>talking about oh what was the most<br>painful aspect of programming for you<br>and like what what Memories do you have<br>of uh deep profound suffering in terms<br>of programming in the early days uh I<br>would say the biggest one that I can<br>really hold on to had to be one of two<br>experiences the first experience was<br>when I was at a place called schedul<br>listi<br>and am I not allowed to say the<br>place I'm not sure if they're even<br>operating still at this point but<br>they're in both there something funny<br>about the name I'm sorry oh schedu<br>listic yeah they actually the name was<br>so bad that when you looked at their<br>like paid for Google ad terms that they<br>would make sure that they're at the top<br>of the list the spellings were just<br>insane cuz no one knew how to spell the<br>word Schedulicity and so it was just<br>like the Google optimizing for that is<br>just hilarious uh but okay go back to<br>the thing and the the thing that kills<br>me the most about programming what I<br>actually considered the worst aspect of<br>programming is when you know everything<br>and so when I was at this job it's just<br>every single day I'd come in there were<br>no surprises there was no questions I<br>didn't understand the code base sure<br>that's that's fair I didn't understand<br>all the things about the codebase but I<br>knew I was going to go<br>I was going to generate some sort of<br>object from the database I was going to<br>take that object from the database and I<br>was just going to map it over and just<br>display it on the web page there's no<br>creativity there's no there's nothing to<br>it it's very like almost Factory line<br>kind of work and that was a very kind of<br>difficult moment for me which is I<br>didn't enjoy programming because like I<br>knew everything about it I already knew<br>exactly what I was going to do that day<br>I knew all the hurdles I was going to<br>have to go over there was no unknown<br>unknowns if you will it was just knowns<br>at all times and it's just that is for<br>me that is the worst part about<br>programming is when you already know the<br>solution and it's just a matter of how<br>fast you can type and get it out from<br>your head to your hands so the absence<br>of uncertainty the absence of challenge<br>was the pain yeah that's pretty profound<br>Prime I'm more than just good looks I<br>want you to know<br>that it's a low bar what do you identify<br>as I'm enjoying asking the general<br>question 38 male uh male husband of<br>beautiful wife okay you stream about all<br>kinds of programming uh but what kind of<br>programmer Are You Are You full stack<br>developer web<br>programming uh and maybe can you lay out<br>all the different kinds of programming<br>and then Place yourself in that in terms<br>of your identity sexual identity as well<br>yeah I can get it we can put it all in<br>there okay uh plus I mean obviously<br>those two are very very tightly coupled<br>I have seen you like on the border of<br>sexually aroused by certain language is<br>I think you got real excited about o<br>camel<br>Orel let's<br>go thank you Dylan mroy where okay wow<br>yeah I did not expect that that<br>escalated quickly anyway what do you<br>identify as okay so first you let's<br>let's do the previous or the in in<br>between question first which is the<br>different kind of archetypes I think<br>that's a really interesting kind of<br>question because if you go on Twitter or<br>you're new your thoughts are probably<br>that there is just web programming and<br>maybe there there some other stuff yeah<br>like game programming but you do like<br>game programming in JavaScript and on<br>the web you know like there's this very<br>kind of very myopic view of the<br>programming world and I bet if you ask a<br>lot of people these days like what is<br>the most popular form of programming<br>they'd probably say web if you said what<br>contains the most amount of repos how<br>many percentage of repos on GitHub our<br>web base they probably say 90% or some<br>huge number but the reality is that<br>there's an entire embedded robotics<br>world you know you're familiar with the<br>ml side of things there's networking<br>there's going to be just like<br>performance operating systems compilers<br>there's just huge amounts of variation<br>of all these different type of<br>programming verticals that you can be<br>and so we often talk about programming<br>in perspective of web or something<br>that's pretty narrow and I think that's<br>just a social construct of Twitter more<br>than anything else that it's actually I<br>don't believe it's that representative<br>of of the entire kind of programming<br>world out there and I think a lot of<br>programming is really really fun there's<br>some really great stuff building a your<br>own language is just a very fun<br>experience to do every programmer should<br>just do that once just to have a<br>completely different you know<br>perspective on how things work in life<br>but as far as what do I do uh I've<br>always looked at myself as a tools<br>engineer so at my time at my my jobs<br>typically I would start off on the UI<br>and then they'd be like okay well hey we<br>need a library for this thing so then<br>I'd be the one writing like the library<br>so in 2012 2013 I was writing a UI<br>library for the web that can behave just<br>like an iPad so you can pinch and zoom<br>on it but it's still web page cuz we<br>didn't have any of that stuff back then<br>it was a canvas had to do all the like<br>matric operations and all that stuff to<br>kind of you know it felt like you're on<br>an iPad but it actually wasn't on an<br>iPad and this was iPad 2 by the way so<br>this is a long time ago and so every<br>single time I got into a job it's like<br>okay hey we need to do a library hey can<br>you work on a build system so back then<br>there was no grunt there was no gulp<br>there was no any of those things so I<br>had to handroll my own JavaScript build<br>system and so I always fell into these<br>positions of building tools for<br>developers to be successful and I've<br>always really enjoyed that region so as<br>I went on to say Netflix uh spent 10<br>years there I'd say the majority of my<br>10 years were building things for<br>developers to<br>use that they could be successful at<br>their job and so I just I've always<br>really enjoyed that aspect because your<br>share your stakeholders and the people<br>that use your program understand<br>programming and they're going to say<br>like hey I need this and typically the<br>thing that they need they actually want<br>whereas with people<br>people want stuff but what they actually<br>need versus what they actually want<br>often are kind of like this weird<br>separation people you know that's like<br>the old Henry Ford quote I just want a<br>faster horse he's like no what you<br>actually want is a car and so it's like<br>this like you have to play this game of<br>trying to really figure it out whereas<br>developers it's like I know you know<br>what I'm doing I know what you want<br>let's figure it out together that's<br>actually that gives you a really nice<br>big picture view of programming in<br>general so I love the idea of just kind<br>of starting at the interface like you<br>need to pinch and all that kind of stuff<br>and then figure out the entire thing<br>that requires to make that happen incl<br>including maybe the side quest tooling<br>how to make it more productive and<br>efficient all that kind of stuff so the<br>entirety the entirety of the thing<br>that's really cool okay so that mean<br>that would be full<br>stack by the general definition of full<br>stack meaning like perhaps yeah versus<br>like systems engine like starting at the<br>bottom and trying to optimize a certain<br>kind of specific thing without seeing<br>the big picture of like what the the<br>resulting interface would look like and<br>a lot of people you know in web<br>programming they never go beyond the<br>front end of how the thing looks they<br>kind of always assume there'll be<br>somebody some some uh Grunt in the<br>shadows in the darkness of the basement<br>that will implement the back end some<br>Gil foil out there will be doing the<br>backend yeah like I like to call myself<br>a generalist um just to kind of give<br>some ideas is you know at at one point<br>at Netflix I built the websocket<br>connection so for TVs how websocket<br>works is code I just wrote M and so I<br>you know built the framing thing and<br>before that I was doing stuff with<br>memory and before that I built the UI<br>for a tool right it's just like I can<br>just do the thing you just tell me the<br>thing to do and I'll just go do the<br>thing I don't worry too I don't try to<br>get super good at one specific activity<br>like I don't want to be a kubernetes<br>engineer who's the world's greatest<br>deployer but if I had to go learn<br>kubernetes I'd go learn it and learn how<br>to deploy some things and then hopefully<br>move on to like the next thing if that<br>makes sense uh I posted about the fact<br>that I'm talking to you on Reddit and<br>there's a lot of wonderful questions uh<br>somebody mentioned that I should ask you<br>about devops can you explain what devops<br>is is it a kind of special ops of<br>programmers is SEAL Team Six of<br>developers what's devops can you define<br>what are you a devops engineer well<br>people keep telling me devops isn't real<br>there's actually you want platform<br>Engineers Cloud Engineers infro<br>Engineers uh I just often think I think<br>the easiest way if we're doing like just<br>kind of like some basic nomenclature<br>it's just devops are the people that<br>make sure that when you launch a service<br>and all that it doesn't just disappear<br>right it's all the kind of backbone of<br>being able to operate something at scale<br>like you really don't if you think about<br>if you're just writing a mom and paaw<br>like website people that do PHP that are<br>doing WordPress and all that they're<br>going to build something they're going<br>to hand it off to I don't know Leno<br>digital ocean some company they don't<br>really need a really complicated build<br>deployment all this it's just someone<br>with a simple website so they can sell<br>their goods and so they don't really<br>need that and so that's kind of how I<br>think of a devops is when things need to<br>scale that's kind of the person you hire<br>yeah those people are actually amazing<br>yeah of uh the time I spent on Google<br>it's like oh yeah yeah there's all these<br>fancy machine learning people but the<br>the folks that are running the compute<br>the<br>infrastructure basically that make sure<br>the shit doesn't go down they're like<br>Wizards very incredible like vertical of<br>job and obviously I'm using a very broad<br>term to describe I'm sure like a bunch<br>you know because making sure stuff<br>doesn't go down you could also say<br>that's like an Sr right site reliability<br>engineer whatever you know the ones that<br>were the the bomber jackets at Google<br>and so when we say devops I think people<br>get very particular about terms<br>specifically in this category they're<br>like well actually you're mentioning<br>infrastructure engineer versus you know<br>versus site reliability engineer it's<br>just like okay yes I hear you but<br>generally when someone thinks devops<br>they think somebody that manages the<br>servers and their life cycles and the<br>reliability there's devops is it real<br>I'm not sure okay did versel Kill<br>devops question mark question mark wow<br>that's you're almost a journalist that's<br>a<br>headline uh let's go back to the<br>beginning all right baby Prime so you<br>mentioned Netflix youve uh oh I worked<br>at Netflix by the way for people who<br>don't know uh who uh the primagen is he<br>mentions uh the fact that he has been<br>very successful and has worked at<br>Netflix and basically every other<br>sentence<br>correct o almost as much as I mentioned<br>neovim oh great tell me more about<br>neovim no please don't so baby Prime at<br>the very<br>beginning you've had one hell of a life<br>and I think it's aspiring to a lot of<br>people you've you've gone through a lot<br>of painful low points and like you<br>mentioned you've come out of that to<br>become a successful programmer and a<br>person that inspires a huge number of<br>people um to get into programming and<br>just to find success in life so maybe I<br>would love it if you laid out just your<br>whole life Journey from the<br>beginning so I guess if we're going to<br>start with this whole journey I think<br>it's probably best to start when I was<br>about four or 5 years old that was the<br>first time I was ever exposed to<br>pornography uh and it's kind of just ear<br>wormed me for a large portion of my life<br>and so I don't think there was a day<br>that didn't go by from when I was a very<br>young lad all the way up until I was 20<br>some years old where I didn't think<br>about porn on the daily basis and so<br>it's just like every single day even at<br>that young and so it's just a very mind<br>consuming time consuming thought<br>consuming thing that kind of plagued me<br>from a starting at a very young age when<br>I 7 years old my dad died um that was<br>kind of a really tough period of life I<br>I still think about this time that I<br>went over to China and there's kind of<br>some rules that we were given and one of<br>the rules was just like hey don't talk<br>about God and if you do use the word Dad<br>instead and I was just like okay Dad it<br>was like the first time I said that word<br>in like 17 years or some amount of time<br>like it was like so weird to say that<br>phrase and I was just like oh that was<br>just the strangest thing I've ever said<br>in my entire lifetime it just felt so<br>weird so kind of rewind as I got older<br>obviously was very good at computers<br>good at accessing porn of course uh<br>played uh video games on the<br>internet fun fun kind of like side quest<br>story I think the guy's name is Lord<br>talk on Twitch I can't quite remember<br>his name but he built this game called<br>Grail g r a a l and Grail online and<br>when I was a young lad that it was just<br>like Zelda except for it also had a<br>level editor and it had like a se-like<br>language and that's how I discovered how<br>to program is I looked at these symbols<br>and figured out what they meant and then<br>I was able to make things happen in the<br>game and that was like a that's my<br>introduction into programming so thank<br>you that guy whatever your Twitch name<br>was but all right so keep on going as I<br>got older I was super bad socially I was<br>not a very great social person I high<br>school was brutal got made fun of a lot<br>uh really didn't enjo I wouldn't say I<br>had a great time during High School uh<br>definitely felt very out of place or<br>offset or maybe misplaced if you will<br>I'm not sure what the right word is and<br>so of course at that point I just always<br>want wanted to I wanted to be accepted<br>to fit in and all that I did forget to<br>say one side story after my dad died my<br>brother older brother he got and I<br>started getting into drugs and along<br>with that he exposed me to pot so at 8<br>years old I was smoking some marijuan uh<br>for a while there till like maybe 11 or<br>12 and took a break and then again did a<br>lot of that as I got a little bit older<br>but so I kind of got a lot of these<br>exposures fairly<br>young 16 15 through 18 a lot of drinking<br>and all that when I graduated or as I<br>was graduating high school it's just<br>like I had such sadness if you will I<br>was very sad about how everything went<br>tried to commit suicide um obviously it<br>was a very poor attempt and I'm still<br>here today I'm very happy about that<br>aspect I'm glad that I didn't follow<br>through with anything had to go to the<br>hospital and all that and when I was<br>done I just still remember kind of<br>coming out of the hospital and at like<br>that moment it's kind of like something<br>broken you have you ever read the book<br>uh Wheel of Time It's 14,000 Pages or<br>something like that but right around<br>page 12,000 Rand has to intentionally<br>kill a girl the main character and<br>that's like the moment he breaks and he<br>gets into like hard Rand uh uh quindar<br>ran if you will for those that know whe<br>of timeo will appreciate all that uh for<br>those that don't very confusing and I<br>understand not the Amazon movie show not<br>that not that Wheel of Time so now that<br>we kind of go back onto it at that point<br>it's just like something kind of broken<br>me it's just like I just didn't care<br>anymore so all the kind of social<br>awkwardness if you will all that kind of<br>just died away with me but also so did<br>everything else and so I started using a<br>bunch of drugs LSD mushrooms math did a<br>bunch of math did a bunch of that stuff<br>and then went off to college and<br>continued to do a bunch of stuff I took<br>too much acid to where for like quite a<br>few years I had like little squigglies<br>on the side of my eyes whenever I'd walk<br>by high contrast object<br>and so it's just like that whole period<br>of life was just kind of marked<br>by um just poor decisions and then<br>sometime when I was about 19 years old<br>somewhere in that range I just had this<br>one evening where it's just I felt the<br>very dramatic and real presence of God<br>and it's just like I kind of had this<br>Choice like froto uh on a razor where<br>it's like if I go either way I'm going<br>to fall off and I need to change my life<br>you just you get to make the choice now<br>do you want to do that or not and so I<br>remember going okay I do I do want to<br>change my life like I don't like this<br>experience I don't like what I'm living<br>I am still very sad I still feel very<br>desperate I still feel all those things<br>I'm just like pretending to be this<br>other person<br>and then I just went to sleep that night<br>nothing changed in my life everything<br>was still the way it was I woke up the<br>next day the same person and I was just<br>like oh that's just like such a strange<br>weird kind of experience and I just went<br>and bought my Daye and then I remember I<br>think that evening I looked at<br>porn and all of a sudden I just had a<br>conscious I just like this deep profound<br>like shame and I was like I've never<br>felt shame in my life right like I I<br>have no idea what's happening now and<br>then all when I smoked pot I just felt<br>deep shame and when I hurt somebody or<br>did something wrong also it's just like<br>I got a conscious from that evening<br>that's what kind of my gift was if you<br>will and it's just like at that point I<br>didn't even have a choice I had to<br>change my life<br>cuz for whatever reason I've kind of<br>been changed in a moment and so from<br>there I started actually trying in<br>school I always kind of joke around that<br>I got 2.14 in high school I had a<br>teacher handw write me a note saying I<br>was the worst student she's ever had all<br>that kind of stuff I was not a really<br>great<br>student and then in that moment it's<br>just like okay now life's changed and I<br>start trying to learn you I try to<br>become a good student and it turns out<br>it's really hard like I was I was really<br>bad I still got C's I went and took pre<br>calculus and failed pre-calculus and I'm<br>like oh my gosh I used to be the smart<br>math guy and now I'm kind of the idiot<br>failing and so it's like I'm just<br>questioning myself and all that and I<br>spend hours upon hours in in like a<br>studying uh math learning center and<br>then just at some point years into this<br>journey I'm like a year and a half into<br>this journey at this point it's just<br>like something clicks and I go from<br>being the worst person to just<br>immediately becoming the best everything<br>after that is just I don't know what<br>happened all of a sudden I was the best<br>person at math I started going into my<br>computer science classes I just really<br>got everything it's just like everything<br>at at just years after trying just all<br>of a sudden became easier and I'm not<br>sure if it happened over the course of<br>weeks or when the easier started but it<br>was just first predicated by just a huge<br>amount of difficulty and then this is<br>kind of where I started really Desiring<br>and loving the process of learning was<br>when things started getting easier after<br>all those years cuz I just was motivated<br>by this desire to do something not<br>not not thinking it was going to get any<br>easier and then all a sudden it just<br>started getting easier and it was great<br>and that's kind of really where I guess<br>I started having the biggest parts of my<br>life change at that point I started<br>really really really wanting to never<br>look at porn again cuz every single time<br>just such shame and I really wanted to<br>stop and that was by far the hardest<br>addiction to quit like smoking<br>cigarettes was also a really hard<br>addiction to quit shockingly hard<br>addiction to quit but porn by far was<br>just the worst of them all and<br>then I think about 22 I was finally done<br>with all kind of addictions if you will<br>and then for a year I just I just worked<br>in all that and I think right around<br>maybe it 21 and 3/4 somewhere in that<br>range I'm not really sure where I I<br>stopped all the addictions part but or<br>at least the outwardly addictions and<br>then at some point 6 months later a year<br>later met my beautiful wife things just<br>started falling more and more into place<br>I loved more and more work I loved<br>programming I started programming like<br>12 hours a day I watched The Social<br>Network movie and after that I was just<br>like I'm doing a startup and so like<br>that night I started my first startup<br>and I was just like so it was in PHP by<br>the way PHP 5.2 or something like that<br>it was great great times and I was just<br>so motivated to do that and I would just<br>program for sometimes I'd program for 24<br>36 hours straight and I just like<br>non-stop just that's all I wanted to do<br>at all points I think my wife got a<br>little sick of me I wouldn't she would<br>be like can you drop me off at school<br>and I'd be like no on programming I was<br>not a very nice you know I didn't think<br>through things that well and I was just<br>so into it and I just did it Non-Stop<br>and that's kind of like how I became me<br>is that story if that makes sense let's<br>try to reverse engineer some of the pain<br>and some of the Triumph you made it<br>sound easy at times let's try to<br>understand it better maybe when you were<br>7 years<br>old what do you think about the pain<br>you've experienced there losing your dad<br>what do you think what kind of impact<br>did it have on you what kind of memories<br>do you have at that time the best way I<br>can kind of put it is that I just never<br>knew what a dad was I was young enough<br>that I could kind of maybe repress or<br>just even have the capability of<br>remembering things long term because I<br>know most people don't remember a lot<br>from when they're young and so I'm not<br>exactly sure probably as at one of the<br>best possible ages if I'm going to lose<br>a dad to lose a dad you know uh if<br>you're going to lose one if you're 11 or<br>12 it's like a terrible age that's what<br>my brother was and he fell into drug<br>addiction and never got back out and so<br>I just kind of have more of like a<br>fuzziness and just kind of a longing<br>that I I just wish I had a dad what<br>impact did that have on your Evolution<br>on your life sort of having that longing<br>I think that's why I was so bad uh<br>socially in the sense that I was looking<br>for approval right like something I<br>needed approv I think a lot of people<br>kind of Desire that approval or that<br>loving figure and I just didn't have<br>that and so I think I just looked for it<br>and everything else right like if I to<br>psychoanalyze my actions during the time<br>it's not like I was actively thinking<br>that uh but yeah I just always wanted<br>something to fill in whatever that was I<br>felt I think a lot of people listening<br>to this will uh resonate with your<br>experience in high school like being The<br>Outsider being picked on uh struggling<br>through a lot of different complexities<br>at home uh what advice would you give to<br>them mat the worst part about high<br>school is that you're surrounded by a<br>bunch of people your age and it feels<br>Eternal yeah you don't think like the<br>people that are around you you feel like<br>are the people that will be there for<br>the rest of your life at least that's<br>what I kind of like I thought and I<br>didn't really even realize this until<br>many years later that they are going to<br>be some of the least consequential<br>people in your life which is very<br>shocking to kind of think about<br>especially if you're in it right now<br>yeah right like right now they are the<br>everything that you're experien is your<br>whole reality<br>and then one day it all stops and then<br>real life starts to begin yeah it's just<br>that's such a shocking thing and if I<br>could just tell myself that maybe I<br>would have been a bunch different person<br>that's so beautifully put I mean it is a<br>it's like a trial run you know like at<br>the beginning of video games there's a<br>little tutorial that's what that is yeah<br>and actually that should be a<br>chance uh to try shit out to take risks<br>uh because real life will begin where<br>there is more consequences after that<br>here you can you know if you like a girl<br>ask her out try try shit if you get<br>picked on hit that guy back try shit out<br>I'm not going to condone punching<br>another person I will beat the shit out<br>of him and uh take some Jiu-Jitsu and<br>learn how to take him down and then and<br>then and then that girl that rejected<br>you would be like H maybe I'll give that<br>guy a second chance be a bad<br>motherfucker it's a chance to try stuff<br>out this is very motivational speech for<br>kicking ass<br>it is true there I mean there is<br>something very true about that that I<br>think especially I I mean I have no idea<br>what the girls experience of high school<br>would be like but as a guy there's<br>definitely a lot of like physical<br>requirements in high school there's a<br>lot of physical measurement at least<br>where I grew up I think that might not<br>be true in all high schools but if<br>they're filled with boys it's probably<br>true and so it's just like yeah it<br>probably does help to do those things to<br>go to BJJ to do any of these activities<br>because even if you don't ever kick<br>someone's ass just having some level of<br>confidence in yourself is probably a<br>very valuable thing but just remembering<br>that this is such a short tiny moment in<br>your life is just like a huge help I<br>mean the way you phrased it is exactly<br>right that's what it feels like that<br>this is these are the people that will<br>be with you for the rest of your life<br>and this is the whole world and so that<br>means that there'll be just tremendous<br>amount of impact if somebody picks on<br>you or if you fall somebody low<br>somewhere low in the hierarchy uh in the<br>status hierarchy of this high school<br>that means you'll be low in the status<br>hierarchy of the world and you're fucked<br>for the rest of your life and that that<br>carries a tremendous amount of weight<br>it's is why psychologically it's<br>extremely difficult to be I I think it's<br>underated often by parents by Society<br>how difficult it is to be a high<br>schooler how difficult psychologically<br>it is how it actually makes sense that<br>some people would suffer from depression<br>and be on the verge of suicide it's very<br>very<br>yeah I think it's even I you know people<br>always say back in my day you know blah<br>blah blah I think it's genuinely harder<br>today than it's ever been in the sense<br>that when I was a kid there was a<br>qualification to people meaning this is<br>a cool guy this is not a cool guy today<br>there's a quantification of people you<br>have<br>32514 people following you you have 12<br>like there people can visually they can<br>inspect your exact social value on<br>whatever platform you're on and that has<br>to be just so much hard harder and I can<br>imagine that there's a lot of of just so<br>much weight put on that that it's just<br>it feels probably way worse and way more<br>damning to be uncool because you have an<br>exact number of how uncool you are yeah<br>the challenge<br>there and the task the quest is to<br>remember that just because your Social<br>Circle on social media and uh in high<br>school thinks you're uncool<br>it actually might mean you are cool yeah<br>and you need to find that cool and grow<br>it and let it flourish so that when real<br>life begins you can fucking come out of<br>the gate firing on all cylinders that's<br>a great way to put it I I I think if<br>anything High School is really bad at<br>picking out the cool people that like uh<br>this whatever the system the hierarchy<br>that forms it is so it's such a basic<br>bitch hierarchy like you're good at very<br>generic shit that's how you rise your<br>parents bought you an expensive car<br>expensive car right materialistic shit<br>yeah exactly it's a greedy search see<br>they didn't have a proper search so<br>they're just hitting that local Optima<br>but theist I mean even the objective<br>function uh for that greedy search is<br>just a really shitty one yeah where<br>those people that win the game of high<br>school are very often not going to be<br>the people that win the much more<br>exciting beautiful game of life so do<br>epic shit and uh<br>try stuff out the weirdos are the ones<br>that are going to succeed the weirdos in<br>high school uh probably because they<br>also get bullied and they get to be<br>tormented more psychologically and get<br>to explore their own mind and think<br>through what it means to be a human<br>being more cuz if you're winning in high<br>school you're not being challenged yeah<br>you're not self-reflecting you're not<br>trying shit out so there is some degree<br>to like being tormented as long as it<br>doesn't break you the porn<br>addiction that's another powerful one<br>that I think will probably resonate with<br>a lot of people and it's interesting you<br>say that's one of the hardest addictions<br>um to uh overcome let me say it this way<br>some addictions have a much bigger<br>societal look and porn is just not one<br>of them which makes it super hard none<br>of your friends are going to cheer you<br>on if you go on Twitter and say I quit<br>porn they're going to be like well<br>that's good for you but not everybody<br>you know not every you know no one makes<br>that argument with meth right no one's<br>going to be like well not everyone has<br>to quit meth okay it's actually a fine<br>industry and people who you know are the<br>ones producing it they're good also<br>right like no one's going to make that<br>kind of argument whereas with porn<br>you're going to have like a whole thing<br>and friends friends are going to think<br>you're dumb for doing it or whatever<br>it's like you have it's a much more<br>difficult one in just like that so it<br>feels accepted and I think it's also an<br>addiction you can practice participate<br>in privately and hide it from the world<br>there's certain addictions that are<br>harder to hide from the world for prol<br>long periods of time yeah and porn<br>addiction is probably one you can just<br>have for many years and then it can<br>deepen that's probably like a serious<br>issue boy am I glad I grow up before the<br>internet because the it's porn is so<br>accessible so so easy to go deep into<br>that addiction uh I mean what can you<br>speak about what impact it had on your<br>life maybe some of the low points but<br>also how to overcome it I'd say as far<br>as impact goes is that you will have<br>such a long and broken look at women by<br>the very like I can again I'm only<br>speaking from a a male's<br>perspective that porn in its just like<br>most basic thing is that you use another<br>person for your<br>own uh desire or your own want it's not<br>something that is deeply needed there's<br>no need there's no like need for porn<br>it's purely a want based activity or a<br>lust however you want whatever word you<br>can fill in there and it is purely an<br>objectifying<br>activity like someone else is on display<br>for your own enjoyment and so I think<br>you carry this around like I do think<br>that the women that I dated during high<br>school or the women After High School in<br>college like I looked at them as a means<br>to an end I think porn greatly kind of<br>shifted that kind of perspective in my<br>head that I did not give the value that<br>was desired to another person it really<br>devalues uh Humanity just in general is<br>my perspective of it it makes people<br>into Commodities and I don't think<br>people are commodities I think everyone<br>has value and so during that for me<br>that's kind of like the great effect of<br>porn is that you know it's just<br>consumerism gone wild or materialism<br>maybe you could ask argue gone wild and<br>it's extremely hard to quit just like<br>you said because I can look at porn and<br>then I can go out to lunch MH you know<br>no one's going to know no one's going to<br>have any ideas like it's a very private<br>it can be very short session it doesn't<br>have to be something that takes like you<br>know you can't take acid then go out to<br>lunch right you're going to be you're<br>going to your whole day is going to be a<br>very different day and so there's that<br>it's very quick easy accessible and then<br>obviously there's like all the like the<br>science and you know statistics like men<br>make worse decisions for some period of<br>time after looking or being exposed to<br>sexualized images there's the whole<br>dopamine effect that's just like you<br>constantly need more and more dopamine<br>that's why people typically don't just<br>watch five minutes a porn and call it a<br>day there's like you know the hund tab<br>joke that's always made on the Internet<br>it's because you it's just this this<br>constant dopamine cycle you're<br>constantly doing<br>and all that stuff is great to say and<br>I'm sure statistics and Science and all<br>that stuff is really great Arguments for<br>some amount of people but for me it just<br>comes down to like is it really a good<br>thing to do like is it really actually<br>something we want is to Value people in<br>such a profane or kind of just like<br>disregarding way like I just really<br>think it's just bad for the soul even if<br>all the stats said it was great for you<br>I still say it's actually bad yeah you<br>have to look at long-term big picture<br>psychological impact it has on your<br>relationships with human beings in<br>general that's my more generally than<br>just porn uh my problem with the the<br>quote unquote sort of<br>manosphere<br>is I<br>think sleeping with a bunch of women is<br>great wonderful but the problem is is<br>making that the primary objective of<br>your life similar with porn is you<br>devalue one of the most awesome things<br>which is intimacy that's true for deep<br>friendship that's true for relationships<br>I think porn does that like in its<br>purest darkest form which is like the<br>thing that matters is the sex not the<br>like the Deep connection with another<br>human being I think again going back to<br>high school and uh the the<br>manosphere the objective function if<br>it's to get laid which helps with status<br>and confidence and all all that is<br>wonderful I think<br>again can be an addiction but the thing<br>that's even more awesome for a lot of<br>people is a deep friendship or deep<br>intimacy with a with a romantic partner<br>like that's also fucking awesome and<br>both of those are great it's<br>subjectively better to have like I would<br>say that there's no universe that exists<br>or there should be no argument possible<br>that exists that a guy who has<br>meaningless sex has a better or a more<br>meaningful life than say me and my wife<br>who've been together for 15 years we<br>have a very like can depend on her in<br>all circumstances whereas if you live<br>that other life it sure it could be it<br>could feel great but there's no meaning<br>to it there's no Val there's no actual<br>real value to it that's absolutely<br>correct I do think that getting<br>laid can have a tremendous positive<br>impact on the confidence of a young man<br>I think just there's a certain number of<br>sexual partners from which you can<br>collect a lot of data and it can free<br>you<br>about like not to be so nervous about<br>the opposite sex not to be so nervous<br>about human interaction and that will<br>allow you to see the world more clearly<br>and to actually find that one partner<br>that with whom you can be deeply<br>intimate with sometimes like the<br>nervousness around like this<br>societally uh constructed like value in<br>getting laid can Cloud your judgment and<br>if you just release that by getting laid<br>a bunch of times then like you could see<br>that the world clearly that getting late<br>is not as nearly as important as you<br>said as finding the right human<br>including I should put in that pile not<br>just like a romantic partner but like<br>friendships like deep lasting<br>friendships I mean I think you're right<br>that our society puts a lot of emphasis<br>on getting laid and I'm sure that's true<br>among any group of males uh throughout<br>any point in history I'm sure that's a<br>very common joke that's never actually<br>like never stopped at any point so I'm<br>I'm sure that exists but and there's<br>there's probably some truth to the sense<br>that after you've you know who was it uh<br>Jim Carrey I hope that everyone can get<br>rich so they realize that money solves<br>none of your problems yeah like the<br>realization that this thing that Society<br>told you is hyper important is actually<br>not the important part like it is a very<br>important it's a great sign that your<br>relationship is healthy like if me and<br>my wife were to have no sex at all for<br>months on end like something's gone<br>wrong which means what you know we are<br>no longer like on the same plane some<br>you know but it's not also a good<br>identifier just because you're having a<br>lot of sex doesn't mean you're having a<br>good relationship and so it's kind of<br>like a unique kind of um I forget the<br>the right term here but it's a unique<br>way at looking at the problems and our<br>society puts so much emphasis and maybe<br>that's why porn was so hard to quit but<br>I my guess is it's just all the dopamine<br>effect that it is<br>uh but for me like the the most<br>important part and the thing that<br>actually has real reward is having that<br>having just my wife I do not look at I<br>try I desperately try not to look at any<br>other woman I'm hopefully not going to<br>get caught Mark zuckerberged at the<br>White House like that um you know like I<br>don't look at porn my wife has complete<br>confidence in me that there is not going<br>to be a situation in which she has to<br>question me in any kind of sense and<br>that builds a much more deeply I I would<br>argue it a very deep relationship<br>because the trust is that much bigger I<br>think the deepness of the relationship<br>is probably proportional to the trust<br>you have in each other MH it's very hard<br>to have a deep relationship with no<br>trust yeah uh a<br>probably a prerequisite maybe a<br>component of trust is vulnerability to<br>where you like take the leap of being<br>vulnerable with another human being and<br>that vulnerability when reciprocated<br>builds this this really strong trust and<br>it's a beautiful thing yeah I I I<br>personally just given my<br>position uh that's even more challenging<br>you know being vulnerable with the world<br>and there's a bunch of people out there<br>that that want to hurt you for it<br>and um but I think it's worthwhile<br>anyway to be vulnerable it's always<br>worth the risk is always worth it in in<br>some sense like obviously everyone has a<br>different kind of Life they have to<br>filter through their actions with right<br>because the person that has no say<br>social following or anything their risk<br>reward profile could just be local<br>impact which could be just as you know<br>damning or harming to them yeah and so<br>it's always worth the risk though in my<br>personal opinion cuz like finding my<br>wife has been<br>obviously the most impactful or changing<br>thing in my life so or second most I'd<br>argue that one night with God would<br>probably be the most impactful thing<br>that led to everything else but then the<br>wife would be the next most impactful I<br>mean I'm like cleaning up after myself<br>and stuff now changed man I'm a changed<br>man can we try to reverse engineer that<br>moment of you finding God what is it at<br>19 cuz it feels like that was a big leap<br>for you to escape to escape the pain to<br>escape the addiction or the beginning of<br>that Journey uh what do you<br>think what do you think happened there I<br>think it just felt like I just there was<br>no line that I wasn't willing to cross<br>like everything was fine and just like<br>it just all a sudden just in that moment<br>it's just like I had a I<br>guess some sort of deep fear and<br>understanding like I am going down a<br>path is this really the path you want to<br>go<br>down and I don't know what the result of<br>that path would be or anything like that<br>I don't tend to speculate on things I I<br>don't understand I just know that in<br>that moment I had the<br>option and I just chose I I didn't want<br>it anymore right it's kind of mixed in<br>this whole thing where it's just like I<br>had no value I wrapped up all my meaning<br>or value in having sex or getting laid I<br>had you know all that stuff all the<br>things we just talked about like that<br>was where all my worth was and that is<br>just such a like a terrible place to<br>have your worth and it's just like kind<br>of came to a point and I can't tell you<br>the day of the week I can't tell you<br>anything other than it was nighttime and<br>I was in South hedges in Montana State<br>University go<br>Bobcats um that's about yeah that's the<br>sign that we do at football games don't<br>worry about it but like that's all I can<br>really that's all I can really tell you<br>cuz the night that night was no more or<br>less special than some other night it's<br>just the specialness was I got at<br>least a chance to make a choice cuz you<br>find in that<br>advice that you can give to others who<br>are probably there's there's probably<br>just an endless amount of people that<br>are struggling with porn addiction now<br>young people what what advice could you<br>give to them how to overcome<br>it for me to overcome it I had to<br>realize that I was taking something away<br>from my future wife some people be like<br>oh well you just you know once you get a<br>girlfriend then you can stop it's just<br>like no because you never stopped the<br>problem you don't stop a problem by<br>replacing it<br>and so I didn't have a girlfriend didn't<br>have all that I just realized that I was<br>truly taking away from something from my<br>future wife and I didn't even know my<br>current wife at that time I didn't she<br>was not in the picture I'm not even sure<br>if she was at Montana State University<br>at that point and so it's just<br>that's uh once I made that realization I<br>think it went from my head to my heart<br>which they say is the greatest distance<br>in the universe I finally like got it<br>and that's really where things change so<br>if the the ability to say like what's<br>going to help you change and all that I<br>don't know if there's I don't think<br>there's silver bullets right if someone<br>could offer you a drug I forget who says<br>this phrase but there's this really<br>interesting phrase that goes something<br>like um he was a very depressed man and<br>he was struggling with suicide and he<br>kind of writes about this in this Memoir<br>and he goes to the these doctors and the<br>doctors effectively say well here's<br>antidepressants it's going to help you<br>and he says that well the problem was is<br>that scientists told me that I could<br>just touch my brain and make myself<br>happy and that's it like they could<br>reach in they could configure some stuff<br>and I'll be happy he's like for me it<br>was a lot like going out into a field<br>and being able to take a drug to see the<br>rain I could look out see the rain it<br>would fall down it'd be silvery it'd be<br>beautiful but all the crop would still<br>die cuz there's not actually any rain I<br>had to discover how to be happy myself<br>and so for me it's like the reason why I<br>looked at porn is cuz I was unhappy I<br>was trying to find meaning I was trying<br>to find Value in something right<br>something that was supposed to finally<br>give me this ultimate satisfaction and<br>it just does not no matter how hard and<br>no matter how much you think it will<br>there is no Escapade there is no<br>pornography that will ever give you that<br>satisfaction you're looking for that's<br>the reason why it's<br>addicting that's kind of like my call to<br>why you shouldn't do it but how to get<br>out of it I only got out of it by<br>realizing I think that's really<br>brilliantly<br>described you knew that this thing<br>you're doing is preventing you from<br>finding your future<br>wife and future wife could mean more<br>even broadly this path to a to a to a<br>flourishing to a to a beautiful life I<br>think there's a lot of choices we make<br>that just preventing us from opening the<br>door to whatever future like I think<br>what's really nice to do is to imagine<br>just like we said with high school that<br>there are a bunch of<br>trajectories in life where you'll be<br>truly happy and you need to construct<br>your life in a way where you have the<br>chance to travel down those paths and<br>there's a bunch of addictions there's a<br>bunch of choices that prevent us from<br>traveling down those paths so just<br>believe that you're going to have an<br>awesome life and remove from your life<br>the things that are uh preventing you<br>from walking down that that path which<br>is essential what you did it's a leap of<br>faith that like if you let go of porn<br>that a better life is waiting for you on<br>the other end yeah I definitely can't<br>say how long it will take a better life<br>but for me there's no way in the<br>universe I could have had the<br>relationship that I have without first<br>making those steps cuz I couldn't<br>value uh like I couldn't value my wife<br>in the way that was proper for who she<br>was I would have valued her through the<br>index or the lens that I currently was<br>looking through so got to ask so I've<br>never done<br>math I've never done meth a great segue<br>by the<br>way oh man I don't know what the fuck<br>I'm doing honestly with this<br>interviewing thing but yeah meth and<br>LSD you know I did IA I did shroom a<br>bunch of times oh on this topic I should<br>say that like uh there's a lot of uh on<br>Twitter and on Tech in Tech Community in<br>general sort of people speaking<br>negatively about iasa uh and some<br>positively don't I think it's it's such<br>a roll of the dice like I I had<br>incredible experiences but I don't think<br>I want to recommend it to anyone it's a<br>risk it's a serious risk it really is a<br>role of the dice that you could meet<br>your demons and they could destroy you<br>or you can meet your demons and let go<br>of them or you could have experiences<br>like I did which is like never<br>apparently I don't have demons I'm<br>pretty sure they're somewhere in the<br>basement but like I've never met them on<br>drugs yeah I'm always really happy I'm a<br>happy drunk I'm a super happy an iasa<br>just full of love I don't understand I<br>don't understand where the demons are<br>but that's my biochemistry whatever that<br>is and for some others you know one trip<br>could be amazing and the next one could<br>just completely destroy you and wreck<br>your life so um I don't know what the<br>recommendation from that is maybe avoid<br>it but then all of us die and life you<br>know I I tend to lean into<br>Adventure but but drugs is a<br>it's if you fuck with the biochemistry<br>of your brain you can really destroy<br>yourself in a way that's going to<br>torment you so I would<br>generally recommend that people avoid<br>drugs<br>altogether probably unless you're a<br>crazy<br>motherfucker Hunter is<br>Thompson what what an intro to this<br>topic uh I'm sorry what's meth like it's<br>it's it's that's a great intro I I I<br>like you are very correct in the sense<br>that there is at least when it comes to<br>Hallin Jens there is a wild variance to<br>what you're going to experience and<br>there is no guarantee there's no you<br>know just because you buy the product<br>doesn't mean you're going to have a good<br>time right there's a lot of uh<br>personally I find that stuff uh to be<br>very I believe in the spiritual realm<br>right like I believe demons and angels<br>exist I believe God exists and that kind<br>of whole realm is like I don't know what<br>it opens you up to but it's much much<br>different experience now some people be<br>like oh it's just a bunch of chemicals<br>in your brain they all get mixed up LSD<br>just takes all of your Pathways and they<br>all go you know they all get kind of<br>scrambled up in your brain it's just<br>like yeah the experiences are profound I<br>had some really<br>bizarre very cool very awful I've had<br>all the experiences in them all I can<br>just tell you that I like I personally<br>always say the same thing it's like<br>choices that I made I can never take<br>back I would never take that away from<br>myself because I don't know if I would<br>be who I am today without all those<br>experiences going up to it but if you<br>not had that experience I'm on your team<br>or at least partially on your team maybe<br>more severely I don't think you need<br>those experiences I don't think they're<br>going to you don't have to put yourself<br>through that to make good decisions or<br>to realize that uh people have value<br>right you can you you don't have to do<br>that so as far as like what is meth like<br>meth is like if you've ever done cocaine<br>cocaine starts off with like a 15-minute<br>dance party just it's just so intense<br>it's like so great and then it just<br>followed up by like like a five hour<br>like just feeling Wiggly right I don't<br>know how else to describe it a meth is<br>like that except for I didn't get as<br>much dance party or any dance party but<br>instead I just got that part for like 12<br>hours yeah so did a lot of<br>skateboarding did a lot of you know<br>running around would you say it's a<br>pleasant feeling or is it more like an<br>escape from the loneliness of Life what<br>is it Pleasant or<br>negative in the actual moment not the<br>consequences but in the moment so there<br>I mean this is this is just like a very<br>interesting kind of area which is that<br>not if universally you can't say that um<br>often you'll find that there's kind of<br>these two um groups of drug addicts<br>there's those that like the the opioids<br>and those that like the uppers MH they<br>typically don't like there's there's<br>very few people in the drug world that<br>do both they really just kind of like<br>find their side and they go for it so<br>Will is meth a a thing that everybody's<br>going to enjoy well categorically as you<br>can see in just like how people<br>experience drug addiction no uh but for<br>me it's just like I had a really it kind<br>of like feeds into like the ADHD nature<br>of like this like because you know<br>you're kind of high energy you're kind<br>of like always in the moment so it's<br>just like you're in the moment but it's<br>just like go I'm in the moment you know<br>like it's like everything's just so<br>intense you know like you just want to<br>like really be in the moment uh and so<br>it's just experiencing that<br>constantly and so was that great well<br>some people you know my wife always me<br>this like being like nervous or I forget<br>the anxiety of a situation can also be<br>the same thing as like thrill I forget<br>the exact way she she's probably super<br>disappointed that I messed this up but<br>it's like you could perceive those two<br>experiences in very different lights<br>some people you know get in front of a<br>crowd it's like thrilling some people<br>get in front of it and it's just like<br>the worst experience of their lifetime<br>they' actually literally rather die<br>which is a crazy thing to think about<br>then stand up and speak and so for me<br>meth was that kind of thrilling side<br>but at the same time is it didn't it<br>still didn't like quite give me that<br>thing I wanted whatever I was looking<br>for I'd use it to help try to get that<br>thing I want but it was never giving me<br>that thing I wanted yeah uh for me I've<br>had all really wonderful experiences do<br>not recommend them but like that's like<br>a YouTube policy by the way that you<br>have to say by the way don't whatever<br>you do do not do illegal activity but I<br>had great experience but don't whatever<br>you do don't do it Mr the primagen I<br>have no master I don't have YouTube or<br>whatever I'll say whatever the fuck I<br>want I'm just uh but seriously yoube no<br>I don't no I don't give a shit about<br>YouTube or anybody honestly I'm just<br>kind of careful about the words I say<br>because just because I had positive<br>experiences I don't want young people<br>listening to this think they should try<br>the experience I think the much more<br>powerful message is that life is awesome<br>even without that that's something I<br>definitely experiment<br>with On the Alcohol side so for me you<br>know I'm an introvert I'm afraid of the<br>world social interaction fills me with<br>with anxiety alcohol is definitely a<br>thing that helps with that sometimes but<br>I think honestly like it's not even the<br>alcohol it's like having to do something<br>while a person is talking to me I could<br>just like drink a liquid they yeah mhm<br>there's like a social thing with a beer<br>it's like yeah uh-huh yeah having fun<br>and I think it's it work for me it works<br>the same as if the if the liquid<br>actually looks like<br>alcohol it does the same purpose often<br>because like alcohol from like if you<br>have of a whiskey or a beer looking<br>thing it kind of sends a signal that we<br>should be having fun so we're<br>socializing right we're fucking getting<br>crazy and then that mean you don't<br>actually need the alcohol you can get<br>fucking crazy without the alcohol<br>substance but there is some kind of uh<br>like uh social signaling that happens<br>when you have a drink in your hand so<br>I've been to get togethers where I'm not<br>drinking but just doing like a fake<br>drink situation and I can also have fun<br>so I've been uh but that said you know<br>traveling across the world there are<br>times when you to be able to Dawn a<br>bottle of w that's very essential for<br>the for my line of work but but that's<br>that's sort of that's almost like a<br>cultural experience versus like a<br>necessary component of a successful uh<br>social interaction one that brings you<br>happiness so uh not drinking I think you<br>could have fun and not drink too so all<br>of this man I'm so careful saying drugs<br>have had a uh a good effect on my life<br>because I think for most people no for<br>majority of people they will in the long<br>ter long term have a negative effect so<br>I think if you were to to choose one or<br>the other just no<br>drugs uh and no drinking means one day<br>you can be the president of the United<br>States<br>kids and I should say oh man is Fun Line<br>D die Coke is great that's his funniest<br>line which is you would hate me if I<br>drank which I just like to me that<br>tickles me like to no end just like oh<br>my gosh that is such a funny line<br>selfawareness and humor is wonderful<br>there but I I am on your team like all<br>of the reasons why I used drugs that was<br>a form it's some level of escapism I'm<br>sure that's like would be the archetype<br>or the Box I'd put that into or the<br>pursuit of trying to feel something that<br>cannot come from them it's like trying<br>to find meaning in your job you can find<br>satisfaction in what you do like that is<br>a very good thing you can find<br>satisfaction and be happy with what<br>you've created you can be you know<br>thrilled by the experience but you<br>cannot find I doubt you can find purpose<br>you know maybe some people in specific<br>jobs you know like this obviously a very<br>broad Strokes I'm painting with like if<br>you're EMT and you save someone's life<br>maybe you know there can be purpose in<br>that whole experience right so I'm not<br>saying all things but like as<br>programming goes most programmers you<br>cannot just simply find your purpose and<br>same with drugs like you cannot find<br>that thing you're looking for but they<br>are a very great distraction MH and then<br>at some point that distraction comes<br>with a heavy cost I think Dr fa would<br>probably know the best about the heavy<br>cost but it's just you're making one<br>trade for another and at some point the<br>the bill comes due and that bill can be<br>very very large<br>the other moment you mentioned that I<br>think is really inspiring is that you<br>know you failed pre-calculus you really<br>struggle in school like you realize that<br>school is really hard and then<br>eventually you're able to sort of<br>persevere and uh I don't know break<br>through that wall of struggle can you by<br>way of advice figure out what happened<br>and what kind of advice you can give to<br>people who are struggling yeah I I'll<br>paint it in kind of more clear picture a<br>very fast speedrun of it is that I took<br>pre-calculus failed I took pre-calculus<br>again failed took pre-calculus again and<br>got a C so I took it three<br>times uh then I took Cal over the summer<br>so Cal one in that<br>one at the end the final the final was a<br>2-hour final I finished it in 30 minutes<br>and I as the highest score in all of the<br>school and I proceeded to be the highest<br>score in all calculus and Diffy Q I was<br>the only person on of 400 people to<br>finish the Diffy Q final uh and I got<br>the highest<br>and so I was like I got really good so I<br>somehow went from really bad to really<br>good and so my only the thing that I did<br>is that I had to win it was not a option<br>it was not like oh you know this would<br>be really great it's like I will not<br>graduate I will not finish my stuff if I<br>cannot do this and so every single day I<br>got up I went to my what however many<br>hour class it was right after that I<br>went straight to the math learning<br>center did those problems when I got<br>home I just got the book and it had the<br>odd answers in the the back and I would<br>try to walk through the problems over<br>and over and over and over again until I<br>absolutely got it and it just became<br>this thing where I just I just simple<br>wrote memory took over and the ability<br>to just effectively have the times table<br>but for calculus all stuck in my head<br>inverse trig substitution trig<br>substitution doing Taylor McLaren series<br>like all those things kind of just over<br>and over and over and over again<br>eventually they became easy they became<br>very easy it's just that I had to cram<br>it in there and some people you know you<br>hear these stories where they they<br>barely show up to class and they get A's<br>I've never been that person I've always<br>been the person that has to sit down<br>read through everything and I'm bad at<br>abstract Concepts I like the concrete<br>into the abstract not the abstract into<br>the concrete very bad at talking about<br>things theoretically then trying to<br>apply them but if I can do it once<br>literally then it's really easy for me<br>to go into the abstract and so it's just<br>like for me it's just I had there's no<br>substitute for the hours MH so if you if<br>I were to give advice it's just that you<br>have to have time in the saddle hour<br>after hour will make you slowly better<br>and at first it's crushing it's<br>defeating and it's not fun because you<br>are bad at it but then at some point it<br>you're just not bad at it if you can<br>just do it long enough and you'll start<br>getting okay at it and then at some<br>point you might even get good at it and<br>when you get good at something it feels<br>amazing there's like an exploratory<br>thing like if you're if you've ever<br>played a musical instrument you stop<br>having to think about all the little<br>teeny things you have to do to be able<br>to play something correctly and you<br>start thinking about how you can explore<br>that space it's like it you a completely<br>different problem same with programming<br>programming has an identical kind of<br>feel to it it's just like you'll cross<br>that barrier and it becomes magical as<br>opposed to a chore yeah once you cross<br>that barrier somehow other things become<br>easier but then if you want to have a<br>truly successful life then you find the<br>next barrier yeah the next barrier yeah<br>I've always been the same it's<br>everything's come really hard yeah I do<br>not I had I've had no free lunches<br>everything's just been a lot of a lot of<br>pain and<br>struggle uh I think somebody said that<br>the on this topic that you think work<br>smarter not harder is a phrase that you<br>dislike somebody on Reddit told me this<br>yeah I don't just dislike it I hate that<br>phrase okay tell me tell me tell me<br>about your hatred how how do you feel<br>the reason why I dislike that is that<br>there's a kind of a a hidden suggestion<br>there which is that you already know<br>what smarter is so just do that that<br>actually things should be easy you<br>should just not have to like try that<br>hard you should just do the quick easy<br>obvious path and boom it's done it's<br>like I've never experienced that in<br>anything I've done everything is<br>actually really hard and most of the<br>time I don't even know what I'm doing so<br>therefore I don't even know what Smart<br>looks like and so for me the only way I<br>can learn how to work smart is by<br>working very very hard and knowing that<br>there's no shortcuts and then when I<br>finally figure out what smart is when I<br>work smart and work hard it is that much<br>better I think there's a deep profound<br>truth to that there's a lot of these<br>phrases that just drive me nuts in our<br>society but but that one is sorry that<br>one is really accepted if we can just<br>Linger on it because it really bothers<br>me as well so one which is a really nice<br>thing you said the presumption there is<br>things should be easy and you're a<br>failure here if you don't see the easy<br>path that's kind of the work smart dog<br>why why you putting in all those hours<br>and so it makes a lot of people that<br>struggle feel like they're a failure<br>yeah cuz like I don't see it and then<br>the choice they have well I'll just go<br>with the uh with the L I'll just be lazy<br>and then maybe the profound truth will<br>come to me somehow and and yeah I think<br>I don't think I've ever and I don't<br>think I've met great<br>Engineers uh that find the smart way<br>without the extremely hard work the<br>annoying thing about those great<br>Engineers is then looking back they<br>forget the hard work because they<br>remember all the joy they they now are<br>experiencing from all the efficient<br>smart work they've figured out how to do<br>they forget so when they give advice<br>they give the stupid fucking advice of<br>well just do it like you know the easy<br>way yeah and here's the easy way but no<br>no no you have to put in the hours like<br>you know musical instrument is a<br>beautiful example of guitar and piano<br>I've put in I don't know how many<br>thousands of hours and now when I'm<br>explaining stuff Jiu-Jitsu as well I'm I<br>sound<br>like I sound like one of those people<br>like just you know just relax you know<br>Jitsu by the way just relax is a really<br>wonderful thing for physical Endeavors<br>like piano and so on but to learn how to<br>relax your hand how to relax your mind<br>your body and uh use the the whatever<br>the biomechanics of your body to apply<br>the correct kind of Leverage and the<br>timing and all that that takes thousands<br>of hours of learning just to learn how<br>to relax takes a lot of really hard work<br>and Jiu-Jitsu that takes many months of<br>getting your ass beat over and over<br>until you like uh you know ride the bus<br>home crying your your ego completely<br>shattered into destroyed and then like a<br>little<br>element is figured out late that night<br>or next morning and from the depression<br>there's this uh little plant that grows<br>this flower of uh insight and you use<br>that insight to then get your ass kicked<br>again all next fucking month and year<br>and then you grow and grow and grow and<br>from that you discover how beautifully<br>simple Jiu-Jitsu is or Judo is just<br>speaking for myself or piano or guitar<br>and then yes the the profound truth or<br>the Mastery of a skill feels simple when<br>you finally arrive to it but the path is<br>for most people is uh is going to be a<br>hard one can can I I think I should make<br>an addendum to the phrase I think the<br>phrase should be work hard get smart<br>nice that's a t-shirt that's what it<br>should be yeah agreed okay that was a<br>tangent of a tangent can I say one more<br>phrase cultural phrase that I absolutely<br>hate yes uh the journey is better than<br>the<br>destination right everyone's heard this<br>right M just take one second to apply<br>what that means that means forever<br>starting from now you are only going<br>towards a place that's<br>worse right like that that literally is<br>what it means right enjoy the journey<br>celebrate the destination that's like<br>that should be what it would be but no<br>people say these phrases are everywhere<br>there's these very shallow phrases that<br>have no logical bounds to them you're<br>just like what does that why would the<br>journey ever be better than the<br>destination cuz you're always this is I<br>think this might even be a CS Lewis uh<br>quote is that CS Lewis was like no this<br>is terrible the journey is not in fact<br>better than the destination I love the<br>demotivational posters uh progress<br>moving forward is better than moving<br>backwards even if you're still going<br>nowhere there's a there's a I feel that<br>one so so much being in California for a<br>few years that that is that is painful<br>positivity if it doesn't break you today<br>don't worry it will try again<br>tomorrow it's just a lot of really great<br>posters I didn't even know this was a<br>thing this is a thing oh my gosh I want<br>that yeah hey hi this is the primagen<br>you know one thing that I forgot to<br>mention in this podcast which feels just<br>so foolish to me for forgetting is just<br>what a big role my mom played in my life<br>she had to work 18 hours a day after my<br>dad died she really made her house be<br>able to survive I always looked up to<br>her and I always thought her amazing and<br>she really was the reason why when I<br>decided to get my butt kicked back in<br>gear she's just someone who I looked to<br>as like an internal kind of inspiration<br>for me to continue to keep on going<br>because I really wanted to make her<br>proud and all those years of just high<br>energy effort I really wanted to make<br>sure that she knew that I was just so<br>dang appreciative for it so hey I just<br>wanted to say thank you love you Mom for<br>people who don't know you worked on<br>Netflix<br>by the way by the way now how did you go<br>from there from the hardship that we<br>mentioned from the struggle from the<br>addictions and so on to a place where<br>you were working at this this incredible<br>engineering<br>company and uh building cool shit there<br>so tell the Netflix story yeah so you<br>know I kind of alluded to it earlier<br>that I wanted to do my own startup so<br>for I forget how long it was one or two<br>2 years or 2 and a half years built a<br>startup PHP jQuery everyone's favorite<br>languages all put together uh you can<br>solve math stuff with jQuery so I just<br>was like totally into just non-stop<br>doing that this is like the height of<br>stack Overflow I was asking really dumb<br>questions on stack Overflow like what is<br>more pythonic and you get a bunch of up<br>votes and try to steal a bunch of karma<br>away and like all the fun stuff to do<br>good times and I was just like so into<br>it breathing and I Just Breathe It In<br>Breathe It Out and that's what I do all<br>day every day and so it's just like<br>non-stop building of a startup<br>ultimately that startup failed and so I<br>had to get you know go get a real job<br>can you say what the startup was it is<br>so wild thinking about it in the past I<br>before I tell you what it is I want to<br>tell one quick thing about my dad my dad<br>in the early 90s like<br>9192 was building kind of like a phone<br>card company where You' be able to pre<br>purchase longdistance minutes mhm now if<br>you remember the '90s and about like<br>what ' 97 98 9 101 220 all those<br>different things D down the center right<br>like all those companies where you can<br>pre purchase long distance minutes kind<br>of came out and were very very big and<br>so my dad was like six years early to<br>that notion and ultimately his startup<br>failed but he was just really early to<br>something that would catch on really<br>really big specifically in the<br>telecommunication space me as I grew up<br>and did my own startup I did a startup<br>where was text message marketing this<br>was in 2010 where you could receive say<br>texts about various deals all that kind<br>of stuff and of course 10 years later<br>now you don't stop receiving texts and<br>text message marketing is all the rage<br>and so I also much like my father had a<br>startup in the telemarketing space in<br>which was just like a half decade too<br>early so is it fair to say you're almost<br>always ahead of your time you're<br>Visionary of sorts No in fact I am not<br>ahead of my time I just got un some<br>would say I got unlucky on that uh<br>situation but I did see it was it seemed<br>so obvious to me at that time when I was<br>doing it 80% of phones were dumb phones<br>most people had flip phones when I went<br>and sold uh via text is what the name<br>was of that specific product it was and<br>we had the short code via text too so<br>it's was pretty you know pretty clever<br>right six<br>digits when I went out and sold it I<br>only had a flip phone during that time I<br>didn't even have a smartphone MH right<br>cuz that they were kind of untenable for<br>a lot of people so it's you know it's<br>kind of just wild times to think about<br>but then after that obviously had to get<br>a real job we were living in an<br>apartment in uh right next to campus<br>Boseman Montana and the guy below us<br>must have been on some some amount of<br>drugs he threaten to kill us several<br>times with just like scream and just<br>lose his marbles all the time very<br>unhinged man Angry downstairs man is<br>what we called him one time my wife<br>dropped a battery double A okay so not<br>like a big we're not talking about like<br>a b battery or D batter we're just<br>talking about a dou a dropped it P land<br>on the ground I'm going to kill you like<br>crazy right absolutely unhinged Behavior<br>down there so I had to go get a real job<br>we need to move out of there we're going<br>to start our life and so I worked at a<br>the small place schedul listi which I<br>kind of talked about the boredom there<br>got to go to a place called Web filings<br>where I'm working just tons and tons of<br>hours during all that time I'm still<br>trying to figure out startups did one<br>where you could uh pre-wwi your friend's<br>birthday messages and then it would<br>automatically send it via Facebook<br>beforehand we call it greet feed it was<br>pretty it was pretty clever<br>nonetheless that story I say all that<br>story because everything that I was<br>doing was exploring building finishing<br>things working learning about corporate<br>life learning how to communicate in<br>corporate life uh being able to be<br>successful at a job learning about a<br>bunch of kind of technologies that were<br>about and one of the big Technologies<br>during that day specifically 2013 was<br>rxjs if you remember that one rxjs<br>that's a link from C uh kind of ported<br>over to JavaScript and for people who<br>don't know I guess C what is it closest<br>neighbor Java it's Java like they<br>obviously just took Java and ripped it<br>off at one point but now it's such a<br>dynamic interesting language that it<br>seems like it could be a really cool<br>like bounds of practical versus not<br>practical it's just I I'm not really<br>into wearing pleated pants in<br>programming at a Microsoft house so<br>bleed pants a requirement I think so<br>we'll get back to this can we just get<br>back come on all right trigger web<br>filings anyway web filings was that's<br>where I had to do like all the matri<br>matric stuff and build systems and just<br>kind of all that and it really pushed me<br>because they also wanted me to do like<br>60 hours a week um it was not very<br>healthy work life balance is very hard<br>work and kind of like that really hard<br>work going to Cutting Edge stuff really<br>understanding the world really made it<br>so that I was able to just be able to<br>talk about stuff very commandingly<br>because you know we had to build really<br>complex State machines for the UI for<br>what we're building and so when I went<br>and started getting a LinkedIn and all<br>that inevitably just due to the fact<br>that I've touched all these Technologies<br>and I had some sort of paper trail<br>saying I've touched these Technologies<br>Microsoft or Microsoft dang it Lex pleed<br>pants pleed pants reached out no Netflix<br>reached out and said hey like I see<br>you've done<br>rxjs you know we do a lot of it you want<br>to come and interview with us and you<br>know I was always told that you should<br>never reject a kind of like a<br>handwritten personal invitation to<br>interview this was way before Bots and<br>even the Bots were pretty obvious to<br>tell that Bots this was a manager at uh<br>Netflix Jeff Wagner first manager ever<br>and he just wrote a really nice note and<br>just like hey I see you're doing a lot<br>of these things we really need help with<br>JavaScript um I would love for you to<br>come interview we even using a lot of<br>rxjs if you're interested in that and so<br>I was like all right you know I can come<br>and I'll interview and loone behold<br>interview went on and I called my wife I<br>think halfway through the interview and<br>I was just like defeated absolutely<br>crushed because I said<br>and she might remember this but I said<br>we now have to make a decision are we<br>actually going to move to California or<br>not because I already knew I had the job<br>at that point like I just was just<br>knocking them out of the park I was<br>doing a great job on that and so I just<br>knew for fact I'm getting a job in<br>Netflix you know all the there's this<br>thing that people always get so freaked<br>out about when it comes to interviews<br>and all that and I luckily somehow<br>avoided this I don't get test anxiety I<br>don't get any of that because when I go<br>into these situations my only goal is to<br>show the things I already know and so<br>it's like I walked into this situation<br>I've been preparing for this 80 hours a<br>week for the last like 5 years so I just<br>walk in and just I'm just shown the<br>things I know and it was perfectly<br>fitting for Netflix at that time period<br>in the 2013 early JavaScript Days on<br>television and so it's just awesome just<br>worked out perfectly got hired there so<br>where in California with Netflix this is<br>San Francisco Los Gatos so uh if you're<br>familiar so classic uh symbol do which<br>is this is San Francisco Oakland San<br>Jose Los scos is just like a little bit<br>y kind of a little bit below a little<br>bit south of San Jose same Mega<br>contiguous City Yellowstone's in Montana<br>Yellowstone a show yeah yeah with a yeah<br>so is it is basically like that Kevin<br>CER riding on a horse is it were you<br>riding on a horse to to campus or no no<br>but I mean I love those stereotypes<br>actually I mean to be completely fair<br>when I was 15 years old I was driving<br>around on what is now very busy<br>populated Street shooting Gophers out<br>the window of our car with a 22 so it's<br>like Montana was a different place at<br>one point than it is today and there's<br>plenty of parts of Montana that's still<br>very rural still kind of more of that<br>old world so yeah a little bit you know<br>you can kind of get whatever you want<br>from Montana as far as like culturally<br>goes I'm not really sure the best way to<br>put the difference between California<br>and Montana it's just different<br>expectations like one thing I can really<br>appreciate about California or at least<br>when I say California I mean the Silicon<br>Valley cuz obviously LA and Cali and the<br>Silicon Valley very different attitudes<br>very different mindsets you can't really<br>compare one to the other one thing I can<br>say that's really positive about the<br>valley is that<br>everybody is operating on this idea of<br>like trying to build or create something<br>and there's an energy to it that's like<br>very exciting like you meet somebody and<br>they have a startup and they're working<br>on the startup and it's very exciting<br>and you know there's a lot of negative<br>aspects to that and we can all agree<br>that our entire life being<br>commercialized has probably not been<br>that great but the kind of the<br>experience of being there and everyone's<br>excited to build something it's a really<br>cool experience yeah it's great it's<br>really great the excitement the energy<br>yeah Montana doesn't have that I I have<br>an admiration a romantic admiration for<br>like uh for the shows like Yellowstone<br>being out in nature it's beautiful I<br>like uh writing somebody also said<br>Reddit is full of wisdom about you uh<br>some of it could be fake news but<br>something about horses and this kind of<br>thing like you write you like horses you<br>like riding we have horses on our up our<br>neighbor had much more hilly land and<br>one of their horses broke its leg so<br>they had to put it down yeah and so we<br>just said hey we're on much flatter land<br>like you can just have your horses in<br>our property and so we just have horses<br>that run around on our what about<br>milking cows somebody asked about cattle<br>and and cow and so I've only had open<br>open Cows so if you don't cow means girl<br>open means that hey they've tried to get<br>the cow pregnant the cow did not get<br>pregnant first try and so they're<br>calling that Gene they're getting rid of<br>that Gene the cow's going to now or the<br>open cow is going to now go out to<br>pasture pasture for the year then it<br>turned into delicious T-bone steaks and<br>of various things and so we would house<br>open Cows on our property so no there's<br>no milking of open Cows okay they'd be<br>very upset if you tried to milk an open<br>cow because they're not they're not<br>milking cows right you have to get like<br>that cow pregnant and then once you get<br>a pregnant you have to kind of put it<br>into this permanent state of milking and<br>all that and it's a little bit more<br>complicated than say what we did which<br>was just cows on eating grass and I<br>didn't have to touch them okay well<br>that's wonderful Reddit is not a great<br>place for wisdom about me they're going<br>to give you the craziest answers uh we<br>will return to Reddit time and time<br>again my<br>friend uh so yeah you took the leap into<br>Netflix so what was that like it was you<br>know this is one of those things where<br>when you talk about it people love to<br>trivialize this cuz it's like oh you're<br>taking a leap of faith by going into a<br>Fang company in like 2013 sounds super<br>risky uh my wife was 36 weeks pregnant<br>we had to travel to a place where we<br>knew not a soul we were about to have<br>our first kid we didn't even have a<br>doctor if you don't know having a baby<br>does like kind of you kind of want a<br>relationship with a doctor there's like<br>a whole thing that goes on there so it<br>was kind of it was a really hard and<br>great experience so I went to a job in<br>which their culture deck so during this<br>time this is where Netflix still had<br>like<br>kind of that old Generation X feel to it<br>their culture deck was Hof Fast Fire<br>fast you know it it was very inyour face<br>about like hey this is how we operate<br>you don't meet the standards we kick you<br>out so it's like I'm going I'm leaving a<br>place where it's more secure to go to a<br>place I don't know anybody to a job<br>that's bold in its claims about firing<br>everybody with a wife that's just about<br>to have a baby and so it's like and I'm<br>from Montana and you're you're Bor every<br>Montana's born with a natural dislike of<br>California so there's like all these<br>things kind of flowing into it where<br>it's just going to be like wow this is<br>going to be this is a very intense<br>experience and it was hard for sure like<br>it wasn't just some easy simple<br>experience that we were just like oh I<br>work now at Fang you know we had to kind<br>of work through that having a kid was<br>very difficult our first kid was very<br>difficult you know not having any family<br>around to ever help you like you know<br>took a a much larger toll on my wife<br>than me for sure what was the uh<br>technical learning curve for you you<br>showed up in your plaid pants like<br>dressed up yeah what was it what did you<br>have to learn about the stack cuz<br>Netflix I imagine is a is this<br>incredible infrastructure has to deliver<br>just a huge amount of data I'm just<br>blown<br>away by Netflix but also like YouTube<br>these companies that have<br>to deliver like serve a huge amount of<br>like bits Netflix has the easiest out of<br>all the companies Netflix by even though<br>we have you could say maybe we have<br>maybe we beat YouTube in View hours I'm<br>not sure if we do but let's just pretend<br>Netflix has 5x more View hours than than<br>uh YouTube whatever it is Netflix has a<br>fundamentally easier problem than all<br>other companies and let's get back to<br>that I first tell you about the stack<br>but I'll tell you why it has a<br>fundamentally easier problem so when I<br>first got there they gave me my<br>Playstation 3 my boss said go learn some<br>code come back to me in a couple days<br>and tell me what you've learned and then<br>I'm going to start giving you bugs to<br>fix wait wait PlayStation 3 what are you<br>talking about well I was on the TV team<br>I had to go plug in a PlayStation and<br>start launching programs onto the<br>PlayStation 3 and figure out how to work<br>Netflix on a television device oh so<br>like you have different kinds of devic<br>why PlayStation 3 is other different<br>it's 2013 devic that plug into the T<br>okay cool yeah not many not as many TVs<br>had Netflix let alone what they called<br>their Darwin app which is their new<br>application so if you bought a Vio<br>earlier that year you'd get their older<br>one there it's called plus UI you get<br>their older version and so not many had<br>the newer version we no longer supported<br>Plus or we never actively developed on<br>plus we only did stuff on Darwin and so<br>I had to learn that whole stack I the<br>back end or the middle end uh the middle<br>layer between the actual back end and<br>the front end was written in groovy and<br>as I went around groovy is uh if you're<br>not familiar with Jenkins then you've<br>probably never interacted with groovy<br>but groovy's is a jvm language it's a<br>very interesting language<br>but here's how it got started at Netflix<br>oh it's Apache Apache groovy is a<br>powerful objectoriented programming<br>language that runs on the Java virtual<br>machine released in 2007 it has evolved<br>to become a versatile language that<br>combines both static and dynamic typing<br>capabilities all right so the AI is kind<br>of lying to you uh groovy is not a<br>powerful great language nothing that<br>statement makes it seem way cooler than<br>it actually is you will meet one out of<br>a 100 people that have touched groovy<br>that said oh yeah groovy's great yeah<br>the other 99 will be like Heavens forbid<br>you ever have to touch that language<br>yeah so uh when I got there nobody not a<br>single soul at Netflix there's 40 some<br>Engineers had any idea how groovy pretty<br>much worked somehow people just hacked<br>together these scripts and put them all<br>on there and it worked and it was all<br>this was before there was a groovy RX<br>Port we wrote our own version called WX<br>it was a nightmare observables all these<br>things I remember one time they told me<br>that oh yeah you know with RX it's<br>really easy you just say what you need<br>to do it Maps out and boom boom boom<br>boom everything will run multi-thread<br>and all that I was like oh wow really so<br>all I did was go like uh observable do<br>sleep one because I just wanted to see<br>it sleep and then do the next thing and<br>it turns out when a thread sleeps itself<br>no thread can wake it up and I just<br>turned off all of staging cuz I ran it<br>like 10 times like oh it's not<br>responding oh it's not responding oh now<br>it's not even coming back broke all of<br>staging for everybody so no developer<br>could work for the rest of the afternoon<br>cuz I locked up all the instances<br>because it turns out no it was in fact<br>not multi-threaded every assumption<br>we've been told is a lie no one had any<br>idea what they were doing it was a wild<br>time and so I just simply naturally<br>gravitated towards that CU I'm good at<br>print de debugging I'm good at doing<br>those things so I was like here I'll<br>just figure this out here I will do this<br>so I had the rewrite how we do the data<br>structure on the front end for the TV uh<br>from what is called a Lomo list of list<br>of movies into L Romo which is a list of<br>list of uh recommendation objects for<br>movie why would we need to do that think<br>about this you have two lists one has<br>Live Free Die Hard Bruce Willis because<br>you love Bruce Willis the other one has<br>Live Free Die Hard because you want<br>tough men doing tough jobs well during<br>those days we'd only have one way we<br>could show evidence why you wanted it so<br>we couldn't say oh because you liked<br>this other movie you'd go to that one<br>and say the same thing so we had to kind<br>of add one level of indirection where we<br>could decorate the recom or the video<br>with the recommendation information okay<br>so you can abstract away into the the<br>space of recommendation versus the space<br>of movies Direct you can't hang it off<br>the video because obviously then it<br>would be the same for everything that<br>shows that same video so that's amazing<br>I had to do all this and I wrote it in<br>groovy and I was the I just did it and<br>people were like how did you how did you<br>write this in groovy and it's was just<br>like well I read the language reference<br>for a day and then programmed it well<br>what do you mean it was a very radical<br>language shall we say and so I just<br>simply became the person that knew these<br>things so they just give me more and<br>more jobs of that and so that's kind of<br>how I excelled being the person that was<br>willing to do the thing that no one else<br>was yeah can you actually speak to the<br>print of debugging like you you walk<br>into a system and there's a lot of<br>systems in the world like this like uh<br>Twitter was like this when then you when<br>uh when Elon acquired Twitter and rolls<br>in and there's this old janky code base<br>that's just like a giant mess and you<br>have to basically do print of debugging<br>like what's the process of going into a<br>code base and figuring out like what the<br>fuck well how does this work what are<br>the flaws what are the assumptions you<br>have to like reverse engineer what all<br>these other Engineers did in the past<br>and the mess across you know the space<br>of months and years and you have to<br>figure out how all that works in order<br>to make<br>improvements the thing the reason why<br>I've always just been good at print de<br>debugging because one of my first kind<br>of side quest jobs that I got was<br>writing robots for the government when I<br>was still at school and so I'd kind of<br>do this contractually for so many hours<br>um so many hours a week and my boss<br>Hunter Lloyd great Professor by the way<br>he just said hey here's your computer<br>here's the robot here's how you plug it<br>in here's how you run the code can you<br>write the flash driver the ethernet<br>driver can you write the planetary<br>pancake motor here's some manuals um I'm<br>missing some just figured out I'll be<br>back so that was government work for me<br>so I was like okay I'll figure all these<br>things out and I figured them all out<br>and the only way to really get anything<br>out of the machine uh was to print and<br>so it's like I had to become really good<br>at printing my way through problems and<br>so that kind of became this like skill I<br>guess I adopted is that I can just kind<br>of print after bug my way through a lot<br>of these problems obviously I'm not a<br>game developer probably a different<br>world probably should use I think John<br>karmac was on here and talked how great<br>the the bugger is different world cuz<br>when I was at Netflix there's machines<br>that exist somewhere where on AWS I'm<br>not logged into them I don't even know<br>how to log into them I'm not even sure<br>if I have credentials to log into them<br>they run once somewhere and I have to<br>figure out what happened and why it's<br>happening so it's like I'm going to<br>become this is like this is what I've<br>trained for I'm a print F bugging<br>Champion so it's just like I could just<br>run through these things really quickly<br>and figure out why they're happening the<br>way they're happening you're a special<br>human I think that's an incredible skill<br>set to have to be able to drop in into<br>any code base to drop into any situation<br>and do print out debugging meaning like<br>you know you're in a dark room and<br>you're feeling around that room to try<br>to figure out what the room is well I<br>had the code so it's like I can kind of<br>blueprint what's happening like I don't<br>understand the services or anything<br>that's but like you can start guessing<br>pretty quick as to what's going wrong<br>right but then the the print side of<br>that helps you uh confirm your<br>intuitions test your intuitions and<br>build up more and more information and<br>then you start to accumulate like this<br>bigger picture from that what the edge<br>cases are that uh that break the system<br>and not I mean I I think that just that<br>kind of space like that kind of<br>situation is uh intimidating for a lot<br>of Engineers like they break down at<br>that point I think it's really is a<br>powerful thing to be able to come into a<br>code base that's generally a skill set<br>of like uh very few of us start from<br>scratch yeah and actually this is the<br>fundamental problem of web development<br>and in general where they're like uh I<br>don't know what's going on I'm going to<br>write my own thing from scratch right as<br>opposed to like actually doing print out<br>debugging on the on the space of<br>languages on the space of problems<br>because there's a lot of<br>wisdom and solved problems already in<br>this code base it's a much more<br>important skill set to understand to<br>learn from the mistakes and the wisdom<br>of the past of the ancestors that came<br>before MH and build on them as opposed<br>to throw it all out and start from<br>scratch this is something obviously you<br>see a lot with a JavaScript framework<br>that comes out and you wi every single<br>day so I have a very great story about<br>that that this is what like I think has<br>shaped me the most about my perspective<br>of other devs there's this Dev and he<br>always just wrote Things in just what I<br>thought was such a bizarre and weird way<br>and it would this had to do with falor<br>so our data fetching um library for<br>Netflix mhm This would run on mobile so<br>I had the write in Objective C it had to<br>run on television and it had to also run<br>on web so it ran on everything and it me<br>and one other person were responsible<br>for this thing working and the request<br>side where we'd have to dup the<br>information that we already have the<br>requests that were pending and the new<br>data so I had to figure all that out<br>based on what someone's requesting and<br>then just only optimal optimally request<br>the stuff that we don't<br>have he wrote in such a goofy way and<br>I'm thinking man this guy is just what a<br>goof<br>so I delete it all and I start writing<br>and I'm like look at how much nicer this<br>is it's looking so good I'm like ooh<br>there's that one Edge case uh okay I can<br>see why he wrote it this one way that's<br>not a big deal though but the rest of my<br>code is really great by the end of it<br>I'm like I literally almost line for<br>line just reproduced what he already<br>wrote It's like slightly different<br>towards my style but I just wrote the<br>same code I'm like I'm an idiot I am the<br>idiot in this situation because it was<br>already a solved problem I just didn't<br>take the time to learn what he did and<br>that I relearned what he did by<br>rewriting the entire thing I think<br>that's a skill set that is extremely<br>important for people to learn I see that<br>in myself that's a constant struggle for<br>myself I when uh facing a codebase for<br>example but this applies generally in<br>life where somebody did a lot of work to<br>do a thing you should invest a huge<br>amount of time and get really good at<br>figuring out what they did why they did<br>it do a lot of print off debugging to<br>understand what they did it's a much<br>more efficient way to understand a<br>problem deeply than to start from<br>scratch even though there's a constant<br>temptation to start from scratch because<br>starting from scratch is fun you did get<br>the puzzle solving all that kind of<br>stuff it's just not going to be the<br>right thing to do usually pain is the<br>right thing to do and it is for most<br>people painful to understand other<br>people's code bases I highly recommend<br>starting from scratch if you want to<br>understand a concept you don't know how<br>an HP Works create a TCP socket learn<br>how to parse HTTP it'll become very easy<br>and you'll go this is the reason why<br>whenever I get a request I have to await<br>the text I Now understand why the text<br>is for whatever reason not there I get<br>it I Now understand it and so you kind<br>of gain these New Perspectives just by<br>simply parsing something<br>out all right back to uh the wisdom of<br>Reddit apparently there there are memes<br>and legends about your uh programming<br>Arc in Netflix uh this falcore system<br>you mentioned somebody I think it was uh<br>te how do you pronounce his name by the<br>way te te okay te it's TJ would be his<br>name but we call him te or telescopic<br>Johnson oh wow so many names you know<br>dos distributed denal of service attacks<br>you apparently were able to accomplish<br>the simplified version of that of just<br>dos uh that's a legend so you basically<br>broke down the system somehow yeah yeah<br>can you tell the story of that I'd be<br>glad to so this falcore so there's this<br>falor business right and I kind of I a I<br>did discover the bug before anybody else<br>and I did report it to security and and<br>it it was so bad it actually got its own<br>name repulsive grizzly attack yeah and<br>they even give examples of how to do it<br>effectively what it means is that there<br>is a request that targets both memory<br>and CPU and will destroy there you go<br>look that how Netflix the next one down<br>was the article that was actually<br>written um I don't get mention which is<br>a little bit upsetting considering I was<br>the one that discovered it and told<br>everybody how bad it was uh anyways and<br>had to write the fix for it or the first<br>fix so this is how it works is that it<br>you can do something pretty similar I<br>believe with graphql as well it has the<br>same kind of danger any of these kind of<br>RPC request as much or as little of the<br>data as you would like Frameworks are<br>vulnerable to this kind of attack so<br>with falor what you do is you could you<br>give it an array this an array is called<br>a path and that's the path to the data<br>but sometimes you don't want just like<br>you don't want to have to write out I<br>want movie I want row zero or List zero<br>or row zero column zero title I want you<br>know row zero column Z description I<br>want you know you don't want to have to<br>write out all that so instead you could<br>just be like I want um I want rows 0<br>through 10 columns 0 through 10 titles<br>and descriptions so you can write in a<br>very compact nice little format and<br>it'll give you all that data it'll go to<br>the server the server will fill that all<br>in and give it to you oh dang it list<br>three it only had three videos in it so<br>what happens when I try to request the<br>data well I need a way to be able to<br>tell my system that youd have requested<br>the data and there's nothing there so<br>this is called like a call this like a<br>boxed value so it's going to be like<br>type uh something value there's nothing<br>there we've already requested it and<br>there's nothing there they call you know<br>it's like a sentinel value if you will a<br>box value<br>and we have this little special flag<br>weed path called materialize meaning<br>that when you ask for a path we will<br>make sure we fill it out so we don't<br>accidentally erase anything and at the<br>very end we'll say okay the thing does<br>the request you've made has already been<br>made and there's nothing there well what<br>happens if I request rows 0 through<br>10,000 columns through 10,000 one more<br>item through 10,000 and then a whole<br>bunch of properties and then ask it to<br>materialize well I'm about to go create<br>billions of objects in the jvm and what<br>happens to the machine if stops running<br>and then if we try to Json even if it<br>could create them all we then ask it<br>that Json<br>serialize it's not going to do it right<br>like it's impossible and so that was the<br>attack Vector is a simple while loop<br>would have taken down and held down<br>Netflix for a very long time because one<br>request would kill one machine on AWS<br>and so that means it would just turn it<br>all off and this was on the website this<br>was on um TV this was on mobile like<br>this was profound and here's the worst<br>part it was in production for years so<br>we couldn't even roll it back there was<br>no like oh crap let's just roll back to<br>two weeks ago and we'll kind of fix<br>forward and figure out no it's like we<br>could roll back to<br>2011 like that's our option it's 2011<br>and that's it so we had to figure out a<br>way forward and all that and so it's<br>like the amount of problems that would<br>have happened if n if someone would have<br>discovered this is is unstable Ju Ju<br>Just to be clear the infrastructure<br>that's serving the videos would shut<br>down yeah the UI like you couldn't<br>perform any actions on the UI you<br>surprisingly could still stream video<br>but you would never be able to get to a<br>video to stream cuz every action you<br>would take would be completely shut down<br>and so it wasn't a dods CU you didn't<br>need a bunch of computers to try to<br>overwhelm the system by making a bunch<br>of requests one request one machine if<br>we had 50 machines serving the millions<br>of requests it only take 50 requests to<br>shut down the entire UI isn't it<br>possible to do DOS or D on basically any<br>software system like defending against<br>all the you know closing all those<br>attack factors is probably really<br>difficult if you take any soft<br>sufficiently complicated Software System<br>there's probably so many ways to<br>overwhelm it yeah it's EXT I mean this<br>is why people use cloud flare I think<br>dhh said it best which is like we have<br>our website and we have a strong<br>bodyguard on the outside so Cloud flare<br>has a bunch of utilities all built in<br>cuz you know obviously this is why<br>everyone hates all these Bluetooth<br>devices that connect to the internet<br>because they just turn into attack<br>vectors where people use those to Doss<br>or dos other sites and so you don't need<br>something sophisticated you just need a<br>bunch of requests to come in and you can<br>take down websites and so that's why<br>these fronts are really good at kind of<br>discovering where these problems are but<br>dos is a bit different because it<br>doesn't have to be overwhelming by using<br>Resources with a whole bunch of requests<br>it really just means simply that there's<br>a denial of service attack one of them<br>could be there's a Rex attack that<br>existed where um Cloud flare actually<br>did it to itself and shut itself down<br>which is there's a Rex expansion attack<br>we're given the right kind of Rex if you<br>know someone's running a specific redx<br>you can actually provide input that is<br>maximally bad and that thing goes to<br>like super processing it takes 10<br>seconds to process a single request then<br>you only need to make hundreds of<br>requests and you shut down the whole<br>service it's not like you need some<br>giant Machinery to make one trillion<br>requests you only need just some small<br>amount to completely destroy a service<br>and so<br>there's the web is an extremely<br>difficult place to to do it correct this<br>is super fascinating I I do also wonder<br>how many Ultra<br>competent uh what is it black hat<br>hackers there are versus sort of the<br>good guys versus the bad guys how many<br>bad guys there are and what is the<br>average what is the distribution of<br>skill set on the bad guy side that are<br>constantly trying to attack I assume<br>there's probably a huge number of just<br>really simple ones script kitties right<br>just people trying to just do things and<br>then there's a huge amount of like<br>social engineering that just goes in<br>where hacking is done not with a<br>computer but just by yeah you know one<br>of the classic ones Kevin mitnick had<br>this one in his book which was you'd<br>call up somebody pretending to be like<br>Charlene we're uh doing some auditing<br>and uh I think your pin's out of date on<br>file is it 2323 still and they're like<br>no it's 4747 you're like oh thanks<br>Sharon you know boom you just hacked him<br>right like the classic people love<br>correcting bad information this is like<br>a standard so like there's all these<br>ways people hack and so my assumption is<br>that there are really great white hat<br>hackers there's really great black hat<br>hackers but the vulnerability space the<br>harp the thing is is<br>that discovering a vulnerability and you<br>don't let anyone know the white hat<br>hacker still has to make that same<br>Discovery yeah and that's where I think<br>the real thing is is that black hat<br>hacking in some sense has a<br>fundamentally easier job or at least a<br>job in which they can take advant of for<br>much longer periods of time one's the<br>process of discovering who's breaking<br>the system the other one's trying to<br>figure out how to break the system and<br>it seems like most software is held<br>together by toothpicks and glue yeah and<br>there is a lot of dangers in every piece<br>and also the the social engineering<br>aspect that's a real Attack Vector I<br>think that's the attack Vector that will<br>do in the long term the most damage in<br>the world um especially as AI tooling<br>becomes easier and easier to convince<br>people at scale so of do that kind of<br>grand email Grandma I think that's a<br>really serious attack Vector like human<br>psychology and all that I I kind of<br>assume whenever there's a girl that<br>approaches me it's kind of some kind of<br>social engineering project some attack<br>Vector some some a intelligence agency<br>in fact I'm pretty sure we're back to A<br>Beautiful Mind aren't we beautiful mind<br>yeah I have a whiteboard upstairs that I<br>calculate everything everybody's<br>trajectory and move you're you're not<br>wrong though with the attack Factor<br>especially in the day of AI like one<br>thing that I don't think a lot of people<br>are talking about as we integrate more<br>and more AI is that prompt injection is<br>like an extremely hard thing to defend<br>against because it's not really clear<br>how you defend against it if it's just a<br>you know at the end of the day word<br>calculator make word come out if you can<br>figure out the proper word calculator<br>input it might just break its B bounds<br>and start doing something it's not<br>supposed to do and there's a whole<br>future where there's all these products<br>that are going to be vulnerable to<br>things they never thought about like you<br>it's one thing where you forget an edge<br>case while you're programming now you<br>have to guess what people might be able<br>to think of making something that has<br>access to a system be able to do right<br>and you don't have a way to reason about<br>it its reasoning came from Reddit and<br>other words that it's red and how to put<br>things together like this is a very it's<br>a massive space that's going to be<br>happening it's why I'm personally<br>thinking don't give too many Powers yet<br>like we don't know the attacks that are<br>about to<br>happen uh yeah the more power we give to<br>software systems the more damage they<br>can do that certainly is the case but<br>the more awesome they could do and<br>that's um The knife's Edge that we all<br>walk along as a human civilization<br>together hand in hand will we flourish<br>or destroy ourselves question<br>mark uh folks on Reddit the good folks<br>on Reddit demanded that I asked you<br>about the time you broke production is<br>this related to falor did you break<br>production is this I've broken<br>production quite a few times I've broken<br>productions for so many stupid reasons<br>one time I broke production because I<br>came up in the PHP and PHP static means<br>static for the lifetime of the PHP and<br>PHP was the lifetime of every request<br>right that's why PHP was so inefficient<br>was that every request was its own like<br>instance and therefore static memory was<br>for the lifetime I guess I never put<br>that together and so I had some objects<br>that I made static because I was like oh<br>I just need this for the lifetime of the<br>request and lo and behold those weren't<br>lifetime whole bunch of bad data got all<br>over the place people were showing up<br>saying they're from all these different<br>countries and everything was all wrong<br>cuz I just whoopsie daisies I just made<br>a whole conundrum with that so that was<br>one time I did it another time is I took<br>down if you were on the homepage on the<br>website waiting for Lady Gaga's video to<br>come out and you are watching the<br>countdown go down if it reached<br>zero the billboard would freeze and it<br>wouldn't work if you refreshed it would<br>work but the reveal yeah the big reveal<br>I screwed that up and my boss got real<br>upset and so did other people in<br>Hollywood got upset about that one that<br>was like a my bad sorry Jeff Wagner<br>again I remember that one I remember<br>that one specifically one time I<br>released a bug where again on the<br>billboard if you pressed add to my list<br>I accidentally programmed in a an<br>infinite Loop and it just your whole web<br>page would just freeze are some are some<br>of these bugs difficult to discover<br>until you that one seems really easy<br>looking back on it Loop yeah and there<br>was we actually at during those days we<br>had manual QA that are supposed to go<br>through everything so I didn't feel as<br>bad because my manual QA counterpart<br>also missed it like we all missed it but<br>it was just so simple you just press<br>that button boom it just completely<br>freezes the website polluting the code<br>was sort of global variables that are<br>holding values uh as PHP I think allows<br>you to do that's a tricky one to<br>discover cuz you rely on it but then<br>there could be somebody else assigns a<br>value to it dat races everywhere and I<br>just didn't understand like in my head<br>static was like oh this is for the life<br>like I was just so locked into the PHP<br>World at time that I I just made a just<br>a just such a like looking back on it<br>it's so obvious but during the time it<br>was it's hard so in general pushing to<br>production I talked to Peter levels<br>about this he I mean obviously he's<br>operating is a mostly a solo developer<br>but he often on the website said<br>thousands not hundreds of thousands of<br>people use he he often ships to<br>production uh pushes to production<br>meaning like just no testing just like<br>push to fix uh what are the pros and<br>cons of that approach in general to you<br>what do you think it's obviously much<br>easier the smaller your organization is<br>I think everyone I think no one would<br>argue that that sentiment if it's just<br>you working on a singular project it is<br>obviously much easier for you to push<br>directly to production because you are<br>the only one working you know all the<br>ins and outs and if something were to<br>break you would discover it m so to me<br>that makes sense like I think the way he<br>operates is perfect for what he does you<br>couldn't take what he does and move it<br>to say Microsoft or Netflix or Google<br>because that would obviously it would<br>just be a disaster just due to the<br>amount of people all pushing to<br>production and so I I mean I personally<br>love that I think that you have to you<br>have to gauge both the application<br>you're building and its complexity and<br>what you're pushing and how many people<br>are working on it I think those all go<br>into how you can kind of do that cuz not<br>all applications are created equal<br>either like that application I was<br>making with zooming and scrolling where<br>we had all of our own everything it was<br>a very deep log like heavy logic app and<br>that was regardless of what was<br>happening on the website most the code<br>was Library code and that becomes way<br>harder if you don't have a good test<br>suite and stuff to kind of run before<br>you push it out because when you squeeze<br>that ball you know different things uh<br>come popping out in different areas and<br>that's like that's very that's a very<br>harder problem than say if you're doing<br>more of like a heavy visual one because<br>a heavy visual one you're you're<br>affecting just this one area's visual<br>stuff and you can test it and like<br>that's normally the end of it whereas<br>you know so it depends on like the<br>coupling and everything so I I mean I<br>love his approach by the way I I have<br>such mad respect for anyone that<br>operates that way because it I think is<br>a great way it just is so good because<br>it kind of breaks this notion that Tech<br>Twitter has that oh you have to use all<br>these expensive Services you need to use<br>all these kind of things because if you<br>don't use all this kind of stuff if<br>you're not using the latest version of<br>react if you're not using the latest<br>version of this you're going to Simply<br>you know you're simply not going to make<br>it as a startup it's impossible and it's<br>just like no no that's it's not software<br>like most of software isn't the new<br>stuff most of software is old crappy<br>software that someone has to maintain<br>and it actually is really really great<br>and has lots of really hard problems and<br>if you look at it differently it's<br>actually fantastic for people who don't<br>know his Tech stack in terms of web<br>development is PHP jQuery and sqlite<br>yeah all great stuff I'm just surprised<br>he still uses jQuery just given the fact<br>that at this point on the modern web<br>everything is I mean you have document<br>query selector and ad event listener<br>click right it pretty much has<br>everything you already need it has Dom<br>content load like all the reasons I used<br>jQuery back in the day was adding a<br>click on a on a button was like hard you<br>had to deal with ie7 I8 I9 right like<br>those were hard differences whereas now<br>it's just so easy I'm just surprised<br>it's even that I mean that's definitely<br>a trade-off I I have still use the exact<br>same stack phb jQuery uh and different<br>flavors of uh<br>SQL but the question there<br>is you know you you keep using jQuery<br>because you can get the job done really<br>fast and there's no significant<br>performance hit that that you detect so<br>like why switch to something else but<br>it's always probably as we'll talk about<br>good to explore and to learn not all<br>tools are great at solving all problems<br>and so what you think is really like the<br>problem is is you run into this kind of<br>trade-off which is you have some tool<br>belt that you're very Adept with you<br>know all the ins and outs there's no<br>unknown known but there's no surprises<br>in this you know what you're building<br>you know what you're getting into you<br>will go through and um you'll be able to<br>solve the problem but if you ever use a<br>different language or a different<br>experience you can find that some things<br>are able to represent States way easier<br>in a way more efficient way and you can<br>solve problems really efficiently in<br>some versus the other and so it's like<br>if you don't take the time to explore as<br>well you could be missing out on<br>something that makes you twice as good<br>on this one specific problem like subset<br>and so I kind of value being able to<br>look at all problems and so I don't want<br>to get stuck on one thing though I see<br>why people do which is for the<br>efficiency sake let's just return to the<br>infrastructure the platform of Netflix<br>and speak more generally Netflix twitch<br>YouTube like anytime I use any of these<br>Services I'm just blown away by the the<br>infrastructure it takes to deliver this<br>service YouTube and twitch unique versus<br>Netflix where the creators can roll in<br>themselves and upload stuff yeah so on<br>the consumption Side YouTube has over<br>100 billion views a day over 1 billion<br>hours watch time but on the sort of<br>Creator side 1 million hours of videos<br>are uploaded every day 1 million<br>hours it's like you have to do you have<br>to service both and you have to deliver<br>everything it's incredible to me uh can<br>you maybe speak to your own intuition<br>just zooming out on it what it takes to<br>deliver that kind of infrastructure for<br>me the thing that I I find vastly<br>complicated and I can't imagine the<br>engineering hours is how do you even<br>create an edge in that situation and<br>what I mean by an edge I mean like when<br>people say this phrase if if you're<br>unexperienced an edge is where you<br>deliver data to be you want that edge to<br>be as close to the customer as possible<br>because that's where the data lives and<br>then the communication between the<br>customer and what you're doing is really<br>really small obviously the speed of<br>light adds up the amount of hops adds up<br>the amount of services that you have to<br>remotely call adds up they all add up<br>and they all add inefficiencies to the<br>system so something like YouTube they<br>want to be able to serve that data as<br>quick as possible but their data changes<br>constantly and relevance is almost<br>directly tied with the newness of the<br>item so it's like how do you even cash<br>these things out how are you doing this<br>so they must have such an incredible<br>caching Network that I can't even I<br>can't even fathom what it takes to do<br>that that just to me is just so<br>impressive a million View hours in how<br>many different uh resolutions with how<br>much data what is a million View hours<br>is at 4K million View hours along with<br>1080p along with 720p along with 1440p<br>like that number is an insane number<br>actually it is brilliant what you said<br>which is for YouTube often the new thing<br>is extremely important to show to<br>everybody and so you can't rely on<br>caching or or trivial kind of caching<br>you have to like deliver the new thing<br>as quickly as<br>possible yeah I mean it's incredible so<br>there's the entire<br>system the the recommendation system<br>that knows each individual human<br>watching YouTube and it has to integrate<br>into that the new thing while also<br>caching this incredible cluster of<br>possible videos that you're potentially<br>interested in so and integrate into that<br>ads right in the case of YouTube and<br>twitch and so on it's a really tough<br>problem because you have to think like<br>what is the cash hit rate on this<br>because there's so the problem now<br>actually comes down to space like space<br>actually becomes a real problem like how<br>many hundreds of pedabytes do they have<br>that they have to like okay what do we<br>cash and where do we cash this right<br>like the number I mean I think in the<br>terms of like gigabytes or maybe<br>megabytes like they have to think in in<br>probably versions of bytes I don't even<br>know the name for right like it's like<br>such a different problem and that's why<br>I said Netflix Netflix has a much easier<br>job when it comes to caching so if<br>you've never looked it up it's called<br>OCA and that we know what videos we're<br>releasing we know what videos are hot in<br>specific areas it's a very limited set<br>we're not going to all of a sudden get<br>oopsies we got a million New View hours<br>right we don't even have to worry about<br>that as a problem instead it's like okay<br>we know stranger things season 5 is<br>about to drop we're going to preash Str<br>stranger things season 5 in every single<br>OCA across the world because that<br>thing's about to get hammered right and<br>so it's like it's able to do such a<br>different kind of decision making than<br>what you have to do with something like<br>YouTube and then which is even more wild<br>because now you're actually ingesting<br>video and trying to make it go out all<br>at the exact same time for all video and<br>you have to transform that video from<br>whatever format and whatever the bit<br>rate is into something that's more<br>efficient in the system like that hats<br>off to Twitch engineering like because<br>that is like some that's some serious<br>work and here's some asshole Lex coming<br>out and tweeting about YouTube features<br>so like there's<br>a I listen you're not wrong on the<br>features you asked for though<br>uh I think there's this is this is an<br>engineering problem of how do you allow<br>fast iteration and addition of features<br>that shouldn't have to be integrated or<br>impact the whole code base so at the<br>edges of the code base sort of improve<br>on certain features without like having<br>to consult the mothership uh of the code<br>it's the large team right that's that's<br>the fundamental problem when you get<br>into YouTube size there is the the team/<br>organization that deals with data<br>warehousing there's the team/<br>organization that deals with delivery<br>there's a team/ organization that's like<br>the middle layer how you even you know<br>they're going to be like the little<br>micros surfaces to talk to these places<br>then you have this front end engineer so<br>like for for a small feature you have to<br>get middle team you have to get backend<br>team you have to get all these things<br>quick example Netflix um are you<br>familiar with uh the dystopian Black<br>Mirror yeah okay season 1 episode one do<br>you know season one episode one everyone<br>who watch black miror typically knows<br>this episode okay yeah I don't remember<br>what it is but forgive my language but<br>they call it the pig fucker episode oh<br>yeah of course once you've seen the<br>episode you will then know this episode<br>well when Netflix adopted it I got<br>pulled into a room there's like a VP a<br>VP a product designer a VP and they said<br>hey we're about to release our own<br>version of black Mir season uh season 3<br>I think at that time we need episode 1<br>season 1 to not be the first thing<br>people see so let's just reverse the<br>season<br>order that required me I had like 20<br>Engineers I had to gather together to be<br>able to have this happen and that's just<br>the problem of big companies is that<br>eventually every little thing has to<br>become its own team and so even small<br>there's no such thing as a small feature<br>reversing the order of the drop down<br>that selects the seasons is uh a meeting<br>with a bunch of VPS and Engineers that's<br>really interesting I there's got to be a<br>way to accelerate that the natural<br>scaling of a company and the bureaucracy<br>that grows yes slows that down but just<br>having seen Elon work a lot his teams<br>are able to like still keep it very fast<br>even as the company grows there's got to<br>be like a process doing that especially<br>for<br>uh yeah for the pig fucker episode like<br>uh I don't know where that in the<br>priority list but like for important<br>things like that you should be able to<br>do that quickly I don't know can you<br>speak to like how would you do that well<br>I can tell first how it was done<br>remember so at a place like Netflix<br>there would be I think that at that<br>point it's called a product called<br>Dexter I can't remember there's our<br>actual like movie metadata Warehouse<br>that's going to be highly integrated<br>with Hollywood that's going to be you<br>know where that side is able to manage<br>all that so I'm like hey you need the<br>ability to Mark things that need to be<br>reversed because we're going to run into<br>this a bunch and we did we ran into<br>quite a few topical shows that all need<br>to be reversed and all that and so it's<br>like we need to be able to reverse<br>episode numbers season numbers we need<br>to be able to hide season or episode<br>numbers like in the case of the Chelsea<br>Handler show it was like a Daily Show so<br>it's like you don't you don't need<br>episode numbers you just need the latest<br>one and so like there's this whole<br>problem that exists and so it's like<br>okay you need to work on that for your<br>UI over there then you need to be able<br>to store that data then we need to be<br>able to go to the like the people that<br>can actually get the video data out of<br>that and provide it to our our uh our<br>service layer I need to go talk to them<br>and convince them they need to be able<br>to give me the new methods and<br>everything to do that then I need to be<br>able to go WR write the methods to get<br>it down and then I need to go to the UI<br>and make that accessible now I need to<br>go to website people I need to go to the<br>mobile people I need to go to the TV<br>people and so it's like yeah you can see<br>this thing like snowballing and for us<br>the big thing that Netflix did that was<br>so well is after I met with these people<br>that were high level I was the I was the<br>captain I'm the captain now yeah so I<br>went to all these teams and said hey<br>manager I need I need an engineer we<br>need to get this done within the next<br>couple months because we got Black<br>Mirror coming out so she would go okay<br>here you go the map team I need someone<br>to help me with being able to get dat<br>out of the LOL for this and so it's like<br>all right you're working with this<br>engineering I'd go to the VMS team okay<br>I need this engineer I'd go to the<br>billboard team I need this engineer go<br>to all these little places to get all<br>these little pieces of data and then I<br>was the captain so I was like you're<br>working on this you're doing this you're<br>doing this you're doing this I'm doing<br>this let's go right and so it's like<br>that worked and we were able to go<br>pretty fast for a big company and the<br>fact that it required like 20 Engineers<br>to do such a simple task we were able to<br>do it in like gosh I'd say about like 3<br>weeks worth of effort but that was still<br>I thought that was amazing comparatively<br>to how many people mov well because you<br>have the freedom of the agency to do it<br>you said the captain of the ship that's<br>really powerful for big companies that's<br>a risk cuz you can fuck it up you might<br>not see the bigger<br>context um Le legally or and S of the<br>bigger context of the impact on the<br>industry or all the contracts that are<br>made all that so it's a risk it's a risk<br>but it's a risk you have to keep taking<br>and then if when you fuck up you fix and<br>then maybe pay the cost legally for that<br>whatever but<br>the longterm that risk pays off because<br>you're going to keep creating a better<br>and better product evolving where the<br>industry is going constantly innovating<br>ahead of where the industry is going and<br>so on yeah and not only that I think one<br>thing that is just so important is that<br>yes the product will get better but the<br>people that you hire and the people that<br>you keep around are better because<br>they're the ones that show maturity<br>they're the ones that can just you give<br>them something and they can rally the<br>troops and make something happen<br>like that's a very great group of people<br>to hire and so you also naturally select<br>out great Engineers that aren't just<br>simply good at coding they're good at<br>coding and they're good at explaining<br>and they're good at convincing and<br>they're good you know like you have to<br>you have to create a very lean audience<br>that can move fast and I think for grade<br>Engineers having to wait for like okay<br>let's schedule a meeting for next<br>Wednesday with the with the VPS and that<br>destroys their soul and they either<br>don't want to contribute anymore or they<br>leave the companies or they just kind of<br>tune out and take the golden handcuffs<br>and just you know buy a nice house and<br>focus on the family and I feel like I<br>would die under that c like honestly<br>like that is that is my death sentence<br>is where it's just that there's no<br>reason to try there's no reason to do<br>anything I'm just going to go in there<br>like effectively zombie through my day<br>and call it like I don't want to live<br>like that I want to feel like I'm trying<br>to do<br>something uh I should also mention on<br>top of that so you've brilliant ly laid<br>out how incredible the challenge that<br>Netflix has to solve on top of that with<br>YouTube you know the metadata<br>thing because users are able to upload<br>video and there's an API where they can<br>upload automatically and change all this<br>kind of stuff automatically every one of<br>those things is an attack Vector as we<br>mentioned that's something they have to<br>consider seriously on the engineering<br>side and on the sort of the legal side<br>they can get into trouble all kinds of<br>ways so they have to consider all of<br>that that's it's just yes fascinating<br>the legal side is obvious but it's not<br>really like I would never of initially<br>thought someone would say upload images<br>that you're not allowed to own or have<br>but that guarantee you that happens then<br>you have the whole kid side right yeah<br>like think about when you mark something<br>as kid-friendly how many times have they<br>snuck porn into a Taylor Swift video or<br>whatever it was that was like a few<br>years back there was that whole Taylor<br>Swift or whatever I forget what it was I<br>thought it was Taylor Swift but there'd<br>be these mock videos that come up and<br>then boom it's like that's a that is<br>such an awful problem and I'm so happy<br>that is not a problem I have to try to<br>figure out yep okay so yes YouTube and<br>uh and twitch and Netflix are doing<br>incredible job you eventually uh<br>chose the madman you are to leave<br>Netflix and to start a new journey of<br>being a Wolfpack of one start streaming<br>what was that what was the story of that<br>so I was<br>streaming for almost 7 years now it<br>started actually at Netflix we did a<br>charity uh extra life shout out extra<br>life for starting my streaming career<br>effectively it's just you stream and<br>whatever money you raise it goes to kids<br>with cancer research they are a great<br>charity in the sense that they take no<br>overhead and they raise their own<br>donations for their website and<br>everything and so it's like a very great<br>straightforward charity really love like<br>what they've done um it was super cool<br>because I live in South Dakota now but I<br>actually could choose a hospital<br>directly where the money goes to so<br>there's like a direct impact<br>from A to B so it's like it's a pretty<br>cool organization and so my friend guy<br>Sereno uh nice try guy is what I like to<br>call him he was probably the single<br>greatest engineer I've ever met in my<br>lifetime and he was just like hey come<br>do this we're going to all do this and<br>so I played fortnite and so before I did<br>that I was like I better learn how to<br>stream first I better get you know<br>Affiliated so I can like take<br>subscriptions and then if anyone gives<br>me a subscription I'll also pay that<br>forward and so June 2018 or something<br>like that I start<br>I start uh streaming and I start<br>streaming some fortnite end up getting<br>Affiliated end up doing the whole extra<br>life thing I end up really enjoying it<br>I'm like this is a lot of fun I'm<br>playing fortnite at that point okay so<br>mind you I'm a fortnite streamer at that<br>point uh and I start really enjoying it<br>and I keep doing it and then one day I<br>decide I'm going to do some programming<br>because I really love vim and I think<br>I'm kind of fast at vim and maybe people<br>think programming is kind of cool cuz<br>there was no really programming section<br>at that point uh and I did it and I had<br>like 30 people show up which was just<br>like and it felt like incredible numbers<br>at that point so I was like oh my gosh<br>there's like 30 people watching me<br>program and so it just kept on going and<br>it kept on happening and it just kept on<br>growing and I did it for year after year<br>I would do my job I would come home I'd<br>eat dinner with the kiddos I'd read them<br>Lord of the Rings in The Hobbit during<br>that time I'd read to them for a half an<br>hour then I'd set that down and then<br>three nights a week I would program<br>until like 2: in the morning or play<br>video games until 2: in the morning<br>streaming and building up this like<br>whole side thing and I did this for a<br>long long time and then eventually it<br>just kept working out so well and I<br>started making YouTube videos and then<br>that started getting better and it was<br>just like a long long grind until April<br>of last year I went to the streamer<br>Awards and I got to like announce the<br>programming category and pirate software<br>one it was awesome it was a great time<br>and during that time he gave me a<br>challenge coin and just said like you<br>just got to go for it just go full-time<br>and so I just sat there and my wife can<br>attest to it it was kind of like an<br>emotional uh turmoil thing and it just<br>took a lot<br>of it was it was pretty awful you know<br>cuz I I didn't Netflix is very safe<br>option it was both very fun it was<br>challenging I liked a lot of the people<br>I worked with it was overall a really<br>great thing I had a really great boss um<br>really appreciated him I still ever T<br>text him now and then he's really great<br>guy so it's just like I'm leaving all<br>these things for something that's unsure<br>and the reality is is is that streaming<br>and all these things you know people<br>love you one day they could hate you the<br>next day there's like all this stuff<br>that goes into being on the public side<br>and I had Netflix as the backing so it's<br>like if public hatd me the next day I'd<br>be like Deuces I'm out like I don't care<br>now it's like now I'm going to do this<br>as a job and so there's like a whole<br>huge turmoil to this whole thing that<br>kind of went through it and eventually I<br>just said<br>okay I'm going to make this it kind of<br>it resonated with me when I first made<br>the decision to join Netflix<br>I'm getting<br>older there's not a lot of chances to do<br>something unusual like that those<br>chances go down constantly as you get<br>older this might be the last crazy thing<br>I get to do let's just try it so in<br>April I went full-time and I have I<br>guess I haven't looked back I'm only not<br>even a year into doing this uh as a<br>full-time gig and it's just been a lot<br>of fun and the biggest thing is just<br>being you know just being able to really<br>explore and do these things on stream<br>where people really enjoy watching and<br>engaging has just been it's been a great<br>hard fun amazing difficult experience I<br>mean it's a really inspiring leap it's a<br>really hard one to to take for many<br>reasons like you outlined but also like<br>the loneliness of it I<br>think I think it's a pretty lonely<br>Pursuit it is yeah just you and the<br>camera and the audience and the ups and<br>downs of that and it's not there's not<br>really a team I do have one lucky thing<br>I'd say that my editor flip shout out<br>flip he was it would mean the world to<br>him if I said shout out flip I love you<br>flip love love you oh man he uh he had<br>you know as he would say he had nothing<br>going for him he he had a really hard<br>growing up a lot of lot of rough life<br>decisions have gone into his life and<br>he's kind of crawling back out of it and<br>he just said hey I will edit fulltime<br>for you so I just said all right like<br>50/50 whatever I make on YouTube you get<br>we're going to do this together and we<br>did that for years making zero dollar a<br>month pretty much you know and so it's<br>just like that was an incredible jump<br>and now like we get to work together so<br>that I do get that one team aspect that<br>I think is really nice but there's it's<br>not like it was at Netflix where I could<br>hear about stuff people are building I<br>don't have a team I don't have like<br>product or Cycles I don't have a manager<br>that I have to try to make happy it's<br>just like it is very lonely and I don't<br>think a lot of people realize how lonely<br>it actually can be yeah so combine that<br>loneliness with uh in my case I don't<br>know how many people attack you<br>I've you know I have a shockingly low<br>amount of attack rate I feel like yeah<br>you're people generally I mean it's<br>sometimes fun sort of teasing that kind<br>of thing but it's mostly just really I<br>mean you you give so much love to the<br>world and Inspire so many people even<br>when you're like making fun of stuff<br>yeah but with with me sort of taking the<br>loneliness of it combined with just<br>really intense attacks it's tough It's<br>can be rough psychologically really a<br>tough<br>Journey uh you miss working with a team<br>just from even a software<br>engineering side like where you can<br>share code or talk over code or yeah the<br>the collaborative aspect of it yeah um<br>multiple things there uh one hey we love<br>you Lex so don't let the don't let the<br>things get you down um thank you but<br>thank you I love you too thank you hey<br>little little bonding moment you're<br>going on but uh you know what I one<br>thing I really miss not in a sexual way<br>just to be clear the tension is a little<br>little tense I'm getting un<br>but yeah anyway team um it's just the<br>one thing I really miss is just even<br>when I hated how people did it just<br>seeing how other people solved things<br>right like it's really amazing just just<br>like the raw creative power so many<br>people have and just being like oh wow<br>like I would have never done it this way<br>crazy right like wow I just this is<br>awesome and you kind of internally<br>process this and you're like oh I now<br>have a new little tool in my tool belt<br>you know because at some point it's<br>really hard to find a mentor when you're<br>first young and you're just starting out<br>programming I mean anyone with a couple<br>years of experience will be not just a<br>little bit better than you but like<br>infinitely better than you it's like it<br>feels like crazy how much better people<br>are and so you have to like get mentors<br>and you learn from people and then as<br>you get better that amount of<br>availability gets really small and so<br>it's something I really do miss is the<br>kind of like forced hard problem solving<br>together I I think there's also skill to<br>sort of mining the wisdom from other<br>people like I generally try to approach<br>even like Junior people Young Folks it's<br>just mentally at least for me it works<br>as a hack to assume they're like the<br>smartest person in the world like way<br>smarter than me and so like I take every<br>single word they say as potential wisdom<br>and that helps me a sort of mind for<br>potential wisdom there uh CU it's so<br>easy was to get older to sort of Judge<br>to be like oh yeah okay okay I've been<br>through that I remember feeling like<br>that I don't remember thinking that<br>that's incorrect whatever but you just<br>kind of assume that you don't know that<br>I don't know what the fuck I'm doing and<br>the other person is this like sage and<br>from that in that kind of interaction I<br>think you could actually learn a lot and<br>my favorite interactions is when we both<br>think that way so we're that that from<br>there I think that's that's a catalyst<br>for a great great collaboration and<br>interaction it just also makes<br>everything much nicer you know it's<br>really it really stinks to work with<br>someone that's combative and negative<br>like I don't mind combativeness if it's<br>like I'm trying to figure out what's<br>like what's best to do right now versus<br>combativeness just because you're a<br>negative person and things have to be<br>this one particular way because if<br>they're not this one particular way it's<br>the end of the world and like that's<br>actually really hard for me to work with<br>what's the origin story of uh the<br>primagen name the origin story of the<br>primagen name was are you familiar with<br>a video game called turo Nintendo 64 so<br>turck had turoc 1 and then turac 2 turo<br>2 was a brutally hard game this is back<br>when firstperson Shooters they would<br>only give you a certain amount of health<br>and you had to go discover health and<br>get that health and you had to beat the<br>whole game without effectively dying<br>that's an old that's like the first<br>version right there that's like turoc<br>one then turoc 2 turoc is a renowned<br>firstperson shooter video game series<br>featuring dinosaurs action and sci-fi<br>elements the franchise has of<br>significantly since its Inception in<br>1997 y there you go so in 1998 there you<br>can see it right there talk 2 seed of<br>evil followed in 1998 featuring larger<br>levels more challenging puzzles and<br>deadlier enemies the notable difficulty<br>it was very very very difficult okay and<br>so I spent when I got it it came in a<br>black cartridge not like your standard<br>gray Nintendo 64 the black cartridges<br>badass game right and I got it and I put<br>it in and I played and I played every<br>day for like 10 hours a day for a month<br>straight and I beat it and it was like<br>such an incredible great experience in<br>the last leader of tck 2 is called the<br>primagen and so when I was a kid when<br>you're in like fifth grade that's like<br>super cool like named after the bad guy<br>and so like for a long time on any<br>internet thing like Grail online that I<br>mentioned earlier the name was the prime<br>it was great and then you know I became<br>an adult eventually and it's just like<br>okay you know I'm an adult my name is<br>Michael ponore you know that's what I<br>was on the internet for a long time was<br>that and I remember it was like<br>2017 2018 somewhere in there<br>um I remember just how bad the tech<br>world had kind of become it was just<br>like this super pretentious Place tons<br>of Dick measuring just everything that<br>just was the worst a Ken wheeler got<br>canceled over playing the circle game it<br>was just like it it's so hard to<br>describe to people that weren't there<br>but it was just the worst place to be<br>Tech was extremely unfun it was<br>extremely awful everything was just so<br>it wasn't academic because it was<br>research it was like we're building the<br>most sophisticated things and this is<br>for the smart people and you're everyone<br>else is the dumb people don't worry<br>we'll design for you dummy we got that<br>we'll we'll show you how to make the<br>perfect architecture and I remember<br>changing my Twitter handle because I got<br>so upset and just went back to my video<br>game name because I was like I want<br>things to be fun yeah I want this to<br>stop and so while I started when I<br>started streaming Tech my goal became to<br>destroy whatever that Tech mentality was<br>because it includes nobody everyone<br>thinks that they're the smart people and<br>they design for the dummies and it's<br>just like no like I want Tech to be this<br>place where people feel like they can be<br>creative and excited and actually build<br>something and if you're new like it's<br>okay to be dumb and ask dumb questions<br>like learn from your dumbness no one's<br>expecting you to be smart pick whatever<br>you want like actually do something and<br>have fun and build like your crazy ideas<br>oh you're going to reinvent the wheel<br>reinvent the wheel understand what<br>you're doing learn it really good and<br>like interact and stuff and it's just so<br>different than what was out there and<br>that the name Arnold Schwarzenegger<br>talks about this thing where when he<br>first started acting his name was like<br>the thing that people hated as he uh<br>once said you have a strange voice you<br>have a strange body and your name your<br>name's unpronouncable no one's going to<br>schnit and fitle no one's going to<br>remember that and he said but now the<br>name is the strong part and for me I<br>just I've always felt akin to that<br>though my name's not nearly as cool nor<br>am I as popular as Arnold nor am I as<br>tough or good-looking or successful but<br>nonetheless it's just the the name<br>represented this like counterculture<br>like movement Within Myself in which I<br>just hated what was there and I wanted<br>to defeat it and so this has like been<br>the thing and now people remember me so<br>well because of how weird my name is and<br>so it's just like I for whatever reason<br>it became its own thing and so that's<br>kind of the now I would never change it<br>and back then I would never change it<br>because it was my Rage Against the<br>Machine moment if you will MH yeah I<br>love that as a symbol of Rage Against<br>the Machine and the rage being fun yeah<br>I just want people to like be creative<br>and have fun again it's okay what about<br>the mustache it's an epic mustache it's<br>an epic stash it has a life of its own<br>yeah is there an origin story or did you<br>guys discover each other at some point<br>or was it did it emerge from from the<br>darkness of the struggle that is your<br>life or where where where does it come<br>from well the original original mustache<br>is that it was No Shave November back<br>before it became movember it was No<br>Shave November back in the day and after<br>No Shave November you had all this hair<br>and so what's the natural thing you got<br>to do you got to sport a mustache for a<br>day right so whenever I'd forget to you<br>know not shave for a long time and then<br>I'd let it start growing out really big<br>I just go oh this is kind of funny I'll<br>have a mustache and so one day when I<br>was streaming is just one of those times<br>I just didn't shave and then I started<br>just letting it go and then I got kind<br>of a beard and then I just had a<br>mustache and when I did it people were<br>just like he yeah it's mustache time and<br>I was just like feels like it's like a<br>lifestyle decision right it's like this<br>is the fun times and so all a sudden it<br>was just like exciting to have a<br>mustache and I shaved it off and I was<br>like okay but then you know part of me<br>is like you know there's this weird<br>energy that comes from just having a<br>mustache so I was like I'm going back<br>told my wife forgive her uh she was very<br>uh not as thrilled about my decisions to<br>have a mustache long term but I just<br>decided to have it back and it just is<br>it's just like it was the right thing<br>it's like part of it's always been the<br>energy that I had was the mustache it<br>was always been there it just never was<br>visible until later on it feels like<br>yeah we're we're chatting offline how<br>one of the components of a successful<br>relationship is sacrifice and your wife<br>was willing to take the sacrifice of<br>allowing you to have a mustache I<br>clearly was not willing to sacrifice not<br>having one<br>so you uh do this incredible incredible<br>thing where you try a bunch of different<br>programming languages when you stream<br>you uh you have<br>like you go all out on certain<br>programming languages like rust and then<br>go and then trying to pick a new one but<br>also are like experimenting constantly<br>so um maybe one question I can ask is uh<br>about<br>learning what's your approach to<br>learning a new programming language and<br>maybe what's your advice on learning a<br>new programming language when you uh<br>begin that Journey so I've kind of done<br>a bunch of different ways to go through<br>this learning process and I've tried a<br>lot of different ones something that is<br>obviously successful is just start<br>building something just put your hands<br>on the<br>keyboard you know like especially if you<br>already know how to program you're like<br>okay I'm now using Zig how do I do a<br>main function so I can just run the<br>program okay I now know how to build<br>okay how do I do an if statement what<br>does it look like okay how do I do<br>declare my own functions how do I do<br>modules right you just kind of like<br>Google your way through it if you will<br>to get to the end product and build<br>something it's a good it's a great way<br>to do things because I find that<br>repetition like rote learning is<br>obviously the best way to do this uh you<br>have to kind of go over it a bunch and<br>you can you can definitely get out and<br>build a lot of stuff with that and I I<br>like that initial kind of get used to<br>things but on top of it I find that by<br>doing that you also fall into like traps<br>you kind of Google and you try to solve<br>a problem in the language based on all<br>your previous experience M and so you<br>you don't have what makes that language<br>special you kind of have what all the<br>other languages make special and so you<br>end up kind of not really being able to<br>use it very effectively but you can<br>certainly kind of learn it and get kind<br>of good at it and so the second approach<br>I've been doing lately and this has been<br>inspired by the creator of ghosty uh<br>Mitchell Hashimoto is to just start by<br>reading the language reference the whole<br>thing and so lately I've been just kind<br>of going through and just reading the<br>entire uh manual for these languages<br>like Zig I'm almost done with that one<br>you know it's like 8 to 10 hours just<br>sitting down reading and I'll whip out<br>my computer and kind of practice a<br>couple of the things from the actual<br>docs and that way I can learn all the<br>things so then when I start building<br>again I will remember okay I know<br>there's a thing over here let me go<br>reread about it because now I have an<br>index in my brain somewhere that will<br>kind of remember and so I don't think<br>there's like a right or wrong way I mean<br>at the end of the day the right way is<br>always that you have to build something<br>eventually you cannot just read about it<br>you have to put your hands on the<br>keyboard you have to build something out<br>and then once you do that that's where<br>you really discover what makes it<br>painful or what makes it great and if<br>you don't have the breath of what the<br>language offers you just may make it<br>painful by simply being bad at it what<br>do you exactly you're reading like the<br>like language reference the language<br>reference so it just goes through like<br>every feature top to bottom right every<br>way it's described all the different<br>things like I think ziggs is you know<br>it's a it's a decent size but it's not<br>just simply read the words you want to<br>internalize each concept as well so it<br>takes a long time so I'm a slow reader<br>so you're like building uh in AI terms<br>like a background model like of just<br>because because I don't think you can<br>just start building once you're done<br>reading because you probably forgot yeah<br>you know how to do a for Loop like you<br>you you kind of forget the specifics you<br>just are building up the the design<br>choices the set of features available<br>what are the strengths and weaknesses<br>all that kind of stuff and then you<br>start building that's really interesting<br>probably not the thing you would<br>recommend to uh a junior like developer<br>somebody who's just starting out first<br>if you don't know what an if statement<br>is that's not a good way to learn like<br>to me the best way to learn then is<br>really hands on the keyboard and<br>building extremely simple things and<br>slowly growing in complexity because<br>understanding what a class and methods<br>and instances versus the blueprint which<br>is the class versus functions versus<br>modules versus all that stuff right like<br>that's that just takes time to learn and<br>so that's a completely different style<br>of learning I wonder because for me<br>learning right now uh AI is is is a huge<br>help but I already have a lot of<br>experience I want<br>if you're starting from scratch whether<br>that's a good idea but I still think<br>it's probably a really good idea but<br>basically generate some code using Ai<br>and figure out what it's doing by<br>playing with different parts um maybe<br>can you comment on on that aspect like<br>the use of AI as part of the learning<br>process this is where I have both the<br>hopeful and the Doomer take at the exact<br>same time yeah<br>uh and it's the same thing with Google<br>or stack overflow like this it's it's<br>all the same kind of take which is it's<br>just making things more democratized in<br>some sense I get to ask questions in<br>probably the most personal possible way<br>with my own voice and my own words and<br>it's able to produce out answers and<br>kind of hopefully help guide me now<br>regardless of just say the erors and the<br>incorrectness is of it like ultimately<br>just using it as a learning you know<br>tool and being able to just you know<br>formulate and read answers in your own<br>voice I think it's super powerful and I<br>think it's it's super amazing<br>but the part that I think is going to be<br>really difficult is that we don't<br>value remembering things anymore as a<br>society like since the internet came<br>about I can just look that up I can just<br>look that up no need to like you don't<br>need to memorize your time tables right<br>you can just use a calculator you can<br>just do all that I I remember I just was<br>sitting on the airplane and I watched<br>someone do the world's most simple<br>addition and subtraction like 10 times<br>on their phone I'm like why are you not<br>just<br>like you should already know these you<br>should be able to do these things and I<br>realize that we kind of offload our<br>brains right oh I don't need to know<br>these things because I can look them up<br>and that's not a bad answer in some<br>sense I can understand that like I don't<br>need to remember every last thing but<br>then it also makes me realize that you<br>kind of developed this learned<br>helplessness that a new error comes up<br>I'll just ask the ai ai says oh okay I<br>got to fix this line I fixed the line<br>you didn't actually learn anything you<br>kind of just used it as a quick means to<br>get something out and move on and so you<br>sacrifice knowledge for Speed which is a<br>great thing in some like you we have to<br>make those trade-offs all the time in<br>engineering sometimes you have to move<br>fast at the sacrifice of knowledge and<br>I'm totally on board for that but I<br>worry that what we'll create is a um is<br>an entire generation of incompetent<br>programmers who can do some amount of<br>things well but anything that is unique<br>bespoke or require some extra like<br>little elbow grease might become very<br>difficult it might cause a whole C where<br>Juniors remain Juniors forever and I<br>don't want to see that I want to see<br>people grow I want to see people you<br>know actually be able to take this as a<br>craftsmanship thing and so that's kind<br>of what I that's like both my hope and<br>my My worry is is that AI I think can<br>can do both really because if you could<br>ask whatever question you want and you<br>don't have to rely on say a book to give<br>you that exact answer and if the book<br>just said it wrong and you can't<br>understand it it's just like sorry you<br>don't get to learn what this is like<br>recursion for me I spent way too much<br>time until someone gave me the right<br>problem to understand recursion you<br>could imagine AI could have solved that<br>for me way faster because it could have<br>gave me the right problem and walked me<br>through much better but what happened if<br>I just always have recursion solved by<br>them and not actually learn it myself so<br>if I ask AI to generate code to do a<br>certain thing some actually large<br>percentage of time most of what AI<br>generates is going to be correct for me<br>but some percent of time it's not like<br>fundamentally not and for me to<br>recognize the difference between those<br>two I think it takes a lot of experience<br>like I think to learn that skill of<br>knowing like no no no a different new<br>outof the Box solution is needed here<br>than the one you're providing you're<br>missing the the the point um that's a<br>skill and how do you learn that you<br>learn that by building from scratch so<br>both are probably really necessary yeah<br>but I think it's the first step of<br>learning how to program it's pretty it's<br>pretty nice to generate a function to<br>generate for loops and all that kind of<br>stuff and then just fuck with the<br>different lines and like modify them to<br>try to adjust the behavior of the<br>program and from the way the the<br>behavior of the program adjusts or if<br>bugs are created you learn about the<br>syntax of the the the<br>language the behavior of the language<br>all that kind of stuff so I I think it's<br>a super powerful way to learn but yeah<br>you need to also write from scratch at<br>some point you have to take off the<br>training wheels because I think what<br>you're really spotting is the difference<br>between reading and writing code like I<br>can read a lot of languages very well I<br>can see what's happening I can<br>understand it but like I would not be<br>very good at writing it I can understand<br>a lot of things about C++ and I can read<br>it but I'm just not that because I just<br>don't I haven't done it in so long I<br>can't remember all or all the semicolons<br>and colons and like you know you do<br>public and private and how should you do<br>naming conent like you know all those<br>things kind of add all together and then<br>you're just like oh I'm really bad at<br>writing it though I can read it and so<br>there's like this there's a skill Gap<br>ASM that exists between those two all<br>right well let me talk about the various<br>languages the cheesy uh ridiculous<br>question of what's the what's the best<br>programming<br>language um let's say what's the best<br>programming language that everybody<br>should learn maybe uh let's go with the<br>top five I'm going to pull up the stack<br>Overflow developer survey because I<br>think we have yeah those are wa you<br>don't like them no no those are those<br>aren't that you got to remember because<br>I mean you're a data guy right you know<br>about biases and data what does what<br>does stack Overflow naturally bias<br>towards well they have the different<br>slices of professional developers uh<br>junior developers they have different<br>slices okay what's what what is the bu I<br>hear you but who fills out a stack<br>Overflow survey someone who participates<br>on stack Overflow who's participating on<br>stack Overflow largely very very new<br>people and that one guy that loves<br>answering questions and so I'm not sure<br>if that like if stack Overflow is a<br>great place to get data it could be a<br>very biased set of data is it really<br>only uh new people I mean that's who's<br>using stack Overflow all right most<br>popular<br>Technologies on this JavaScript HML<br>python SQL seel squel is the more<br>General kind of I'm sure they're not<br>doing the individual uh sort of flavors<br>of squel uh by the way pronounce SQL<br>versus SQL it's squeal squeal you sque<br>squeal I think is the correct way squeal<br>I did sequel because I didn't you know I<br>didn't know the audience I don't know if<br>they can handle the truth okay which is<br>it squeal a squeal of Joy squeal squeal<br>light my squeal postgress squeal by the<br>way I had a lot of Joy from earlier<br>saying Pig fucker for some reason it's<br>such a ridic I mean can you believe that<br>that was a real conversation that I had<br>yeah that was uh typescript bass Java C<br>C++ C it largely kind of aligns with the<br>world you'd expect but like assembly why<br>is assembly more popular than Ruby who<br>is who's wring just assem by no one<br>writes assembly by hand other than like<br>maybe that one guy that's developing TLS<br>1.3 and hand rolling a cryptography<br>algorithm to be the fastest possible<br>algorithm right yeah assembly is a weird<br>one maybe people write it maybe in<br>school but even in school no for like a<br>operating systems course or something<br>like that or system engineering I don't<br>know if they write assembly anymore they<br>I don't think so yeah anyway and Swift<br>and Ruby being less popular than<br>assembly seems ridiculous uh but<br>nonetheless okay so you get my ideas<br>behind that but as far as top five<br>languages go that's probably too broad<br>because you could just name so many I<br>think you should probably archetype it<br>by what you want to do so if you want to<br>get into game development perhaps C C++<br>could be good choices or uh JavaScript<br>and doing canvas games I could see that<br>also working but you know you got to<br>you're limited by doing JavaScript<br>obviously because it you can't do as<br>much because the language is just not<br>fast enough to do as much so it's like a<br>good thing to remember<br>uh if you're going to be doing backend<br>stuff you know if you want a job if<br>you're looking for a job maybe c/ Java<br>or JavaScript or go would be great<br>choices if you're looking to do embedded<br>you probably want to do c mhm C++ like<br>that would probably be a good choice and<br>so you kind of have to I think you have<br>to first determine what do you really<br>want to get out if you're just curious<br>about programming which I talk to a lot<br>of people who are uh yeah you can<br>consider jobs but basically their<br>question is okay what's the first<br>language I should learn and maybe what<br>are<br>the several languages I should explore<br>can I say something that's going to make<br>a lot of people angry yeah sure I think<br>the first language people should learn<br>if they have no idea about anything as<br>JavaScript yeah why would that make<br>people angry oh because people just I<br>first off I'm not supposed to say<br>anything nice about JavaScript yeah<br>usually that's the meme that you hate<br>JavaScript right yeah no javascript's a<br>beautiful language and it has a lot of<br>things that are very great for it and<br>one of them is that you can express<br>anything with very little effort and so<br>someone that's new I think it's really<br>great to be able to draw a box and move<br>a box like that's great you get to see<br>it visually I think that's one thing<br>that's really great about JavaScript is<br>that you can do that then you can go<br>okay I want to learn about at the back<br>end I want to make a request now you can<br>write a quick back end and now you're<br>starting to get familiar with<br>programming a little bit I can save this<br>to a database I can bring it down I can<br>put it on a screen and I can animate it<br>all around and I can even put it on a<br>canvas and render it in 2D or 3D so it's<br>like there's so much variety of what you<br>can do with with JavaScript it's a great<br>way to get introduced into programming<br>but then at some point you have to go<br>okay I now need to learn more about this<br>whole thing I mean yeah just like you<br>said you can make games you can do front<br>end backend for web development you can<br>even do embedded they actually have ja<br>like there's uh West boss is building<br>his Roomba or something and programming<br>it with JavaScript and react which is<br>just the world's worst language to<br>choose from bed but you can still do<br>it also we mentioned sort of in terms of<br>applications anything that relates to<br>data or machine learning python is the<br>sort of the leader there yeah that's a<br>great one it seems like python Cuda<br>stuff and C++ would be a dynamite in<br>that because a lot of these python<br>libraries I assumed are just you're just<br>smuggling in C++ underneath the hood or<br>C okay so<br>JavaScript I'll say python Python's a<br>great one too you can get quite far with<br>it but you can't write the front end so<br>what happen if you love the front end<br>right what happen if you really just<br>want to design things and you just<br>didn't know that wait okay so for that<br>JavaScript but Python's a good choice CU<br>you can't do the ml stuff in JavaScript<br>nearly as easy do we count HTML and CSS<br>as programming languages I think there's<br>like some technical definition that it<br>is if you put it if you use this certain<br>amalgamation of CSS plus HTML it<br>actually has like it can be a tour and<br>complete language yeah but I mean for<br>practical purposes no HTML is not a<br>language um you know I for me L yes the<br>touring test is a good one but for those<br>that are just not wanting to be as<br>academic if I can't write a function and<br>an if statement I don't feel like that's<br>a I don't if I can't Loop if and<br>function I don't feel like that's a good<br>that's a programming language although<br>modern HTML has a lot of features it is<br>crazy how much it has but it's more of a<br>specification than anything else I<br>specify it to be a popup I specify to<br>have this kind of like accessibility<br>this kind of look this kind you know<br>under these conditions look like this<br>transform like this move down here I<br>don't know I kind of like these popular<br>program languages in this list I like<br>JavaScript you like bash well yeah I<br>like bash a lot yeah why okay bash is<br>kind of one of those ones where it's<br>like do you really like the do you<br>really like it I like it up until I need<br>an array oh as a programming language<br>just no but I like I like the command<br>line okay that's F yeah do you like B no<br>nobody likes<br>bash do you mean I meant is so offended<br>right now means do you use it a lot yes<br>it's good to I mean it's good to learn<br>right it it's good to be comfortable on<br>the command line because it's a bit of a<br>superpower it's like I think I follow on<br>Twitter FFM Peg great<br>account like there's certain Twitter<br>accounts that are just like legit yeah<br>and uh you know I I think FFM Peg like<br>they have all these sort of parameters<br>that you can add on the command line<br>that it's like one of those cryptic<br>languages that only very few Wizards<br>understand but once you begin to slowly<br>understand and I'm only at the very sort<br>of beginning stage of that journey to<br>Mastery the powers you gain at every<br>step is like it grows exponentially it<br>feels like I mean fmeg is just this<br>incredible like what would you call<br>library system there's just the people<br>behind it must be just brilliant<br>masterminds because they have to work<br>with all these codecs with all these<br>containers with all this they the the<br>the mysteries of the media Kodak<br>Universe they're like masters of and<br>they understand compression which is<br>another Super fascinating technical uh<br>set of problems that I don't know I just<br>FFM just fills me with joy that it<br>exists but you need kind of bash type<br>Comfort command line Comfort to to to<br>work with it to really unlock its power<br>yeah I think FFM Peg is probably one of<br>the most consequential libraries of our<br>day<br>and the Twitter account is so<br>unhinged it is it's the most amazing<br>thing to see because I think F FFM Peg<br>does not get the love it deserves yeah<br>every single application OBS probably<br>FFM Peg underneath the hood all the Prof<br>everything FFM Peg underneath the hood<br>and then and yet you know they do not<br>get the love they deserve I just love it<br>I just think the best yeah I would say<br>JavaScript HTML CSS python SQL I mean<br>that is a SQL squeal is is a programming<br>language yeah it's an incredible<br>sophisticated programming language yeah<br>SE is interesting I I would have I<br>believe you can classify it as a<br>programming language it does have like<br>if you have case statements in it it's<br>pretty crazy what you can do you could<br>do functions you can do all that you<br>should stored procedures that that's how<br>you make your life hell um I will say<br>that all the top languages right there<br>are none of them are like<br>strict uh static typed languages and so<br>even typescript you can you know I don't<br>like this any and so for people that are<br>learning doing something that's much<br>more strict would be great something<br>like go rust um even I mean even CP C++<br>like anything that kind of changes your<br>perspective of types I think is really<br>helpful to kind of go through they're<br>not getting nearly as much love on this<br>most popular language list but I think<br>they're very fantastic all right well if<br>I put a gun to your head five top five<br>languages let's let's list them out<br>there there's a bright-eyed 20-year-old<br>asking you what are the top languages to<br>five languages to learn um if I were to<br>pick five languages that I think people<br>should learn or at least how about let's<br>restate it this way I'm going to say a<br>couple languages and you should at least<br>explore some of them I think you should<br>explore explore a Lucy language so uh<br>python JavaScript where there is truly<br>only one type which is a box to Value<br>which is a multivariant different types<br>underneath the hood right what you call<br>it a Lucy language a Loosey Goosey<br>language right it's a dynamic language<br>okay um and so I think it's really good<br>to explore one of those two so I'd put<br>python or JavaScript right there even<br>Lua in the bunch I think you should<br>explore a strict language uh so I'd do<br>something like rust go um I think those<br>are both really really great C++ you can<br>do C++ you can do some type eraser in<br>C++ you can do it with go as well but<br>it's for the most part that's it's a<br>great language to do that in um it can<br>get a little wild new C++ seems great<br>everyone keeps telling me new C++ is<br>great M um it has every feature you've<br>ever wanted and all the features you<br>don't want yeah exactly I mean there's<br>smart pointers there's dump pointers<br>there's all kinds of pointers there's no<br>memory leaks not an issue face guns soft<br>beds there's everything in there unless<br>you like memory leaks that it has that<br>too if you want that kind of thing it's<br>great okay how about this one languages<br>that I actually want to really learn<br>that at least sit in my curiosity bank<br>there's three languages which is going<br>to be swift Elixir o camel and then I'm<br>going to throw Odin in there just to<br>just cuz Ginger Bell is great but Elixir<br>and O camel I don't have a strong<br>function language underneath my belt<br>that's something I just genuinely lack<br>yeah I've heard incredible things about<br>Elixir about Odin about o camel<br>obviously I'm a person as you know who<br>loves lisp I have never done lisp lisp<br>could be in that category too just like<br>learn or closure I think at this point<br>is what everyone tells you to use so in<br>the case of lisp sh I don't want to<br>speak negatively about lisp but it's<br>important about like modern Community<br>what the community looks like and it<br>seems like there's an excited maybe<br>small but an excited Community around<br>Elixir Odin and ok so that helps that<br>you can post shit on Twitter that you're<br>like I accomplish this you have people<br>get excited and it's nice it's a good<br>feeling you can post like something on<br>Twitter and you'll get like a thousand<br>likes if you do something cool in Elixir<br>yeah okay like which is a pretty big<br>that's like a pretty big amount of<br>people to like a post for such a niche<br>topic programming is already a pretty<br>small topic then you get into functional<br>program that's a small Topic in a small<br>topic yeah I don't get D much if I post<br>something about emac I'll get crickets<br>if I post something if I if I proudly<br>use new of him there'd be a lot of<br>people like yeah good job because it is<br>the best editor uh yeah maybe it's just<br>hype come back to the Civil War Lex yeah<br>sometimes you have to sacrifice and go<br>from the superior editor that is emac<br>and uh choose neovim just to be popular<br>you sacrifice integrity and values and<br>quality for just popularity so AB I love<br>how you put it okay uh anyway what were<br>we talking about I like how you doing<br>this in bunches that's great right now<br>my my kind of side Honeys that I'm<br>exploring is side honey yeah side Honeys<br>right like they're not my main state<br>right now goes kind of my favorite one<br>to build a web app in like if I'm going<br>to build some sort of backend with a lot<br>of complicated logic goes just so<br>convenient but I get really frustrated<br>with its ability to express uh<br>everything that I need like if you have<br>a list a heterogeneous list a list that<br>contains two<br>types goes just really not that fun to<br>use and so I could see so the ones I'm<br>exploring is ji or Jay or the language<br>as Jonathan Blow says and zigg and both<br>of them have a lot of power to them<br>they're both very interesting they<br>definitely have foot guns in them<br>they're definitely more you know um they<br>don't take it easy on you zigg seems<br>like it's a really amazing language and<br>so does ji they're both very cool yeah<br>actually I saw uh Dave uh Plummer's<br>testing of close to 100 languages for<br>Speed and Zig came out on top yeah that<br>was a mistake I mean when I say mistake<br>I nothing against Dave plumber he's an<br>extremely talented engineer yeah it's<br>just that Zig C C++ all those languages<br>that were being tested they're all lvm<br>backends right that's the one that<br>actually turns the thing into the<br>executable part and if there's a<br>variation in speed it just means in one<br>language you didn't quite Express what<br>you're supposed to correctly like uh<br>there's the language ball test that's<br>been bouncing around on Twitter yeah Zig<br>was like sixth or seventh below I forget<br>what language is um I played around with<br>the example added the word uh no Alias<br>to the argument which means that the P<br>the piece of memory that's coming into<br>this function there's no Global pointers<br>there's nothing to it and so the<br>compiler can make these really cool uh<br>optimizations and I made it faster than<br>the C version so it just means that just<br>it's just not correctly specified as all<br>that means yeah but it's still it's<br>still exciting to me the competition<br>between Zig rust and C++ is really<br>interesting like part of is for Speed<br>part of is how easy it is to write<br>perform a code I'll say something that's<br>the reason why I think Zig is so<br>interesting comparatively to say C or<br>rust C is like the ultimate language it<br>can do anything you have pre-process or<br>macros you can do quite a bit with it<br>but it's also really difficult and it's<br>also really simple and you can learn it<br>so it's kind of its like own unique<br>beast and when you get really good at c<br>c is a magical language and people are<br>really great at it um and people speak<br>very highly of it rust is like this<br>Ultra safe language what you can do and<br>see you just can't even express in Rust<br>rust is going to be that sa the safe man<br>that holds you at night keeping you warm<br>it's going to be just the greatest but<br>somewhere in the middle lies Zig Zig has<br>optionals if you're not familiar with<br>optionals that just simply means there's<br>a value here or there's not but you<br>first have to check that before you can<br>use it so it prevents that whole null<br>pointer D referencing seg Vault problem<br>and that's not that's not available in C<br>just by default you have to kind of<br>build that thing in it is the only<br>option in Rust but Zig says hey if you<br>have a pointer you can't express it as<br>null unless if you Market that it can be<br>null there's ways around it there's like<br>other types of pointers and stuff like<br>that that can do that but for the most<br>part Zig like will give you safety for<br>the most part right so it's like a<br>little bit of safety but more like C so<br>it kind of gives you like everything you<br>kind of want in that region where it's<br>where you can express safe code and<br>unsafe code it's very easy to write it's<br>very it's very pretty or at least the<br>idea behind it is very pretty the<br>language itself is Bland but wow there's<br>Beauty and everything yeah Prime uh<br>you've uh programmed in Rust a lot what<br>do you uh what do you love about rust<br>what are the strengths what are the<br>weaknesses maybe you can speak about<br>memory management that you already<br>mentioned yeah the challenge of memory<br>management that uh several of these<br>languages address but yeah what do you<br>love about rust what I love about rust I<br>I love that it's that uh the ability to<br>free the memory that you're using is<br>directly tied to the stack so whenever<br>you create something there's a stack<br>variable or there's some amount of Stack<br>memory whether it's a pointer off to the<br>Heap a pointer and a length so you know<br>some amount of memory on the stack and<br>then some of memory on the Heap because<br>a string is not all on the stack it's<br>some on the Heap some on the stack and<br>when that stack variable goes out of<br>scope and gets cleaned up it also cleans<br>up what's on the Heap so it kind of<br>simplifies this whole idea of whoops I<br>forgot to free my memory it just does it<br>for you so it's not a garbage collector<br>which will do it sometime later it's not<br>like C where you have to call it<br>yourself it's somewhere in between now<br>there's a lot of strategies people use<br>um Arenas and all that that make that c<br>part much easier I'm just not even<br>mentioning it but it just makes it a lot<br>easier here but Russ does that really<br>beautifully and it's just like a really<br>cool idea about it and I really like<br>that and the second thing that I think<br>Russ does really like is such a good<br>thing is that mutability of something is<br>you have to specify it so you don't just<br>create a variable and then mutate it you<br>have to say this is not only a variable<br>it's a mutable variable and I think that<br>just makes clode really readable and<br>really understandable cuz anything that<br>does not have the word mute next to it<br>you know for a fact it cannot<br>change so there's some rules around that<br>but you get the general idea unlike most<br>programming languages you have to<br>explicitly state that this is going to<br>be CH this is going to be changed yeah<br>yeah that's really interesting I mean<br>it's safe it's it's trying to be and and<br>this the safety might be it's uh create<br>limitations let us consult the AI<br>overlords Russ is a blazing fast memory<br>efficient systems programming language<br>that emphasizes performance type safety<br>and concurrency<br>uh the language enforces memory safety<br>without using a garbage collector as you<br>said instead utilizing a unique quote<br>borrow Checker that tracks object<br>lifetimes at compile time this prevents<br>common programming errors like n pointer<br>D referencing and memory leaks and so on<br>yeah so you've also spoken about<br>metaprogramming um which of these<br>languages do you like for the meta<br>programming I love meta programming in<br>C++ but it's it's giant mess at least<br>when I program C++ C++ 17 standard I<br>believe it's just it's just a mess<br>especially a mess to debug yeah I I<br>would consider myself kind of a<br>metaprogramming newbie I have only<br>solved some amount of problems with it<br>uh I I'm that's kind of like what this<br>year is for is for me to really I want<br>to see where the ends can go in that so<br>I don't have a strong opinion on this<br>one uh Zig one thing I really like about<br>Zig is that the metaprogramming is also<br>the language itself so you don't have to<br>like there's not there's not an<br>alternative so with rust there's an<br>alternative when you create a macro you<br>have to do the macro syntax with Zig<br>it's just it is the thing you just<br>program it you add the word comp time if<br>you want it to be a compile time only so<br>you can do like you can create the list<br>of prime numbers at compile time in Zig<br>which is kind of an interesting unique<br>thing so you have code that executes<br>that compile time and then you can take<br>advantage of the result of it at runtime<br>so neat right like that's how I'd look<br>at it uh but again I haven't I haven't<br>used used it to the point where I feel<br>like I can super authoritatively talk<br>about it you have been undecided what<br>language are you going for this year uh<br>I'm going to keep go as my main stay my<br>two side Honeys uh G and Zig I'm going<br>to explore and try to build out a<br>service in them that can do a bunch of<br>talking to say Chad jippy and 11 labs<br>and send stuff down to client and work<br>with websockets and I want to make sure<br>that I just want to see kind of how do<br>they perform in this realm and you know<br>I may be using the language incorrectly<br>like J I'm not exactly it's not really<br>been designed for the web world I just<br>got done writing the ability to read<br>twitch chat and it required me to do<br>Berkeley sockets so if you're unfamiliar<br>with Berkeley sockets it's like the old<br>way of doing it how you do it in C so<br>you have to kind of go through the whole<br>nine yards of uh creating your own<br>connection I had to create my own<br>connection I have to read from the<br>socket then I have to parse out all the<br>IRC right like you have to kind of build<br>it from scratch there's not like a new<br>TCP connection to This Server you have<br>to be like I'm creating a socket you're<br>going to be of the ipv4 family in t TCP<br>and you're going to do you know I'm<br>going to now have to take your address<br>and go look up your address with DNS get<br>that address back and then connect to it<br>with TCP so it's a lot more manual still<br>it's a lot more raw in that area but<br>it's fun what are some epic projects<br>you've built on stream that uh jump to<br>memory my most favorite sorry for<br>interrupting you sorry I'm getting I'm<br>I'm really jazzed right now let's go<br>okay so jazzed jazz hands uh my most<br>favorite project uh was the one I did<br>last<br>year there someone built a doom aski<br>Port so you could play Doom with asky so<br>that means you could play it in your uh<br>terminal very very fun very excite so I<br>made a go program that could spawn out<br>the Doom asky then I took that doom asky<br>and I sent it to the browser so that<br>people could play Doom asky in the<br>browser but then I made it so that<br>twitch chat could control that instance<br>of Doom uh asy by piping in twitch chat<br>taking the average of the movements over<br>so much time and replaying it as if it<br>was a controller and I had a twitch chat<br>beat level one by spamming it but the<br>fun part was is I used a bunch of fun<br>encoding techniques I used like quad<br>trees to be able to take smaller amounts<br>use run length and coding try to create<br>my own compression algorithm because if<br>you're sending out a bunch of asky stuff<br>it's still pretty expensive because you<br>have to represent color color is not<br>cheap on top of it you have to represent<br>what does it look like what does the<br>asky look like well I realized you know<br>there's all these fun techniques you can<br>do for compression like the shape of the<br>asy you send down<br>is in a lot of these engines are<br>actually just proportional to the<br>Lumosity of that pixel so like you'd use<br>an eight to represent or a pound sign to<br>represent like white but black you're<br>going to want to do like a period or a<br>comma or a bar you know something<br>smaller so it's like I then developed<br>all these different compression<br>algorithms to turn a bunch of data which<br>would take you know I forget how much it<br>would take it take gigabytes upon<br>gigabytes to be able to send out to 2<br>thousands of people to all see the same<br>image at the same time to all be able to<br>interact with doom at the same time I<br>turned from gigabytes into kilobytes by<br>just trying to figure out how to like<br>make it as small as possible and send it<br>all out it was super fun absolutely had<br>a great time so you're actually sending<br>it to all the people in chat so where's<br>the that that pipe where that pipeline<br>how chat is able to<br>control the Doom thing twitch chat yeah<br>so they would go people would spam W and<br>if you said W it would hold down W for<br>150 milliseconds if the majority of<br>people during that time period said w<br>nice okay so and how are they getting<br>the input of where you are on screen so<br>originally I was going to send that<br>through twitch but twitch is like 5<br>seconds behind so that's why I piped it<br>out to a website so everybody could see<br>from my computer to the website in<br>typical uh leg was right around 70<br>milliseconds M so it's like they could<br>mostly see what was happening in that<br>short period of time it was it was<br>pretty exciting so we had a th people or<br>I had somewhere between 1,00 to 1400<br>people smashing W's and pressing f to<br>Fire and turning and we killed some<br>zombies we blew up the barrel at the<br>very end of level one to kill the Imp<br>how are you getting the W's from the<br>twit chat is there an API IRC I was<br>using IRC so just a little TCP socket<br>and then you just parse out IRC okay and<br>there's very little lag there okay yeah<br>I think it's it's a couple hundred<br>milliseconds though it's enough that it<br>actually made it a little bit difficult<br>CU people would often overturn and then<br>go forward and like Miss the door and<br>then they had to go back<br>and that's awesome it was awesome so<br>that was my favorite I think project of<br>all time just cuz it I never got to do<br>like a lot of encoding encoding is kind<br>of like you know you what do you<br>normally do okay I need to send<br>something down I don't know gzip it<br>server will just do it server just does<br>the right thing I don't need to think<br>about it so instead it's like I think<br>about it I'm going to send the right<br>thing yeah you have to think about the<br>compression yeah and there you go that's<br>some more love towards FFM Peg they have<br>to think about that a lot ultimately<br>inspired by FFM Peg and their<br>awesomeness<br>everything uh so can can you speak to<br>just the chat community in general like<br>a big part of what you do in terms of<br>streaming is the humans that are<br>communicating with you live can you uh<br>can you talk to the uh the different<br>chat communities first of all which is<br>the best chat Community uh YouTube<br>twitch or X this is where I feel bad for<br>YouTube because I do think it's<br>technically the worst but it's not<br>YouTube's fault and let me kind of<br>explain why and then I will explain why<br>you're wrong but go ahead I know you I<br>know you love YouTube but let me let me<br>explain why is that when you go on<br>Twitch you go to anyone's<br>Channel MH they have this like cultural<br>Human Centipede thing that's happening<br>where as the memes flow in all of twitch<br>kind of reacts and and morphs to all<br>those memes so every channel you go to<br>has this like same culture everyone<br>there's a lot of similar emotes and<br>everything so it's very tight-knit so<br>when I stream I get all the same jokes<br>that you would pretty much see if you<br>saw I don't know Soda Poppin or some big<br>streamer asmin gold whoever prate<br>software streaming all the same memes<br>would all flow through the exact same<br>kind of pipe and so it's a very holistic<br>kind of community so every time you're<br>making jokes you're making jokes that<br>are like in The Ether Twitter kind of<br>has that too Tech Twitter kind of has<br>like a set of jokes and so you can kind<br>of see it if the problem with Twitter<br>chat is that there's just nobody there<br>right now you know typically like just<br>put it into perspective I have somewhere<br>between um<br>somewhere between like 1,500 to 3,000 uh<br>people on Twitch somewhere between 800<br>to 2,000 on YouTube and like 50 people<br>on Twitter so it's like the the<br>difference is is massive but they all<br>kind of Twitter has that same thing<br>that's developing where there's like<br>memes that are constantly flowing<br>through it and so they're very highly<br>connected YouTube just doesn't seem to<br>have that they're just a bunch of people<br>and people go to YouTube for various<br>reasons I'm going to YouTube to learn so<br>they come in they want to learn so<br>they're not like on the meme train<br>they're not in this like cultural zeist<br>train they're just like but why would<br>you use this if statement when a switch<br>statement in this one particular case<br>and you're just like well that's not<br>what I'm trying to do here yeah you you<br>want to Captain the meme train or you<br>want to ride on the meme train yeah or<br>you just want to be able to like create<br>a culture on your chat because your<br>chat's going to be some variation of the<br>of that kind of zech I that's flowing<br>through twitch and it kind of is very<br>contiguous between X and twitch it just<br>feels really out of sync with YouTube<br>and then YouTube particularly does a bad<br>job and some people would argue a good<br>job because you can swim swim being you<br>can actually change what time stamp<br>you're at so all a sudden you'll be like<br>oh yeah you know I you know something<br>about like driving to soccer in my<br>minivan and then 20 minutes later you'll<br>be talking about Zig and someone's like<br>I personally use a whatever to drive to<br>soccer and you're like what are we<br>talking about like so YouTube is a very<br>disjointed chat as well because it<br>depends on where they're at within the<br>video swim comes from Netflix by the way<br>called Swim swim the term yeah that's<br>that's that we people said swim oh so<br>you're you're okay swimming through the<br>yeah so you're not just making up the<br>term thank you wow yeah but it's<br>probably made up and probably only 10<br>people said it Netflix and so no one's<br>going to know it and they're going to be<br>like yeah right that's not happens on<br>Netflix uh so yes going back to projects<br>what uh what projects on stream or in<br>general no you need to answer why<br>YouTube chat's the best chat well you<br>kind of convinced me okay why YouTube is<br>the best chat<br>um well I think I'm just a hater uh<br>that's that's basically what it bows<br>down to and I'm just talking shit and<br>I'm probably just like from the outside<br>shoot you know shooting in because<br>twitch is such a fun culture you know of<br>memes and so it's just fun to shoot from<br>the outside to like throw to like egg<br>the house of<br>twitch and then I just sit back on my<br>lawn chair and uh with a small YouTube<br>Community just talking shit no you're<br>you're absolutely right there is a<br>there's a real sort of sense of<br>community that twitch can can form but I<br>just like the openness of YouTube it's<br>just better at opening to the world it's<br>more<br>accessible it's easier to share it's<br>just a more established platform that's<br>all f for the<br>non uh for the open world like I can<br>send it to people that don't usually<br>watch video game streaming or that kind<br>of stuff yeah if you send a twitch link<br>they're like I don't like video games<br>and you're like well actually it's not<br>video like there there that talk happens<br>every single time you mention twitch cuz<br>twitch does have a perspective about it<br>that YouTube does not I was just on uh<br>uh Rogan's podcast and I I think it came<br>up he asked something like is Twitch<br>still a thing so that just gives you an<br>example uh and then and then Jamie uh<br>said yeah yeah it's definitely still a<br>thing it's still like growing and so on<br>and so yeah there's just a Big Slice of<br>humans that don't participate in the<br>twitch uh twitch sphere yeah I just like<br>talking shit so yeah that's a beautiful<br>answer but it's cool that you sort of<br>make it accessible on all these<br>different platforms and I have high<br>hopes for X but yeah it's feature-wise<br>it still has a lot of growing up to do<br>and and just like why do people use x<br>you typically are going there for like a<br>text based interaction you want to look<br>through so I also think they just have<br>like a user expectation change that<br>needs to happen and that that just takes<br>a while you know that's going to take a<br>little bit before people get to it I<br>think their idea of audio first is a<br>great first step where people can kind<br>of listen to it and have the phone away<br>maybe there's a lot of like changes that<br>have to happen before X can be<br>successful in land I mean X is this<br>incredible comment section just like<br>Reddit right so it's like no no you said<br>incredible that's not Reddit uh comment<br>section correct comment yeah incredibly<br>Dynamic and vibrant even if it's uh yeah<br>what is<br>the what is the technological platform<br>like how does the the interface and the<br>technology<br>shape the discourse it's fascinating<br>because X is a different style than<br>Reddit different style than like<br>Facebook different style than Instagram<br>it's interesting and all those comment<br>sections are different technologically<br>like how the sorting is done how easy it<br>is to sort of uh uh build a community<br>around it you know cuz YouTube it's not<br>really a community every single video on<br>YouTube has its own mini Community<br>you're like all talking shit on just<br>that one video but like you're not you<br>can't jump across there's not like hey<br>Bill hey GE you know there's no cross<br>talk that happens in multiple videos<br>yeah but Community is awesome I love<br>Community I love the feeling of<br>community and I guess that's what twitch<br>really provides YouTube also does have<br>it though like they have an aggregate<br>Community you know there's a lot of fun<br>comments and all that on the videos and<br>a lot of thumbs up and then you see the<br>fun discourse that happens and it's like<br>that's the community it's just only a<br>certain slice sees it I think that's<br>even more so on YouTube for live<br>streaming though all the same folks show<br>up and they talk shit they celebrate<br>they all like the the meme train arise<br>yeah okay so now what projects shape you<br>as a programmer<br>uh whether the ones you've<br>streamed or uh offline for me I don't<br>know if there's like a one project I can<br>point to but I can I can point to a<br>specific spot where I think it happens<br>and where I think you can learn a lot<br>from um any small program you write will<br>be somewhere between like a th000 to<br>5,000 lines of code I consider like a<br>pretty dang small project you can kind<br>of correlate this to any feature within<br>a larger system as well you know a<br>specific feature on a website could be a<br>thousand lines a couple thousand lines<br>there's a point in which all of your<br>choices add up and that's I typically<br>find that right around 5 to 10,000 lines<br>of code the choices you've made either<br>weigh you down or kind of free you up<br>and so it's right in that that I feel<br>like I learned the most is because I<br>love getting to that point in a project<br>or in some small part of the code base<br>because at that point I get a test a how<br>good were my initial gut decisions about<br>how I designed software but B now I need<br>to go back and think about like how am I<br>going to do testing across this in a<br>more effective way how can I scale this<br>out to 20,000 lines of code how can I do<br>all these things with what I've got or<br>do I need to kind of rethink it and I<br>find that that's really where the best<br>learning happens is that everybody has<br>probably a different number that exists<br>and as you go to each one of these<br>numbers or how well or holistic you want<br>your project to be I think that you'll<br>come up with different numbers and I<br>think that number should just get bigger<br>as you get more experienced cuz you know<br>there's like there's projects that are a<br>million lines of code but they're most<br>certainly not holistic right like every<br>part of the code base is some age at<br>some capsule of time with some sort of<br>programming style some is more<br>functional more class-based<br>more God help your soul for it's<br>pre-processor macros and C++ right like<br>there's like all these different kind of<br>things you'll find throughout time and<br>so that's why I kind of try to think<br>about it as like the feature or the<br>thing you're working on it's usually<br>about 5,000 lines is where I find that<br>things get kind of did I make good or<br>bad decisions and that's where I do all<br>my learning is right on that phase I'm<br>trying to get it to the point where I<br>should be able to shoot from the hip and<br>do 20,000 lines and not be upset about<br>it so first of all on the just enjoying<br>the thing you create part yeah about<br>there you can sit back and see all the<br>parts dancing together uh for me also<br>debugging you get to see the choices you<br>make materialized as like how easy it is<br>to debug like I'm a big proponent I<br>think You' mentioned this in the past um<br>I put a a everywhere no you're the<br>reason why I do that yeah you're like<br>the first one keep on going sorry really<br>okay uh so for me one of the joys<br>whether it's uh try catch blocks whether<br>it's aert whether it's with the testing<br>I uh I get to see the payoff of all the<br>the mind field of asserts of laid out<br>before me in my kingdom by how quickly I<br>can debug a system as it grows larger<br>and I can first of all discover errors<br>before they become real bugs and also<br>how quickly I can solve those errors and<br>that that brings me joy for me a lot of<br>the joys of programming is creating<br>powerful<br>systems<br>that don't break down that work<br>correctly that work correctly in<br>majority of the cases and they sort of<br>the stress testing the system and<br>getting all the signals from that system<br>that everything is working working<br>correctly is uh is is something that<br>fills me with joy and makes sure that<br>the system actually works so yeah that I<br>don't know if it's 5 10,000 lines of<br>code if it's Java or C++ it's Millions<br>lines of code but yeah uh in Python yeah<br>I would say 10,000 lines of code that's<br>when you first get to see the magic but<br>anyway you were saying okay so you and<br>John carac had a conversation about<br>asserts yes you talked about this idea<br>of putting asserts everywhere that<br>effectively crashed the program when you<br>you have some state in your program that<br>should not be represented and you have<br>made this Choice actively MH and so I've<br>never done that before and I know this<br>is like an old technique and I obviously<br>must be too young or too dumb to know<br>that this was a thing people did I grew<br>up in Java and I think that's probably<br>why I didn't run into this so I saw that<br>I was like I'm curious about how to use<br>asserts more and then I ran into a<br>person named yon he's the CEO and<br>creator of tiger beetle it's like the<br>world's fastest greatest Financial<br>database and it was spawned out of a<br>company that needed to do a bunch of<br>financial transactions and it's written<br>in Zig and what they do is they do<br>deterministic simulation testing and<br>they just uh use NASA's kind of<br>guarantee for creating really great<br>software so like don't use uze specify<br>your exact size of int you expect<br>everywhere all these kind of like things<br>they do to be very uh specific and one<br>of them is that every function should<br>contain two asserts whether it's<br>positive space like uh you know these<br>things should happen or negative space<br>like you should not this pointer should<br>never be null you're programming into<br>things that should never happen normally<br>you just never specify that you'd never<br>think about that so every single<br>function everywhere has all these<br>asserts and these asserts run both in<br>production and in testing they're always<br>on and then they did take determination<br>simulation test deterministic simulation<br>testing and run like 200 years of just<br>random data just complete slop going<br>through the system and seeing how far it<br>goes and when an assert happens they're<br>like here's the input that caused it<br>here's every last little bit that<br>happened and now you can identify where<br>this went wrong and it was so cool so<br>between you John carac and yon that's<br>where I like okay I got a really and<br>NASA I'll throw NASA Bon as well NASA<br>can join in on that one uh I was like<br>okay I want to try this and I did try it<br>I built uh kind of like this big reverse<br>proxy for me trying to do some game<br>development stuff and I just went Ham on<br>the asserts and then I built a whole<br>simulation testing thing that could do<br>everything deterministically so you know<br>even the result of requests would all<br>come in specific orders and I found a<br>bunch of bugs that I just would never<br>have found and then I did it for a game<br>I was making I found some bugs where my<br>cursor went off screen it would cause<br>all these different problems cuz I just<br>never tested them it it's super fun and<br>it's like a really great way to program<br>yeah I think it's a skill set you go<br>over time it's it's not just that you<br>have to specify the preconditions like<br>every everything that has to be<br>true it's also adding things that are<br>like you might not even think about you<br>have to sort of anticipate really weird<br>things and if you add asserts especially<br>in complicated functions or in<br>complicated classes<br>that uh are able to catch really weird<br>things that's going to save you so many<br>headaches and it's going to help you<br>learn about your own<br>code this is one of the things I think<br>it was uh Jonathan Blow that either in<br>conversation with you or was it uh in<br>presentation he said that when he's<br>starting in a project he usually doesn't<br>know what like how to implement<br>it like what how it's going to work uh<br>and I think he was saying that he wants<br>a programming language this might have<br>been a criticism of C++ I'm not sure<br>where he wants to program a language<br>that makes it um as painless as possible<br>for him to not know what he's doing how<br>he's going to implement it and to<br>quickly get to a place where he figures<br>it out<br>I think there's a fundamental like part<br>of programming is building stuff while<br>not really<br>knowing what the next thing you're doing<br>is you kind of have a loose design maybe<br>a strict design but really you're<br>solving puzzles they're not it is a dark<br>room in a in a fundamental sense and<br>there you have to anticipate the kind of<br>weirdnesses that might<br>emerge while not really knowing<br>everything just this this full like fog<br>fog of<br>War um and there that's a real skill to<br>anticipate the kind of uh issues that<br>might arise and put ass SE on top of<br>them and it's also like spiritually for<br>me uh been a really nice way of<br>programming of building of living life<br>is having like very<br>strict asserts that say like you're<br>going to fix this problem if it ever<br>arises you can't just look the other way<br>like this idea of treating warnings as<br>errors like make sure your code compiles<br>without any warnings that was a big leap<br>for me it's like but there's so many of<br>them and I it's not really that<br>important it's like no no no warnings<br>like make sure you treat every single<br>problem uh even like fuzzy problems<br>seriously because that's actually<br>longterm is going to create code that's<br>much easier to work with much more fun<br>to work with much more robust resilient<br>to all kinds of weirdnesses that kind of<br>stuff so it's a different way of<br>approaching coding probably more NASA<br>like versus like web programming style<br>but yeah it it has made programming for<br>me personally much more fun cuz one of<br>the most painful things about<br>programming is creating when you get<br>past 10,000 20,000 lines of code and you<br>have to find a<br>bug and that bug can take hours it could<br>take days to find and that's torture<br>yeah when your system gets sufficiently<br>large some of these bugs are just they<br>are very difficult I you know bless<br>anyone's Soul that's working on million<br>line code bases because it does it just<br>I I can't tell you how many times I've<br>spent multiple days just trying to<br>figure out the root cause of the bug not<br>even the fix just like why does this<br>happen and that's hard so I love that I<br>just love the asserts because I'm not<br>good at them I can see it's definitely a<br>skill that I don't I don't put into<br>practice constantly which means it's<br>just not like a muscle memory type thing<br>MH and so it's just one of those things<br>I just love it's just it's such a<br>fascinating way to approach a problem uh<br>because I would have never thought you<br>know what I'm going to do if I'm wrong<br>I'm going to crash this thing I'm going<br>to crash it right here because I should<br>never be wrong but instead you're like<br>oh actually that makes perfect sense I<br>should crash this thing I've done<br>something terribly wrong here why would<br>this ever exist and then you're like<br>this is going to solve a whole class of<br>problems yeah and especially if it's in<br>production it's like well user is going<br>to see this crash it's like yeah well<br>you should minimize the number of times<br>any user ever sees the crash not by like<br>having a nice blue screen or whatever<br>the fuck but like actually stopping<br>everything and that's going to be uh and<br>that's going to create an incentive for<br>you to never have that happen you're<br>actually going to put in the time to<br>make sure it never happens and the nice<br>part is like with the web and all that<br>you can always pop up something and say<br>hey things have gone very very wrong or<br>unable to recover you can like give them<br>a nice message and then log it off so<br>you can see it and then measure how<br>often are you doing it you know I I<br>understand that there's a bit of<br>interestingness to a uh to a web project<br>like do you want to always crash a<br>server there's a bit of a gamble if you<br>release a bad version and you crash all<br>your servers constantly you know like<br>that's a that's a pain you're going to<br>have to accept I think this is more<br>applicable for uh single systems like<br>robots and so on you have struggled with<br>ADHD I think uh a lot of people are<br>really inspired by the fact that you're<br>able to be productive Ive and<br>flourish uh while having ADHD how' you<br>overcome it well there's a lot of things<br>that ADHD affects and<br>so I'll start with some of the easiest<br>things because there's like directly<br>applicable than like these kind of<br>collateral damage applicable things that<br>happen so one thing that has really<br>helped me with ADHD is maturity I think<br>that's just like just a thing that<br>everyone needs more of meaning that I<br>found myself getting so Wiggly and so<br>out of control when I would try to sit<br>down and read and I just I just couldn't<br>handle it I just felt like I'd read a<br>page and didn't read anything uh the<br>part of me that just went oh man gosh I<br>just can't even do this I had to just<br>simply quit listening to it and said no<br>I'm rereading this page I'm re I<br>remember reading some pages in college<br>like 18 times in a row just like I'm<br>going to force myself to just do this<br>the correct way and so there's an aspect<br>of maturity that really helps no matter<br>what I will do the thing I'm going to do<br>and I'm going to do it well and maybe it<br>takes me a lot longer and that's okay<br>that's not the point of it it's that I'm<br>doing it and that's the point and so<br>that's kind of like one thing I think<br>just generally helps and it ADHD no ADHD<br>you know the resilience emotional<br>resilience is just like a really<br>important aspect that just helps and so<br>I think that has been a large part that<br>really helps me um there's things that I<br>still obviously struggle with like it's<br>clear where I'm really bad at stuff and<br>just trying to like think through all<br>the different things that I'm bad at<br>there's more things I'm bad at that I'm<br>good at and so programming obviously has<br>something that just allows me to remain<br>focused and it's like a strength of mine<br>and so I started off where I could just<br>do it for a little bit and then just<br>through kind of that emotional<br>resilience I was able to start doing it<br>more and more and so now I can just do<br>it for like 10 12 15 hours at a time and<br>I absolutely love it and so it's it's<br>become kind of like a joy it's like<br>playing a musical I'm really into it but<br>then if it came down to hey you need to<br>go schedule your own you know dentistry<br>and go do all these other things or make<br>sure the kids have this type of stuff<br>ready for you know the meals you need to<br>pack throughout the week<br>I'm historically very bad at that and<br>will probably uh continue to be very bad<br>at that and so I must say that one of<br>the reasons why I excel so much is<br>because I also have a wife who is so<br>good to me and she helps clear out a lot<br>of the things in my life that cause a<br>lot of like me kind of getting<br>snowballed into a weird spot where I'm<br>just like distracted getting nothing<br>done and so she's really helped me so<br>it' be foolish of me to claim that I've<br>defeated DHD by myself but<br>instead I find that the places that I<br>can really control I've done a very good<br>job at and the things that I obviously<br>need to do much better at my wife has<br>helped me a whole bunch and so I've kind<br>of cheated maybe I found a cheat code<br>loving wife but that has been the thing<br>that has really helped you you said a<br>lot of interesting things so on the on<br>the reading and the for me it's also<br>audiobook side I do uh the same thing<br>and I've gotten much better at it which<br>is like you know I tune out mentally and<br>I you know I yeah there's you know read<br>a page and you don't understand anything<br>on the P you you didn't actually read it<br>and yeah you I I forced myself to just<br>uh reread it or relisten to in the audio<br>book which is much more common problem<br>for me now uh and forcing myself to<br>really pay attention cuz I I listen to<br>audiobooks often when I run and it's so<br>easy to just tune out yeah it's a skill<br>like I didn't realize how much of a<br>skill listening to an audiobook is<br>especially when there's other sensory<br>inputs like when you run so I have to<br>force myself to like really pay<br>attention to every single word and if I<br>don't like tune out and don't remember<br>what I just listened to in the past 30<br>seconds I force myself to relisten to it<br>and uh sometimes that means like five<br>times until like it's like punishing<br>myself to like you're going to listen to<br>this boring shit over and over until you<br>get good at that literal skill of<br>like zoom in and you're like yeah<br>there's people they're like doing stuff<br>there's nature doesn't matter you're<br>listening to every single word and<br>loading it in and trying to stay focused<br>even though there's just so many<br>distractions all around you yeah it's<br>definitely a learn skill and it takes a<br>lot of time and when I say you know oh I<br>was able to do from here to here I'm<br>speaking over the course of like 5 years<br>of doing this every day like it's not<br>some small there's no you could the nice<br>part about that decision though is you<br>can make that decision today you can<br>make it right now you're going to be<br>like from here on out I'll never make<br>that mistake again I will say I'm going<br>to read 50 pages I will sit down and<br>read 50 pages and when I get distracted<br>I'll go back to the last place I<br>remember and I'll start again and like<br>that's a decision you can make that's a<br>mature you know non-emotional decision<br>to make and you can do that it just may<br>be really painful for the first couple<br>years of making said decisions and then<br>it gets easier and then gets easier and<br>then it just it becomes more natural to<br>change yourself yeah and with with every<br>media with every platform I think it's<br>like a new<br>skill uh for me like using social media<br>has been that just like I end up like<br>Doom scrolling yeah too easily on<br>platforms so and one solution is not to<br>look at all which is kind of what I lean<br>on mostly these days but I feel like I<br>should be able to check just read H okay<br>feel a thing learn a thing and then put<br>it down yeah versus<br>like you this glazed look over your eye<br>and you're not really paying attention<br>you more and you're dead inside and you<br>feel horrible afterwards I don't<br>understand um the horrible afterwards is<br>real serious i' I've definitely I can<br>100% notice that I am a more anxious<br>person the more time I spend scrolling<br>yeah yeah I can just feel it it's like<br>something inside of me that's kind of I<br>don't know how to say it other than it<br>like wants to get out but I don't really<br>know what that is it's it's not anger<br>but it's not you know it's it's very<br>anxious it's like the opposite of the<br>feeling I have when I wake up in the<br>morning and I'm feeling good and I look<br>out in nature and like look at the Sun<br>and<br>just and it's like a bird chirping and<br>this kind of thing like scrolling<br>through social media even if it's like<br>super positive stuff or whatever it's<br>still not the same feeling as the bird<br>chirping bird chirping on Instagram is a<br>different bird chirping than in real<br>life like cuz bird chirping on Instagram<br>I'll start swiping until like there's<br>like Demons of different types fighting<br>inside my head and then I you know yeah<br>different anxiety insecurity whatever<br>the hell just the mixture of Chaos<br>versus the bird chirping in real life<br>that that's beautiful but again that's<br>the same thing is with with the audio<br>book it boils down to like man these<br>people that talk about meditation I<br>think that's probably they're on to<br>something cuz like the that's what<br>that's what it is is be able to like<br>Focus uh calmly and deliberately on a<br>thing whether it's reading or Audi book<br>or<br>existence when they sort of observe the<br>breath you're able to silent out<br>everything else remove everything else<br>from Focus yeah that's a skill I heard<br>it put really beautifully which is that<br>uh we in America really have<br>misunderstood Liberty because we<br>typically have Liberty as just the<br>freedom to do whatever you want and the<br>argument was that it's not the freedom<br>to do whatever you want it's the freedom<br>to be able to do what you will and how<br>often is what you you actually want to<br>do you don't do cuz you get trapped<br>doing something that you've convinced<br>yourself in this quick moment you want<br>to do and so it's like I want Liberty I<br>want the ability to control my energy<br>and to be able to like do the thing I<br>want to do not to get distracted and<br>destroyed in all the millions of<br>distractions and some of us get you know<br>handed a worse deck of cards some of us<br>get a better deck of cards but I don't<br>think there's anybody that doesn't<br>struggle with it in the technological<br>age yeah that's the skill well what can<br>you say to the the the skill of<br>achieving focus in programming like do<br>you do you have a process of how<br>you sit down and try to sort of approach<br>a problem so all the<br>different uh not just distractions but<br>the challenges of starting a project of<br>thinking through like the design how to<br>maintain like real Focus CU it's really<br>difficult intellectual Endeavor I guess<br>at this point I'm lucky uh but when I<br>first started I can remember that every<br>last part of programming I had to go<br>look up I had to go read I had side<br>quests at all time like every step was a<br>side quest why is my screen blinking<br>when I'm trying to render this thing out<br>oh I didn't know about double buffering<br>why is this happening how do I even<br>write to the screen how do you know like<br>everything was a question I had more<br>questions than answers and so I<br>constantly had this like the problem of<br>side quests and I find that to be a very<br>exhausting thing but as I learned my<br>instrument very very well I don't have<br>as many side quests I become more and<br>more able to just focus on the thing I<br>want to do and I find that to be<br>something that is just super super<br>useful so when I say I'm kind of Lucky<br>meaning that I've spent so much of my<br>life preparing for this moment that now<br>when I have the opportunity to do<br>something I can just do that thing and I<br>don't like I can be just on an airplane<br>and I can just program for hours I don't<br>have to look up a single thing I don't<br>have to do anything I don't even have to<br>test the code I can write a thousand<br>lines of code on an airplane and I'm<br>very confident that it's going to be 98%<br>pretty dang good<br>and I'm very happy about that because<br>that allows me just to be in the moment<br>solving the problem I'm trying to solve<br>then I have 100% of my brain power<br>solving a problem and this is why also<br>it's the same reason why I recommend<br>learning how to type and learning your<br>editor so well you don't even have to<br>think about the action because the<br>people that have to even if you just<br>look down that's still mental processing<br>power you have to spend looking at a<br>keyboard in which you already know where<br>the key is like you do you know at this<br>point if you've been typing for<br>thousands of hours you know where the<br>key is just just stop looking down<br>you'll learn really quickly and so it's<br>like this thing where it's like I'm not<br>going to spend all that time and all<br>that mental effort like looking up the<br>thing I'm going to just memorize you<br>know I'm just going to get it in me and<br>then I can go fast and it feels good and<br>so that's how I kind of defeat that it's<br>because now I get to do something where<br>it's like there's no more questions it's<br>now me just expressing myself into this<br>medium and it feels really good I'm sure<br>there's still like things that pull at<br>you like Curiosities distraction like I<br>wonder how you know uh anytime I guess<br>you have access to the internet you're<br>going to like get Twitter's a big one on<br>that one yeah you're going to get<br>curious about stuff yeah including I<br>guess you're speaking about everything<br>in the editor optimized but you're okay<br>you can always improve stuff you can<br>always find better sort plugins and<br>macros and oh let me you know what this<br>thing that took uh this paino I just<br>found this tiny paino let me spend the<br>next 5 days creating a plug-in for my<br>editor or whatever the fuck uh to uh<br>remove that one pain point when you<br>should have just kept going uh as<br>supposed to take in the side quest so I<br>have a rule yeah which is I do not edit<br>my RC other than some kind of<br>cataclysmic thing like someone updates a<br>plugin I didn't know they updated now<br>there's like a hard error in my editor<br>and I have to like move forward um but I<br>have a rule where I will edit my RC my<br>neovim RC or anything once a year<br>something that bothers me I I will write<br>it down I'll remember it I'll be like<br>okay I want to change that but I will<br>just not go back to it now every now and<br>then I I'll I'll break that rule if I<br>know like oh I want a new remap to be<br>able to do this one command and that<br>takes like literally 13 seconds like<br>copy paste do this b b done okay I have<br>this new remap it made perfect sense in<br>this situation but I don't go plug-in<br>exploring I don't try to solve every<br>problem I don't want a perfect editor<br>because that is a Pursuit that will<br>never stop I just go this is good good<br>breakpoint I won't do it again so I<br>spent last month I probably spent 100<br>hours just like editing every possible<br>thing I could about how I start up my<br>system MH and make I can have a computer<br>from Z to 60 in almost no time now<br>everything the way I exactly want it<br>neovim everything all perfectly set up<br>happy enough I'm not going to touch that<br>system again maybe I'll touch it next<br>year maybe I'll take a year off you know<br>it's just I'm fine with that I'm fine<br>with not being perfect all right 0 to 60<br>let's talk about the perfect<br>setup uh what's your uh perfect<br>programming setup keyboard operating<br>system humies screens chair all right I<br>like all these ID let's go so keyboard<br>you're using my favorite keyboard right<br>there the Kinesis Advantage uh save my<br>career beautiful keyboard uh concavity<br>and thumb clusters are just so important<br>because if you really think about it<br>especially if you're using query when<br>you're pressing the symbols like on a<br>standard key you're just doing this the<br>whole time backspace enter symbols like<br>you're just doing this and just screws<br>up your wrist constantly doing this and<br>this one you're constantly doing like<br>control and shift it's just as like<br>messing you up so it's just like right<br>here that's so much nicer in life so<br>keyboard most important I'd say get that<br>one done for people who don't know<br>Kinesis keyboard I I think the the thing<br>that you experience the most is exactly<br>the thing you just said now which is the<br>backspace is really easy to press yeah<br>versus what it is on normal keyboards so<br>backspace in general symbolizes like<br>you're deleting a thing<br>it symbolizes a mistake not symbolizes<br>it usually means a mistake and so uh not<br>only did you just make a mistake in what<br>you were typing you also have to take a<br>physically painful action annoying<br>action yeah to to to to fix that mistake<br>and for most of us we make a lot of<br>mistakes so uh Kinesis just makes it<br>Pleasant and fast and easy physically to<br>correct the mistake I that's probably<br>for me the number one reason of Kinesis<br>everything else yeah super plus with the<br>mackerels and the positioning the<br>concavity like you mentioned but there<br>mistakes are Pleasant yeah I'm on that<br>team that's why so that's why I love<br>that so that's I would say that's one of<br>the most important things the next thing<br>I find to be very very important is that<br>one monitor I'm a one monitor kind of<br>guy what really so when I program when I<br>do anything now when I stream I<br>obviously have a second computer that<br>runs the stream cuz you know I sometimes<br>crash my computer I have to restart it<br>whatever so I do have a second screen<br>there that that I put stuff up but most<br>of the time you'll notice that even when<br>I'm streaming uh you've been there I<br>have to physically switch to the<br>streaming chat channel for me to read it<br>and that's because I'm operating off of<br>one screen and so I have this whole<br>style in which I like to navigate<br>inspired by Starcraft is that I believe<br>in the press one key go where you want<br>to be mentality and so everything about<br>my setup is press one key so when I want<br>to go to Twitch chat alt two twitch chat<br>when I go want to go to my browser alt<br>one that's my browser alt three that's<br>where I go to my programming that's<br>power finger obviously a big middle<br>finger right there just Smash It Down uh<br>alt six is going to be gimp so my ganu<br>image manipulation program so if I want<br>to draw I go there when I used to have<br>slack it was all five if I have a spare<br>terminal where I need to run some extra<br>things that's alt four I had all these<br>kind of everything is perfectly mapped<br>out to single key and then when it comes<br>down to using say t-mo I have all my<br>terminals into one single terminal and<br>now I'm able to kind of switch between<br>there uh prefix one goes to my Vim<br>editor whatever project I'm in it's<br>always the first t-mo T tab if you will<br>I'm not sure they call it a session but<br>not sure how to describe it if you're<br>not familiar with t-mo a tab second one<br>is like my spare terminal third one is<br>my long running process terminal my<br>fourth one is a long running process<br>terminal so I have it all set up so<br>every project I go to automatically<br>spawns Session One Vim session two spare<br>terminal session three will also open it<br>so it's like everything's just r at Rock<br>m everything has been optimized to where<br>I do that if I want to go to a project<br>it's crlf in any terminal will bring up<br>a fuzzy find list of every one of my<br>folders on my operating system in which<br>I can go to just a couple keystrokes and<br>boom I'm in that one now and so it's<br>like very oriented to find where I need<br>to be as quickly as possible via<br>keyboard via keyboard then in Vim I<br>developed a plugin called Harpoon which<br>is I press one button and I can uh pin<br>one of the files to like a temporary<br>buffer I think a projectile is<br>potentially close to this in emac I<br>can't remember if projectile I think<br>projectile is closer to uh my sessioning<br>script anyways uh so now I can I have<br>four pinned files in which I can go to<br>any of those pinned files with just a<br>single keystroke and so now it's just<br>like cuz every time you develop a<br>feature usually you have like three<br>files you're kind of primarily working<br>in and that can fuzzy fine for the other<br>files and that's that but usually I just<br>have like these three power files and<br>I'm always swapping in between and so<br>it's like now everything is just I want<br>to go to the browser that's one press I<br>want to go to my workstation that's one<br>press I want to go to a specific folder<br>I need to change folders sometimes you<br>work between two different um projects<br>so in t-mo that's prefix capital L will<br>swap between your last two so I have<br>alternate projects I can even swap<br>between projects and pretty much one key<br>so it's just like d d d just trying to<br>optimize it so I don't think as much<br>because I think search fatigue is a<br>massive fail where you have to look for<br>like when I see people on a Mac do this<br>and then explode all the that anxiety<br>like why are youing your eyballs toar<br>what want to do like make it into aess<br>and never about it again ever you're<br>making me think a lot whether I can live<br>with your system whether it's better<br>because it feels better at least<br>intellectually feels better it may not<br>be great for some people there's a few<br>profound things you said which is like<br>really what<br>you're the the the number of Windows or<br>tasks you're switching between whether<br>it's programming the number of files<br>you're working on is small yeah any one<br>time at any one like space of like 20<br>minutes or something like that so okay<br>that's that's a profound truth sometimes<br>we think like oh I need the full freedom<br>to search but you don't you usually work<br>on a very small slice but I guess the<br>trade-off there like I always have three<br>monitors not not when I'm traveling but<br>my my happy place is three monitors it's<br>like do you really need all of them to<br>be present there so you're turning your<br>head now the the monitors I have is two<br>vertical ones okay which is just better<br>for certain kinds of content ver I mean<br>they're positioned vertically so you can<br>read you can use your eyes to scan<br>quickly interesting so I don't even do<br>that I even have it so zoomed in that I<br>probably only have like maybe 25 lines<br>of code at any one time on my 27 inch<br>monitor yeah I think that's<br>okay I think I feel fundamentally<br>constrained when I can't see more cuz<br>your your eyes are just good at jumping<br>like okay like you could like why not<br>search why not press a couple keystrokes<br>control U control D jump down by up and<br>up and down by half page because the ape<br>visual system was designed to like<br>you're loading in a lot of information<br>like what if every time you have to<br>investigate this table what's on this<br>table you have to press a<br>keystroke you you could develop the<br>skill set that integrates that<br>information but like it's really there<br>is an effective thing where if you have<br>a sheet of paper like this and I'm<br>looking at it my eyes will be able to uh<br>load in the structure of the<br>information the the topics of the<br>information like you just can do it<br>faster I think there's a big cost<br>because you you know it's an extra<br>monitor but there is some stuff that's<br>vertical when vertically positioned code<br>see code is an iffy one cuz code you<br>really you 25 lines at a time I think<br>you can do a<br>lot this is more for like articles and<br>especially with visual information in<br>them or documentation you can just jump<br>faster but I'm trying to as you were<br>speaking uh so eloquently I was like<br>wondering am I just<br>like deceiving myself that I need that<br>can I just keyboard shortcut ify<br>everything and just have everything on<br>one monitor that's something I should<br>probably try cuz I'm a big proponent of<br>just automating everything with the<br>keyboard because you could just move<br>really really fast you don't have to<br>think uh one of my you know cuz I also<br>do um creative stuff like uh whether<br>it's recording music or um video editing<br>it's it's hard you know some of these<br>programs don't make it super easy for<br>you on windows with auto hotkey you can<br>do quite a lot but still there's<br>limitations on how much you can do with<br>the keyboard so that's it really is a<br>pain has to have to use the mouse but<br>man you're really making me think it's<br>you know the even the text one with the<br>reading one I like fundamentally I think<br>I agree with you that you can you can<br>see a lot more and you can kind of look<br>up and down and see those two things and<br>probably In Articles or things like that<br>I could you know if there's like a graph<br>down here that's really big that take up<br>your whole screen plus text I could see<br>why that would be very beneficial to<br>zoom out to be able to have all that<br>information but for me I can only look<br>at like a square inch like really that's<br>all my eyes can actually focus on so<br>when I'm reading I'm here then I have to<br>like structurally try to pattern match<br>what I think the information looks like<br>then I have to start reading it so I'm<br>not exactly sure if I actually get any<br>real benefit of having a lot of stuff on<br>screen as opposed to I can relax my eyes<br>so much I don't even have to focus the<br>words are so big like I actually program<br>pretty zoomed in um my text is bigger<br>than this when I when I program and so<br>it's it's just that it's so comfortable<br>I don't even have to exert any effort to<br>read the code but you have to kind of<br>train your brain to know that you can<br>navigate in the like spatially using<br>keys yeah neovin by the way oh maybe it<br>has everything to do with neovim okay<br>all right and then neovim is obviously<br>the next big one I love neovim uh reason<br>being is that I think you can make all<br>the arguments you want about which<br>editor is the best I do not think you<br>can make an argument that Vim motions<br>aren't Superior here we go can you<br>explain Vim motions what is this so Neo<br>Vim is a old school editor Neo Vim it's<br>a modern take on old school editor yeah<br>and um<br>what's<br>E5 what like what does it take to work<br>with Neo Vim okay uh I thought you were<br>talking about a Vim motion there that's<br>how you know that you know that I know<br>but you know that Meme that's just like<br>hey Jarvis can I tell you about Vim<br>motions because they can't fit anything<br>else in their head because they only<br>have Vim motions you said el5 like<br>explain it like I'm five but in my head<br>it's like okay e is jump to the end of<br>the word L's one more like dude I'm so<br>like broke I'm like okay V MO whens um<br>yeah so you can think of it like this is<br>that Vim has a language to describe<br>movements in text MH because its primary<br>mode of operation is manipulating or<br>editing text so it is a well thought<br>through set of movements deleting<br>yanking pasting copying all that kind of<br>stuff that goes in motions that are<br>optimize for working with pretty much<br>code good example say you have three<br>lines of code you want to delete if<br>you're in vs code take your little<br>beautiful Mouse highlight those things<br>press the backspace that's lovely your<br>hand left the keyboard very simple to do<br>though it's very beginner friendly uh I<br>was a huge Vim hater by the way so I<br>just want you to know that before we go<br>into this I was probably the biggest Vim<br>hater if there was an a like Saul to<br>Apostle Paul I am like the Saul to<br>Apostle Paul of Vim just so you you see<br>how big the Gap was y or you can do<br>something that's like I don't know what<br>the vs code shortcut is but I'm sure<br>there's some keys you can press to<br>delete the current line you're on delete<br>delete delete right you can just do that<br>in Vim I can go dap delete around<br>paragraph all contiguous code in that<br>thing I'm going to delete so D then I<br>can choose my motion I want to take AP<br>around paragraph or maybe I want a d f<br>mean jump up to the next character that<br>matches the next character I'm going to<br>press so DF opening parentheses will<br>delete everything from your cursor up to<br>the first opening parentheses so you get<br>to describe your Motion in these little<br>keystrokes and as you get really good<br>you know you've seen people that can<br>Master for forite it's the same thing<br>with mastering Vim motions when you get<br>so good you no longer think about each<br>individual movement instead you're just<br>like get rid of the paragraph jump here<br>jump this highlight this yank this do<br>this you know it becomes so fast that<br>you can superiorly edit text at a very<br>fast rate and there comes a point where<br>when you know your language really well<br>you know the problem you're really<br>working on really well where editing<br>text and getting code out actually<br>becomes one of the many bottlenecks<br>people always talk about well most of<br>the time I think most of the time I'm<br>not thinking I'm programming I know what<br>I want to do do I want to go as fast as<br>possible cuz I've been just doing it for<br>so long and I'm so familiar with kind of<br>the general space that it becomes a huge<br>problem for me I cannot tell you how<br>many times that I've been purely<br>bottlenecked by the fact that I just<br>can't type fast enough I just need to<br>get the I just need to get it out of my<br>head onto the you know onto the text<br>editor and so that's why I think Vim<br>motions are superior in all aspects keep<br>your hands on the keyboard on the home<br>row and can manipulate text in very wide<br>and fast ways oh so this is not just<br>about writing text this is about<br>modifying text it's primarily about mod<br>ifying text yes and I'm sure that most<br>editors including emac including vs code<br>can do all those same things but there<br>is something they just don't encourage<br>you to discover those things yeah that's<br>like an important thing about a lot of<br>technologies that and L programming<br>languages that a lot of them can do a<br>lot of the stuff yeah but it's something<br>about whether it's the community or the<br>style of the language or anything like<br>this that encourages you to not be lazy<br>in the beginning and learn the fast way<br>to uh to edit text in in this particular<br>example yeah how to use the keyboard<br>that that's a fascinating sort of just<br>reality of how technology is used you<br>want to be encouraged to find the fast<br>thing as quickly as possible so that<br>long term it's efficient and fun to use<br>it takes a long time for dividends like<br>a long time but on top of that notice I<br>didn't say Vim I'm not saying go use Vim<br>I'm saying Vim motions um let me give<br>you one more example okay I'm a big fan<br>okay let's say you have a line that that<br>contains some some variable some<br>function you're calling something that<br>takes in a string and you need to do<br>that again so you you you would<br>typically copy that line you paste that<br>line below you'd go into the string and<br>You' change the string let's say it's<br>calling some sort of configuration you<br>need to call it three times with three<br>different configuring strings in Vim I<br>can I like to do shift V to highlight<br>the whole line then y some people do y y<br>but I don't like to do double ones I<br>like be able to do two different fingers<br>because you can do that way faster than<br>one finger twice it's just a little<br>optimization for me because you can't<br>press that as fast so anyways very<br>optimized in my Approach so I yank the<br>line past the line CI double quotes will<br>delete everything inside the first<br>occurring string then I can type the<br>string Escape save and so it's like so<br>optimized that I can just jump so fast<br>in between that whereas the copying and<br>pasting line is probably the same speed<br>but the navigating to the string<br>deleting what's currently in the string<br>and then you know like that's such a<br>fast motion in vim and I just do that<br>all the time to backtrack really dumb<br>question uh CI what's the difference<br>between typing the letters and using the<br>letters to navigate and that how do you<br>switch between the two modes okay so<br>insert mode means that you're just<br>putting in text Y and then uh normal<br>mode means that you're moving your<br>cursor and how do you switch between the<br>two uh Escape esape goes from insert<br>mode into normal mode and uh to go into<br>insert mode press I to take your current<br>cursor and go to the beginning a to go<br>to the end of the your cursor capital A<br>to go to the end of the line capital I<br>to go to the beginning line o to put a<br>new line below and then put your cursor<br>at the proper intented for the language<br>shift o to shift your current line down<br>and then put a new line in like you can<br>see there there's like a pressing escape<br>a lot yeah I mapped mine I do control c<br>control- c does the same thing except<br>for in one Edge case people hate that I<br>got used to it just due to the fact that<br>I was using intellig and I really hate<br>pressing the Escape key so I just got<br>used to pressing so that seems like a<br>essential thing to do if you're using<br>neovim to map escape to something cap<br>lock would be like your standard goto oh<br>yeah I map it too cool I got you yeah so<br>then then it's just really easy to press<br>and boom boom boom not a big deal at all<br>uh but yeah I think that if you're<br>willing to learn it the emotions are<br>superior but if you're not willing to<br>learn it then they're not Superior you<br>should just not do it right if you're<br>willing to endure pain it's good if<br>you're not it's it's actually way worse<br>it's aund times worse right so if you<br>like pay use new of him totally you're<br>totally now you get it if you like Joy<br>you use emac so oh oh sorry sorry did<br>emac ever get a good text editor I know<br>they're a great operating system but I<br>never caught up if they got a good text<br>editor operating system I I think you've<br>been miseducated my friend so at least<br>30 minutes on emac versus neovim is what<br>Reddit um requested have you actually<br>used emac in order to be able to talk so<br>much shit or no I used it for a year you<br>used it for a year yeah yeah Doom Max<br>space Max and regular emac but you don't<br>know lisp so you did you really use it I<br>I kind of hacked my way through kind of<br>like okay so this is how the configure<br>you know like you can kind of get your<br>way through and do all that so you<br>recommend to sort of mastering you of<br>him and really learn the depths of it<br>but emac is okay to just kind of use<br>before making a judgment I think I think<br>everybody you got me on that one yeah no<br>uh and what's new of been written is Lua<br>yeah so Lu would be the configuration<br>language but you have uh it's written in<br>C but you have Lua for and L is just a<br>dead simple language anyone can program<br>Lua I actually don't know why I think<br>it's because my love for lisp that I<br>went with emac I think you just choose a<br>path and you walk down that path mhm and<br>uh because there's just such a vibrant<br>intense battle between the two<br>communities you just start fighting just<br>because everybody else is fighting and<br>then one day you're like an old Warrior<br>like on a horse and you're wondering<br>what what was this all for<br>and uh I mean it's it's quite sad in all<br>seriousness that I haven't to this day<br>tried NE ofm it's uh I think because<br>there is a learning curve there's a<br>learning curve to a lot of these editors<br>yeah to really like to really learn it<br>to really learn it and I think there<br>this is some of the criticism of maybe<br>vs code or sublime or Adam but that it's<br>so easy to not learn it to just kind of<br>half-ass use it and there is is a big uh<br>benefit to having editors that like<br>force you to have some learning curve<br>where you like take the<br>art the the science the procedure of<br>editing seriously CU like you spend so<br>much time in it you might as well like<br>learn like how to use the the thing my<br>big takeaway really like what I'm trying<br>to say with all these words is that I<br>honestly don't actually think that the<br>editor obviously does not make the<br>programmer but I think it says a lot<br>about your character as a programmer if<br>if you don't know how to use your editor<br>well there's something about a person<br>who's willing to commit their life to<br>programming and spending<br>literally 50,000 hours doing an activity<br>over the course of their lifetime and<br>never take the time to learn their<br>editor through and through it just seems<br>strange like right you'd never see that<br>in another world where people would be<br>able to build something or do something<br>and just completely forget how these<br>things work and only just focus on one<br>part of like their craft and so to me<br>it's just like it doesn't matter how you<br>use it I want to see the person that<br>just knows how to use it and they know<br>how to use it well when there's a<br>problem they can say why the problem<br>exists and then go and fix the problem<br>to me that's like there you go you've<br>done it you now know your tool go forth<br>and Conquer with said tool especially<br>for tools you use a lot you have to look<br>at like your whole life your life<br>whatever if you're a developer or<br>anything like what is the thing you do a<br>lot meetings yeah<br>yeah I mean sorry keep going ask a<br>question like how can this be done a lot<br>better because every single day you do<br>this for hours a<br>day how many hours did you spend on<br>thinking how to do this better or<br>whether to do it at all in the case of<br>meetings uh that's the people<br>surprisingly just don't do this enough I<br>see this just to go back to Jiu-Jitsu<br>there's a lot of people that show up and<br>do jiujitsu or martial arts and they do<br>the same way over and over and over they<br>invest tremendous amount of energy and<br>they don't ask like how do I do it<br>differently to improve faster in the<br>case of ji- Jitsu or any kind of sport<br>same with practicing the piano or the<br>guitar they they just religiously put in<br>a lot of time and uh derive a lot of Joy<br>from getting better they don't enough<br>ask the meta question of like how can I<br>do this better and with editors it's<br>surprisingly how how often people do<br>just that yeah with typing it's<br>surprising how many people do just that<br>like you said they they like they're<br>pecking or looking down it's like the<br>the quality of life Improvement you can<br>have by learning to touch type by just<br>like typing without looking it's like<br>it's it's it's like immeasurable you're<br>bringing a lot of joy to your life<br>because all of us are typing a lot yeah<br>and uh yeah I mean uh the The Reason by<br>the way I I was extremely efficient with<br>emac I'm I'm sure you know all jokes<br>aside I it feels like<br>neovim has more room for the kind of<br>efficiency I've had with emac to be able<br>to move really fast as you described me<br>to edit there is a real Joy it's not<br>just efficiency it's a it's like um yeah<br>it's a freedom that you can get when you<br>get really good with an editor uh the<br>reason I chose to go with V code is it<br>it felt<br>like there's going to be uh an<br>acceleration of features to which neovim<br>or emac will not be able to catch up in<br>the and I don't mean in the next five<br>years I mean in the next 30 Years like<br>and it felt like I almost wanted to take<br>the pain of learning new editors<br>constantly and just switching and<br>learning that because I was getting so<br>comfortable in emx you know this is with<br>this kesis keyboard everything all the<br>shortcuts I know how to program and it<br>felt like this is not you know Neo Vim<br>will not be here in 50 years possibly<br>might be I don't know but it felt like<br>you want to learn these constant sort of<br>different Technologies now cursor examp<br>a great example of that I've primarily<br>am using cursor now I'll go back to vs<br>code and cursor the just the skill of<br>using AI is a real skill like you know<br>with from the shortcuts to the the<br>timing to the layout of the windows to<br>how I think about where when how to use<br>the AI that doesn't distract me that it<br>empowers me not just for the fuck of it<br>or for the fun of it for the actual<br>measure of productivity it's a skill and<br>I feel like I would<br>be stuck in local maxim of comfort if I<br>stayed with emac and maybe the same<br>should be true for for me with new ofm I<br>should I should try it seriously I'm<br>sure there's a plugin like a copilot<br>type of situation that you could set up<br>with new ofm I should uh possibly<br>consider that but like kser is doing a<br>lot of really fascinating stuff on the<br>ID side not just sort of generate<br>code and uh like edit that code manually<br>it's like continuously be able to<br>rewrite code it's like the idea of tab<br>tab tab tab move the cursor around but<br>also modify parts of code and do the<br>diff really nicely that whether it's<br>cursor or vs code that wins that battle<br>out with with with co-pilot I don't know<br>but like that feels like a fundamentally<br>different experience than the really<br>efficient joyful experience that you<br>just described and you're selling me on<br>this is<br>neovim that doesn't have an AI in the<br>picture obviously immediately but you<br>can yeah absolutely I would 100% agree<br>that cursor is seems like such a cool<br>product like I I actually think there's<br>like a lot of really neat things coming<br>down with all that and I could you know<br>I could change from neovim I don't use<br>neovim because I love neovim I use<br>neovim because I love the instrument I<br>play and so so it's like if cursor can<br>meet those needs I I could see myself<br>moving over I don't have a some sort of<br>Obsessed attachment with it I am curious<br>though that you know every time I use a<br>I think I just have skill issues I think<br>I'm just so riddled with skill issues<br>when it comes to using AI yeah I've yet<br>to be able to use it in a way that I<br>really love it yeah we we'll talk about<br>it but before then oh ball to sit on I<br>forgot to say that ball to sit on yeah<br>desk needs to be properly hided one<br>monitor I should be 2third way up the<br>screen uh I don't like to turn my head I<br>prefer my uh my hands in kind of like a<br>pistol neutral position and there you go<br>a ball to sit on yoga ball yoga ball<br>what's that about I just helps just<br>maintain good posture because when I<br>have something to lean against I do<br>this so you're for hours sitting without<br>wait what are you doing I sit on the<br>ball and then I bounce are is your back<br>leaning on a thing no what the fuck well<br>how else do you like the how else do you<br>you're the only person in the world<br>sitting on a yoga ball as you program<br>for hours you do realize this right it<br>feels great I mean I I the problem is is<br>whenever I get a back um I just slouch<br>and I find myself just getting<br>uncomfortable and I'm like why am I I'm<br>uncomfortable like my my shoulders are<br>kind of getting goofed up I just like I<br>I'm chicken necking like constantly like<br>you know it's just like but you're able<br>to keep your posture for hours on the<br>yoga Bowl yeah and so I can just do that<br>and then I find myself if I slouch I'm<br>like okay nope got to get back you know<br>incredible back muscles or what no I I<br>well I don't think it takes incredible<br>back muscles to keep posture remain<br>upright yeah I think that's a pretty<br>basic human function I I would not<br>consider myself a strong person yeah<br>basic human function I don't<br>know facts and<br>logic okay cool with uh one<br>screen neov with operating system Linux<br>uh just because I I want a good Window<br>Manager that's the whole press one<br>button bring up Chrome I just use I3 I'm<br>sure I could uh use something better<br>than I3 people always tell me all these<br>window managers are really great but I<br>just want I just have like those three<br>screens I switch between so it doesn't<br>really I don't really care what I use<br>just as long as I can press one button<br>and go yeah I'm the same so half and<br>half so half Linux the other half<br>windows with with Linux meaning uh WSL<br>what's that windows subsystem for Linux<br>weasel we<br>weasel see no there's got to be a better<br>one that's more positive weasel just<br>sounds seems right up Microsoft's alley<br>that seems perfect uh so people often<br>accuse me of being a shill for somebody<br>uh sometimes dictators if I'm a shill<br>for anybody it's for Windows there you<br>go I get paychecks every every week from<br>uh bought by Bill Gates well he's not M<br>Stu anymore Balmer developers developers<br>devel no I'm just joking I think um man<br>I need to try Mac I need to I need to<br>try I'm Sur surrounded I'm surrounded by<br>people with iPhones I use Android I use<br>Android yeah there you go see oh we're<br>losers together losers on a sinking<br>ship um okay so uh just to to stay on<br>you for a sec and uh to give love and a<br>shout out to your friend te he streams<br>by the way he's a streamer and I'm I<br>subscribed and I've been enjoying it my<br>allegiance is slowly shifting from you<br>to him it's um the quality is far<br>superior with him uh the the looks the<br>intelligence the skill set everything<br>just far superior no okay so he uh you<br>know you're making his<br>day all<br>right so uh he mentioned that he loves<br>neovin because it gives him the ability<br>to eliminate having to do things he<br>doesn't like that's just a nice way to<br>to<br>frame sort of what this this the<br>automation process that you<br>describe of automating away assigning<br>shortcuts to things that are painful so<br>that that that procedure I mean I wonder<br>if you agree with that fully agree we<br>have very similar mentalities when it<br>comes to usage of neovim why people<br>should use it all that kind of stuff and<br>how to even use it well he definitely<br>takes it probably to a further degree he<br>spends more time automating and all that<br>um I don't necessarily derive a lot of<br>Joy from getting the perfect setup<br>and so but a lot to learn from him he's<br>he's very very good at what he does he<br>is by far probably one of these he's 30<br>years old been programming for not too<br>many years and he is one of the most<br>talented Developers for sure it's very<br>shocking to see how smart someone can be<br>so uh people should check him out at te<br>ejor DV yep T DV his name his last name<br>is D de de oh not developer okay cool<br>yeah yeah so it's just TJ that's just<br>his name just spelled kind of fun what<br>do you love bottom wow how much did he<br>pay you to ask these questions thousands<br>of dollars just so many<br>doar I can't even count that many<br>dollars uh he is uh trust obviously<br>trust is the biggest thing especially in<br>the quote unquote streaming YouTube kind<br>of world if you will it's very easy to<br>find people that will want to like be a<br>part of stuff people tend to latch on to<br>things and it's very hard to find<br>someone that you can really really trust<br>and so he's just somebody whom I can<br>genuinely trust he'll always tell the<br>truth he's all he's all the right things<br>for a good friend in this kind of<br>endeavor so as a good friend he told me<br>um questions I could backstab you with I<br>hate him I forgot I forgot how much I<br>don't trust<br>him uh So speaking of Harpoon you<br>mentioned it um he said you know to to<br>ask you about uh<br>whether basically how many years or<br>decades it's going to take to transition<br>to harpoon to to actually release it<br>develop it so on can you describe what<br>Harpoon is and why you're seem to be<br>incapable of finishing a single project<br>okay that was a lovely framed question<br>so Harpoon 2 is actually done this is<br>what I did to avoid the swirl in the<br>thousands of questions I will inevitably<br>get I kept the master Branch as Harpoon<br>one and I have kept Harpoon 2 as Harpoon<br>2 branch and people that don't read the<br>read me to say that I just use Harpoon 2<br>now that's that's their fault uh<br>that's it I just don't want I I really<br>don't like answering hundreds of<br>questions about open source stuff I used<br>to love doing open source and all that<br>but I kind of got my soul crushed during<br>the falor years and so I I guess I'm<br>just kind of allergic to being a really<br>active maintainer um I build everything<br>just for me like Harpoon just literally<br>just buil for me it's just what I I<br>spent a three months trying to figure<br>out the most optimal navigation for<br>files mhm and that's what I came up with<br>so Harpoon um it's a take on Alternate<br>file if you're familiar with alternate<br>file<br>uh typically you'll have this in all<br>editors where you can go back to the<br>file you were just in and so that means<br>you can have effectively two files you<br>swap back and forth and you probably<br>used it a bunch really fast way to<br>navigate pretty nice thing to do um I<br>wanted something with I want alternate<br>file but like three of them or four of<br>them and so that's all Harpoon is is<br>just being able to pin a file and so I<br>have one button to press to go to a file<br>another for another another for another<br>and so I can have up to four so I just<br>had my four power fingers uh for dvorac<br>what is that that's htns so if I go<br>control htn or S it goes to one of the<br>four files and that's it that's all it<br>is and you could technically make it so<br>you can add in functions and be able to<br>execute things externally so you can<br>open up uh terminals you can send<br>requests off to servers you can do<br>anything you want with it I just have it<br>primarily designed for opening files<br>since you mentioned what keyboard layout<br>do you use you use dor I used dorak but<br>I used a custom version of Dvorak the<br>reason why I used it is in<br>2017 we are just having my second kid it<br>was Christmas and I having so much pain<br>in my arm and I'm sitting there freaking<br>out like oh my gosh is this the end of<br>my career am I done programming is this<br>all over and so I decided that I was<br>going to create my own keyboard layout<br>optimize to prevent the pain that I'm<br>experiencing so I used a Doric as the<br>base and then laid out the symbols in a<br>symmetrical reasonable way so that it's<br>opening closing opening closing opening<br>closing right and so it's and they all<br>are right here I actually have to hold<br>shift to press a number so symbols are<br>actually my first thing I get to press<br>and so very optimized for a um laptop<br>keyboard layout so I can use my laptop<br>in a very efficient nice way that's how<br>I got started on dvorac and all that I<br>wouldn't actually recommend it if you<br>because I didn't have a Kinesis at the<br>time I didn't even know Kinesis existed<br>at that time and so when I discovered<br>Kinesis in also 2017 that's when I was<br>like oh okay would you recommend Kinesis<br>to people I am technically sponsored by<br>Kinesis so uh people you know it's hard<br>for someone to believe someone that's<br>sponsored by it but I did use it before<br>I ever became sponsored they're the only<br>sponsor that I reached out to and said I<br>need a sponsorship from you you are the<br>key I'm going to use you either way you<br>don't you can say no but I really love<br>it and for the first three years of<br>using Kinesis they gave me free Kinesis<br>kinesi as my sponsorship<br>Ki yeah I'm always torn I tried to leave<br>so many times you can't it's too good<br>but see I have this absurd<br>situation of like traveling with<br>it I I relate<br>yeah I mean I'm literally you know going<br>to war zone in Ukraine have a Kinesis<br>keyboard a laptop and like just a few<br>other small things and that's it and<br>it's like is kinesis keyboard really<br>going to be 30% of volume that you're<br>bringing to a war zone you know looks<br>like the answer is yes yeah like do you<br>really derive that much<br>value um I think it's probably spiritual<br>or psychological for me it feels like<br>home it's just Comfort associated with<br>it yeah I try to leave and I love this<br>experience you just<br>are it's like a relationship you have<br>with the thing it is it's uh is it but<br>I'm trying to figure out if it's a toxic<br>relationship or not um I think it's<br>mostly love I think it's love like all<br>relationship there's some you know push<br>and pull complications but they say that<br>distance makes the heart grow fonder so<br>maybe sometimes the Kinesis keyboard<br>needs to stay at home and the laptop<br>keyboard can be the one so that your<br>heart grows even more fond and that<br>connection grow grows even deeper I<br>already miss it as you said so I don't<br>know I think it's coming coming along to<br>all the trips if it breaks down though<br>you know I was worried that Kinesis<br>would shut down as a company I'm like<br>what's the business model here who<br>actually uses his keyboards right but<br>apparently it's still going strong yeah<br>uh who uses these keyboards as you use<br>the keyboard like I have to take it with<br>me everywhere I wonder who uses these<br>keyboards yep I should<br>mention that one of the when I first<br>became a fan of yours I heard you talk<br>about coffee and terminal I still don't<br>by the way understand what you been<br>talking about I need to actually use it<br>but you are you run amongst many things<br>a coffee<br>company uh man this smells so good uh so<br>this one is dark mode dark roast whole<br>coffee beans there is uh seg<br>origin dash dash location there's a<br>bunch of stuff on there stuff on there<br>that's very Devy shop server web can you<br>legit order coffee V SSH so as of right<br>now it's the only way you can get the<br>coffee is by SSH that was kind of okay<br>so can I just orig origin story you yeah<br>yeah uh yeah right I was going to do<br>some kind of um command line command to<br>request or like Dash dashel or something<br>or like man<br>yeah man coffee okay so TJ and I again<br>say same te te TV about by the way very<br>amazing designs done by David Hill<br>they're very very good um so let me kind<br>of give the basic ideas like must have<br>been about a year a year and a half ago<br>TJ and I were talking like hey you know<br>every one of these people that have like<br>some sort of following some sort of<br>online presence they're always like<br>selling a thing but I got nothing to<br>sell I don't really want to do merch<br>I've never really enjoyed to doing merch<br>I just find that I don't know it's just<br>not as much fun for me don't want to<br>have a tequila I don't wanted tequila I<br>want something that and I also want<br>something that I really don't feel bad<br>about selling you know there's like a<br>lot of people that will go on the<br>internet and they'll show for a whole<br>bunch of products like oh okay try this<br>try this and this is why I've only ever<br>really done Kinesis is because it's like<br>well I can point to something that was<br>really bad my life I was very scared and<br>now it's not bad anymore so it's like<br>okay that one made sense but everything<br>else always has been you know it's<br>harder for me and so we just talked for<br>so long and and we love neovim so we're<br>just like what happen if we could do<br>something from neovim and we're kind of<br>like laughing about that like ordering<br>from neovim is just so ridiculous MH and<br>then at some point we're just like well<br>what wait a second and maybe we could do<br>like coffee like every developer loves<br>coffee maybe we could figure out this<br>coffee business and so I had of a good<br>friend named Dax uh th dxr Dax yeah Dax<br>uh he the most sassiest man alive<br>sassiest oh yeah he has a lot of sass<br>beard yep he has a<br>beard very very he does uh SST he does a<br>lot of stuff very very talented uh we'll<br>call him Dev Ops engineer he's more than<br>that but um very talented guy him and<br>another person named Adam dodev vegan by<br>the way great guy we make we take him to<br>Korean barbecue all the time he eats<br>nothing<br>um and Liz she has been super important<br>to the terminal coffee company I think<br>without her we would not have been able<br>to do what we have done and then also<br>David Hill designer he does uh uh<br>laravel he designs for laravel very<br>talented designer and so we all kind of<br>came together and we are just laughing<br>about how can we like could we do<br>something that's just ridiculous MH and<br>that's kind of what we came up with yeah<br>like there you go you just open the<br>website you actually you literally<br>cannot<br>order we we actually do not allow you to<br>order the website is uh something that<br>kind of looks like the terminal use<br>command below to order your delicious<br>whole coffee be SSH terminal. shop yeah<br>so you can only SSH into it so you have<br>to copy that command and throw it in<br>there if you want to add it in the<br>little terminal shop for your known host<br>you could do that how do you handle<br>payment uh through<br>stripe and so one of the things we'll be<br>adding a mobile checkout too where I'll<br>show a QR code in the terminal and you<br>can just like check out on your phone<br>but right now you enter your credentials<br>it goes to stripe via all terminal like<br>allal yeah SSH is obviously it stands<br>for secure shell it uses elliptical you<br>know uh Quantum safe algorithms to<br>ensure that your data is not being<br>intercepted yeah but does he use AI<br>I'm I'm pretty sure Dax uses AI so that<br>you said Quantum so it's I don't know<br>Quantum AI can this Fusion Quantum AI<br>can this even be a a company if it's not<br>using AI we have some crypto chains with<br>some Quantum AI That's you know powered<br>by Fusion so it's pretty it's pretty<br>wild anyway so yeah we just kind of came<br>together where we thought what is the mo<br>that was from the Mike Tyson fight all<br>right Mike it was literally that night<br>Mike Tyson kissed the reporter and then<br>walked out yeah without any uh close we<br>didn't an ad for somebody but nice we<br>decided to make a coffee shop and then<br>we thought instead of just making it<br>neovim what if we made<br>it from SSH because everybody has SSH<br>you have VSS code launch VSS code you<br>can order coffee from within VSS code<br>right because your little bottom<br>terminal that has access to SSH bada<br>bing bada boom it's kind of fun and so<br>we kind of<br>really I love this we just wanted to do<br>something where there's no level and<br>there's no world that makes me feel bad<br>about selling this and people buying it<br>it's good ethical coffee we we developed<br>the entire supply chain and everything<br>it's all packaged it's all Boutique it's<br>all really like it's pretty high-end<br>coffee it tastes really really good at<br>this point I don't like drinking other<br>coffee I get kind of upset about it cuz<br>it's not as good and so it's kind of<br>funny that I've I've fallen for my own<br>stuff I'm high on my own Supply pretty<br>hard right now uh I just got done<br>ordering 16 bags and gave it out to my<br>family to try to convince them but it's<br>just something where it's like you I<br>didn't sell you a software product<br>that's going to influence Ence your<br>startup that could potentially lead to<br>disaster I didn't convince you to do a<br>bunch of stuff that's going to change<br>your career I just said hey here's some<br>coffee and it just like it's it's like a<br>fun experience yeah it's fun everything<br>the humor around is great yeah uh people<br>should go to terminal. shop SSH<br>terminal. I'm speaking to people that<br>don't know what SSH is and there you can<br>read the command and then figure out how<br>to use ssh in order to I mean it's a<br>kind of documentation right on the<br>website<br>if you can't use SSH you probably should<br>just not worry about buying our coffee<br>like that's the whole well you can learn<br>you can learn you if you are active and<br>you're a computer person You' like to<br>launch the terminal and feel like a<br>hacker go for it we even have<br>subscriptions uh what I what I would<br>love to see this this is how it came up<br>I think on the on the curse of<br>conversation is that uh I would love it<br>if an AI<br>agent you know did this like uh<br>anthropic computer use or something like<br>that would actually took the action of<br>ordering the coffee was programming yeah<br>like hey order me some coffee and it<br>actually go off give me dark roast order<br>coffee and it could actually go through<br>the whole flow of ordering yeah the<br>whole float but even better if you<br>didn't ask it to order cough you asked<br>it to do something and as<br>a tangent as a side quest it did that<br>which is computer used does that right<br>they showed off that it it's able to go<br>to I think uh uh like Google for some<br>images take a pause and then continue<br>doing doing other stuff anyway yeah<br>super cool idea love it speaking of<br>which let's talk about AI all right<br>you've been both sort of positive and<br>negative on on the role of AI in in the<br>whole programming software engineering<br>experience as it stands today what do<br>you think uh what's your general view<br>about AI uh what is it effective at what<br>is it not so good at okay so my general<br>view is it it comes down to something<br>that's pretty simple which is that if<br>you're doing something in which is very<br>predictable AI is really nice when<br>you're doing something that is just not<br>predictable AI is not very nice to use<br>if you're using anything that's more<br>Cutting Edge AI will not be using it or<br>AI won't be very good at doing stuff<br>with it like it's it's not great at Zig<br>because Zig is just like say less<br>documented it's really great at<br>typescript uh I think there's a lot<br>of there's a lot of interesting things<br>that are going to come down through AI<br>that I think a lot people aren't really<br>prepared for or thinking through uh TJ<br>is kind of the Genesis of this idea but<br>the idea that U I think there's going to<br>be a lot of kind of Market manipulation<br>if you will through AI meaning like hey<br>you want to<br>research say best woodworking tools well<br>someone's going to be buying an adpot<br>someone's going to be buying premium tra<br>training data right they're the ones<br>that get the uh the big boost in the<br>llms but llms don't really have the<br>market as an advertisement because it's<br>not really directly an advertisement<br>they just had a more premium spot per se<br>in the training data a little bit extra<br>learning to it you know it's like<br>there's a lot of things about AI that I<br>I fear upcoming yeah uh a lot of it just<br>comes down to people not uh learning or<br>making the trade-off where productivity<br>is the only thing that matters and I<br>don't think productivity is the only<br>thing that matters if you want to build<br>something complex and difficult<br>productivity is not the only thing you<br>actually are going to have to do deep<br>learning and kind of pursue it beyond<br>the basics and so I see AI as kind of<br>like this really cool thing it it feels<br>like a magic trick I remember the first<br>time I used it I got Early Access to<br>GitHub co-pilot Nat in fact Nat fredman<br>saw my twitch clip of me asking GitHub<br>for it and he sent me early access<br>himself it was awesome and when I used<br>it it predicted an if statement correct<br>and that my mind was just absolutely<br>blown because I had nothing before then<br>and now it's just like first time ever<br>and I just remember thinking man this is<br>going to change programming so much and<br>then the more I used it the more I just<br>for me personally I kept introducing<br>bugs and I couldn't figure out why and<br>what I realized is that I kind of<br>developed I wasn't co-piloting well I<br>was autop piloting much better and my<br>ability to read code versus my ability<br>to critically think and write code<br>they're definitely different sets of<br>skill levels I don't consider as well<br>when I just read code as opposed to when<br>I write code and so I I struggled there<br>I do think that's a skill set yeah skill<br>issue for sure skill issue for people<br>who are not aware that's like a hashtag<br>thing sometimes use mockingly in this<br>case there's like a several layers<br>mockingly but also seriously yeah<br>meaning like the criticism is grounded<br>in the fact that you lack the skill<br>versus of some kind of fundamental truth<br>yes I think that uh that's the reason I<br>use actually copilot cursor a lot is for<br>developing the skill of editing AI so I<br>can just learn how to do that better and<br>better because I think as I do that<br>better and better I start to utilize AI<br>better at this time it is a bit of a<br>boilerplate code thing mhm uh but you<br>can do out of the box kind of Novel<br>design decisions or tricky design<br>decisions from<br>scratch but fill out stuff uh using uh<br>Ai and then just learn the skill of<br>modifying I personally just<br>it's more fun to program with AI even<br>when I delete a lot of the code it's<br>more fun it's uh less lonely it's more<br>it's uh what I imagine like PA<br>programming to be and I've never done it<br>but the it just feels like that uh<br>friction that you get when you're like<br>staring at an empty thing is not there<br>like empty function<br>empty uh empty class it's just<br>more fun less lonely and I do think that<br>a lot of the easier type of coding it<br>really helps with like interacting with<br>apis MH um basic things that I would<br>usually have to look up to stock<br>overflow for uh it's just really fast at<br>that like yeah as example just<br>interacting with the YouTube API uh the<br>Youtube API documentation is not very<br>good and you can just load it all in<br>there and ask it to generate a uh set of<br>functions that access the API do all<br>kinds of read and write operations and<br>it figures it all out and then you could<br>just well you do have to read you have<br>to read and check everything and you<br>start to develop the skill of<br>understanding where it misinterpreted<br>the task so you're what is that skill I<br>don't even know you have to kind of be<br>empathic about what the AI is what its<br>limitations are a lot of the times that<br>has to do with<br>um uh prompt engineering you have to<br>like at the same<br>time uh<br>understand what the AI is aware of like<br>what did you actually give it as data to<br>be able to generate the code a lot of<br>times we don't realize that we're not<br>giving it enough information so you have<br>to like actually okay okay all right you<br>have to like be empathic be like okay<br>these are the code the files it's aware<br>of this is the specifics of the question<br>you asked it like you have to like<br>imagine you're an<br>intern that doesn't know anything else<br>like often times we want to AI to like<br>figure out the things that's left un<br>unspoken but you you can't know those<br>things you have to like specify those<br>things and so you have to actually be<br>much more deliberate and rigorous in the<br>things you specify is to spell it out<br>and so I just have this like sea of<br>prompts that I have saved up and I'm<br>building these like library of different<br>templates for prompts and it's a mess<br>and I'm sure there's a lot of developers<br>that have this similar kind of mess so a<br>lot of it has to do long term with the<br>tooling that's going to improve that one<br>the systems are going to get much more<br>intelligent well you don't need the<br>nuance and two there's going to be the<br>tooling that allows you to specify those<br>things and load it in correctly and give<br>all the context that the system needs in<br>order to make the good decisions and<br>maybe the system asks you followup<br>questions wa here's things you didn't<br>make clear all that kind of stuff a lot<br>of that has to do with the interface<br>with the actual design of the tools like<br>we said with cursor it's going to keep<br>getting better and better and better so<br>my sense is<br>like uh developers in general should be<br>learning this to see<br>uh to not be left behind to see what how<br>that can be<br>used uh to Super as a superpower to to<br>boost their productivity their<br>effectiveness their Joy of programming<br>versus like uh be seen as a competitor<br>to them or something like that so but I<br>you know I for me<br>already uh it's been it's it's it's been<br>a big boost to productivity like actual<br>like if you measure the actual<br>how quickly you're able to get a thing<br>done MH it's been a big and measured not<br>across minutes and hours but days also<br>like sometimes there's things I have to<br>do that are not that important that I'll<br>just like out of procrastination will<br>push off and AI helps me actually get it<br>done like actually cuz like that thing<br>the empty page like I mentioned before<br>it helps me write the thing get it done<br>get it tested like ship the thing U<br>Maybe is just because it's just less<br>lonely to work with an AI I don't<br>know I don't know if any of that made<br>sense but it all made perfect sense I<br>really do like that phrase it makes it<br>less lonely I think there's something to<br>that that's kind of interesting having<br>just some level of interaction that's<br>not just like an LSP autocomplete yeah<br>like having something that's actually a<br>little bit more than just that where it<br>actually is kind of thinking through and<br>you can see a different thought and<br>you're like oh wow that's like that's a<br>way different approach than I would have<br>taken hey that's kind of cool I like<br>these kind of things and the thing is<br>I'm not like a AI negative person I I<br>can see why people really really like it<br>um I just haven't like I just every time<br>I I used co-pilot for from when Nat gave<br>me the uh access all the way up until<br>about 6 months ago like that's how I<br>used it for quite some time and I really<br>I really did enjoy the things I used out<br>of it it just never it kind of did the<br>opposite for me I felt like I was more<br>reviewing than writing and I felt like I<br>was<br>more kind of just letting things slide<br>where I just didn't really think too<br>heavily about stuff<br>and it just I wasn't as engaged and so<br>I'm like okay so something's kind of<br>wrong here and that's just like a me<br>personal thing so I I recognize that is<br>not how someone should approach these<br>things that's not a good reason for why<br>you should or should not use AI like I<br>just don't think that that's right<br>because I could probably correct that<br>and figure out a better way to do it<br>I've been meaning to have another AI<br>round and so I've been thinking about<br>like maybe I just need to spend like two<br>weeks in cursor and just like fully<br>Embrace what does it mean to be somebody<br>like this and and God what can I do with<br>this like these new po have they<br>improved to the point where they're<br>actually good and I mean for me cuz like<br>a lot of the decisions I make a lot of<br>the little functions I'm writing it's<br>not cuz I'm trying to write this<br>function to solve this problem it's<br>because I'm writing these functions or<br>this set not just to solve this problem<br>but because I know in about another<br>2,000 lines of code of building all<br>these other things I'm going to need to<br>start doing this next activity so it's<br>like I'm trying to like really try to<br>chess move myself into the exact things<br>that as I let things go faster I kind of<br>fall apart on that chess move and again<br>skill issue for on my behalf and I mean<br>it in the truest sense of the word where<br>it's like I'm making a critique because<br>I don't use it well enough the better<br>you are programming I don't know if this<br>is a general rule this is my anecdotal<br>data the better you are at programming<br>the less you want to use the AI the more<br>gets in the way like the good<br>programmers fair enough as far as I can<br>tell so like the more s beginner<br>programmers are much more happy to use<br>AI you know I when I use AI for basic<br>like for just like I I don't know if<br>there's a better term it's not boiler<br>plate but it's like pretty easy<br>programming and that kind of programming<br>is much easier to do like the sort of<br>the 10x not to use the memes of of<br>programmers that I know that are ultr<br>productive and brilliant people they<br>just they hate AI they're like this is<br>no nowhere close to what's needed so<br>that there's something to that I still<br>think they should be using AI just for<br>the learning yeah because it's GNA get<br>smarter it's going to get better<br>and it's the same thing it's like when<br>you when you super optimize neovim or<br>super optimize emac you may not discover<br>the new things that are in the pipeline<br>so it's it's always good to be sort of<br>training in that way let me ask you a<br>question here just kind of for my<br>understanding you talked about this idea<br>that you have all these kind of L LM<br>kind of prompts all like this big<br>backlog of messy L prompts that you kind<br>of have these templates for that you can<br>do various actions you probably you have<br>these strategies of making it explain<br>itself and then do the right thing right<br>like you have as far as I can tell<br>that's that's really built into to a lot<br>of people well then you make this phrase<br>We like but then at some point the<br>interface is going to get better and<br>maybe it can do a lot of these things<br>better where I won't need that then my<br>question is<br>well is anyone actually falling behind<br>for not using AI then because if the<br>interface is going to change so greatly<br>that all of your habits need to<br>fundamentally change and it will be able<br>to clarify and make all those statements<br>have I actually fallen behind at all or<br>will the next gen like actually just be<br>so different from the current one that<br>it's kind of like yeah you're you're<br>over there like actually doing punch<br>card AI right now I'm going to come in<br>at compiler time AI so different that<br>it's like what's a what's a punch card<br>uh so obviously open question it's a<br>fascinating one I personally think yes<br>you're you're falling behind not you but<br>could me could be me if you're not<br>playing with it you're falling behind<br>because the thing I'm doing with the<br>prompts is you're learning you're<br>building up like this intuition about<br>how AI<br>works you you're understanding like what<br>is it strengths and weaknesses not even<br>the current version but the next version<br>and so on like<br>what uh what does it mean to teach an AI<br>system about the world like what kind of<br>uh information does it need to make<br>effective decisions I think that does<br>transfer to smarter and smarter models<br>you'll need to<br>make uh less rigorous and specific in<br>details instruct over time but you still<br>have to have that kind of thing yeah I<br>think it's a skill of almost empathy<br>with an AI system because it doesn't<br>know the the uh you know what it's<br>missing it's missing like common sense<br>it's missing long-term memory a lot of<br>things when we talk to other humans they<br>have a basic common sense about reality<br>like and AI systems often lack that kind<br>of Common Sense and they also don't<br>remember things so you have to like<br>realize there's a constant blank uh<br>Blank Slate happening so it's almost<br>like a just a skill of talking to an AI<br>system that uh that I'm training and by<br>having to write all those prompts and<br>communicating back and forth to<br>understand what kind of prps work better<br>or not you build up that intuition and<br>also just raw the skill of reading<br>somebody else's code maybe for people<br>who work on large teams that's a skill<br>that's already developed for me not so<br>much so learning how to modify the code<br>that somebody else written is uh is a<br>real skill and also the other thing you<br>mentioned which is like considering<br>another perspective on a piece of code<br>is really nice but it is also a skill to<br>understand okay this is what you<br>did there's a skill to asking a question<br>about that code that's been<br>generated uh such that you can have a<br>conversation about the approach that was<br>taken I think there's just a lot of<br>subtle little skills involved in a<br>Cooperative endeav to code um kind of<br>like there was a real skill issue<br>between you and te when you guys did the<br>video of two idiots want keyboard right<br>uh people should go watch that video<br>where like you guys obviously sucked at<br>it yeah Co using that was pretty cool<br>which you guys did which is controlling<br>one newm interface from two different<br>keyboards yeah and then we each get an<br>allowance of certain characters or<br>emotions we could perform yeah and so<br>you both have to like communicate<br>together that that's a real skill I'm<br>sure you can get super like super<br>efficient with that yeah but it takes it<br>just takes time to learn that kind of<br>thing so yeah I think uh there's some<br>value to it but I think there's a<br>learning curve so I have so I I wanted I<br>do want one thing to be pretty clear is<br>that I actually use AI quite a bit I<br>just don't use it for programming and so<br>one thing I've been trying to get it to<br>is to be able to have like a long<br>interview or understand what twitch chat<br>is saying and become twitch chat and be<br>able to speak as if it is Twitch chat<br>try to like learn how to prompt it in<br>different ways and so I think those<br>things for me are just really fun I<br>tried to get it to learn how to play<br>Tower Defense I made a tower defense<br>game in Zig and then made it play Tower<br>Defense and then played uh Claude 3.5<br>against open AI Claude 3.5 would do<br>better during the day times and open AI<br>did better during the night times I<br>don't know why I don't I have no idea<br>what was going on there but just one<br>would just start winning and the other<br>one would start losing it just very<br>strange<br>and so it's just this you know I'm<br>learning to prompt well but I'm learning<br>to prompt in a very different ax I just<br>don't find it very useful yet in<br>programing programming and I should also<br>say that I'm using it uh<br>in yeah in every Walk of Life in every<br>context I use that same kind of<br>exploration about prompts and so on I'm<br>I'm using and learning I I think it<br>legit is a whole field in itself prompt<br>engineering and how to interact with AI<br>systems I think it's worth the<br>investment can you actually speak to<br>that cuz you I<br>saw you're you're basically pulling from<br>twitch<br>chat and having an llm<br>speak I didn't realize I thought you're<br>so you're not reading the exact chat<br>messages yeah you're you're doing kind<br>of some kind of summarization yeah so<br>what I I I try to go through like a I<br>end up making like eight queries off to<br>open AI where it's just like the first<br>thing is like I haven't have like a<br>default person ality hey you're Randall<br>the manager you're a software<br>engineering manager kind of explain<br>their position what they like what they<br>don't like and then be like these are<br>the list of thoughts you have in your<br>head and you need to talk to this person<br>and ask them a question like amazing<br>give me 10 of these responses that you<br>think are probably thoughts that you<br>have and you want to ask yeah you know<br>like make it kind of give you a list and<br>then be like okay then reprompt and be<br>like hey you're Randall you're this this<br>this this this this you have these 10<br>questions before you and now you need to<br>select one of them album and reword it<br>in a way that sounds more like you the<br>engineering manager you know and so you<br>like you know I'm constantly trying to<br>make it like iterate on itself as<br>opposed to just like one-shotting it and<br>I found if I iterate too much it becomes<br>like it loses the Val it like loses what<br>it was originally trying to ask if I<br>don't do it enough then it's just too<br>degenerate from twitch chat and so it's<br>like I I have a lot of improvement to do<br>with this idea just to<br>clarify you're feeding in twitch chat<br>these are the thoughts you're you're a<br>manager these are the thoughts you have<br>in your head pick out some of the most<br>profound thoughts effectively it's like<br>depending on what I wanted to do I'm<br>trying to work on a better system still<br>for Brant and so it's like how can I<br>give voice to Twitch Che can I make it<br>so that I can get create adversarial<br>characters against twitch chat or for<br>twitch chat can I incorporate YouTube<br>all that kind of stuff and like how do<br>you describe to an llm to roleplay into<br>its position and so you know just<br>thinking through those kind of things<br>and you know so maybe I am having some<br>prompt skills but just you know it's<br>just in the coding world yet sure one<br>day one day I'll get there I saw that<br>you were having like playing with<br>different voices there was like a sexy<br>that started off as a French voice and<br>then it turns out 11 Labs just cannot do<br>a French lady and when you do<br>multilingual French lady she<br>starts<br>talking you it's like what I tuned into<br>one of your streams what is<br>this and there's just this lady like<br>like in a in a sexualized way it became<br>too funny and so we call her not French<br>Stormy Daniels oh nice yeah but I want<br>to go back to the AI and and and some of<br>the aspects sure and so like my big<br>gripe with AI has nothing to do with its<br>capabilities it's exactly capable as it<br>should be capable because that's what<br>people programmed it as the things that<br>I really dislike is a there's a whole<br>group of people that are just like the<br>end is nigh AI is here you just need to<br>stop programming like I I cannot see I<br>cannot tell you even on like uh you<br>mentioned Peter levels earlier he made<br>some sort of tweet and one of the<br>person's responses was yeah no one in<br>this like in 2025 or whatever should be<br>acquiring hard skills you should rely on<br>everything for the AI effectively and<br>it's just like these are really damning<br>pieces of advice for young people like<br>young people are being told that you<br>should never become an expert in<br>anything you should always offload and<br>the problem is is that anyone worth any<br>of their salt will tell you that AI<br>though can produce code is going to get<br>it wrong in a huge number of cases and<br>as the code becomes bigger or more<br>complex or more input it's going to just<br>start kind of sloshing back and forth<br>between bugs and so if you don't have<br>those hard skills and you're not<br>ultimately the driver at the end of the<br>day like you're going to really find<br>some hard times and your ability to<br>progress will be directly bound to how<br>good the llms are so if you believe that<br>the llms will be vastly superior to<br>humans in the next year maybe that's a<br>good bet but if they aren't then your<br>skill ceiling is bound to whatever they<br>are and even beyond that there's just as<br>like a whole whole there's just like a<br>level of information problem which is<br>like can the thing actually navigate<br>larger like do we even have enough<br>compute power to be able to solve things<br>at at this real scale and even if we did<br>if everybody started using it right now<br>do we even have the compute power for<br>everybody to use it right now there's<br>like a lot of kind of bounding questions<br>there's privacy concerns and I just<br>don't want people to make the immediate<br>or what appears to be the obvious choice<br>where you don't need hard skills you<br>don't need these things our life is<br>already going to be we just need to only<br>think creatively it's like no I don't<br>think so I think these hard skills are<br>going to be around for quite some time<br>even with a massive Improvement in the<br>AI like you're going to really be needed<br>to step in regularly for quite some time<br>as far as I can tell but I also think<br>even on top of that just even acquiring<br>the heart skills or uh whether that<br>means programming from scratch for<br>example in the context of<br>programming uh that's going to make you<br>better at steering the AI mhm not just<br>correcting the AI but steering the AI I<br>think is some kind of if you know how a<br>computer works you can program python<br>better it's maybe counterintuitive but<br>you can if you know the low-level<br>abstractions like some intuition around<br>that uh you can steer the high level<br>abstractions better yeah that just seems<br>to be the case unless of course AI<br>becomes like truly super intelligent<br>like many levels above but it's very<br>unlikely in the short term and in the<br>long term it's still good as it gets<br>better better and better and better to<br>be able to steer to ride the wave of the<br>Improvement yeah I'm on that team very<br>much so a lot of people have written to<br>me I think a lot of developers<br>programmers are really<br>concerned about the future of their<br>profession in in the context of uh<br>quickly improving AI systems so do you<br>think AI will eventually replace<br>programmers the hard part about that<br>phrase is use the term eventually yeah<br>meaning do I think in 5 years 10 years a<br>100 years like what is that does that<br>term actually mean uh I think at some<br>point if we were able to scale if all<br>things continue at the current rate of<br>improvement there does come a point<br>where programming as a hard skill does<br>become unnecessary right at some<br>eventual Point way way down the road yes<br>I don't know what that point looks like<br>I don't know when it's going to happen I<br>don't even attempt to make predictions<br>about that but there are still some like<br>Leaps and Bounds we need to make<br>just I mean even just like societally<br>like there's plenty of companies that<br>don't even allow you to use AI right<br>like I mean there's just practical<br>problems that exist so that's like a<br>question I just try not to answer in the<br>direct sense there will come a day if<br>Humanity continues and all things<br>continue in a good positive direction<br>where a lot of skills will go out the<br>window due to immense Computing systems<br>so yeah I'll give you that one but it's<br>just like if I don't think it has<br>anything in the near term there's been<br>no computer Improvement up to this date<br>that did not result in more jobs yeah<br>absolutely I we should say that I think<br>it depends how you define programming<br>also because um you know when uh the<br>community uh moves from assembly to C<br>from C to I don't know uh Python and<br>JavaScript like that's Evolution that's<br>really painful for a lot of people who<br>are used to programming that lower level<br>language<br>uh so there's going to be a continuous<br>Evolution and maybe that means with with<br>AI there's going to be more and more<br>Evolution towards natural language as<br>part of the tool chain like being able<br>to learn how to write proper<br>prompts uh yeah that might you know CU<br>natural language is still a<br>language and in the long term it's<br>possible that a large percentage of<br>programming is natural language they're<br>probably still going to be some<br>percentage just not that's going to be<br>extremely structured language right now<br>I don't think we are anywhere near<br>natural language being possible because<br>it's ambiguous and I think what we'll<br>end up seeing as people push really hard<br>into this you're going to see some sort<br>of like pseudo which is going to be a<br>language for AIS in which you prompt<br>which is going to be less ambiguous<br>right people keep striving towards the<br>less ambiguous State and then at that<br>point you're just programming you're<br>just programming yet another Evolution<br>into a higher order language and perhaps<br>that is a future in which people will<br>have a more tur language I'm just not<br>sure how much more tur it can get um<br>yeah I mean all I see is that if you say<br>natural language can be used in the<br>pipeline you've just made that many more<br>people can become programmers which<br>means that much more software will<br>eventually be created which means<br>there's that much more software that<br>will need to be maintained and just<br>becomes a a real big snowballing effect<br>but you know there's just just people<br>who are programmers who are worried<br>about their jobs yeah not a complete<br>replacement but maybe a rapid of ution<br>what it means to be a programmer like<br>you mentioned if natural<br>language becomes a way that you can<br>communicate or you can<br>program that means uh the pool of people<br>who can uh get programming jobs changes<br>rapidly so they're really concerned to<br>some extent right um because no matter<br>how much no matter how much we want to<br>say how good AI is there comes a point<br>where there exists a bug there exists a<br>large piece of software in which to<br>describe the change<br>requires just like pages and pages of<br>description to the point where it is<br>significantly just faster or easier for<br>someone to just whip something out like<br>there there's definitely a balance there<br>it's not like a perfect tradeoff and so<br>I I still don't I think people need to<br>quit worrying and think about how they<br>can integrate it and try like prove it<br>to themselves do they actually make<br>themselves irrelevant and if you truly<br>make yourself irrelevant I would<br>challenge you that you're already like<br>you're just doing something that was<br>just slightly too complicated to<br>automate like if you're only writing<br>just straight up CR apps from back end<br>to front end and like simple table<br>displays like yeah maybe we just<br>couldn't quite automate that away and<br>now we just have something that can just<br>do that a little bit better so now<br>that's automated away but that's not<br>really programming that's almost like<br>building Legos at that point where the<br>Design's already set you just simply<br>have to move piece from bag into correct<br>position yeah uh is there something you<br>recommend How uh<br>um uh a developer programmer could avoid<br>a situation where<br>AI can automate them away I think that<br>the bigger the project you can manage<br>the bigger the thing you can build the<br>more understanding both down and up the<br>stack you can go the more value valuable<br>you become because if you understand how<br>to build something in the front end okay<br>well now you kick off some llm task of<br>some sort that's going to go off and<br>make a change to the front end okay<br>while it's doing that you can go and<br>kick off something in the CLI tool you<br>can go and you can go kick off something<br>somewhere else and as these things come<br>back with results you can review the<br>results make sure it's the way you want<br>it change it commit it go to the next<br>like you only become more you know as<br>you said in the end more productive if<br>we reach this state where it's truly<br>able to do that and I think there is<br>like a skill to working together with AI<br>which is why I'm kind of excited to<br>watch you keep trying to do it yeah it's<br>like we don't know how it fits exactly<br>but it feels like AI should<br>be a boost to<br>productivity and I I definitely think<br>it's a boost to just the joy of<br>programming I think there's a lot of<br>people yeah it's a job but it's also a<br>source of meaning a source of Joy like<br>programming is fun you're creating<br>something cool and also potentially that<br>a lot of people use there's this one<br>thing that just really frustrates me and<br>this is kind of going into the Devon<br>category which is that I want an intern<br>that cares yeah you you don't get that<br>out of an LM it does not care meaning<br>that I don't want it just to make a UI<br>for me that displays these icons like I<br>asked I wanted to care I want to think<br>about it I want it to present to me and<br>me be like oh yeah yeah that's great and<br>then me to make changes and then later<br>on it's like actually you know what I<br>really rethought about this and actually<br>it'd be way better if we change you know<br>like it doesn't actually care about the<br>craft you know but when you work with an<br>intern or you work with somebody else<br>they they care when they fact or<br>something they actually go over and go<br>ah yeah this is actually kind of bad I'm<br>going to come back to that they finish<br>this they go back over and they make<br>this better like they like actually care<br>about the thing itself it's a completely<br>different experience I just want<br>something that also cares that wants to<br>make the thing better not just simply<br>accomplish the task and I know I'm<br>asking way too much that's not you know<br>now we're getting into like blade<br>runnner level AI I just want something<br>that's it just feels like I'm missing<br>that where it's just like it will<br>complete the task to whatever level it<br>understood what I was prompting but it<br>just doesn't it doesn't actually care<br>about it I<br>mean there's so<br>many aspects to caring but s of the<br>trivial version of that is a kind of<br>restlessness where you want to keep<br>improving and I think that is very much<br>AI could do yeah where constantly just<br>ask itself can I make this better and if<br>it keeps doing that it probably is going<br>to take it to some ridiculous place so<br>actually it's it's also knowing when to<br>stop yeah uh I think developing um<br>something you can call taste which is<br>like trying working extremely hard<br>constantly improving until it just feels<br>right this is it and I think that is a<br>thing that AI is not good at it was just<br>like yes this is it I've iterated three<br>times and three was the that's it we're<br>now there and that I think ultimately<br>that is what humans are amazing at which<br>is<br>like knowing when something is right<br>like this is it this is especially at as<br>you understand as you develop taste in<br>the particular industry in the<br>particular context application knowing<br>like this is it yeah this the rounded<br>corners on this button that's exactly<br>that that's beautiful so it's just a<br>sense of beauty uh a sense of function<br>and and efficiency and so on yeah that<br>but that you know humans could do almost<br>like supervision of AI systems in that<br>context yeah yeah you've uh ranted about<br>Devon um just full of Rage<br>uh I mean first off the people that run<br>Deon are extremely nice I want that to<br>be understood I don't have some sort of<br>upsetness against them or anything like<br>that um second Devon is just it's it's<br>kind of like the full it's like the full<br>package when it comes to programming so<br>it's going to have you're going to give<br>it a task and a repo and it's going to<br>go through it's going to try to<br>understand the repo and the task make<br>the change to the repo by exploring it<br>then actually make a commit to GitHub<br>and explain what it did so that you can<br>have like you know so hopefully you have<br>this whole offline thing which is the<br>other part of um this AI part that I<br>actually really like where it's just<br>like go fix this thing then I can just<br>go and unbroken fix this one thing and<br>come back and go okay good enough merge<br>boom you know like I want that kind of<br>running being able to complete things I<br>think the ideal solution is that you can<br>start giving it small bugs and it goes<br>and fixes these bugs and you can just<br>come back to these backlog tickets that<br>no one ever does and it actually starts<br>going through these backlog tickets and<br>it's actually a really amazing<br>experience so I love the idea right I<br>think we can all agree that that sounds<br>great yeah but every time I've done it<br>and and I've I've asked it for many and<br>I I try to keep narrowing down the<br>problems the more narrow the problem the<br>better it does so if I'm like just add<br>One Singular icon and when it gets<br>clicked I want you to do this just just<br>console click me like just at least<br>create me an SVG and place it so it's<br>nicely placed the more narrow the task<br>the more likely it's to be successful MH<br>um there's like a certain level of<br>specifying where you specify too much it<br>just like can't do it if you specify too<br>little that just does weird things so<br>it's kind of like this very kind of fun<br>unique way you have to play the balance<br>game but so far every time I do these<br>things I always end up going gosh you<br>know what I should just get better at<br>tailwind and write it myself because I<br>always go back and I just rewrite it and<br>it's just like dang it what what am I<br>saving at the end I feel like I'm not<br>saving anything yet you know just like<br>this I want it so bad like I actually<br>want AI to be great because then I can<br>really go fast I mean I can go amazing<br>fast but then I always just go gosh I<br>should just learn Tailwind myself to<br>like the nth degree and just go fast<br>yeah we should also mention that<br>debugging this might be intuitive or<br>counterintuitive is AI is really bad at<br>yeah like that is one of the hardest it<br>actually makes you realize how special<br>humans are and how difficult the task of<br>debugging is obviously for trivial<br>debugging maybe can finded yeah bugs but<br>like that is the real artart of<br>programming is the bug is fine bugs<br>logical bugs like um extremely<br>complicated rare bugs edge cases mm he I<br>can assist but man the hard ones are<br>really require so much context so much<br>experience so much intuition from uh<br>again operating in a fog full of<br>uncertainty it's hard yeah uh of course<br>AI could maybe create like logs and do<br>traces and do some kind<br>of load in a huge amount of data that<br>humans can't yeah but ultimately that<br>just means it could be a better<br>assistant in debugging versus the actual<br>lead debugger yeah I mean it'd be great<br>if they could I mean the more it can do<br>that the better right cuz as far as I<br>can tell I mean correct me where I'm<br>wrong on this current state debugging is<br>really it looks at the code it looks at<br>the bug problem it just kind of tries to<br>text predict where it's most likely<br>accurate and then just tries to fix that<br>spot and so it's like it's likely this<br>spot you said admin panel it's slightly<br>off this this this it's probably this<br>location which could actually be a<br>really great way to do search right let<br>me do semantic searching point to me<br>where this is because maybe that is a<br>really great way to navigate large code<br>bases is like smart intelligent search<br>as opposed to trying to make it do the<br>thing ask it to just help you do the<br>thing in like pinpointing problems I<br>don't know i' love to see more of that<br>cuz that's for me is like the exciting<br>part and there's this really great<br>article by Creator or maintain of curl<br>it's the I and llm stands for<br>intelligence and he writes curl and<br>maintains curl curl has been inundated<br>with security problems and all this and<br>it's all from llms being like Oh I found<br>a security flaw uh here's the security<br>flaw details it out in the code and he's<br>just like okay how did you reproduce<br>that show me because if you look at the<br>code right here that's actually an<br>impossible situation you're speaking of<br>and it's just like going in these<br>circles and security right now is being<br>inundated these bug Bounty programs are<br>being inundated by L<br>submitted responses cuz they can't<br>actually you know analyze the code<br>Beyond just like basic text prediction<br>oh this is a stir copy stir copy is<br>commonly referred you know blah blah<br>blah blah boom there you go here's the<br>bug and it's just like no that's<br>actually impossible because the if<br>statement right beforehand leaves the<br>function if the string is too long so<br>it's like we don't even run into this<br>case it's impossible what you're saying<br>so the bugging is very interesting yeah<br>I mean that for me would be the big if<br>it can solve that not solve that but<br>improve that that would be huge whether<br>it's agents or just LMS integrated into<br>um into ID I think there's this whole<br>idea I call a a denial of attention I<br>think there's an entire attack Vector<br>that's going to be happening we're using<br>llms to generate fake bug reports fake<br>all these things to just actually uh<br>effectively to<br>demotivate and um hurt open source<br>maintainers uh poly kill was the first<br>bug that kind of had this experience is<br>this denial of attention where I active<br>malicious maintainer just hounded the<br>owner MH and then a white knight came<br>out and offered to buy this you know buy<br>some stuff from under them and when they<br>bought it they actually replaced it with<br>a malicious piece of code and then used<br>it so there's like this whole security<br>world that's developing around using<br>these in a very aggressive format I mean<br>it's a fascinating World we're entering<br>into but I do agree with you that humans<br>human developers would be a huge part of<br>that world this is not the job might<br>evolve<br>but it's going to be there if I can I<br>didn't really look at this page I<br>thought it would be cool to go over with<br>you this is again the Overflow my<br>favorite stack Overflow developer survey<br>talking about their sentiment and usage<br>of AI systems the general sentiment of<br>yes uh 61% say yes they use it and 25%<br>say no don't plan to so majority use it<br>majority have a favorable<br>sentiment over it favorable or very<br>favorable or indifferent that's like<br>looks like over 90% that's really<br>surprising that that many people just<br>have no plan in looking into AI like as<br>much as I don't like using it for coding<br>I hope one day I can use it more right<br>and so it's like I to me I'm always<br>looking for the next thing I'm just<br>surprised that people are that I guess<br>obstinate for it obviously the second<br>one the AI tool sentiment it must be<br>only the users who responded uh yes to<br>the top two of that first one just given<br>the amount of respondence I wonder if no<br>and don't plan to are people who have<br>tried it and quickly build up the<br>intuition like this really sucks yeah so<br>we you know it could be like experienced<br>programmers they're like no this is not<br>making me more<br>productive 81% agree that increasing<br>productivity is the biggest benefit that<br>the developers identify for AI tools<br>okay so this is what are the benefits<br>increased productivity speed up learning<br>greater efficiency improve accuracy in<br>coding make workload more manageable<br>improve collaborate where's the fun in<br>increased fun I would say that's that's<br>like Number One For Me Maybe speed up<br>learning is like a a subcategory of of<br>fun right if you're able to learn more<br>and be able to become better to me that<br>that sounds that sounds<br>good yeah I don't know it's different<br>cuz like productivity is part of fun too<br>I there is just the lightness um I mean<br>maybe improved collaboration all of<br>these M for sure there's I my time using<br>co-pilot C there was certainly a level<br>of wonder that would happen for quite<br>some time where it's just like it's just<br>amazing what it can do yeah I'm just<br>super impressed by what it can do even<br>though I don't use it like it's amazing<br>to me that we have something that can<br>even get that close uh in terms of<br>accuracy of AI tools only<br>2.7% highly trust I would say that you<br>have to be very green to think that you<br>should highly trust an AI output you<br>should be very skeptical yeah I don't<br>know where I stand probably somewhat<br>distrusted highly distrusted seems<br>aggressive it does seem a little like<br>you should definitely be in the somewhat<br>like you should always assume that<br>there's something wrong and then from<br>there you can go and and challenge it<br>and then uh estimation of whether AI can<br>handle complex tasks most people don't<br>think it can handle complex tasks I mean<br>it seems like people have a good sense<br>of what it's able to handle and not I<br>would argue that people don't have a<br>good grasp of what complex is in<br>programming sure yeah if you say right<br>to me you know right me quick sort some<br>people think quick sorts super complex<br>mhm but I would argue that that's<br>actually probably the simplest thing you<br>could ask an AI to do right things that<br>are so well documented it's going to do<br>a great job at that yeah probably high<br>level design decisions which people<br>don't even use AI for right now I guess<br>agents are supposed to be doing that<br>kind of stuff that's probably the most<br>difficult<br>thing or uh the most impactful<br>thing well the most difficult thing is<br>finding bugs yeah and tools next year<br>writing code and so on now this one the<br>ethics part I'm actually super curious<br>your take yeah on the ethics will we see<br>Europe laying down some new regulations<br>oh boy what about artists right what<br>about people that are really because the<br>difference between coding and artists is<br>very very simple if you gave me a sheet<br>of paper I could draw you a crab You' go<br>that's a crab yeah but you can't do that<br>with coding it's like it's right or it's<br>wrong there's not a variation of inter<br>for what a crab is it's like no that<br>statement's just you cannot make that<br>statement you know it's it's very<br>bounded in what it can express and I<br>could see why artist like that's a very<br>frustrating point and then who gets<br>rewarded for all that you know obviously<br>and then there's like the whole thing<br>with coding and licenses how much of it<br>is GPL licenses do you think they have<br>scraped and used as training data GPL<br>forces open source yeah what are you<br>going to do with that one like that<br>means your model might need to be open<br>source like open AI may have to get<br>forced open yeah all their previous<br>stuff if there's any hint of GPL yeah<br>that's a weird one that's a really weird<br>one because most of these models I think<br>are training on data they don't<br>technically have rights to be training<br>on yeah there's question there's an<br>unspoken it's a it's it's a real wild<br>west cuz like you could imagine that<br>what happen if you I always use Europe<br>because they tend to have like maybe the<br>most consumer protection uh laws out<br>there you could imagine what happen if a<br>law came down that said that if you used<br>a model that produced GPL potential code<br>you have to open source like how many<br>companies are going to be like oh my<br>gosh right like you have one year to get<br>rid of all code that was generated<br>that's potentially GPL Source from a<br>model like that could you could imagine<br>just a sheer Panic that's going to<br>happen it' be a fire sale of code so<br>given all that what can you give advice<br>to Young<br>programmers uh like this is another<br>question from Reddit the infinite wisdom<br>of Reddit what should a person in their<br>early 20s do to move forward in in the<br>tech<br>industry and uh this is an interesting<br>addition to the question and by doing it<br>will this be walking on someone else's<br>path I am going to try to answer that<br>question I guess the best I<br>can which I think that if you're<br>entering into the tech<br>world one of the hardest pieces of<br>advice that I took took a long time to<br>learn was I became enamored and addicted<br>obviously we talked about that program<br>for way too many hours um forgetting to<br>uh spend the time I needed with my wife<br>with my friends all that stuff like<br>totally wrapping myself up into one<br>activity I think though it made me who I<br>am was probably an unhealthy activity<br>and probably not a wise activity and so<br>the best advice I can give is that you<br>got to develop the love the skill the<br>desire for whether that's just only<br>using AI agents programming yourself<br>using Zig or programming JavaScript<br>whatever you know that flavor is that's<br>going to get you coming back every<br>single day getting the Reps in the gym<br>if you will for programming but also<br>knowing how to Value what is valuable<br>and not getting lost in the sauce where<br>you're just so stuck on trying to make<br>the next greatest startup that you<br>sacrifice your health you sacrifice your<br>relationships or even worse you<br>sacrifice your own morals to take<br>certain shortcuts that you probably<br>shouldn't be taking uh in life to be<br>able to achieve these things because you<br>know I'm sure there's hundreds of horror<br>stories you could hear where people<br>definitely shortcutted their morals for<br>you know monetary success yeah I mean<br>the golden<br>handcuffs uh Comfort can destroy the<br>soul in some<br>sense yeah so that's uh yeah I mean<br>that's really important to remember but<br>would you you know there's young people<br>kind of thinking do I even want to be a<br>programmer<br>now it seems like AI is getting better<br>and better and better at these<br>programming<br>uh if they were trying to make that<br>decision would you still say yeah if<br>this is something that fills you with<br>joy I still want my kids to learn how to<br>program if I can answer that if that can<br>if that's a good enough answer in the<br>sense that my kids are are decade<br>younger than a young person trying to<br>learn how to program right now and so if<br>I want you know I'm hoping that my kid<br>can run and build whatever he want in<br>Roblox I'm showing him chat jippy and be<br>like all right let's ask questions how<br>do we do this it's still extremely<br>confusing for him to do all these things<br>and so it's like let's do this I want<br>him to learn and be effective and maybe<br>one day he has to throw away all those<br>skills in 20 years but I bet you that<br>whatever skills he threw away or<br>whatever hard skills he had to throw<br>away an entirely New Field that none of<br>us have thought about just like if you<br>would have asked somebody in the 70s you<br>know about social networks they'd be<br>like what the heck are you even talking<br>about like things will exist in the<br>future that are going to be massively<br>different and crazy and exciting maybe<br>in virtual reality there you go maybe<br>all of us actually Don the LI would just<br>be building video games just<br>entertainment for all the uh Brave New<br>World of our world well I think I think<br>uh<br>entertainment is a kind of trivialized<br>version of what a video game could be<br>mhm it's like what what is the purpose<br>of life anyway I mean it could be it<br>could be a deeply fulfilling video game<br>it doesn't have to be just like dopamine<br>rush it could be educational could be<br>scary it could be uh uh<br>challenging forcing an evolution the<br>leap into an adventure that makes up a<br>um a fulfilling life that could be video<br>games who knows especially in virtual<br>reality I tend to uh that's the other<br>thing I I play a lot of video games<br>I I think I think there's a lot of room<br>to make video games deeply<br>fulfilling like there's a lot of space<br>where that can go I didn't know you<br>played a lot of video games cuz when I<br>asked you specifically should I play<br>World of Warcraft or do Advent of code<br>you're like Advent of code Advent of<br>code oh well that that might mean I've<br>never played World of Warcraft because<br>there's certain games I avoid fortnite<br>by the way I think was one of them<br>because I was worried become too<br>addicted yeah yeah so there's certain<br>games I just know I won't get super<br>addicted to like for example I'm<br>terrified of civilization like I have<br>never played a civs game because I'm<br>worried I'm worried uh<br>the dark path in my lead because there's<br>some games just really pull you in I'm<br>much better with uh that's why I play<br>Skyrim I can play these games uh or<br>balers gate and moderate my how much I<br>play and they could be like a lifelong<br>companion versus an addiction where I'm<br>like it's like sunrise and you're like<br>what's happening with my life and I find<br>myself naked behind a dumpster somewhere<br>just wondering what happened um yeah so<br>that's how I choose my video<br>you're not the first person who has<br>specifically called out civilization<br>yeah I've had more than one person also<br>very high up in the tech world be like<br>Civilization is my downfall if I get<br>near that game I'm done yep so I've<br>never even played the game now it makes<br>me be like dude I got to give this a try<br>that sounds crazy yeah and the new one<br>is actually supposed to be really really<br>good what were we talking about yes for<br>that same young developers there a<br>trajectory through<br>jobs that you could give advice on so<br>you started out with Schedulicity yeah<br>that was my first uh full-time when I<br>had the Government Contracting one<br>before that with that wasn't quite<br>full-time it was in C it was a lot of<br>fun and then building my own startup for<br>quite some time so if you count either<br>of those as full-time then those would<br>be the fulltime but schedu listi was the<br>official on the docks is so is there<br>some value to jumping around<br>like working one company and another to<br>try to figure out like what brings you<br>Joy I think there's a lot to that cuz um<br>not every job you're going to get is<br>going to is going to be great now your<br>first job you could get could make you<br>think you hate<br>programming it happened I did an<br>internship at a place I I I keep on like<br>surprising you with more kind of things<br>I did in the past did an internship at a<br>at fuck you just so many things it's<br>incredible at a place called like uh<br>total information management system<br>remember when I talked about that hours<br>ago about health care and that and<br>industrial shipping and all that it was<br>a c shop it was so bad that after I did<br>that I went and changed my major to<br>mechanical engineering for a semester in<br>college boy I thought I okay actually I<br>like computer science I hate programming<br>I so you know just because you've had a<br>job doesn't mean it's the it's going to<br>be the one and the thing is the here's<br>the best part though if you get a job<br>and you like it and you want to do it<br>and it's exciting you don't need the<br>change right I think a lot of people are<br>like oh I got to find the next thing<br>I've been here for two years like<br>there's kind of this like you got to<br>move around mindset I don't think you<br>have to move around I don't think it<br>hurts your career<br>because if anything you'll gain more<br>responsibility and you'll be able to<br>talk with way more Authority and the<br>next time you interview you're going to<br>be way more into like oh yeah I had to<br>get these X people and these X people to<br>be able to do all this stuff and it's<br>like you can talk with much more<br>Authority if you stay at a place longer<br>and that's nothing but benefits in my<br>book it's only if you stay at a place<br>because you're afraid or you don't want<br>to you know you already have something<br>that works for you and you just never<br>want to change and you're just like I<br>get to go in and just be completely<br>mindless I think if you go Mindless for<br>a couple years you'll find yourself<br>that's like the only real Danger<br>you just come out with nothing at all<br>yeah especially when you're younger<br>that's the whole point take take the<br>risk take the leap out to the next thing<br>to the next thing and not for money but<br>for just person like joy joy and money<br>could get at the end that's the best<br>part is when you don't strive for the<br>money sometimes the money just shows up<br>anyways yep and some of the what makes<br>life worth living is the people you work<br>with like a a good team some of it's<br>like not to be generic but you know<br>culture matters it's whatever makes<br>you uh happy like for example I just had<br>won't call out places but you know<br>there's certain companies where<br>everybody is very 9 to-5 and it's very<br>even if the work is exciting they're not<br>they don't work hard enough I would say<br>I'm one of those people that likes to go<br>all out like likes to be surrounded by<br>people who are like super passionate now<br>to be fair a lot of them don't have<br>families or don't yeah it's a<br>fascinating choice I I really don't want<br>to talk down on any choice like work<br>life balance or not I think both are<br>beautiful paths and like if you really<br>derive a lot of value from Joy from your<br>work going all in at least for some<br>stretch of your<br>life is a beautiful thing to do just all<br>out fullon passion sacrifice a lot of<br>social life all that kind of stuff I<br>don't know that could also be beautiful<br>there can be something very very<br>exciting about that in some sense<br>especially if you're building your own<br>thing<br>uh I could imagine that would be very<br>exciting like if I was Amazon Jeff<br>bezos's building Amazon one could<br>imagine that those early years were<br>probably very rough and the amount of<br>hours he probably put in were very very<br>rough uh but I will say that there's<br>this kind of unique aspect in our<br>culture where we kind of make this as an<br>equal trade-off between family or work<br>uh like oh you don't you do or you don't<br>have to have kids and my only kind of<br>real notion with that one is that you<br>will never know your capacity for love<br>until you have kids like you you just<br>don't know and some people are like oh<br>yeah but I like love my dog it's just<br>like I loveed my dogs too and then I had<br>kids and now my dogs are they're all<br>right like I like them yeah I could come<br>home and I pet Indie and I'm like Indie<br>and then I'm just like okay bye Indie<br>right like it's just I can't even<br>describe the difference between the two<br>yeah cuz they're not it's not even the<br>same and so it's very that trade off<br>you're making is no one can tell you<br>what it's like cuz there's a real<br>reality that right now and I'm sure I'm<br>100% positive this is with my wife as<br>well where if right now we got news that<br>said you have some medical procedure<br>where if we do this you will die but<br>your kid will live there's not a<br>question in my soul that I wouldn't do<br>that right if I was given if I could<br>look into the future and if I had to die<br>right now knowing that my kids would<br>have a better life they would be happier<br>they'd be more fulfilled and all those<br>things I guarantee you either my wife or<br>I would take that every single time it's<br>just like you will never be able to say<br>that about most things people will<br>jokingly say that until it's actually on<br>the line mhm but it's like with with<br>that you just have this ferociousness I<br>can break out and sweat thinking about<br>somebody fictionally pushing my kid to<br>the ground like like actually get you<br>know real adrenal responses flowing<br>through my body so it's just like such a<br>different world and it's hard to explain<br>and you could never have convinced me<br>when I was young that it'd be this big<br>yeah yeah yeah I thought I knew I didn't<br>know but to add on top of that some some<br>of the most successful people I know<br>some of the most productive people I<br>know have kids so like I don't know if<br>it's even a tradeoff like that love you<br>feel it seems to be a catalyst for like<br>to make sure you have less time but<br>you're going to use that time better to<br>be productive I would argue that I'm it<br>definitely changed a lot of my life and<br>my and how I approach problems and<br>everything in a very different way let<br>me ask some uh random questions from<br>Reddit on a scale of 1 to 10 how much do<br>you hate every product Microsoft has<br>ever created and why is it a 10 okay I<br>think we covered that we haven't<br>technically covered it uh there you go<br>all right go ahead go ahead okay the<br>only thing I'll say is that I don't like<br>that Microsoft pretends to be the good<br>guy yeah when what they really want is<br>to get you addicted to their products to<br>get you to use their products as much as<br>possible so they can extract as much<br>money out of you well in this world are<br>there really good guys that's a great<br>Point uh I would argue neovim is a great<br>guy they there's no way they can make<br>money um Justin Keys is the benevolent<br>dictator and thinks deeply about the<br>product and tries to make it the best as<br>possible whereas something like<br>Microsoft they they made vs code as a<br>loss<br>leader co-pilot's probably operating on<br>a loss leader these things are all<br>getting you so tied into GitHub remote<br>workspaces CI cop like you've become<br>this trapped in permanent person and if<br>that price Rises the switching cost is<br>so great at some point that you'll never<br>be able to switch that's my only fear is<br>that Microsoft was once accused of EE<br>and it feels like they're eeing again<br>yeah I'm nervous about criticizing a<br>good thing because you could see an<br>incentive to do that good thing like<br>Google creating all these services that<br>don't make money like Gmail for example<br>you can sort of sort of cynically say<br>like they're only doing that to tie you<br>into an ecosystem so they can like uh<br>basically keep you for life but also<br>it's awesome that they created Gmail<br>like yeah and they create an incredible<br>product right so I can side with you on<br>that one it is a good product F code is<br>a good product yeah don't put that on<br>the but was fine you know they they they<br>did a great job yeah so like it you know<br>there is going to be Financial<br>incentives behind some of these<br>companies and by the way me defending<br>not defending but saying positive things<br>about Microsoft is just so I could talk<br>shit to Prime but that's I love that by<br>the way yeah Linux is my first and last<br>love it definitely the spirit of Linux<br>and open source is a beautiful thing so<br>I I do think that when you have these<br>large<br>corporations even when they try to do<br>good often times the The Profit<br>imperative just takes over and they they<br>can they can corrupt themselves and<br>Microsoft has a long history of doing<br>just that to themselves yeah that said<br>they've done you know they have you<br>could say for cynical reasons because<br>they want to see seem like the good guy<br>amongst developers but they've done a<br>lot to support open source it's just<br>like same with meta they've meta has<br>done like insane amount yeah to support<br>open source you can say actually for<br>that one I don't even I don't know if I<br>can even make a financial or a cynical<br>case for why meta is open sourcing llama<br>and like these yeah that one's confusing<br>it just seems great maybe for hiring but<br>no I I think that's legit just an<br>ethical really powerful decision and<br>sometimes these<br>companies because they have a lot of<br>cash can make the right do the right<br>thing yeah it's a really positive way to<br>look at it and I think that's that's<br>really nice but we should always be<br>skeptical yeah I mean because at the end<br>of the day companies they're not good<br>they're not bad right they're they're<br>morally neutral it's the people that are<br>running them the decisions those people<br>make that are really where the bad or<br>the good comes from another question<br>asking if he knows how to milk a cow<br>I've already asked that the answer is no<br>oh no you don't know I've never milked a<br>cow never milked a cow almost been<br>killed by a cow but never milked a cow<br>did you ever ride a bull no all right uh<br>why male models okay so I can explain<br>that one mhm I will say something like I<br>really dislike The Color Purple because<br>the color purple makes me upset I don't<br>know just something very benign but then<br>someone right afterwards will be like<br>but why don't you like The Color Purple<br>right and it just be like it's just like<br>Derek Zoolander it's just like I get<br>done on on a five minute talk about it<br>and then the next question's like but<br>seriously why though it's just like why<br>male models yeah yeah so that's the<br>zoland reference when there's a long<br>explanation why male models and uh he he<br>agrees and then forgets y<br>uh uh what is<br>ligma you know I've died by ligma quite<br>a few times ligma so do you know the<br>origin story of ligma no so ninja famous<br>streamer someone got him with ligma said<br>like oh something like have you heard<br>about ligma and he was like no and he's<br>like oh Li my balls right and then after<br>that ninja got like so hurt<br>by getting had by that that he started<br>Banning anyone in chat who said the word<br>ligma or something like that so then it<br>be you know if you don't embrace the<br>meme yep you get destroyed so of course<br>gets destroyed and so then the whole<br>goal is that can people get me with<br>ligma TJ did ey ladies he's like oh did<br>you hear that e girls got renamed to ey<br>ladies and I just didn't even see it<br>coming and I was just like what and he's<br>like ey ladies nuts on your face and<br>then it's just like oh my gosh and then<br>a pirate software has also got me like<br>oh have you heard about Google SEMA<br>which SEMA is a real product by Google<br>and like oh yeah I've heard about this<br>what is this again he's like see my<br>balls right it's just like dang it how<br>do I so I've just had it happen live on<br>stream many many times I've died by<br>ligma the most please ask him about the<br>size of his dick okay so this is so<br>that's di that's dictionary in Python<br>who doesn't love dicks yeah that's a<br>great question just a dict party when<br>you use a python I love dicks that<br>should be a<br>t-shirt uh that's actually a hilarious<br>teacher but so on stack Overflow you can<br>ask any question you want and I decided<br>to craft a question one day on stack<br>Overflow that says how to measure your<br>dick in bites and then I proceeded to<br>really go to town and like explain all<br>the different things like well what<br>about the cost of the strings and the<br>references and you know like when you<br>really get both hands on your dick and<br>really go after it's like very hard done<br>under like really threw in some<br>innuendos the stack Overflow team<br>deleted the question and then someone<br>hand wrote me a uh an email explaining<br>why they deleted the question and<br>complimented me on how thoroughly and<br>thoughtful the question was just to W<br>just to weave in inuendos and that the<br>entire team was impressed but it's<br>inappropriate and it had to be deleted<br>and don't do it again or we're going to<br>ban your account and so it's like very<br>funny moment and so I was like oh that's<br>funny you know that happened uh two that<br>was about six years ago M last year I<br>was at a conference and there's a guy<br>wearing a stack overflow uh name tag and<br>I was like oh you work at stack Overflow<br>he's like oh yeah I do I'm like D I got<br>a story for you and he goes no wait a<br>second are you the dicked guy like that<br>was his only question was that I was<br>just like let's go I didn't even say<br>anything about me and he already knew<br>immediately I was the dick guy uh I<br>should say in all seriousness I think<br>I've had a bunch of conversations s of<br>in the python world where I would have<br>to mention the name of this data<br>structure and it makes me uncomfortable<br>every time you know it's a very<br>unfortunate short of a word di it's just<br>like when I go to the hardw store and<br>ask for cock yeah and there's always a<br>nice old lady and I ask her where to<br>find and it's very uncomfortable I triy<br>to pronounce it as hard as I can really<br>get that l in there like<br>call just to be clear and try to avoid<br>eye contact the whole time you said you<br>said that God was a big part was a big<br>part of your life can you speak to that<br>a little bit more who is God and what<br>effect what role do you play in your<br>life so I you know I I did talk about<br>that one important evening where I for<br>whatever reason gained my my conscious<br>that moment um so obviously for me that<br>I grew up with a life where I would<br>probably argue myself as a functional<br>atheist I went to church a handful of<br>times I can't quite really remember<br>actually going to church as a family in<br>any sort of sense so there wasn't like<br>some super strong tie or anything like<br>that to it like pretty much anyone else<br>growing up in America in the '90s you<br>had some sort of impact or intersection<br>with church at some point in your life<br>uh that was just a very normal thing I I<br>would probably say and so when that<br>happened it was a it was a fairly big<br>surprise for me I was you know I wasn't<br>necessarily going that direction or<br>deciding to do any of those things and<br>so for me it's it's obviously the the<br>turning point of my entire life uh I<br>would have I I cannot speak to who I<br>would be now now without that I can just<br>tell you that I wouldn't have had the<br>drive I probably would not have<br>completed college I would not have found<br>my wife or had my kids I wouldn't know<br>how to Value people I don't think<br>without that whole thing my value for<br>people would have been very very small<br>CU I would have continued just<br>objectifying in the way I was and then<br>probably the biggest thing is there's<br>this one verse I don't even know where<br>it's at it effectively says that we love<br>because he first loved us and so for me<br>it's like<br>I don't think I would have ever lived a<br>life that was happy without this and I<br>just didn't even know that that was an<br>option for me and I never really you<br>know it was a very tough set of years<br>for me and I was very very sad and just<br>always kind of just constantly looking<br>for something to fulfill me and so it's<br>like I didn't have any confidence I<br>didn't have any Joy I was I was I felt<br>very sad and so that was kind of this<br>moment<br>where for the first time ever I didn't<br>all of a sudden I just felt like I<br>didn't have to live up to a standard<br>right like my the standards have already<br>been paid for like everything's already<br>like that that's that's the free gift<br>that's that's the exchange and so it's<br>just like for the first time I didn't<br>have to be the cool guy I didn't have to<br>have all the right words I didn't have<br>to feel you know I didn't have to go on<br>The Conquest the sexual Conquest to find<br>validation like I didn't have to do any<br>of those things and it was exceptionally<br>liberating and and so who is God that's<br>more of like a catechism question<br>perhaps uh what is man who is God right<br>like those those are much much harder<br>questions um I believe that anytime you<br>Tred to get too deep into describing who<br>God is you typically fall into Christian<br>heresy mhm but for you he gave you a<br>chance to be happy yeah he gave me a<br>chance not just to be happy but also uh<br>made it so that for like the first time<br>I can I can actually feel forgiven I<br>guess in some sense and able to forgive<br>people that hurt me like for a long time<br>I I had this like weight I'd carry<br>around from like the things I hated<br>about high school and all that kind of<br>stuff and through that experience I just<br>wrote down every last person's name and<br>actually held them with me for quite<br>some time and this was the list of<br>people I I forgave and I read it a few<br>times cuz like I couldn't let myself be<br>angry or consumed by that kind of stuff<br>cuz like hate is so sticky right it it<br>sticks for a lifetime and there really<br>is only one Fe for hate which is<br>forgiveness like I just don't think you<br>can get rid of it without that and so I<br>just had choose to forgive these people<br>and to move on and it really kind of<br>freed me and I would never have thought<br>forgiveness as a means for that change<br>if I didn't first experience it<br>myself what's the role of Love In The<br>Human Condition to go to the<br>philosophical and what's been the role<br>of love in your<br>life it's very obvious that every person<br>wants or desires love uh my wife has<br>recently convinced me to watch Love is<br>Blind with her one time and you watch<br>the show and if you're not familiar with<br>it it's just feels like just a disaster<br>of an experiment to to just cause crazy<br>filming but anyways the idea is that if<br>you just don't see somebody you can fall<br>in love with somebody and want to marry<br>them after like 10 days or some very<br>small period of time<br>and what you really end up seeing is all<br>these people who are just desperate for<br>actually love and there's like some part<br>of it I always I told my wife it's like<br>love Gladiators we're watching people<br>battle it out for drama and really what<br>they want is love and it's like they're<br>fighting to the the death in love if you<br>will and it's this almost kind of sad<br>aspect to watch and so I think that it's<br>it's it's hard to call like what is its<br>role in The Human Experience because I<br>don't<br>think I think it's just something that<br>we all naturally not just want but need<br>and I don't think that you can really<br>progress and when I say the word love I<br>I would like to kind of narrow it down<br>maybe a bit more and I don't mean like<br>Aeros the Greek word like sexy love I<br>think that paternal and friendship love<br>are extremely important and I think<br>Agape like God love is also very<br>important agape love is the one that is<br>superior to them all but obviously<br>different and also you know co-ed with<br>the parental ones and all that and so<br>you kind of need this mixture of them<br>all and each one is different for each<br>reason and where it's applied and so I<br>don't<br>think I just don't see a world in<br>which is good of any kind without that<br>as like a very foundational piece right<br>because you know again not you know I<br>didn't I didn't come here trying to<br>quote any sort of sub scripture but it<br>says that it's not the nails that hung<br>them there it's love that's the reason<br>why these things happen and so it's if<br>forgiveness is the requirement to kind<br>of pay off hate in some sense then love<br>has to be the motivation for forgiveness<br>yeah that's uh the tragic aspect of life<br>I think we're all there's like a deep<br>loneliness in all of us and a<br>longing longing to be a part of this of<br>this bigger<br>thing and uh that longing is is is a<br>love and it has many names but yeah that<br>the love aspect of it is is the<br>beautiful aspect of life the tragedy is<br>the loneliness and the unfortunate<br>suffering that is a fundamental part of<br>life and uh the beautiful aspect is the<br>love<br>yeah uh which I think is a good time to<br>mention more Reddit the the the the<br>place for Everlasting positivity and<br>love uh somebody wrote uh please thank<br>him you uh for his Everlasting<br>positivity and give him a big hug for me<br>so uh I won't give you a big hug on<br>camera cuz I'm afraid I'll get a boner<br>and that will be very unfortunate hey<br>let's not bring dicks into this again<br>okay it's my favorite data structure<br>like I said I love dicks uh all kinds of<br>dicks ordered dicks unordered unordered<br>dicks I don't discriminate uh and<br>yeah uh but<br>just that to say like big thank you uh<br>for me like I listen to you a lot just<br>and I just really enjoy I've been going<br>through a lot of shit myself and just<br>the positivity even when you're building<br>the stupidest shit it's just the<br>positivity radiates from you and it you<br>inspire me to be a good person you<br>inspire me to build stuff so thank you<br>and I'm sure there's many many others<br>who listen to you for the same reason so<br>thank you for your positivity thank you<br>for uh being the light in many people's<br>lives thank you for talking to there<br>brother dang that was very very kind I<br>really do appreciate all those extremely<br>nice words even from Reddit that's very<br>surprising but yeah thank you I I mean I<br>know you know<br>that there's many people's lives and I'm<br>sure you've received the letters that<br>have been changed from from actions and<br>things you've said and things you've<br>done and<br>so it's one of the best parts about<br>doing this side is that you get a chance<br>to potentially improve somebody's life<br>you know and you getting to interview a<br>lot of people like there's a lot of<br>people that listened to Chris latner and<br>saw his excitement for Swift and<br>probably went and learned Swift and then<br>got really amazing jobs and it can be<br>all origined back to you and that<br>interview and so it's you know those are<br>amazing things and<br>so same goes back to you you've done a<br>lot of a lot of good stuff uh right back<br>at you brother thank you for talking<br>today thanks for listening to this<br>conversation with Michael pson AKA the<br>primagen to support this podcast please<br>check out our sponsors in the<br>description and now let me leave you<br>with some words from Paulo<br>coo when we strive to become better than<br>we are everything around us becomes<br>better too thank you for listening and<br>hope to see you next time - The following is a conversation<br>with Michael Paulson,<br>better known online as ThePrimeagen.<br>He is a programmer who has entertained<br>and inspired millions of people<br>to have fun building stuff<br>with software, whether you're a newbie<br>or a seasoned developer who<br>has been battling it out<br>in the software engineering<br>trenches for decades.<br>In short, ThePrimeagen<br>is a legendary programmer<br>and a great human being with<br>an inspiring roller coaster<br>of a life story.<br>This is the Lex Fridman Podcast.<br>To support it, please<br>check out our sponsors<br>in the description.<br>And now, dear friends,<br>here's ThePrimeagen.<br>What do you love most about programming?<br>What brings you joy when you program?<br>- I can tell you the first time<br>that I ever felt love in programming,<br>or felt that joy or that excitement-<br>- Sure.<br>- Which was in college.<br>It was the second class, data structures,<br>and the teacher that was<br>teaching, Ray Babcock,<br>he was talking about linked lists.<br>Now you have to learn Java<br>at Montana State University<br>when I went, and so he's<br>off there explaining<br>this whole linked list thing and all that,<br>and then he shows code.<br>And in the code it's<br>like abstract class node<br>or whatever it was, I<br>can't remember what it was.<br>And then it had a private member,<br>and that private member was of type node,<br>and I've never seen that before.<br>It is a class that is called node<br>with a member that is of itself.<br>And for the first time ever<br>I was like, "Oh my gosh."<br>Like there's no end.<br>There's no way to iterate.<br>This is not a set of 10 items.<br>This is a set of infinite items.<br>And so my mind kind of<br>exploded in that moment.<br>Like, there is actually...<br>What you can express is huge.<br>I can see what memory looks like.<br>I can see this hopping through space.<br>And I just remember<br>being just so blown away,<br>because up until that<br>point, everything was just,<br>all right, I have a list of 10 items.<br>I have a list of 20 items, right?<br>It was very rigid and small,<br>and the things I built were<br>really small and trivial,<br>and all of a sudden I felt<br>like I could build anything<br>in that one moment.<br>And it was so amazing.<br>I just remember sitting in class for,<br>I don't even remember<br>how long those classes were or anything,<br>but I just remember being just completely,<br>like profoundly impacted by this notion.<br>And so I just sat there and I watched,<br>and I had the exact same<br>experience in heaven's forbid<br>by a software engineering class,<br>when we talked about<br>the Decorator pattern,<br>where you can keep on<br>constructing these objects<br>in this recursive way.<br>Not that I think that's<br>actually a good idea to do,<br>but just watching that<br>and realizing there's<br>so many weird and unique<br>ways you can solve problems,<br>and you can just...<br>Anything your mind can think<br>of, you can just create that.<br>And I just remember<br>getting just so excited<br>about the possibility<br>that anything is possible.<br>- Yeah, let's wax philosophical<br>about a linked list.<br>It is pretty profound.<br>For people who don't know,<br>a node in a linked list<br>doesn't know anything<br>about the world it's in.<br>It only knows about the thing<br>it's linked to, its neighbor.<br>Maybe that's symbolic. It's a<br>metaphor for all of us humans.<br>There's billions of us on this planet<br>and we only know about<br>our local little network.<br>- Yeah.<br>- And it's kind of beautiful.<br>And you realize in that<br>little simple data structure,<br>you can construct<br>arbitrarily large systems,<br>and they're like roots<br>that go through memory.<br>And then of course,<br>that's where you get all<br>the programming languages<br>that allow you to dump junk into memory<br>and have memory leaks, and<br>therefore create infinite pain<br>as you try to figure out<br>where that unfreed memory is.<br>For me, yeah, probably...<br>It's so beautiful the way you put that.<br>Linked lists are indeed beautiful.<br>Recursion also for me,<br>when I finally wrapped my brain around<br>what it means to write<br>a recursive function.<br>- What was the thing? What<br>was one that taught you?<br>Because I think we all probably...<br>You probably did factorial,<br>where you just do a quick factorial of it.<br>It just doesn't hit home.<br>What was the thing that made it hit home?<br>- I don't remember the first. (chuckles)<br>- I remember my first.<br>How do you not remember<br>your first? It was magic.<br>- I've had so many that just...<br>- I mean, you are a Lisp guy.<br>You're probably pretty<br>used to the recursion.<br>- Yeah, all I remember is just surrounded<br>by sea of parentheses.<br>I mean that's really, probably, when I...<br>In high school, I think<br>it was either Java or C++.<br>Wow, how do I not remember that?<br>It must have been C++.<br>And then college it was,<br>the generic bullshit software<br>engineering classes were Java,<br>but then the renegades, the<br>cool kids, were all using Lisp.<br>That's when you're doing the AI,<br>the quote-unquote "AI" at<br>that time, that was Lisp.<br>If you want to write a chess<br>engine, you would use Lisp.<br>And so for me, probably the<br>moment I really fell in love<br>with programming was Lisp,<br>and writing Othello<br>programs and chess engines,<br>all kinds of engines that play a game,<br>and then I could play against that thing<br>and that thing would beat me.<br>The joy of being destroyed<br>by the thing you've created.<br>And oh, game of life<br>too. Cellular automata.<br>That's when I...<br>I built that, you know, all<br>kinds of programming languages.<br>That's less about programming languages<br>and more about the system you create.<br>And that just filled me<br>with infinite joy, having...<br>Now similar to the linked list situation,<br>creating a system where<br>each individual cell<br>only knows about its neighbors<br>and operates in very simple rules.<br>But when you take that system as a whole<br>and allow it to evolve over time,<br>you can create infinite complexity.<br>So I just...<br>Man, those are many pothead moments,<br>where I'm just looking at<br>the beautiful complexity<br>that can be created<br>with cellular automata.<br>That filled me with just<br>infinite joy, for sure.<br>But yeah, all I remember is parentheses.<br>So my first, memories<br>of my first are drowned<br>in a sea of parentheses.<br>- Oh man, mine is, I have...<br>Well, first off, mine was in Java,<br>so my first was a little bit more rigid,<br>kind of a corporate, you<br>know, a corporate experience.<br>- Yeah.<br>- But...<br>- Cold, meaningless.<br>- Cold. Yeah.<br>I was in a lab, everyone<br>was using CentOS at that...<br>Or CentOS or however you say.<br>I always called it<br>CentOS, the fresh maker.<br>- Yeah.<br>- And so it's just like<br>I'm in this very cold...<br>(Lex laughs)<br>- That's nice.<br>- Thank you.<br>- Yeah.<br>- I'm in this cold,<br>rigid environment with<br>my Microsoft keyboard,<br>programming away in Java.<br>And I still have just such,<br>this memory of despair,<br>because I love programming,<br>this was after the linked list,<br>and I cannot figure out recursion.<br>And so I go to the university<br>store and I buy a book<br>and it's Deitel and Deitel learn Java<br>and it has a section, Recursion,<br>so I open it up and I start reading it,<br>and it just doesn't hit home.<br>And I'm spiraling into this.<br>Like, maybe I'm not a programmer.<br>Maybe I'm not worthy enough to enter<br>into this circle of<br>people who can figure out<br>what the heck recursion means.<br>And Deitel and Deitel's,<br>I still remember this,<br>their exact phrase was,<br>"Every young budding developer<br>solves this recursion program,"<br>and it was the Tower of Hanoi.<br>And guess what?<br>I don't know if I can solve<br>the Tower of Hanoi to this day.<br>It's a very hard recursive problem.<br>And I just sat there and<br>thought, "Oh my gosh.<br>I'm not going to make it."<br>And I sat there in the<br>lab for 8 hours, 10 hours<br>doing these things, so worried.<br>It's the week of recursion, we<br>have to do a lab assignment.<br>I'm not going to be able to do it.<br>And I just remember being<br>genuinely worried about that.<br>And then, because I always...<br>My big problem was like,<br>okay, do factorial.<br>Why not just use a for loop?<br>Okay, what about Fibonacci sequence?<br>Why not use a for loop?<br>I don't understand. What's<br>the purpose of recursion?<br>I don't understand it,<br>yet it's so powerful. Why?<br>It looks like a really<br>complicated for loop.<br>And so I just could not understand it.<br>And then lab came that day and it was,<br>I'm gonna give you a 2D array<br>you have to read from a file.<br>This is what a starting<br>position looks like.<br>This is what an ending<br>position looks like.<br>This is what a wall looks like.<br>I want you to find me a<br>path through the maze.<br>So I just sat there like,<br>Okay, well, I guess I can just go up<br>and I can create a visited grid,<br>so I know not to visit<br>these places anymore.<br>And then all of a sudden<br>it just started clicking.<br>Like, well, wait a second.<br>I don't know the maze, but if I just go<br>up, right, down, and left,<br>and hop back every time<br>I've been to that square,<br>don't visit it, like, I can<br>just, it will just go forever.<br>And I realized in that moment,<br>I'm like, I actually understand recur...<br>I've understood recursion this whole time,<br>I just never had a problem<br>in which it actually made sense to use.<br>And that was my big downfall,<br>is that I was measuring my<br>understanding with the problems<br>that I had available, which<br>were just list traversal,<br>which is not a good use of recursion.<br>And so I just remember that freeing...<br>Oh, man. Recursion.<br>It was a great moment in my life.<br>- I mean it does require,<br>to be fair, a leap of faith,<br>because people will tell you,<br>those conformist, dogmatic,<br>Java instructors will tell you,<br>that this is important,<br>to understand recursion.<br>But it takes a leap of<br>faith that is something,<br>this is a different way<br>of looking at the world,<br>and it's a powerful way<br>of looking at the world.<br>Actually remembered when I...<br>Think I first...<br>I think I remember my first now.<br>- [ThePrimeagen] All right.<br>(Lex chuckles)<br>- I think it was dev first<br>search for one of the games.<br>Maybe Othello, something like that,<br>and for that implementing recursion.<br>Understand that you<br>can search trajectories<br>through the space of states<br>and do that recursively?<br>That was mind blowing.<br>Just imagining like...<br>- You can just see it all.<br>- The possibilities.<br>Yeah. Just like numbers flying.<br>It was like The Beautiful Mind.<br>And that's when I also<br>discovered conspiracy theories.<br>(Lex and ThePrimeagen chuckle)<br>That was...<br>And I just saw, I saw the truth.<br>Okay. Yeah.<br>So what were we talking about?<br>Oh, what was the most painful<br>aspect of programming for you?<br>What memories do you have<br>of deep, profound suffering<br>in terms of programming in the early days?<br>- I would say the biggest one<br>that I can really hold on to<br>had to be one of two experiences.<br>The first experience was<br>when I was at a place<br>called Schedulicity, and...<br>Am I not allowed to say the place-<br>- You're allowed.<br>There is...<br>- I'm not sure if they're<br>even operating still<br>at this point, but they're in-<br>- There was something funny<br>about the name. I'm sorry.<br>- Oh, Schedulicity? Yeah.<br>Actually, the name was so bad that<br>when you looked at their<br>paid-for Google ad terms<br>that they would make sure<br>that they're at the top of the list,<br>the spellings were just insane,<br>because no one knew how to<br>spell the word Schedulicity,<br>and so, it was just like this,<br>the Google optimizing for<br>that is just hilarious.<br>But okay, go back to the thing.<br>The thing that kills me<br>the most about programming,<br>what I actually considered the<br>worst aspect of programming,<br>is when you know everything.<br>And so when I was at this job,<br>it's just every single day I'd come in,<br>there were no surprises,<br>there was no questions.<br>I didn't understand the code<br>base, sure, that's fair.<br>I didn't understand all the<br>things about the code base.<br>But I knew I was gonna go in,<br>I was gonna generate some sort<br>of object from the database.<br>I was gonna take that<br>object from the database,<br>and I was just gonna map it over<br>and just display it on the webpage.<br>There's no creativity,<br>there's nothing to it.<br>It's very almost factory<br>line kind of work.<br>And that was a very difficult<br>moment for me, which is...<br>I didn't enjoy programming,<br>because I knew everything about it.<br>I already knew exactly what<br>I was gonna do that day.<br>I knew all the hurdles I<br>was gonna have to go over.<br>There was no unknown<br>unknowns, if you will.<br>It was just knowns at all times.<br>And it just, that is...<br>And for me, that is the<br>worst part about programming,<br>is when you already know the solution<br>and it's just a matter<br>of how fast you can type<br>and get it out from<br>your head to your hands.<br>- So the absence of uncertainty,<br>the absence of challenge, was the pain?<br>- Yeah.<br>- That's pretty profound, Prime.<br>- I'm more than just good<br>looks. I want you to know that.<br>(Lex and ThePrimeagen chuckles)<br>- It's a low bar.<br>What do you identify as?<br>I'm enjoying asking the general question.<br>- 38, male.<br>- Male.<br>- Husband of beautiful wife.<br>- Okay.<br>You stream about all kinds of programming,<br>but what kind of programmer are you?<br>Are you full-stack<br>developer, web programming?<br>And maybe can you lay out<br>all the different kinds of programming<br>and then place yourself in<br>that, in terms of your identity.<br>Sexual identity as well.<br>- Yeah, I can get it, we<br>can put it all in there.<br>- Okay.<br>- Plus, obviously those two<br>are very, very tightly coupled.<br>- I have seen you on the<br>border of sexually aroused<br>by certain languages.<br>I think you got real<br>excited about OCaml, or...<br>- OCaml. Let's go.<br>Thank you Dillon Mulroy.<br>- Okay, wow.<br>- Yeah.<br>- I did not expect that.<br>That escalated quickly. Anyway,<br>what do you identify as?<br>- Okay, so first let's do the previous<br>or the in-between question first,<br>which is the different archetypes.<br>I think that's a really<br>interesting kind of question,<br>because if you go on<br>Twitter or you're new,<br>your thoughts are probably<br>that there is just web programming,<br>and maybe there's some other stuff,<br>yeah, like game programming,<br>but you'd be like,<br>game programming in<br>JavaScript and on the web.<br>There's this very myopic view<br>of the programming world,<br>and I bet if you ask a<br>lot of people these days<br>what is the most popular<br>form of programming,<br>they'd probably say web.<br>If you said what contains<br>the most amount of repos,<br>how many percentage of repos<br>on GitHub are web-based,<br>they probably say 90% or some huge number.<br>But the reality is<br>that there's an entire<br>embedded robotics world.<br>You know, you're familiar<br>with the ML side of things.<br>There's networking, there's<br>gonna be just performance,<br>operating systems, compilers.<br>There's just huge amounts of variation<br>of all these different types<br>of programming verticals<br>that you can be.<br>And so we often talk about programming<br>in perspective of web, or<br>something that's pretty narrow,<br>and I think that's just a<br>social construct of Twitter<br>more than anything else,<br>that actually I don't believe<br>it's that representative<br>of the entire programming world out there.<br>And I think a lot of<br>programming's really, really fun.<br>There's some really great stuff.<br>Building your own language<br>is just a very fun experience to do.<br>Every programmer should just do that once,<br>just to have a completely<br>different perspective<br>on how things work in life.<br>But as far as what do I do,<br>I've always looked at<br>myself as a tools engineer.<br>So at my time, at my jobs, typically<br>I would start off on the<br>UI, and then they'd be like,<br>"Okay, well hey, we need<br>a library for this thing."<br>So then I'd be the one<br>writing the library.<br>So in 2012, 2013, I was<br>writing a UI library<br>for the web that can<br>behave just like an iPad,<br>so you can pinch and zoom on<br>it, but it's still a web page.<br>Because we didn't have any<br>of that stuff back then.<br>It was a canvas, had to do<br>all the matrices operations<br>and all that stuff to kind of...<br>- Nice.<br>- You know, it felt like<br>you're on an iPad, but it<br>actually wasn't on an iPad.<br>And this was iPad 2 by the way,<br>so this is a long time ago.<br>And so every single time I<br>got into a job it's like,<br>"Okay, hey, we need to do a library.<br>Hey, can you work on a build system?"<br>So back then there was no<br>Grunt, there was no gulp,<br>there was no any of those things,<br>so I had to hand roll my<br>own JavaScript build system.<br>And so I always fell into these<br>positions of building tools<br>for developers to be successful.<br>And I've always really<br>enjoyed that region.<br>So as I went on to say<br>Netflix, spent 10 years there,<br>I'd say the majority of my<br>10 years were building things<br>for developers to use<br>that they could be<br>successful at their job.<br>And so I've always really<br>enjoyed that aspect,<br>because your stakeholders and the people<br>that use your program<br>understand programming<br>and they're gonna say, "Hey, I need this."<br>And typically the thing that<br>they need, they actually want.<br>Whereas with people, people want stuff,<br>but what they actually need<br>versus what they actually want<br>often are this weird separation.<br>That's like the old Henry Ford quote,<br>"I just want a faster horse,"<br>and he's like, "No, what<br>you actually want is a car."<br>And so it's like, you<br>have to play this game<br>of trying to really figure it out,<br>whereas developers, it's like,<br>I know, you know what I'm<br>doing, I know what you want.<br>Let's figure it out together."<br>- That's actually, that gives you<br>a really nice big-picture view<br>of programming in general.<br>So I love the idea of just<br>starting at the interface,<br>like you need to pinch and<br>all that kind of stuff,<br>and then figure out the entire thing<br>that requires to make that happen,<br>including maybe the side quest tooling,<br>how to make it more<br>productive and efficient,<br>all that kind of stuff.<br>So the entirety of the<br>thing. That's really cool.<br>Okay, so that mean that<br>would be full stack?<br>By that general definition of<br>full stack, meaning like...<br>- [ThePrimeagen] Perhaps, yeah.<br>- Versus systems engineer,<br>like starting at the bottom<br>and trying to optimize a<br>certain kind of specific thing<br>without seeing the big picture<br>of what the resulting<br>interface would look like.<br>And a lot of people in web programming,<br>they never go beyond the<br>front-end of how a thing looks.<br>They kind of always assume<br>there'll be somebody,<br>some grunt in the shadows,<br>in the darkness of the basement,<br>that will implement the back end.<br>- Some Gilfoyle out there<br>will be doing the back end.<br>- Gilfoyle. Yeah.<br>- Yeah, I like to call<br>myself a generalist,<br>just to give some ideas.<br>At one point at Netflix I<br>built the WebSocket connection.<br>So for TVs, how WebSocket<br>works is code I just wrote.<br>And so I built the framing thing,<br>and before that I was<br>doing stuff with memory,<br>and before that I built a UI for a tool.<br>Right? I can just do the thing.<br>You just tell me the thing to do<br>and I'll just go do the<br>thing. I worry to...<br>I don't try to get super good<br>at one specific activity.<br>I don't want to be a Kubernetes engineer,<br>who's the world's greatest employer,<br>but if I had to go learn Kubernetes,<br>I'd go learn it and learn<br>how to deploy some things,<br>and then hopefully move<br>on to the next thing,<br>if that makes sense.<br>- I posted about the fact that<br>I'm talking to you on Reddit,<br>and there's a lot of wonderful questions.<br>Somebody mentioned that I<br>should ask you about DevOps.<br>Can you explain what DevOps is?<br>Is it a kind of special<br>ops of programmers,<br>is it SEAL Team Six of developers?<br>What's DevOps? Can you define?<br>Are you a DevOps engineer?<br>- Well, people keep telling<br>me DevOps isn't real.<br>There's actually, you<br>want platform engineers,<br>cloud engineers, infra engineers.<br>I just often think the easiest way,<br>if we're doing just<br>some basic nomenclature,<br>it's just DevOps are the<br>people that make sure<br>that when you launch a<br>service and all of that,<br>it doesn't just disappear, right?<br>It's all the backbone<br>of being able to operate<br>something at scale.<br>Like really don't, if you think about it,<br>if you're just writing<br>a mom-and-pa website,<br>people that do PHP that are<br>doing WordPress and all that,<br>they're going to build something,<br>they're going to hand<br>it off to, I don't know,<br>Linode, DigitalOcean, some company.<br>They don't really need a<br>really complicated build,<br>deployment, all this.<br>It's just someone with a simple website<br>so they can sell their goods.<br>And so they don't really need that.<br>And so that's kind of<br>how I think of a DevOps,<br>is when things need to scale,<br>that's kind of the person you hire.<br>- Yeah, those people are actually amazing.<br>- [ThePrimeagen] Yeah.<br>- The time I spent at Google,<br>it's like, oh, yeah, yeah,<br>there's all these fancy<br>machine learning people,<br>but the folks that are<br>running the infrastructure,<br>basically that make sure<br>that shit doesn't go down,<br>they're like wizards,<br>and they're essential.<br>- It's a very incredible vertical of job.<br>And obviously I'm using a<br>very broad term to describe,<br>I'm sure, like a bunch...<br>You know, because making<br>sure stuff doesn't go down,<br>you could also say that's an SRE, right?<br>Site reliability engineer.<br>Whatever, the ones that wear<br>the bomber jackets at Google.<br>And so when we say DevOps,<br>I think people get very particular<br>about terms specifically in this category.<br>They're like, "Well actually,<br>you're mentioning infrastructure engineer<br>versus site reliability engineer."<br>It's just like, "Okay, yes, I hear you,"<br>but generally when someone thinks DevOps,<br>they think somebody<br>that manages the servers<br>and their life cycles and the reliability.<br>There's DevOps.<br>Is it real? I'm not sure.<br>- [Lex] Okay.<br>- Did Vercel kill DevOps?<br>- Question mark?<br>- Question mark.<br>- Yeah. Wow, you're almost a journalist.<br>That's a headline.<br>Let's go back to the beginning.<br>- All right.<br>- Baby Prime.<br>So you mentioned Netflix.<br>You've...<br>- Oh, I worked at Netflix by the way.<br>- For people who don't<br>know who ThePrimeagen is,<br>he mentions the fact that<br>he has been very successful<br>and has worked at Netflix in<br>basically every other sentence.<br>- Correct. Almost as<br>much as I mention Neovim.<br>- Oh, great. Tell me more about Neovim.<br>No, please don't.<br>So, baby Prime. At the very beginning.<br>You've had one hell of a life,<br>and I think it's inspiring<br>to a lot of people.<br>you've come out of that to<br>become a successful programmer<br>and a person that inspires<br>a huge number of people<br>to get into programming, and<br>just to find success in life.<br>So maybe, I would love it if you laid out<br>just your whole life<br>journey from the beginning.<br>- So I guess if we're gonna<br>start with this whole journey,<br>I think it's probably best to start to<br>when I was about four or five years old.<br>That was the first time I was<br>ever exposed to pornography,<br>and it's kind of just earwormed me<br>for a large portion of my life.<br>And so I don't think there<br>was a day that didn't go by<br>from when I was a very<br>young lad all the way up<br>until I was twenty-some years old<br>where I didn't think about<br>porn on the daily basis.<br>And so it was just every<br>single day, even that young.<br>And so it was just a very<br>mind-consuming, time-consuming,<br>thought consuming thing that plagued me,<br>starting at a very young age.<br>When I was seven years old, my dad died.<br>That was kind of a really<br>tough period of life.<br>I still think about this time<br>that I went over to China,<br>and there's some rules that we were given,<br>and one of the rules was just like,<br>"Hey, don't talk about God,<br>and if you do, use the<br>word 'Dad' instead."<br>And I was just like, "Okay, Dad!"<br>It was the first time I<br>said that word in 17 years<br>or some long time.<br>"Daad." It was so weird<br>to say that phrase.<br>And I was just like, "Oh, that<br>was just the strangest thing<br>I've ever said in my entire lifetime."<br>It just felt so weird.<br>So, kind of rewind.<br>As I got older, obviously<br>was very good at computers,<br>good at accessing porn, of course,<br>played video games on the Internet.<br>Fun fun kind of side quest story.<br>I think the guy's name<br>is Lord Toc on Twitch.<br>I can't quite remember his name,<br>but he built this game<br>called Graal, G-R-A-A-L,<br>and Graal Online.<br>And when I was a young lad<br>it was just like Zelda,<br>except for it also had a level editor<br>and it had a C-like language,<br>and that's how I<br>discovered how to program,<br>is I looked at these<br>symbols and figured out<br>what they meant,<br>and then I was able to make<br>things happen in the game.<br>And that was like a,<br>that's my introduction into programming.<br>So thank you that guy,<br>whatever your Twitch name was.<br>But all right, so keep on going.<br>As I got older, I was super bad socially.<br>I was not a very great social person.<br>High school was brutal,<br>got made fun of a lot,<br>really didn't enjoy, I<br>wouldn't say had a great time<br>during high school.<br>Definitely felt very out of place<br>or offset or maybe misplaced, if you will.<br>I'm not sure what the right word is.<br>And so of course at that<br>point, I just always wanted to,<br>I wanted to be accepted,<br>to fit in and all that.<br>I did forget to say one side story.<br>After my dad died, my older brother,<br>he started getting into drugs,<br>and along with that he exposed me to pot,<br>so at eight years old I<br>was smoking some marijuana<br>for a while there, until maybe<br>11 or 12, and took a break,<br>and then again did a lot of that<br>as I got a little bit older, but...<br>So I got a lot of these<br>exposures fairly young.<br>16, 15 through 18, lot<br>of drinking and all that.<br>When I graduated, or as I<br>was graduating high school,<br>it's just like, I had<br>such sadness, if you will.<br>I was very sad about how everything went,<br>tried to commit suicide,<br>obviously it was a very poor attempt.<br>And I'm still here today. I'm<br>very happy about that aspect.<br>I'm glad that I didn't<br>follow through with anything,<br>had to go to the hospital and all that.<br>And when I was done, I just still remember<br>kind of coming out of the hospital,<br>and at that moment it's kind<br>of like something broke in you.<br>Have you ever read the book Wheel of Time?<br>It's 14,000 pages or something like that,<br>but right around page 12,000,<br>Rand has to intentionally kill<br>a girl, the main character.<br>And that's the moment he breaks,<br>and he gets into like Hard Rand,<br>Quindalor Rand, if you will,<br>for those that know Wheel of<br>Time will appreciate all that.<br>For those that don't, very<br>confusing, and I understand.<br>Not the Amazon movie show,<br>not that Wheel of Time.<br>So now that we go back onto it,<br>at that point it's just like<br>something kind of broke in me,<br>and I just didn't care anymore.<br>So all the social<br>awkwardness, if you will,<br>all that, just died away with me,<br>but also so did everything else.<br>And so I started using a bunch of drugs.<br>LSD, mushrooms, meth.<br>Did a bunch of meth, did<br>a bunch of that stuff,<br>and then went off to college<br>and continued to do a bunch of stuff.<br>I took too much acid to<br>where for quite a few years,<br>I had little squigglies<br>on the side of my eyes<br>whenever I'd walk by<br>high contrast objects.<br>And so it's just that whole period of life<br>was just kind of marked<br>by just poor decisions.<br>And then sometime when I<br>was about 19 years old,<br>somewhere in that range, I<br>just had this one evening<br>where I felt the very dramatic<br>and real presence of God.<br>And I kind of had this choice,<br>like Frodo, on a razor,<br>where it's like if I go either<br>way, I'm going to fall off,<br>and I need to change my life.<br>You get to make the choice now.<br>Do you want to do that or not?<br>And so I remember going, okay,<br>I do want to change my life.<br>I don't like this experience.<br>I don't like what I'm<br>living. I am still very sad,<br>I still feel very desperate.<br>I still feel all those things.<br>I'm just pretending to<br>be this other person.<br>And then I just went to sleep that night.<br>Nothing changed in my life.<br>Everything was still the way it was.<br>I woke up the next day, the same person,<br>and I was just like,<br>"Oh, that's just such a<br>strange, weird experience."<br>And I just went about my day.<br>And then I remember, I think that evening,<br>I looked at porn, and all of a sudden<br>I just had a conscious, just<br>this deep, profound shame.<br>And I was like, I've never<br>felt shame in my life.<br>I have no idea what's happening now.<br>And then all of a sudden<br>when I smoked pot,<br>I just felt deep shame.<br>And when I hurt somebody<br>or did something wrong,<br>all of a sudden, it's just<br>like I got a conscious<br>from that evening.<br>That's what my gift was, if you will.<br>And just at that point, I<br>didn't even have a choice.<br>I had to change my life,<br>because for whatever reason,<br>I've been changed in a moment.<br>And so from there I started<br>actually trying in school.<br>I always joke around that<br>I got 2.14 in high school.<br>I had a teacher hand<br>write me a note saying<br>I was the worst student she's ever had.<br>All that kind of stuff. I was<br>not a really great student.<br>And then in that moment it's just like,<br>"Okay, now life's changed,"<br>and I start trying to learn,<br>and I try to become a good student.<br>And it turns out it's really<br>hard. I was really bad.<br>I still got Cs.<br>I went and took pre-calculus<br>and failed pre-calculus,<br>and I'm like, "Oh my gosh, I<br>used to be the smart math guy,<br>and now I'm the idiot failing."<br>And so I'm just questioning<br>myself and all that,<br>and I spent hours upon<br>hours in a studying,<br>math learning center,<br>and then just at some point<br>years into this journey,<br>I'm like a year and a half into<br>this journey, at this point,<br>something clicks, and I go<br>from being the worst person<br>to just immediately becoming the best.<br>Everything after that is just,<br>I don't know what happened.<br>All of a sudden I was<br>the best person at math.<br>I started going into my<br>computer science classes.<br>I just really got everything.<br>Everything, at just years after trying,<br>just all of a sudden became easier.<br>And I'm not sure if it happened<br>over the course of weeks<br>or when the easier started, but<br>it was just first predicated<br>by just a huge amount of difficulty.<br>And then this is where I<br>started really desiring<br>and loving the process of learning,<br>was when things started getting easier<br>after all those years.<br>Because I just was motivated<br>by this desire to do something,<br>not thinking it was<br>going to get any easier,<br>and then all of a sudden it<br>just started getting easier,<br>and it was great.<br>And that's really where I guess I started<br>having the biggest parts of<br>my life change at that point.<br>I started really, really, really wanting<br>to never look at porn again,<br>because every single time just such shame,<br>and I really wanted to stop.<br>And that was by far the<br>hardest addiction to quit.<br>Smoking cigarettes was also a<br>really hard addiction to quit,<br>shockingly hard addiction to quit,<br>but porn by far was just<br>the worst of them all.<br>And then I think about 22,<br>I was finally done with all<br>kind of addictions, if you will,<br>and then for a year I<br>just worked in all that,<br>and I think right around,<br>maybe it was 21 and three<br>quarters, somewhere in that range,<br>I'm not really sure where I<br>stopped all the addictions part,<br>but, or at least the outwardly addictions.<br>And then at some point, six<br>months later, a year later,<br>met my beautiful wife.<br>Things just started falling<br>more and more into place.<br>I loved more and more<br>work. I loved programming.<br>I started programming 12 hours a day.<br>I watched the Social Network<br>movie, and after that,<br>I was just like, "I'm doing a startup."<br>And so that night I<br>started my first startup,<br>and I was just like, so...<br>It was in PHP by way.<br>- Nice.<br>- PHP, yeah, 5.2<br>or something like that.<br>It was great. Great times.<br>And I was just so motivated to do that,<br>and I would just program for...<br>Sometimes I'd program<br>for 24, 36 hours straight<br>, and just nonstop, that's all<br>I wanted to do at all points.<br>I think my wife got a little sick of me.<br>She would be like, "Can<br>you drop me off at school?"<br>And I'd be like, "No, I'm programming."<br>I was not a very nice...<br>You know, I didn't think<br>through things that well.<br>- Yeah.<br>- I was just so into it<br>and I just did it nonstop,<br>and that's kind of how I became me,<br>is that story, if that makes sense.<br>- Let's try to reverse<br>engineer some of the pain<br>and some of the triumph.<br>You made it sound easy at times.<br>Let's try to understand it better,<br>maybe when you were seven years old.<br>What do you think about the<br>pain you've experienced there,<br>losing your dad?<br>What do you think? What kind<br>of impact did it have on you?<br>What kind of memories do<br>you have at that time?<br>- The best way I can put it is<br>that I just never knew what a dad was.<br>I was young enough that<br>I could maybe repress<br>or just even have the capability<br>of remembering things long-term.<br>Because I know most people<br>don't remember a lot<br>from when they're young,<br>and so I'm not exactly sure.<br>I probably was at one of<br>the best possible ages,<br>if I'm going to lose a dad,<br>to lose a dad, you know?<br>If you're gonna lose<br>one, if you're 11 or 12,<br>it's a terrible age.<br>That's what my brother was,<br>and he fell into drug addiction<br>and never got back out.<br>So I just have more of a fuzziness<br>and just kind of a longing.<br>I just wish I had a dad.<br>- What impact did that have on<br>your evolution, on your life,<br>having that longing?<br>- I think that's why<br>I was so bad socially,<br>in the sense that I was<br>looking for approval, right?<br>I needed approval.<br>I think a lot of people<br>desire that approval<br>or that loving figure, and<br>I just didn't have that.<br>So I think I just looked for<br>it in everything else, right?<br>If I were to psychoanalyze my actions.<br>During the time, it's not like<br>I was actively thinking that,<br>but yeah, I just always<br>wanted something to fill in<br>whatever that was I felt.<br>- I think a lot of people<br>listening to this will resonate<br>with your experience in high school.<br>Being the outsider, being picked on,<br>struggling through a lot of<br>different complexities at home.<br>What advice would you give to them?<br>- The worst part about high<br>school is that you're surrounded<br>by a bunch of people your<br>age and it feels eternal.<br>- [Lex] Yeah.<br>- You don't think...<br>The people that are around you,<br>you feel like are the people<br>that will be there for<br>the rest of your life.<br>At least that's what I thought.<br>And I didn't really even realize this<br>until many years later,<br>that they are going to be<br>some of the least consequential<br>people in your life.<br>- [Lex] Yeah.<br>- Which is very shocking to think about,<br>especially if you're in it right now.<br>- Yeah.<br>- Right?<br>Right now they are everything<br>that your experience is,<br>your whole reality.<br>And then one day it all stops,<br>and then real life starts to begin.<br>- Yeah.<br>- That's such a shocking thing,<br>and if I could just tell myself that,<br>maybe I would have been a<br>bunch of different person.<br>- That's so beautifully put.<br>I mean, it is like a trial run.<br>You know at the beginning of video games,<br>there's a little tutorial?<br>That's what that is.<br>- [ThePrimeagen] Yeah.<br>- And actually that should<br>be a chance to try shit out,<br>to take risks, because<br>real life will begin with,<br>there is more consequences after that.<br>- Yeah.<br>- Here you can,<br>if you like a girl, ask her out.<br>Try, try shit.<br>If you get picked on, hit<br>that guy back. Try shit out.<br>- I'm not gonna condone<br>punching another person.<br>- I will. Beat the shit out of him,<br>and take some jiu-jitsu and<br>learn how to take him down.<br>And then that girl that<br>rejected you will be like,<br>"Hmm, maybe I'll give<br>that guy a second chance."<br>Be a bad motherfucker. It's<br>a chance to try stuff out.<br>This is a very motivational<br>speech for kicking ass.<br>- It is true.<br>I mean, there is something<br>very true about that,<br>that I think especially...<br>I mean, I have no idea<br>what the girls experience of<br>high school would be like,<br>but as a guy, there's definitely a lot of<br>like physical requirements in high school.<br>There's a lot of physical measurement,<br>at least where I grew up.<br>I think that might not be<br>true in all high schools,<br>but if they're filled with<br>boys, it's probably true.<br>And so it's just like,<br>yeah, it probably does<br>help to do those things,<br>to go to BJJ, to do any<br>of these activities.<br>Because even if you don't<br>ever kick someone's ass,<br>just having some level<br>of confidence in yourself<br>is probably a very valuable thing.<br>But just remembering that<br>this is such a short,<br>tiny moment in your life<br>is just like a huge help.<br>- I mean, the way you<br>phrased it is exactly right.<br>That's what it feels like.<br>That these are the people<br>that will be with you<br>for the rest of your life<br>and this is the whole world.<br>And so that means that there'll be<br>just tremendous amount of<br>impact if somebody picks on you<br>or if you fall somewhere<br>low in the hierarchy<br>and the status hierarchy<br>of this high school,<br>that means you'll be low<br>in the status hierarchy<br>of the world and you're fucked<br>for the rest of your life.<br>And that carries a<br>tremendous amount of weight.<br>It's just why psychologically<br>it's extremely difficult<br>to be...<br>I think it's understated<br>often by parents, by society,<br>how difficult it is to be a high schooler,<br>how difficult psychologically it is,<br>how it actually makes<br>sense that some people<br>would suffer from depression<br>and be on the verge of suicide;<br>is very, very difficult.<br>- Yeah, I think it's even...<br>People always say, "Back<br>in my day," blah blah blah.<br>I think it's genuinely harder<br>today than it's ever been<br>in the sense that when I was a kid,<br>there was a qualification to people.<br>Meaning, this is a cool<br>guy, this is not a cool guy.<br>Today, there's a quantification of people.<br>You have 32,514 people<br>following you, you have 12.<br>The people can visually...<br>They can inspect your exact social value<br>on whatever platform you're on.<br>And that has to be just so much harder.<br>And I can imagine that there's a lot of<br>just so much weight to put<br>on that, that it's just...<br>It feels probably way<br>worse and way more damning<br>to be uncool because<br>you have an exact number<br>of how uncool you are.<br>- Yeah. The challenge there.<br>And the task, the quest is to remember<br>that just because your<br>social circle on social media<br>and in high school thinks you're uncool,<br>it actually might mean you are cool.<br>And you need to find that cool and grow it<br>and let it flourish so<br>that when real life begins,<br>you can fucking come out of the gate<br>firing on all cylinders because-<br>- That's a great way to put it.<br>- I think if anything,<br>high school is really bad<br>at picking out the cool people.<br>Whatever the system, the<br>hierarchy that forms,<br>it's such a basic bitch hierarchy.<br>You're good at very generic<br>shit. That's how you rise.<br>- Your parents bought<br>you an expensive car.<br>- Expensive car, right?<br>- Just-<br>- Materialistic shit. Yeah, exactly.<br>- It's a greedy search.<br>See, they didn't have a proper search,<br>so they're just hitting that local optima.<br>- But the US, I mean, even<br>the objective function<br>for that greedy search is<br>just a really shitty one,<br>where those people that<br>win the game of high school<br>are very often not gonna be the people<br>that win the much more exciting,<br>beautiful game of life.<br>So do epic shit and try stuff out.<br>The weirdos are the ones<br>that are gonna succeed,<br>the weirdos in high school.<br>Probably because they also get bullied<br>and they get to be tormented<br>more psychologically<br>and get to explore their own mind<br>and think through what it<br>means to be a human being more.<br>Because if you're winning in high school,<br>you're not being challenged,<br>you're not self-reflecting,<br>you're not trying shit out.<br>So there is some degree to being tormented<br>as long as it doesn't break you.<br>The porn addiction, that's<br>another powerful one<br>that I think will probably<br>resonate with a lot of people.<br>And it's interesting that you say<br>that's one of the hardest<br>addictions to overcome.<br>- Let me say it this way,<br>some addictions have a<br>much bigger societal look<br>and porn is just not one of<br>them, which makes it super hard.<br>None of your friends are<br>going to cheer you on.<br>If you go on Twitter<br>and say, "I quit porn,"<br>they're going to be like,<br>"Well, that's good for<br>you but not everybody..."<br>No one makes that<br>argument with meth, right?<br>No one's gonna be like,<br>"Well, not everyone<br>has to quit meth, okay.<br>It's actually a fine industry<br>and people who are the ones producing it,<br>they're good also, right?"<br>No one's going to make<br>that kind of argument.<br>Whereas with porn, you're<br>going to have a whole thing<br>and friends are gonna think<br>you're dumb for doing it<br>or whatever.<br>It's like you have...<br>It's a much more difficult<br>one in just like that.<br>So it feels accepted.<br>- And I think it's also an<br>addiction you can practice,<br>participate in privately<br>and hide it from the world.<br>There's certain addictions<br>that are harder to hide<br>from the world for<br>prolonged periods of time.<br>And porn addiction is<br>probably one you can just have<br>for many years and then it can deepen.<br>That's probably a serious issue.<br>Boy, am I glad I grew<br>up before the internet<br>because porn is so accessible,<br>so easy to go deep into that addiction.<br>I mean, what can you speak about<br>what impact it had on your life?<br>Maybe some of the low points,<br>but also how to overcome it?<br>- I'd say as far as impact goes is that<br>you will have such a long<br>and broken look at women.<br>By the very, like I can...<br>Again, I'm only speaking<br>from a male's perspective,<br>that porn in its just most basic thing<br>is that you use another<br>person for your own desire<br>or your own want.<br>It's not something that is deeply needed.<br>There's no need for porn.<br>It's purely a want-based<br>activity or a lust,<br>however you want, whatever<br>word you can fill in there.<br>And it is purely an objectifying activity.<br>Someone else is on display<br>for your own enjoyment.<br>And so I think you carry this around.<br>I do think that the women that<br>I dated during high school<br>or the women after high<br>school and college,<br>I looked at them as a means to an end.<br>And I think porn greatly kind<br>of shifted that perspective<br>in my head that I did not give the value<br>that was desired to another person.<br>It really devalues<br>humanity just in general,<br>is my perspective of it.<br>And then it makes people into commodities.<br>And I don't think people are commodities.<br>I think everyone has value.<br>And so during that,<br>for me that's like the<br>great effect of porn,<br>is that it's just consumerism gone wild<br>or materialism maybe, you<br>could ask or argue, gone wild.<br>And it's extremely hard to<br>quit, just like you said,<br>because I can look at porn and<br>then I can go out to lunch.<br>No one's going to know. No<br>one's going to have any ideas.<br>It's a very private, it<br>can be very short session.<br>It doesn't have to be<br>something that takes...<br>You can't take acid then<br>go out to lunch, right?<br>Your whole day is going to<br>be a very different day.<br>And so it's very quick, easy, accessible.<br>And then obviously there's all<br>the science and statistics,<br>like men make worse decisions<br>for some period of time<br>after looking or being<br>exposed to sexualized images.<br>There's the whole dopamine effect<br>that's just like you constantly<br>need more and more dopamine.<br>That's why people<br>typically don't just watch<br>five minutes of porn and call it a day.<br>There's like the hundred tab joke<br>that's always made on the internet.<br>It's because it's just this<br>constant dopamine cycle<br>you're constantly doing.<br>And all that stuff is great to say.<br>And I'm sure statistics and<br>science and all that stuff<br>is really great arguments<br>for some amount of people.<br>But for me it just comes down to,<br>is it really a good thing to do?<br>Is it really actually something we want,<br>is to value people in such a profane<br>or just disregarding way?<br>I just really think it's<br>just bad for the soul.<br>Even if all the stats<br>said it was great for you,<br>I still say it's actually bad.<br>- Yeah, you have to look at<br>the long-term big picture,<br>psychological impact it<br>has on your relationships<br>with human beings in general.<br>That's my, more generally than just porn,<br>my problem with the quote,<br>unquote, sort of "manosphere",<br>is I think sleeping with<br>a bunch of women is great,<br>wonderful.<br>But the problem is,<br>making that the primary<br>objective of your life,<br>similar with porn,<br>is you devalue one of<br>the most awesome things,<br>which is intimacy.<br>That's true for deep friendship,<br>that's true for relationships.<br>And I think porn does that in its purest,<br>darkest form, which is:<br>the thing that matters is the sex,<br>not the deep connection<br>with another human being.<br>And I think, again,<br>going back to high school<br>and the manosphere, the objective function<br>if it's to get laid,<br>which helps with status<br>and confidence and all...<br>All that is wonderful, I think.<br>Again, can be an addiction.<br>But the thing that's even more<br>awesome for a lot of people<br>is a deep friendship or deep intimacy<br>with a romantic partner.<br>That's also fucking awesome,<br>and both of those are great.<br>- It's objectively better to have...<br>I would say that there's<br>no universe that exists<br>or there should be no<br>argument possible that exists<br>that a guy who has meaningless sex<br>has a better or a more<br>meaningful life than,<br>say, me and my wife who've<br>been together for 15 years.<br>We have a very...<br>I can depend on her in all circumstances.<br>Whereas if you live that other<br>life, it sure could be...<br>It could feel great, but<br>there's no meaning to it.<br>There's no actual real value to it.<br>- That's absolutely correct.<br>I do think that getting laid<br>can have a tremendous positive impact<br>on the confidence of a young man.<br>I think just there's a certain<br>number of sexual partners<br>from which you can collect a lot of data<br>and it can free you about,<br>like not to be so nervous<br>about the opposite sex,<br>not to be so nervous<br>about human interaction.<br>And that will allow you to<br>see the world more clearly<br>and to actually find that one partner<br>with whom you can be deeply intimate with.<br>Sometimes the nervousness around<br>like this societally constructed value<br>in getting laid can cloud your judgment.<br>And if you just release that<br>by getting laid a bunch of times,<br>then you could see the world clearly<br>that getting laid is not nearly<br>as important as you said,<br>as finding the right human,<br>including I should put in that pile,<br>not just a romantic partner,<br>but friendships, deep lasting friendships.<br>- Well, I mean I think you're right<br>that our society puts a lot<br>of emphasis on getting laid.<br>And I'm sure that's true<br>among any group of males<br>throughout any point in history.<br>I'm sure that's a very common joke<br>that's never actually<br>never stopped at any point.<br>So I'm sure that exists but...<br>And there's probably<br>some truth to the sense<br>that after you've...<br>Who was it? Jim Carrey.<br>"I hope that everyone can<br>get rich so they realize<br>that money solves none of your problems."<br>The realization that this<br>thing that society told you<br>is hyper important is actually<br>not the important part.<br>It is a very important...<br>It's a great sign that your<br>relationship is healthy.<br>Like if me and my wife<br>were to have no sex at all<br>for months on end, something's gone wrong,<br>which means what...<br>We are no longer on the same plane.<br>But it's not also a good identifier.<br>Just because you're having a lot of sex,<br>it doesn't mean you're<br>having a good relationship.<br>And so it's like a unique kind of...<br>I forget the right term here,<br>but it's a unique way at<br>looking at the problems.<br>And our society puts so much emphasis.<br>And maybe that's why<br>porn was so hard to quit,<br>but my guess is it's just<br>all the dopamine effect<br>that it is.<br>But for me, the most important part<br>and the thing that actually<br>has real reward is having that,<br>having just my wife.<br>I do not look at...<br>I desperately try not to<br>look at any other woman.<br>I'm hopefully not going to get caught...<br>Mark Zuckerberged at the<br>White House like that.<br>I don't look at porn.<br>My wife has complete confidence in me<br>that there is not going to be a situation<br>in which she has to question<br>me in any kind of sense.<br>And that builds a much<br>more deeply, I would argue,<br>a very deep relationship<br>because the trust is that much bigger.<br>I think the deepness of the relationship<br>is probably proportional<br>to the trust you have<br>in each other.<br>It's very hard to have a deep<br>relationship with no trust.<br>- Yeah, and a probably a prerequisite,<br>maybe a component of<br>trust is vulnerability<br>to where you take the<br>leap of being vulnerable<br>with another human being.<br>And that vulnerability when reciprocated<br>builds this really strong trust<br>and it's a beautiful thing, yeah.<br>I personally just, given my position,<br>that's even more challenging,<br>being vulnerable with the world<br>and there's a bunch of people out there<br>that want to hurt you for it,<br>but I think it's worthwhile<br>anyway to be vulnerable.<br>- It's always worth it.<br>The risk is always worth it in some sense.<br>Obviously, everyone has a different life<br>they have to filter through<br>their actions with, right?<br>Because the person that has no,<br>say, social following or anything,<br>their risk reward profile<br>could just be local impact,<br>which could be just as<br>damning or harming to them.<br>- And so it's always<br>worth the risk though,<br>in my personal opinion,<br>because finding my wife<br>has been obviously the most impactful<br>or changing thing in my life.<br>Or second most, I'd argue<br>that one night with God<br>would probably be the most impactful thing<br>that led to everything else,<br>but then the wife would be<br>the next most impactful.<br>I mean, I'm cleaning up<br>after myself and stuff now.<br>Changed man. I'm a changed man.<br>- Can we try to reverse engineer<br>that moment of you finding God.<br>What is it at 19?<br>Because it feels like that was a big leap<br>for you to escape the pain,<br>to escape the addiction or<br>the beginning of that journey.<br>What do you think happened there?<br>- I think it just felt like I just...<br>There was no line that I<br>wasn't willing to cross.<br>Everything was fine and just like...<br>It just all of a sudden,<br>just in that moment,<br>it's just like I had I guess<br>some sort of deep fear<br>and understanding like<br>I am going down a path.<br>Is this really the path<br>you want to go down?<br>And I don't know what the<br>result of that path would be<br>or anything like that.<br>I don't tend to speculate on<br>things I don't understand.<br>I just know that in that<br>moment I had the option<br>and I just chose...<br>I didn't want it anymore. Right?<br>It's kind of mixed in this whole thing<br>where it's just like I had no value.<br>I wrapped up all my meaning or value<br>in having sex or getting laid.<br>I had, you know...<br>All that stuff, all the<br>things we just talked about,<br>that was where all my worth was.<br>And that is just such a terrible<br>place to have your worth.<br>And it was just all came to a point.<br>And I can't tell you the day of the week,<br>I can't tell you anything<br>other than it was nighttime<br>and I was in South Hedges<br>in Montana State University,<br>go Bobcats, meowww...<br>That's about...<br>Yeah, that's the sign that<br>we do at football games.<br>Don't worry about it.<br>But that's all I can really tell you<br>because that night was<br>no more or less special<br>than some other night.<br>It's just the specialness was<br>I got at least a chance to make a choice.<br>- Because you find in that advice<br>that you can give to<br>others who are probably,<br>there's probably just an<br>endless amount of people<br>that are struggling with porn<br>addiction now, young people.<br>What advice could you give<br>to them? How to overcome it?<br>- For me to overcome it, I had to realize<br>that I was taking something<br>away from my future wife.<br>Some people would be like,<br>"Oh, well, once you get a<br>girlfriend then you can stop."<br>And it's just like,<br>no, because you never stopped the problem.<br>You don't stop a problem by replacing it.<br>And so I didn't have a girlfriend,<br>I didn't have all that.<br>I just realized that I<br>was truly taking away<br>from something from my future wife.<br>And I didn't even know my<br>current wife at that time.<br>She was not in the picture.<br>I'm not even sure if she was<br>at Montana State University<br>at that point.<br>And so it's just that's...<br>Once I made that realization,<br>I think it went from my head to my heart,<br>which they say is the greatest<br>distance in the universe.<br>I finally got it.<br>And that's really where things change.<br>The ability to say like<br>what's gonna help you change and all that,<br>I don't know if there's,<br>I don't think there's<br>silver bullets, right?<br>If someone could offer you a drug...<br>I forget who says this phrase,<br>but there's this really interesting phrase<br>that goes something like.<br>He was a very depressed man<br>and he was struggling with suicide<br>and he writes about this in this memoir.<br>And he goes to these doctors<br>and the doctors effectively say,<br>"Well, here's antidepressants,<br>it's gonna help you."<br>And he says that,<br>"Well, the problem was is<br>that scientists told me<br>that I could just touch my<br>brain and make myself happy,<br>and that's it.<br>They could reach in, they<br>could configure some stuff<br>and I'll be happy."<br>He's like, "For me, it was a<br>lot like going out into a field<br>and being able to take<br>a drug to see the rain.<br>I could look out, see the<br>rain, it would fall down,<br>it'd be silvery, it'd be beautiful,<br>but all the crop would still die<br>because there's not actually any rain.<br>I had to discover how to be happy myself."<br>And so for me, it's like the<br>reason why I looked at porn is<br>because I was unhappy.<br>I was trying to find meaning.<br>I was trying to find<br>value in something, right?<br>Something that was<br>supposed to finally give me<br>this ultimate satisfaction.<br>And it just does not, no matter how hard,<br>and no matter how much you think it will,<br>there is no escapade,<br>there is no pornography<br>that will ever give you<br>that satisfaction you're looking for.<br>That's the reason why it's addicting.<br>And that's my call to<br>why you shouldn't do it,<br>but how to get out of it, I<br>only got out of it by realizing.<br>- I think that's really<br>brilliantly described.<br>You knew that this thing<br>you're doing is preventing you<br>from finding your future wife<br>and future wife could<br>mean more even broadly,<br>this path to a flourishing,<br>to a beautiful life.<br>I think there's a lot of choices we make<br>that are just preventing<br>us from opening the door<br>to whatever future.<br>I think what's really<br>nice to do is to imagine,<br>just like we said with high school,<br>that there are a bunch<br>of trajectories in life<br>where you'll be truly happy<br>and you need to construct<br>your life in a way<br>where you have the chance<br>to travel down those paths.<br>And there's a bunch of addictions,<br>there's a bunch of choices<br>that prevent us from<br>traveling down those paths.<br>So just believe that you're<br>gonna have an awesome life<br>and remove from your life the things<br>that are preventing you<br>from walking down that path,<br>which is essentially what you did.<br>It's a leap of faith<br>that if you let go of porn,<br>that a better life is waiting<br>for you on the other end.<br>- Yeah.<br>I definitely can't say how long<br>it will take, a better life.<br>But for me, there's no way in the universe<br>I could have had the<br>relationship that I have<br>without first making those steps<br>because I couldn't value my wife<br>in the way that was<br>proper for who she was.<br>I would have valued her through the index<br>or the lens that I currently<br>was looking through, so.<br>- Got to ask.<br>So I've never done meth.<br>I've never done meth.<br>- That was a great segue by the way.<br>(Lex and ThePrimeagen chuckle)<br>- Oh, man. I don't know<br>what the fuck I'm doing,<br>honestly, with this interviewing thing.<br>But yeah, meth and LSD...<br>I did ayahuasca. I did<br>shrooms a bunch of times.<br>And this topic, I should<br>say that there's a lot of,<br>on Twitter and in the<br>tech community in general,<br>people speaking negatively about ayahuasca<br>and some positively.<br>I think it's such a roll of the dice.<br>I had incredible experiences,<br>but I don't think I want<br>to recommend it to anyone.<br>It's a risk, it's a serious risk.<br>It really is a roll of the dice<br>that you could meet your demons<br>and they could destroy you<br>or you can meet your<br>demons and let go of them.<br>Or you could have experiences<br>like I did, which is never...<br>Apparently I don't have demons.<br>I'm pretty sure they're<br>somewhere in the basement,<br>but I've never met them on drugs.<br>- I'm always really<br>happy. I'm a happy drunk.<br>I'm a super happy on<br>ayahuasca, just full of love.<br>I don't understand, I don't<br>understand where the demons are,<br>but that's my biochemistry,<br>whatever that is.<br>And for some others, one<br>trip could be amazing<br>and the next one could<br>just completely destroy you<br>and wreck your life.<br>So I don't know what the<br>recommendation from that is,<br>maybe avoid it, but then<br>all of us die and life...<br>I tend to lean into<br>adventure but drugs is...<br>If you fuck with the<br>biochemistry of your brain,<br>you can really destroy yourself in a way<br>that it's gonna torment you.<br>So I would generally recommend<br>that people avoid drugs<br>altogether, probably,<br>unless you're a crazy motherfucker.<br>Hunter S. Thompson.<br>- What an intro to this topic.<br>- [Lex] I'm sorry. What's meth like?<br>- That's a great intro.<br>I like...<br>You are very correct in<br>the sense that there is,<br>at least when it comes to hallucinogens,<br>there is a wild variance to<br>what you're going to experience.<br>And there is no guarantee, there's no...<br>Just because you buy the product,<br>it doesn't mean you're going<br>to have a good time, right?<br>There's a lot of...<br>Personally, I find that<br>stuff to be very...<br>I believe in the spiritual realm, right?<br>I believe demons and angels<br>exist. I believe God exists.<br>And that whole realm is like...<br>I don't know what it opens you up to,<br>but it's much, much different experience.<br>Now, some people will be like,<br>"Oh, it's just a bunch of<br>chemicals in your brain.<br>They all get mixed up.<br>LSD just takes all of your<br>pathways and they all go...<br>They all get kind of<br>scrambled up in your brain."<br>And it's just like, yeah,<br>the experiences are profound.<br>I had some really bizarre,<br>very cool, very awful...<br>I've had all the experiences in them all.<br>I can just tell you<br>that I personally always<br>say the same thing.<br>It's like, choices that I<br>made I can never take back.<br>I would never take that away from myself<br>because I don't know if<br>I would be who I am today<br>without all those<br>experiences going up to it.<br>But if you have not had that<br>experience, I'm on your team,<br>or at least partially on your<br>team, maybe more severely,<br>I don't think you need those experiences.<br>I don't think they're gonna...<br>You don't have to put<br>yourself through that<br>to make a good decisions or to realize<br>that people have value, right?<br>You don't have to do that.<br>So as far as what is meth<br>like? Meth is like...<br>If you've ever done cocaine,<br>cocaine starts off with like<br>a 15-minute dance party.<br>Just (beatboxing)<br>It's just so intense. It's so great.<br>And then it just followed<br>up with like a five hour,<br>just feeling wiggly, right?<br>I don't know how else to describe it.<br>Meth is like that<br>except for I didn't<br>get as much dance party<br>or any dance party, but instead I just got<br>that part for like 12 hours.<br>- Yeah.<br>- So did a lot of skateboarding,<br>did a lot of running<br>around, staying all night.<br>- Would you say it's a pleasant feeling<br>or is it more like an escape<br>from the loneliness of life?<br>Is it pleasant or negative<br>in the actual moment?<br>Not the consequences but in the moment.<br>- So I mean, this is just a<br>very interesting kind of area,<br>which is that not...<br>Universally, you can't say that.<br>Often you'll find that there's<br>kind of these two groups of drug addicts.<br>There's those that like the opioids<br>and those that like the uppers.<br>They typically don't like...<br>There's very few people in<br>the drug world that do both.<br>They're really just like find<br>their side and they go for it.<br>So is meth a thing that<br>everybody's gonna enjoy?<br>Well, categorically, as you can see,<br>and just how people<br>experience drug addiction, no.<br>But for me it's just I had a really...<br>It kind of feeds into the<br>ADHD nature of this...<br>Because you know you're<br>kind of high energy,<br>you're like always in the moment.<br>So it's just like you're in the moment,<br>but it's just like,<br>"Oh, I'm in the moment!"<br>Everything's just so intense!<br>You just want to really be in the moment.<br>And so it's just<br>experiencing that constantly.<br>And so was that great?<br>Well, some people...<br>My wife always tells me<br>this, being nervous or...<br>I forget, the anxiety of a situation<br>can also be the same thing as like thrill.<br>I forget the exact way.<br>She's probably super disappointed<br>that I messed this up.<br>But it's like you could<br>perceive those two experiences<br>in very different lights.<br>Some people get in front of<br>a crowd and it's thrilling.<br>Some people get in front of it<br>and it's just the worst<br>experience of their lifetime.<br>They would actually literally rather die,<br>which is a crazy thing to think about<br>than stand up and speak.<br>And so for me, meth was<br>that thrilling side,<br>but at the same time,<br>it still didn't quite give<br>me that thing I wanted,<br>whatever I was looking for.<br>I'd use it to help try<br>to get that thing I want,<br>but it was never giving<br>me that thing I wanted.<br>- Yeah. For me, I've had all<br>really wonderful experiences.<br>Do not recommend them.<br>But like with shroom-<br>- That's a YouTube policy by<br>the way that you have to say,<br>"By the way, do whatever you do,<br>do not do a illegal activity."<br>- I-<br>- But I had great experiences,<br>but whatever you do, don't do it.<br>- Mr. ThePrimeagen, I have no master.<br>I don't have YouTube or whatever.<br>I'll say whatever the fuck I want.<br>I'm just-<br>- But seriously, you do.<br>- No. No.<br>I don't give a shit about<br>YouTube or anybody, honestly.<br>I'm just careful about<br>the words I say because,<br>just because I had positive experiences,<br>I don't want young<br>people listening to this<br>think they should try the experience.<br>I think the much more powerful message is<br>that life is awesome even without that.<br>That's something I<br>definitely experiment with<br>on the alcohol side.<br>So for me, I'm an introvert.<br>I'm afraid of the world.<br>Social interaction fills me with anxiety.<br>Alcohol is definitely a thing<br>that helps with that sometimes,<br>but I think honestly it's<br>not even the alcohol,<br>it's like having to do something<br>while a person is talking to me.<br>I could just drink a liquid.<br>"Yeah. Mm-hmm." There's a social thing.<br>With a beer, it's like, "Yeah. Uh-huh.<br>Yeah, we're having fun."<br>And I think it's...<br>For me, it works the same as...<br>If the liquid actually looks like alcohol,<br>it does the same purpose<br>often because alcohol...<br>If you have a whiskey<br>or a beer looking thing,<br>it kind of sends a signal<br>that we should be having fun.<br>So we're socializing, right?<br>We're fucking getting crazy.<br>And then that mean...<br>You don't actually need the alcohol.<br>You can get fucking crazy<br>without the alcohol substance,<br>but there is some kind of social signaling<br>that happens when you<br>have a drink in your hand.<br>So I've been to get-togethers<br>where I'm not drinking,<br>but just doing a fake drink situation<br>and I can also have fun.<br>So I've been...<br>But that said, traveling across<br>the world, there are times<br>when you get to be able<br>to down a bottle of vodka.<br>That's very essential for my line of work,<br>but that's almost like<br>a cultural experience<br>versus a necessary component<br>of a successful social interaction<br>and one that brings you happiness.<br>So not drinking...<br>I think you can have<br>fun and not drink too.<br>So all of this...<br>Man, I'm so careful saying drugs have<br>had a good effect on my life<br>because I think for most people,<br>no, for majority of people,<br>they will in the long term<br>have a negative effect.<br>So I think if you were to<br>choose one or the other,<br>just no drugs and no drinking<br>means one day you can be<br>the President of the United States, kids.<br>And I should say...<br>Oh, man.<br>- That is his funniest line.<br>- That means Diet Coke-<br>Diet Coke is great.<br>- That's his funniest line, which is,<br>"You would hate me if I drank."<br>Which I just like...<br>To me, that tickles me<br>to no end. Just like,<br>"Oh my gosh, that is such a funny line."<br>- Self-awareness and humor<br>is wonderful there, but yeah.<br>- But I am on your team.<br>All of the reasons why I<br>used drugs and all that,<br>it's some level of escapism.<br>I'm sure that's like<br>would be the archetype<br>or the box I'd put that into<br>or the pursuit of trying to feel something<br>that cannot come from them.<br>It's like trying to find<br>meaning in your job.<br>You can find satisfaction in what you do.<br>That is a very good thing.<br>You can find satisfaction and be happy<br>with what you've created.<br>You can be thrilled by the experience,<br>but you cannot find...<br>I doubt you can find purpose.<br>Maybe some people in specific jobs.<br>This obviously have very broad<br>strokes, I'm painting with.<br>Like if you're an EMT and<br>you save someone's life,<br>maybe there can be purpose in<br>that whole experience, right?<br>So I'm not saying all things,<br>but as programming goes,<br>most programmers, you cannot<br>just simply find your purpose.<br>And same with drugs, you cannot find<br>that thing you're looking for,<br>but they are a very great distraction.<br>And then at some point<br>that distraction comes with a heavy cost.<br>I think Dr. Faust would<br>probably know the best<br>about the heavy cost, but it's<br>just you're making one trade<br>for another and at some<br>point the bill comes due<br>and that bill can be very, very large.<br>- The other moment you mentioned<br>that I think is really inspiring<br>is that you failed pre-calculus.<br>You really struggled in school.<br>You realize that school is really hard<br>and then eventually you're<br>able to sort of persevere<br>and, I don't know,<br>break through that wall of struggle.<br>Can you, by way of advice,<br>figure out what happened<br>and what kind of advice<br>you can give to people who are struggling?<br>- Yeah.<br>I'll paint it in a more clear picture,<br>or a very fast speed run of it is that<br>I took pre-calculus, failed.<br>I took pre-calculus again, failed,<br>took pre-calculus again and got a C.<br>So I took it three times.<br>Then I took Calc over<br>the summer, so Calc 1.<br>In that one at the end, the final...<br>The final was a two-hour final.<br>I finished it in 30 minutes<br>and that was the highest<br>score in all of the school.<br>And I proceeded to be the highest scorer<br>in all calculus and Diffy Q.<br>I was the only person out of 400 people<br>to finish the Diffy Q final.<br>And I got the highest grade.<br>And so I was like, I got really good.<br>So I somehow went from<br>really bad to really good.<br>And my only...<br>The thing that I did is that I had to win.<br>It was not a option.<br>It was not like, "Oh, this<br>would be really great."<br>It's like, "I will not graduate,<br>I will not finish my stuff<br>if I cannot do this."<br>And so every single day I got up,<br>I went to my however<br>many hour class it was.<br>Right after that,<br>I went straight to the<br>math learning center,<br>did those problems.<br>When I got home, I just got the book<br>and it had the odd answers in the back.<br>And I would try to walk<br>through the problems<br>over and over and over and over again<br>until I absolutely got it.<br>And it just became this<br>thing where it's just I...<br>Just simple rote memory took over<br>and the ability to just<br>effectively have the times table,<br>but for calculus, all stuck in my head.<br>Inverse trig substitution,<br>trig substitution,<br>doing Taylor and MaClaurin series.<br>All those things, kind of,<br>just over and over and<br>over and over again.<br>Eventually they became<br>easy. They became very easy.<br>It's just that I had to cram it in there.<br>And some people, you hear these stories,<br>whether they barely show up<br>to class and they get As,<br>I've never been that person.<br>I've always been the person<br>that has to sit down,<br>read through everything, and<br>I'm bad at abstract concepts.<br>I like the concrete into the abstract,<br>not the abstract into the concrete.<br>Very bad at talking about<br>things theoretically,<br>then trying to apply them.<br>But if I can do it once literally,<br>then it's really easy for<br>me to go into the abstract.<br>And so it's just like...<br>For me, it's just I had...<br>There's no substitute for the hours.<br>So if I were to give advice,<br>it's just that you have to<br>have time in the saddle.<br>Hour after hour will<br>make you slowly better.<br>And at first, it's crushing.<br>It's defeating and it's not<br>fun because you are bad at it.<br>But then at some point<br>you're just not bad at it<br>if you can just do it long enough,<br>and you'll start getting okay at it.<br>And then at some point you<br>might even get good at it.<br>And when you get good at<br>something, it feels amazing.<br>There's like an exploratory thing.<br>If you've ever played<br>a musical instrument,<br>you stop having to think about<br>all the little teeny things you have to do<br>to be able to play something correctly.<br>And you start thinking about<br>how you can explore that space.<br>It's like it's a completely<br>different problem.<br>And same with programming,<br>programming has an identical<br>kind of feel to it.<br>It's just like you'll cross that barrier<br>and it becomes magical<br>as opposed to a chore.<br>- Yeah, once you cross that barrier,<br>somehow other things become easier.<br>But then if you want to have<br>a truly successful life,<br>then you find the next barrier.<br>- Yeah.<br>- The next barrier.<br>Yeah, I've always been the same.<br>Everything's come really hard.<br>- Yeah, I've had no free lunches.<br>Everything's just been a lot<br>of, a lot of pain and struggle.<br>- I think somebody said<br>that, on this topic,<br>that you think work smarter not harder<br>is a phrase that you dislike.<br>Somebody on Reddit told me this.<br>- Yeah. I don't just dislike it.<br>I hate that phrase.<br>- Okay.<br>- Tell me about your<br>hatred. How do you feel?<br>- The reason why I dislike that is<br>that there is kind of a<br>hidden suggestion there,<br>which is that you already<br>know what smarter is,<br>so just do that.<br>That actually things should be easy.<br>You should just not have to try that hard.<br>You should just do the<br>quick, easy, obvious path<br>and boom, it's done.<br>It's like I've never experienced<br>that in anything I've done.<br>Everything is actually really hard<br>and most of the time I don't<br>even know what I'm doing,<br>so therefore I don't even<br>know what smart looks like.<br>And so for me, the only way I can learn<br>how to work smart is by<br>working very, very hard<br>and knowing that there's no shortcuts.<br>And then when I finally<br>figure out what smart is,<br>when I work smart and work hard,<br>it is that much better.<br>- I think there's a deep<br>profound truth to that.<br>- There's a lot of these phrases<br>that just drive me nuts in our society.<br>- But that one is...<br>Sorry, that one is really accepted<br>if you can just linger on it<br>because it really bothers me as well.<br>So one, which is a really<br>nice thing you said,<br>the presumption there<br>is things should be easy<br>and you're a failure if you<br>don't see the easy path.<br>That's kind of the implied thing.<br>- Just work smart, daug,<br>why are you putting in all those hours?<br>- And so it makes a lot<br>of people that struggle<br>feel like they're a failure<br>because I don't see it.<br>And then the choice they<br>have, I'll just go with the...<br>I'll just be lazy<br>and then maybe the profound<br>truth will come to me somehow.<br>And yeah, I don't think I've ever,<br>and I don't think I've met great engineers<br>that find the smart way<br>without the extremely hard work.<br>The annoying thing about<br>those great engineers<br>is then looking back,<br>they forget the hard work<br>because they remember all the joy<br>they now are experiencing<br>from all the efficient,<br>smart work they figured out how to do.<br>They forget...<br>So when they give advice<br>they give the stupid advice<br>of, well, just do it like the easy way.<br>And here's the easy way.<br>But no, no, no, no, no.<br>You have to put in the hours.<br>Musical instrument is a beautiful example<br>of guitar and piano.<br>I've put in, I don't know<br>how many thousands of hours.<br>And now when I'm explaining<br>stuff jiu-jitsu as well,<br>I sound like one of those people<br>just relax in jiu-jitsu.<br>By the way, just relax is<br>a really wonderful thing<br>for physical endeavors<br>like piano and so on.<br>But to learn how to relax your<br>hand, how to relax your mind,<br>your body and use<br>whatever the biomechanics of your body<br>to apply the correct kind of leverage<br>and the timing and all that,<br>that takes thousands of hours of learning.<br>Just to learn how to relax<br>takes a lot of really hard work.<br>In jiu-jitsu that takes many months<br>of getting your ass beat over and over<br>until you ride the bus home crying.<br>Your ego completely<br>shattered and destroyed.<br>And then a little element<br>is figured out late that<br>night or next morning.<br>And from the depression,<br>there's this little plant<br>that grows this flower of insight.<br>And you use that insight to<br>then get your ass kicked again<br>all next month and year.<br>And then you grow and grow and grow.<br>And from that you discover<br>how beautifully simple<br>jiu-jitsu is or Judo is,<br>just speaking for myself,<br>or piano or guitar.<br>And then yes, the profound truth<br>or the mastery of a skill feels simple<br>when you finally arrive to it,<br>but the path for most people<br>is going to be a hard one.<br>- I think I should make<br>an addendum to the phrase,<br>I think the phrase should<br>be "Work hard, get smart."<br>- Nice. That's a t-shirt.<br>- That's what it should be.<br>- Yeah, agreed.<br>Okay, that was a tangent of a tangent.<br>- Can I say one more<br>phrase, cultural phrase<br>that I absolutely hate?<br>- [Lex] Yes.<br>- "The journey is better<br>than the destination."<br>Everyone's heard this.<br>Just take one second to<br>apply what that means.<br>That means forever starting from now,<br>you are only going towards<br>a place that's worse.<br>(Lex laughs)<br>Right? That literally is what it means.<br>- Powww.<br>- Enjoy the journey,<br>celebrate the destination,<br>that should be what it would be but no.<br>People say these phrases,<br>they're everywhere.<br>There's these very shallow phrases<br>that have no logical bounds to them.<br>You're just like, what does that,<br>why would the journey ever be<br>better than the destination?<br>I think this might even<br>be a C.S. Lewis quote<br>is that C.S. Lewis was like,<br>nope, this is terrible.<br>The journey is not in fact<br>better than the destination.<br>- I love the demotivational posters.<br>"Progress, moving forward is<br>better than moving backwards<br>even if you're still going nowhere."<br>There's a lot-<br>(ThePrimeagen chuckles)<br>- I feel that one so<br>much being in California<br>for a few years, that is painful.<br>- [Lex] Positivity, if it<br>doesn't break you today,<br>don't worry, it will try again tomorrow.<br>It's just a lot of really great posters.<br>- I didn't even know this was a thing.<br>- [Lex] This is a thing.<br>- Oh my gosh, I want that.<br>- Yeah.<br>- Hey. Hi, this is ThePrimeagen.<br>One thing that I forgot to<br>mention in this podcast,<br>which feels just so foolish<br>to me for forgetting,<br>is just what a big role<br>my mom played in my life.<br>She had to work 18 hours<br>a day after my dad died.<br>She really made her<br>house be able to survive.<br>I always looked up to her and<br>I always thought her amazing.<br>And she really was the reason why<br>when I decided to get my<br>butt kicked back in gear,<br>she's just someone who I looked to<br>as an internal inspiration<br>for me to continuing,<br>to keep on going because I<br>really wanted to make her proud.<br>And all those years of<br>just high energy effort,<br>I really wanted to make sure that she knew<br>that I was just so dang<br>appreciative for it.<br>So hey, I just wanted to say thank you.<br>Love you, mom.<br>- For people who don't<br>know, you worked in Netflix.<br>- By the way.<br>- By the way.<br>Now, how did you go from there,<br>from the hardship that we mentioned,<br>from the struggle, from<br>the addictions and so on<br>to a place where you were working<br>at this incredible engineering company<br>and building cool shit there?<br>So tell the Netflix story.<br>- Yeah, so I kind of alluded to it earlier<br>that I wanted to do my own startup so for,<br>I forget how long it was, one or two years<br>or two and a half years, built a startup.<br>PHP, jQuery,<br>everyone's favorite<br>languages all put together.<br>You can solve math stuff with jQuery.<br>So I just was totally into<br>just non-stop doing that.<br>This is the height of Stack Overflow.<br>I was asking really dumb<br>questions on Stack Overflow<br>like what is more pythonic?<br>And then you get a bunch of up votes<br>and try to steal a bunch of karma away,<br>all the fun stuff to do.<br>Good times.<br>And I was just so into it breathing<br>and I just breathe it in, breathe it out,<br>and that's what I do all day every day.<br>And so it's just like non-stop<br>building of a startup.<br>Ultimately that startup failed<br>and so I had to go get a real job.<br>- Can you say what the startup was?<br>- It is so wild thinking<br>about it in the past.<br>Before I tell you what it is,<br>I want to tell one quick<br>thing about my dad.<br>My dad in the early '90s, like '91, '92,<br>was building kind of a phone card company<br>where you'd be able to<br>pre-purchase long-distance minutes.<br>Now, if you remember the '90s<br>at about what '97, '98, '99,<br>10-10-220, all those different<br>things down the center,<br>all those companies<br>where you can pre-purchase<br>long-distance minutes<br>kind of came out and were very, very big.<br>And so my dad was six<br>years early to that notion<br>and ultimately his startup failed.<br>But he was just really early to something<br>that would catch on really, really big<br>specifically in the<br>telecommunication space.<br>Me as I grew up and did my own startup,<br>I did a startup where was<br>text message marketing.<br>This was in 2010 where you could receive,<br>say texts about various<br>deals, all that kind of stuff.<br>And of course, 10 years later<br>now you don't stop receiving texts<br>and text message<br>marketing is all the rage.<br>And so I also, much like my father<br>had a startup in the telemarketing space<br>in which was just like<br>a half decade too early.<br>- So is it fair to say<br>you're almost always ahead of your time,<br>that you're a visionary of sorts?<br>- No, in fact, I am not ahead of my time.<br>I just got, some would say I<br>got unlucky on that situation.<br>But it seems so obvious to me<br>at that time when I was doing it,<br>80% of phones were dumb phones.<br>Most people had flip phones.<br>When I went and sold Via Text,<br>is what the name was of<br>that specific product.<br>And we had the short code via text too,<br>so it was pretty clever, six digits.<br>When I went out and sold it,<br>I only had a flip phone during that time.<br>I didn't even have a smartphone<br>because they were kind of<br>untenable for a lot of people.<br>So it's kind of just wild<br>times to think about.<br>But then after that, obviously<br>had to get a real job.<br>We were living in an apartment<br>right next to campus,<br>Bozeman, Montana.<br>And the guy below us must've<br>been on some amount of drugs.<br>He threatened to kill us several times,<br>would just scream and just<br>lose his marbles all the time.<br>Very unhinged man, angry<br>downstairs man is what we call him.<br>One time my wife dropped<br>a battery, double A.<br>Okay, so we're not talking<br>about a B battery or D battery.<br>We're just talking about a double A,<br>drop it, pa, land on the ground,<br>"I'm going to kill you."<br>Like crazy, absolutely<br>unhinged behavior down there.<br>So I had to go get a real job,<br>we needed to move out of there.<br>We were gonna start our life.<br>And so I worked at a<br>small place Schedulicity,<br>which I kind of talked<br>about the boredom there.<br>Got to go to a place called WebFilings<br>where I'm working just<br>tons and tons of hours.<br>During all that time I'm still trying<br>to figure out startups.<br>Did one where you could<br>pre-wish your friend's birthday messages,<br>and then it would automatically send it<br>via Facebook beforehand.<br>We called it Greet Feed.<br>It was pretty clever.<br>Nonetheless, I say all that story<br>because everything that I<br>was doing was exploring,<br>building, finishing things, working,<br>learning about corporate life,<br>learning how to communicate<br>in corporate life,<br>being able to be successful at a job,<br>learning about a bunch of<br>technologies that we're about.<br>And one of the big<br>technologies during that day,<br>specifically 2013 was RxJS,<br>if you remember that one, RxJS,<br>that's a link from C-sharp<br>kind of ported over to JavaScript.<br>- And for people who don't know,<br>I guess C-sharp, what<br>is its closest neighbor?<br>Java, is Java-<br>- They obviously just took Java<br>and ripped it off at one point,<br>but now it's such a dynamic,<br>interesting language<br>that it seems like it<br>could be a really cool<br>bounds of practical versus not practical.<br>It's just I'm not really<br>into wearing pleated pants<br>and programming at a Microsoft house, so.<br>- Is pleated pants a requirement?<br>- [ThePrimeagen] I think so.<br>- Okay.<br>- We'll get back to this.<br>Can we just get back-<br>- All right.<br>- Triggering me here.<br>- WebFilings.<br>- So anyways, WebFilings was that's<br>where I had to do all the<br>matrices stuff and build systems<br>and just kind of all that.<br>And it really pushed me<br>because they also wanted<br>me to do 60 hours a week.<br>It was not very healthy work-life balance.<br>It was very hard work.<br>And kind of that really hard work<br>going to cutting edge stuff,<br>really understanding the world,<br>really made it so that I was able to<br>just be able to talk about<br>stuff very commandingly<br>because we had to build<br>really complex state machines<br>for the UI for what we're building.<br>And so when I went and<br>started getting a LinkedIn<br>and all that, inevitably<br>just due to the fact<br>that I've touched all these technologies<br>and I had some sort of paper trail saying,<br>I've touched these<br>technologies or Microsoft.<br>Dang it, Lex.<br>- Pleated pants.<br>- Pleated pants reached out.<br>No, Netflix reached out and said,<br>"Hey, I see you've done<br>RxJS. We do a lot of it.<br>You want to come and interview with us?"<br>And I was always told that<br>you should never reject<br>kind of a handwritten personal<br>invitation to interview.<br>This was way before bots and even the bots<br>were pretty obvious to<br>tell they were bots.<br>This was a manager at<br>Netflix, Jeff Wagner,<br>first manager ever.<br>And he just wrote a really<br>nice note and just like,<br>"Hey, I see you're doing<br>a lot of these things.<br>We really need help with JavaScript.<br>I would love for you to come interview.<br>We're even using a lot of RxJS<br>if you're interested in that."<br>And so I was like, all right,<br>I can come and I'll interview.<br>And lo and behold, interview went on<br>and I called my wife I think<br>halfway through the interview<br>and I was just like<br>defeated, absolutely crushed<br>because I said...<br>And she might remember this but I said,<br>"We now have to make a decision.<br>Are we actually going to<br>move to California or not?"<br>Because I already knew I<br>had the job at that point.<br>I was just knocking them out of the park.<br>I was doing a great job on that.<br>And so I just knew for a fact,<br>I'm getting a job at Netflix.<br>There's this thing that people<br>always get so freaked out<br>about when it comes to<br>interviews and all that.<br>And I luckily somehow avoided this.<br>I don't get test anxiety,<br>I don't get any of that<br>because when I go into these situations,<br>my only goal is to show<br>the things I already know.<br>And so it's like I walked<br>into this situation,<br>I've been preparing for<br>this 80 hours a week<br>for the last five years.<br>So just walk in and I'm just<br>showing the things I know.<br>And it was perfectly fitting<br>for Netflix at that time period<br>in the 2013, early JavaScript<br>days on television.<br>And so it was just awesome,<br>just worked out perfectly.<br>Got hired there.<br>- So we're in California with Netflix.<br>This is San Francisco.<br>- Los Gatos.<br>So if you're familiar, so<br>classic symbol people do<br>which is this is San Francisco, Oakland,<br>San Jose, Los Gatos is<br>just like a little bit,<br>kind of a little bit below,<br>little bit south of San Jose,<br>same mega contiguous city.<br>- Yellowstone is in Montana,<br>Yellowstone, the show.<br>- Yeah, yeah.<br>- Yeah.<br>So is it basically like that,<br>Kevin Costner riding on a horse?<br>Were you riding on a horse to campus?<br>- No, but I love those stereotypes.<br>Actually to be completely<br>fair, when I was 15 years old,<br>I was driving around on<br>what is now a very busy populated street<br>shooting gophers out the<br>window of our car with a 22.<br>So it's like Montana was a different place<br>at one point than it is today.<br>And there's plenty of parts of Montana<br>that's still very rural,<br>still kind of more of that old world.<br>So yeah, a little bit, you know,<br>you can get whatever<br>you want from Montana.<br>As far as culturally goes,<br>I'm not really sure the best<br>way to put the difference<br>between California and Montana.<br>It's just different expectations.<br>One thing I can really<br>appreciate about California,<br>or at least when I say California,<br>I mean the Silicon Valley.<br>Because obviously LA<br>and the Silicon Valley,<br>very different attitudes,<br>very different mindsets.<br>You can't really compare one to the other.<br>One thing I can say that's<br>really positive about the valley<br>is that everybody is<br>operating on this idea<br>of trying to build or create something,<br>and there's an energy to<br>it that's very exciting.<br>You meet somebody and they have a startup<br>and they're working on the startup.<br>And it's very exciting.<br>And there's a lot of<br>negative aspects to that,<br>and we can all agree that our entire life<br>being commercialized has<br>probably not been that great.<br>But the kind of the<br>experience of being there<br>and everyone's excited to build something,<br>it's a really cool experience.<br>- Yeah, it's great. It's really great.<br>The excitement, the energy.<br>- Yeah, Montana doesn't have that.<br>- I have an admiration,<br>a romantic admiration<br>for the shows like Yellowstone<br>being out on nature.<br>It's beautiful. I like riding horses.<br>Somebody also said...<br>Reddit is full of wisdom about you.<br>Some of it could be fake news,<br>but something about horses<br>and this kind of thing.<br>You like horses, you like riding horses?<br>- We have horses on...<br>Our neighbor had much more hilly land<br>and one of the horses broke its leg,<br>so they had to put it down.<br>And so we just said, "Hey,<br>we are on much flatter land.<br>You can just have your<br>horses in our property."<br>And so we just have horses<br>that run around on our...<br>- What about milking cows?<br>Somebody asked about cattle and cow.<br>- So I've only had open cows.<br>If you don't know, cow means girl,<br>open means that, hey, they've<br>tried to get the cow pregnant.<br>The cow did not get pregnant first try.<br>And so they're calling that gene,<br>they're getting rid of that gene.<br>The open cow is gonna<br>now go out to pasture,<br>pasture for the year and then get turned<br>into delicious T-bone<br>steaks and various things.<br>And so we would house<br>open cows on our property.<br>So no, there's no milking of open cows.<br>- [Lex] Okay.<br>- They'd be very upset if<br>you tried to milk an open cow<br>because they're not milking cows.<br>You have to get that cow pregnant.<br>And then once you get it pregnant,<br>you have to kind of put it<br>into this permanent state<br>of milking and all that.<br>And it's a little bit more<br>complicated than say what we did,<br>which was just cows on eating grass<br>and I didn't have to touch them.<br>- Okay, well, that's wonderful.<br>- Reddit is not a great<br>place for wisdom about me.<br>They're gonna give you<br>the craziest answers.<br>- We'll return to Reddit time<br>and time again, my friend.<br>So yeah, you took the leap into Netflix.<br>So what was that like?<br>- It was, you know...<br>This is one of those things<br>where when you talk about it,<br>people love to trivialize this<br>because it's like, oh,<br>you're taking a leap of faith<br>by going into a FANG company.<br>And in 2013, sounds super risky.<br>My wife was 36 weeks pregnant.<br>We had to travel to a place<br>where we knew not a soul.<br>We were about to have our first kid.<br>We didn't even have a doctor.<br>If you don't know what having a baby does,<br>you kind of want a<br>relationship with a doctor.<br>There's a whole thing that goes on there.<br>So it was a really hard<br>and great experience.<br>So I went to a job in<br>which their culture deck...<br>So during this time, this<br>is where Netflix still had<br>kind of that old generation X feel to it.<br>Their culture deck was<br>hire fast, fire fast.<br>It was very in your face about like,<br>"Hey, this is how we operate.<br>You don't meet the<br>standards, we kick you out."<br>So it's like I'm leaving a place<br>where it's more secure to go<br>to a place I don't know anybody,<br>to a job that's bold in its<br>claims about firing everybody<br>with a wife that's just<br>about to have a baby.<br>And I'm from Montana and<br>every Montanan's born<br>with a natural dislike of California.<br>So there's all these things<br>kind of flowing into it<br>where it's just going to be like,<br>wow, this is a very intense experience.<br>And it was hard for sure.<br>It wasn't just some easy simple experience<br>that we were just like, oh,<br>well, I work now at FANG.<br>We had to kind of work through that.<br>Having a kid was very difficult.<br>Our first kid was very difficult.<br>Not having any family<br>around to ever help you<br>took a much larger toll on<br>my wife than me, for sure.<br>- What was the technical<br>learning curve for you?<br>You showed up in your<br>plaid pants, dressed up?<br>- [ThePrimeagen] Yeah.<br>- What did you have to<br>learn about the Stack?<br>Because Netflix, I imagine<br>is this incredible infrastructure.<br>It has to deliver just<br>a huge amount of data.<br>I'm just blown away by Netflix<br>but also YouTube.<br>These companies that have to deliver,<br>serve a huge amount of bits.<br>Netflix has it easiest.<br>Out of all the companies Netflix by...<br>Even though you could say<br>maybe we beat YouTube in view<br>hours, I'm not sure if we do,<br>but let's just pretend Netflix has<br>5X more view hours than YouTube.<br>Whatever it is, Netflix has a<br>fundamentally easier problem<br>than all other companies.<br>And let's get back to that.<br>I'm gonna first tell you about the Stack,<br>but I'll tell you why it has a<br>fundamentally easier problem.<br>So when I first got there,<br>they gave me my PlayStation three.<br>My boss said, "Go learn some code.<br>Come back to me in a couple of days<br>and tell me what you've learned.<br>And then I'm going to start<br>giving you bugs to fix."<br>- Wait, wait, PlayStation three,<br>what are you talking about?<br>- Well, I was on the TV team.<br>I had to go plug in a PlayStation<br>and start launching programs<br>onto the PlayStation three<br>and figure out how to work<br>Netflix on a television device.<br>- Oh, so you have<br>different kinds of devices.<br>Why PlayStation three, is other different-<br>- It's just 2013. That's what you have.<br>- Any devices that plug into the TV?<br>Okay, cool.<br>- Yeah, not as many TVs had Netflix,<br>let alone what they<br>called their Darwin app,<br>which is their new application.<br>So if you bought a<br>VIZIO earlier that year,<br>you'd get their older one there.<br>It's called Plus UI. You<br>get their older version.<br>And so not many had the newer version.<br>We no longer supported Plus<br>or we never actively developed on Plus,<br>we only did stuff on Darwin.<br>And so I had to learn that whole stack,<br>the backend or the middle<br>end, the middle layer<br>between the actual<br>back-end and the front-end<br>was written in Groovy.<br>And as I went around, Groovy is<br>if you're not familiar with Jenkins,<br>then you've probably never<br>interacted with Groovy.<br>But Groovy is a JVM language.<br>It's a very interesting language,<br>but here's how it got started at Netflix.<br>- Oh, it's Apache.<br>Apache Groovy is a<br>powerful object-oriented<br>programming language that runs<br>on the Java virtual<br>machine released in 2007.<br>It has evolved to become<br>a versatile language<br>that combines both static and<br>dynamic typing capabilities.<br>- All right, so the AI<br>is kind of lying to you.<br>Groovy is not a powerful great language.<br>That statement makes it seem<br>way cooler than it actually is.<br>You'll meet one out of 100<br>people that have touched Groovy<br>that said, "Oh yeah, Groovy's great."<br>The other 99 will be<br>like, "Heavens forbid,<br>you ever have to touch that language."<br>So when I got there, nobody,<br>not a single soul at Netflix,<br>those 40-some engineers had any idea<br>how Groovy pretty much worked.<br>Somehow people just hacked<br>together these scripts<br>and put them all on there and it worked.<br>And this was before there<br>was a Groovy RX port.<br>We wrote our own version called WX.<br>It was a nightmare,<br>observables, all these things.<br>I remember one time they told me that,<br>"Oh yeah, with RX it's really easy.<br>You just say what you need to do.<br>It maps out and boom, boom, boom,<br>everything will run and all that."<br>And I was like, "Oh wow, really?"<br>So all I did was go like<br>observable.sleep one<br>because I just wanted to see it sleep<br>and then do the next thing.<br>And it turns out when<br>a thread sleeps itself,<br>no thread can wake it up.<br>And I just turned off all of staging<br>because I ran it like 10 times.<br>Like, oh, it's not responding.<br>Oh, it's not responding.<br>Oh, now it's not even coming back.<br>Broke all of staging for everybody.<br>So no developer could work<br>for the rest of the afternoon<br>because I locked up all the instances<br>because it turns out no, it<br>was in fact not multi-threaded.<br>Every assumption we've been told is a lie.<br>No one had any idea what they were doing.<br>It was a wild time.<br>And so I just simply naturally gravitated<br>towards that because I'm<br>good at print off debugging.<br>I'm good at doing those things.<br>So I was like, yeah, I'll<br>just figure this out here.<br>I will do this.<br>So I had the rewrite how<br>we do the data structure<br>on the front-end for the TV<br>from what is called a LoLoMo,<br>list of list of movies into LoLoRoMo,<br>which is a list of list of<br>recommendation objects for movie.<br>Why would we need to do<br>that? Think about this.<br>You have two lists, one has<br>Live Free Die Hard, Bruce Willis<br>because you love Bruce Willis.<br>The other one has Live Free Die Hard<br>because you want tough<br>men doing tough jobs.<br>Well, during those days<br>we'd only have one way<br>we could show evidence why you wanted it.<br>So we couldn't say,<br>"Oh, because you liked this other movie."<br>You'd go to that one<br>and say the same thing.<br>So we had to add one level of indirection<br>where we could decorate the video<br>with the recommendation information.<br>- Okay, so you can abstract away<br>into the space of recommendation<br>versus the space of movies directly.<br>- Yeah, so you can't hang it off the video<br>because obviously then it would<br>be the same for everything<br>that shows that same video.<br>- [Lex] That's amazing.<br>- I had to do all this<br>and I wrote it in Groovy,<br>and I just did it-<br>- Such a funny name.<br>- And people were like,<br>"How did you write this in Groovy?"<br>And I was just like, "Well,<br>I read the language reference<br>for a day and then programmed it."<br>Well, what do you mean?<br>It was a very radical<br>language, shall we say.<br>And so I just simply became the person<br>that knew these things,<br>so they just give me more<br>and more jobs with that.<br>And so that's kind of how I excelled,<br>being the person that was<br>willing to do the thing<br>that no one else was.<br>- Yeah. Can you actually speak<br>to the print off debugging.<br>You walk into a system<br>and there's a lot of systems<br>in the world like this.<br>Twitter was like this,<br>when Elon acquired Twitter<br>and the rolls in and there's<br>this old junky code base<br>that's just like a giant mess,<br>and you have to basically<br>do print off debugging.<br>What's the process of<br>going into a code base<br>and figuring out what the fuck?<br>Well, how does this<br>work? What are the flaws?<br>What are the assumptions?<br>You have to reverse engineer<br>what all these other engineers<br>did in the past and the mess<br>across the space of months and years,<br>and you have to figure out<br>how all that works in<br>order to make improvements.<br>- The reason why...<br>I've always just been good<br>at print off debugging<br>because one of my first kind<br>of side quest jobs that I got<br>was writing robots for the government<br>when I was still at school.<br>And so I'd kind of do this contractually<br>for so many hours a week.<br>And my boss, Hunter Lloyd,<br>great professor by the way,<br>he just said, "Hey, here's your<br>computer, here's the robot,<br>here's how you plug it in.<br>Here's how you run the code.<br>Can you write the flash<br>driver, the ethernet driver.<br>Can you write the planetary pancake motor?<br>Here's some manuals, I'm missing some.<br>Just figure it out, I'll be back."<br>So that was government work for me.<br>So I was like, okay, I'll<br>figure all these things out.<br>And I figured them all out<br>and the only way to really get<br>anything out of the machine<br>was to print.<br>And so it's like I had<br>to become really good<br>at printing my way through problems.<br>And so that kind of became<br>this skill I guess I adopted<br>is that I can just kind of print off debug<br>my way through a lot of these problems.<br>Obviously I'm not a game developer,<br>probably a different world<br>probably should use...<br>I think John Carmack was on here<br>and talked to how great the<br>debugger is, different world.<br>Because when I was at Netflix,<br>there's machines that<br>exist somewhere on AWS,<br>I'm not logged into them.<br>I don't even know how to log into them.<br>I'm not even sure if I have<br>credentials to log into them.<br>They run once somewhere<br>and I have to figure out<br>what happened and why it's happening.<br>So it's like I'm gonna become...<br>This is what I've trained for.<br>I'm a print off debugging champion.<br>So it's just like I could<br>just run through these things<br>really quickly and figure out<br>why they're happening the<br>way they're happening.<br>- You're a special human.<br>I think that's an<br>incredible skill set to have<br>to be able to drop in into any code base,<br>drop into any situation,<br>and do print off debugging.<br>Meaning you're in a dark room<br>and you're feeling around that room<br>to try to figure out what the room is.<br>- Well, I had the code<br>so it's like I can kind of<br>blueprint what's happening.<br>I don't understand the<br>services or anything,<br>but you can start guessing pretty quick<br>as to what's going wrong.<br>- Right, but then the print side of that<br>helps you confirm your intuitions,<br>test your intuitions and build<br>up more and more information.<br>And then you start to<br>accumulate this bigger picture<br>from that, what the edge cases are<br>that break the system and not.<br>I think that just that kind of space,<br>that kind of situation is intimidating<br>for a lot of engineers.<br>They break down at that point.<br>I think it really is a powerful thing<br>to be able to come into a code base,<br>that's generally a skillset of like,<br>very few of us start from scratch.<br>- [ThePrimeagen] Yeah.<br>- And actually this is<br>the fundamental problem<br>of web development and in<br>general where they're like,<br>I don't know what's going on.<br>I'm going to write my<br>own thing from scratch.<br>As opposed to actually<br>doing print off debugging<br>on the space of languages,<br>on the space of problems,<br>because there's a lot of wisdom<br>and solved problems<br>already in this code base.<br>It's a much more important<br>skillset to understand,<br>to learn from the mistakes<br>and the wisdom of the past,<br>of the ancestors that came before<br>and build on them as<br>opposed to throw it all out<br>and start from scratch.<br>This is something obviously you see a lot<br>with a JavaScript framework that comes out<br>and you won every single day.<br>- I have a very great story about that,<br>that this is what I think<br>has shaped me the most<br>about my perspective of other devs.<br>There's this dev and he<br>always just wrote things<br>in just what I thought was<br>such a bizarre and weird way,<br>and this had to do with Falcor.<br>So our data fetching library for Netflix.<br>This would run on mobile. So<br>I had to write in Objective-C.<br>It had to run on television<br>and it had to also run on web.<br>So it ran on everything.<br>And me and one other<br>person were responsible<br>for this thing working.<br>And the request side<br>where we'd have to de-dupe the information<br>that we already have, the<br>requests that were pending<br>and the new data. So I<br>had to figure all that out<br>based on what someone's requesting,<br>and then just only<br>optimally request the stuff<br>that we don't have.<br>He wrote in such a goofy<br>way and I'm thinking,<br>man, this guy is just...<br>What a goofball.<br>So I delete it all and I<br>start writing and I'm like,<br>look at how much nicer this is.<br>It's looking so good.<br>I'm like, ooh, there's that one edge case.<br>Okay, I can see why he<br>wrote it this one way.<br>That's not a big deal though.<br>The rest of my code's really great.<br>By the end of it, I'm like, I<br>literally almost line for line<br>just reproduced what he already wrote.<br>It's slightly different towards my style,<br>but I just wrote the same code.<br>I'm like, I'm an idiot.<br>I am the idiot in this situation<br>because it was already a solved problem.<br>I just didn't take the<br>time to learn what he did.<br>Instead, I relearned what he did<br>by rewriting the entire thing.<br>- I think that's a skill set<br>that is extremely important<br>for people to learn.<br>I see that in myself.<br>That's a constant struggle for myself.<br>When facing a code base, for example,<br>but this applies generally in life,<br>where somebody did a lot<br>of work to do a thing,<br>you should invest a huge amount of time<br>and get really good at<br>figuring out what they did,<br>why they did it.<br>Do a lot of print off debugging<br>to understand what they did.<br>It's a much more efficient way<br>to understand a problem deeply<br>than to start from scratch.<br>Even though there's a constant temptation<br>to start from scratch, because<br>starting from scratch is fun.<br>You do get the puzzle solved<br>and all that kind of stuff.<br>It's just not going to<br>be the right thing to do.<br>Usually pain is the right thing to do,<br>and it is for most people painful<br>to understand other people's code bases.<br>- I highly recommend starting from scratch<br>if you want to understand a concept.<br>You don't know how an HTTP server works,<br>create a TCP socket,<br>learn how to parse HTTP.<br>It'll become very easy and you'll go,<br>this is the reason why<br>whenever I get a request,<br>I have to await the text.<br>I now understand why the text is<br>for whatever reason not there.<br>I get it. I now understand it.<br>And so you kind of gain<br>these new perspectives<br>just by simply parsing something out.<br>- All right. Back to the wisdom of Reddit.<br>Apparently there are memes and legends<br>about your programming arc in Netflix.<br>This Falcor system you mentioned,<br>somebody, I think it was Teej,<br>how do you pronounce his name by the way?<br>- [ThePrimeagen] Teej.<br>- Okay, Teej.<br>- TJ would be his name,<br>but we call it Teej or Telescopic Johnson.<br>- Oh wow, so many names.<br>DDoS, distributed denial<br>of service attacks,<br>you apparently were able<br>to accomplish the simplified<br>version of that of just DoS.<br>That's a legend.<br>So you basically broke<br>down the system somehow.<br>- Yeah. Yeah.<br>- Can you tell the story of that?<br>- I'd be glad to.<br>So this Falcor, so there's<br>this Falcor business,<br>and I kind of, I did discover<br>the bug before anybody else<br>and I did report it to<br>security and it was so bad.<br>It actually got its own name,<br>Repulsive Grizzly Attack,<br>and they even give<br>examples of how to do it.<br>Effectively what it means<br>is that there is a request<br>that targets both memory<br>and CPU and will destroy.<br>There you go.<br>Look, how Netflix...<br>The next one down was the article<br>that was actually written.<br>I don't get mentioned, which<br>is a little bit upsetting<br>considering I was the<br>one that discovered it<br>and told everybody how bad it was.<br>Anyways, and had the right to<br>fix for it or the first fix.<br>So this is how it works,<br>is that you can do<br>something pretty similar,<br>I believe with GraphQL as well.<br>It has the same kind of danger.<br>Any of these kinds of RPC request as much<br>or as little of the data as<br>you would like frameworks,<br>are vulnerable to this kind of attack.<br>So with Falcor, what you<br>do is you give it an array.<br>That's an array is called a path,<br>and that's the path to the data.<br>But sometimes you don't<br>want to have to write out,<br>I want movie, I want row zero<br>or list zero or row<br>zero column zero title.<br>I want row zero column zero description.<br>You don't want to have<br>to write out all that.<br>So instead you could just be like,<br>I want rows zero through 10,<br>columns zero through 10,<br>titles and descriptions.<br>So you can write in a very<br>compact, nice little format<br>and it'll give you all that data.<br>It'll go to the server.<br>The server will fill that<br>all in and give it to you.<br>Oh, dang it, list three, it<br>only had three videos in it.<br>So what happens when I try<br>to re-request the data?<br>Well, I need a way to be<br>able to tell my system<br>that you'd have requested the data<br>and there's nothing there.<br>So call this like a boxed value.<br>So it's gonna be like<br>type, something, value,<br>there's nothing there.<br>We've already requested it<br>and there's nothing there.<br>It's like a sentinel value,<br>if you will, a boxed value.<br>And we have this little<br>special flag weed pass<br>called materialize.<br>Meaning that when you ask for a path,<br>we will make sure we fill it out<br>so we don't accidentally erase anything.<br>And at the very end we'll say okay,<br>the thing does, the request you've made<br>has already been made and<br>there's nothing there.<br>Well, what happens if I<br>request rows 0 through 10,000<br>columns through 10,000,<br>one more item through 10,000<br>and then a whole bunch of properties<br>and then ask it to materialize?<br>Well, I'm about to go create<br>billions of objects in the JVM,<br>and what happens to the machine?<br>It stops running.<br>And then if we try to JSON...<br>Even if it could create a 'em all,<br>we then ask it that JSON serialize,<br>it's not gonna do it.<br>It's impossible.<br>And so that was the attack vector,<br>is a simple wild loop would've taken down<br>and held down Netflix<br>for a very long time.<br>Because one request would<br>kill one machine on AWS.<br>And so that means it would<br>just turn it all off.<br>And this was on the website?<br>This was on TV, this was on mobile.<br>This was profound.<br>And here's the worst part, it<br>was in production for years<br>so we couldn't even roll it back.<br>There was no like,<br>"Oh crap, let's just roll<br>back to two weeks ago<br>and we'll fix forward and figure out."<br>No, it's like we could roll back to 2011.<br>That's our option is 2011 and that's it.<br>So we had to figure out a<br>way forward and all that.<br>And so it was like...<br>The amount of problems<br>that would've happened<br>if someone would've<br>discovered this is unstatable.<br>- Just to be clear, the infrastructure<br>that's serving the videos would shut down.<br>- Yeah, the UI, you couldn't<br>perform any actions in the UI.<br>You surprisingly could still stream video<br>but you would never be able<br>to get to a video to stream.<br>Because every action you would take<br>would be completely shut down.<br>And so it wasn't a DDoS<br>because you didn't need a<br>bunch of computers to try<br>to overwhelm the system by<br>making a bunch of requests,<br>one request, one machine.<br>If we had 50 machines serving<br>the millions of requests,<br>it'd only take 50 requests<br>to shut down the entire UI.<br>- Isn't it possible to do DoS or DDoS<br>on basically any software system.<br>Like defending against all the, you know,<br>closing all those attack factors<br>is probably really difficult.<br>If you take any sufficiently<br>complicated software system,<br>there's probably so many<br>ways to overwhelm it.<br>- Yeah, I mean, this is<br>why people use CloudFlare.<br>I think DHH said it best, which<br>is like, we have our website<br>and we have a strong<br>bodyguard on the outside.<br>So CloudFlare has a bunch<br>of utilities all built in.<br>Because obviously this<br>is why everyone hates<br>all these Bluetooth devices<br>that connect to the internet<br>because they just turn into attack vectors<br>where people use those to<br>DoS or DDoS other sites.<br>And so you don't need<br>something sophisticated,<br>you just need a bunch<br>of requests to come in<br>and you can take down websites.<br>And so that's why these<br>fronts are really good<br>at discovering where these problems are.<br>But DoS is a bit different,<br>because it doesn't have to be overwhelming<br>by using resources with a<br>whole bunch of requests.<br>It really just means simply<br>that there's a denial of service attack.<br>One of them could be there's<br>a RegEx attack that existed<br>where CloudFlare actually did it to itself<br>and shut itself down,<br>which is there's a RegEx expansion attack<br>where given the right RegEx,<br>if you know someone's<br>running a specific RegEx,<br>you can actually provide<br>input that is maximally bad<br>and that thing goes to super processing.<br>It takes 10 seconds to<br>process a single request,<br>then you only need to<br>make hundreds of requests<br>and you shut down the whole service.<br>It's not like you need<br>some giant machinery<br>to make one trillion requests.<br>You only need just some small amount<br>to completely destroy a service.<br>And so there's...<br>The web is an extremely<br>difficult place to do it correct.<br>- This is super fascinating.<br>I do also wonder how many ultra competent,<br>what is it, black hat hackers there are,<br>versus the good guys versus the bad guys.<br>How many bad guys there are<br>and what is the average...<br>What is the distribution of<br>skillset on the bad guy side<br>that are constantly trying to attack?<br>- I assume there's probably a huge number<br>of just really simple ones,<br>script kitties, right?<br>Just people trying to just do things.<br>And then there's a huge<br>amount of social engineering<br>that just goes in where hacking's<br>done, not with a computer<br>but just by one of the classic ones.<br>Kevin Mitnick had this<br>one in his book which was,<br>you'd call up somebody<br>pretending to be like,<br>"Charlene, we're doing some auditing<br>and I think your pin's<br>out of date on file.<br>Is it 2323, still?"<br>And they're like, "No, it's 4747."<br>You're like, "Oh, thanks Sharon."<br>Boom. You just hacked him, right?<br>The classic. People love<br>correcting bad information.<br>This is like a standard.<br>So there's all these ways people hack.<br>And so my assumption is<br>that there are really<br>great white hat hackers,<br>there's really great black hat hackers.<br>But the vulnerability space,<br>the harp, the thing is that<br>discovering a vulnerability<br>and you don't let anyone know,<br>the white hat hacker still has<br>to make that same discovery.<br>And that's where I think the real thing is<br>that black hat hacking in some sense<br>has a fundamentally easier job<br>or at least a job in which<br>they can take advantage of<br>for much longer periods of time.<br>One's the process of discovering<br>who's breaking the system.<br>The other one's trying to figure out<br>how to break the system.<br>And it seems like most<br>software is held together<br>by toothpicks and glue<br>and there is a lot of<br>dangers in every piece.<br>- And also the social engineering aspect,<br>that's a real attack vector.<br>I think that's the attack<br>vector that will do<br>in the longterm the most<br>damage in the world.<br>Especially as AI tooling<br>becomes easier and easier<br>to convince people at scale,<br>sort of do that email Grandma.<br>I think that's a really<br>serious attack vector,<br>like human psychology and all that.<br>I assume whenever there's<br>a girl that approaches me,<br>it's some kind of social<br>engineering project,<br>some attack vector, some<br>intelligence agency.<br>In fact, I'm pretty sure-<br>- We're back to A<br>Beautiful Mind, aren't we?<br>- Beautiful Mind? Yeah.<br>I have a whiteboard upstairs<br>that I calculate everything,<br>everybody's trajectory and move.<br>- You're not wrong though<br>with the attack vector,<br>especially in the day of AI.<br>One thing that I don't<br>think a lot of people<br>are talking about as we<br>integrate more and more AI<br>is that prompt injection<br>is an extremely hard<br>thing to defend against<br>because it's not really clear<br>how you defend against it.<br>If it's just a, at the end of the day<br>word calculator make word come out.<br>If you can figure out the<br>proper word calculator input,<br>it might just break its bounds<br>and start doing something<br>it's not supposed to do.<br>And there's a whole future word.<br>There's all these products<br>that are going to be vulnerable<br>to things they never thought about.<br>It's one thing where<br>you forget an edge case<br>while you're programming.<br>Now you have to guess what<br>people might be able to think of<br>making something that has access<br>to a system be able to do.<br>And you don't have a<br>way to reason about it.<br>Its reasoning came from<br>Reddit, and other words<br>that it's read and how<br>to put things together.<br>This is a very...<br>It's a massive space<br>that's gonna be happening.<br>It's why I'm personally thinking<br>don't give too many powers yet.<br>We don't know the attacks<br>that are about to happen.<br>- Yeah, the more power we<br>give to software systems,<br>the more damage they can do.<br>That certainly is the case.<br>But the more awesome they could do,<br>and that's the knife's<br>edge that we all walk along<br>as a human civilization<br>together, hand in hand.<br>Will we flourish or destroy<br>ourselves? Question mark.<br>Folks on Reddit, the good folks on Reddit,<br>demanded that I ask you about<br>the time you broke production.<br>Is this related to Falcor?<br>Did you break production?<br>Is this fake news?<br>- I've broke production<br>quite a few times.<br>I've broken productions<br>for so many stupid reasons.<br>One time I broke production<br>because I came up in the PHP.<br>And PHP Static means static<br>for the lifetime of the PHP<br>and PHP was the lifetime<br>of every request, right?<br>That's why PHP was so inefficient<br>was that every request<br>was its own instance,<br>and therefore static memory<br>was for the lifetime.<br>I guess I never put that together.<br>And so I had some objects<br>that I made static<br>because I was like, oh I just need this<br>for the lifetime of the request.<br>And lo and behold, those weren't lifetime.<br>A whole bunch of bad data<br>got all over the place.<br>People were showing up saying they were<br>from all these different countries<br>and everything was all<br>wrong because I just...<br>Whoopsie-daisies. I just made<br>a whole conundrum with that.<br>So that was one time I did it.<br>Another time is I took down,<br>if you were on the homepage<br>on the website waiting<br>for Lady Gaga's video to come out<br>and you were watching<br>the countdown go down,<br>if it reached zero,<br>the billboard would freeze<br>and it wouldn't work.<br>If you refreshed it, it would work.<br>But the reveal, (chuckles)<br>the big reveal, I screwed that up<br>and my boss got real upset<br>and so did other people<br>in Hollywood got upset about that one.<br>That was like a, "My bad.<br>Sorry, Jeff Wagner, again."<br>I remember that one. I<br>remember that one specifically.<br>One time I released a bug<br>where again on the billboard,<br>if you pressed add to my list,<br>I accidentally programmed<br>in an infinite loop,<br>and your whole webpage would just freeze.<br>- Are some of these bugs<br>difficult to discover<br>until you started-<br>- That one seems really<br>easy looking back at it.<br>- [Lex] Infinite loop? Yeah.<br>- And we actually, during<br>those days we had manual QA<br>that are supposed to<br>go through everything.<br>So I didn't feel as bad<br>because my manual QA<br>counterpart also missed it.<br>We all missed it. But<br>it was just so simple.<br>Just press that button, boom.<br>It just completely freezes the website.<br>- Polluting the code with global variables<br>that are holding values,<br>SPHP I think allows you to do,<br>that's a tricky one to discover,<br>because you rely on it,<br>then there could be somebody<br>else assigns a value to it.<br>- Yeah, it's a data race everywhere.<br>And I just didn't understand...<br>In my head static was like,<br>"Oh, this is for the life."<br>I was just so locked into<br>the PHP world at that time<br>that I just made just such a,<br>looking back on it's so obvious.<br>But during the time, it's hard.<br>- So in general, pushing to production,<br>I talked to Pieter Levels about this.<br>He, I mean, obvious he's operating<br>as mostly a solo developer, but<br>he often on the website said<br>thousands, not, hundreds<br>of thousands of people use.<br>He often ships to production,<br>pushes to production,<br>meaning just no testing,<br>just like push to fix.<br>What are the pros and<br>cons of that approach<br>in general to you?<br>What do you think?<br>- It's obviously much easier<br>the smaller your organization is.<br>I think no one would argue that sentiment.<br>If it's just you working<br>on a singular project,<br>it is obviously much easier<br>for you to push directly<br>to production because you<br>are the only one working.<br>You know all the ins and outs<br>and if something were to<br>break, you would discover it.<br>So to me that makes sense.<br>I think the way he operates<br>is perfect for what he does.<br>You couldn't take what he does<br>and move it to say Microsoft<br>or Netflix or Google because<br>that would obviously...<br>It would just be a disaster,<br>just due to the amount of people<br>all pushing to production.<br>And so I personally love that.<br>I think that you have to gauge<br>both the application you're<br>building and its complexity<br>and what you're pushing,<br>and how many people are working on it.<br>I think those all go<br>into how you can do that.<br>Because not all applications<br>are created equal either.<br>That application I was making<br>was zooming and scrolling<br>where we had all of our own everything.<br>It was a very deep heavy logic app,<br>and that was regardless<br>of what was happening<br>on the website, most of<br>the code was library code.<br>And that becomes way harder<br>if you don't have a good<br>test suite and stuff to run<br>before you push it out.<br>Because when you squeeze that ball,<br>different things come popping<br>out in different areas.<br>And that's a very harder problem than say<br>if you're doing more of a heavy visual one<br>because a heavy visual one,<br>you're affecting just this<br>one area's visual stuff<br>and you can test it and<br>that's normally the end of it.<br>Whereas, you know...<br>So it depends on the<br>coupling and everything.<br>So I love his approach by the way.<br>I have such mad respect for<br>anyone that operates that way<br>because I think is a great<br>way, it just is so good<br>because it breaks this notion<br>that tech Twitter has that,<br>oh, well, you have to use<br>all these expensive services,<br>you need to use all these things<br>because if you don't use all this stuff,<br>if you're not using the<br>latest version of React,<br>if you're not using the<br>latest version of this,<br>you're simply not going<br>to make it as a startup.<br>It's impossible.<br>And it's just like, no,<br>no, that's not software.<br>Most of software isn't the new stuff.<br>Most of software is old crappy software<br>that someone has to maintain,<br>and it actually is really, really great<br>and has lots of really hard problems.<br>And if you look at it differently,<br>it's actually fantastic.<br>- For people who don't<br>know his tech stack,<br>in terms of web development<br>is PHP, jQuery and SQL.<br>- Yeah, all great stuff.<br>I'm just surprised he still uses jQuery<br>just given the fact that at<br>this point on the modern web,<br>everything is, I mean, you<br>have document query selector<br>and ad event listener click, right?<br>It pretty much has<br>everything you already need.<br>It had DOM content load,<br>all the reasons I used<br>jQuery back in the day was<br>adding a click on a button was hard.<br>You had to deal with IE7, IE8, IE9.<br>Those are hard differences.<br>Whereas now, it's just so easy.<br>I'm just surprised it's even that.<br>- That's definitely a trade-off I have,<br>I still use the exact same stack,<br>PHP, jQuery and different flavors of SQL.<br>But the question there is,<br>you keep using jQuery<br>because you can get the<br>job done really fast<br>and there's no significant<br>performance hit that you detect.<br>So like why swish to something else?<br>But it's always probably,<br>as we'll talk about,<br>good to explore and to learn.<br>- Not all tools are great<br>at solving all problems.<br>And so what you think is really...<br>The problem is you run<br>into this trade off,<br>which is you have some tool belt<br>that you're very adept with,<br>you know all the ins and outs.<br>There's no unknown unknowns,<br>but there's no surprises in this.<br>You know what you're building,<br>you know what you're getting into.<br>You will go through and you'll<br>be able to solve the problem.<br>But if you ever use a different language<br>or a different experience,<br>you can find that some things are able<br>to represent states way easier,<br>in a way more efficient way.<br>And you can solve problems<br>really efficiently<br>in some versus the other.<br>And so it's like, if<br>you don't take the time<br>to explore as well, you<br>could be missing out<br>on something that makes you twice as good<br>on this one specific problem like subset.<br>And so I value being able<br>to look at all problems.<br>And so I don't want to<br>get stuck on one thing,<br>though, I see why people do,<br>which is for the efficiency sake.<br>- Let's just return to the<br>infrastructure of the platform<br>of Netflix and, speak more generally,<br>Netflix, Twitch, YouTube.<br>Anytime I use any of these<br>services, I'm just blown away<br>by the infrastructure it<br>takes to deliver this service.<br>YouTube and Twitch are<br>unique, versus Netflix<br>where the creators can roll in<br>themselves and upload stuff.<br>So on the consumption side,<br>YouTube has over 100 billion views a day,<br>over one billion hours watch time.<br>But on the creator side,<br>one million hours of videos<br>are uploaded every day.<br>One million hours.<br>It's like you have to service both<br>and you have to deliver everything.<br>It's just incredible to me.<br>Can you maybe speak to your own intuition,<br>just zooming out on it,<br>what it takes to deliver<br>that kind of infrastructure?<br>- For me, the thing that<br>I find vastly complicated<br>and I can't imagine the engineering hours,<br>is how do you even create<br>an edge in that situation?<br>And what I mean by an edge,<br>when people say this phrase,<br>if you're unexperienced,<br>an edge is where you deliver data.<br>You want that edge to be<br>as close to the customer<br>as possible because that's<br>where the data lives.<br>And then the communication<br>between the customer<br>and what you're doing<br>is really, really small.<br>Obviously the speed of light adds up,<br>the amount of hops adds<br>up, the amount of services<br>that you have to remotely call adds up.<br>They all add up and they<br>all add inefficiencies<br>to the system.<br>So something like YouTube,<br>they want to be able to serve that data<br>as quick as possible, but<br>their data changes constantly<br>and relevance is almost directly tied<br>with the newness of the item.<br>So it's like how do you<br>even cache these things out?<br>How are you doing this?<br>So they must have such an<br>incredible caching network<br>that I can't even...<br>I can't even fathom what<br>it takes to do that.<br>That just to me is just so impressive.<br>A million view hours in how<br>many different resolutions<br>with how much data?<br>What is a million view hours?<br>Is it 4K million view<br>hours, along with 1080p,<br>along with 720p, along with 1440p?<br>That number is an insane number.<br>- Actually, it is brilliant what you said,<br>which is for YouTube often the new thing<br>is extremely important<br>to show to everybody.<br>And so, you can't rely on caching<br>or trivial kind of caching.<br>- Yeah.<br>- You have to deliver<br>the new thing as quickly as possible.<br>Yeah, I mean, it's incredible.<br>So there's the entire system,<br>the recommendation system<br>that knows each individual<br>human watching YouTube<br>and it has to integrate<br>into that the new thing,<br>while also caching this incredible cluster<br>of possible videos that you're<br>potentially interested in.<br>And integrate into that ads<br>in the case of YouTube and so on.<br>- It's a really tough problem<br>because you have to think<br>what is the cash hit rate on this?<br>Because the problem now<br>actually comes down to space,<br>space actually becomes a real problem.<br>How many hundreds of<br>petabytes do they have<br>that they have for like,<br>"Okay, what do we cache<br>and where do we cache this?"<br>The number, I think in<br>the terms of gigabytes<br>or maybe megabytes, they<br>have to think in probably<br>versions of bytes I don't<br>even know the name for right?<br>It's such a different problem<br>and that's why I said Netflix.<br>Netflix has a much easier<br>job when it comes to caching.<br>So if you've never looked<br>it up, it's called OCA<br>and that we know what<br>videos we're releasing,<br>we know what videos are<br>hot in specific areas.<br>It's a very limited set.<br>We're not going to all of a sudden get,<br>"Oopsies, we got a<br>million new view hours."<br>We don't even have to worry<br>about that as a problem.<br>So it's like, "Okay, we know<br>Stranger Things season five's<br>about to drop, we're gonna<br>pre-cash Stranger Things<br>season five in every<br>single OCA across the world<br>because that thing's<br>about to get hammered."<br>And so it's like it's able to do<br>such a different decision-making<br>than what you have to do<br>with something like YouTube.<br>And then Twitch is even more wild<br>because now you're<br>actually ingesting video<br>and trying to make it go out<br>all at the exact same time<br>for all video and you have<br>to transform that video<br>from whatever format and<br>whatever the bit rate is<br>into something that's more efficient<br>in the system like that.<br>Hats off to Twitch engineering,<br>because that's some serious work.<br>- And here's some asshole, Lex,<br>coming out and tweeting<br>about YouTube features.<br>So like, (chuckles)<br>Listen...<br>- You're not wrong on the<br>features you asked for, though.<br>- I think this is an engineering problem<br>of how do you allow fast<br>iteration and addition of features<br>that shouldn't have to be integrated<br>or impact the whole code base.<br>So at the edges of the code base improve<br>on certain features,<br>without having to consult<br>the mothership of the code.<br>- It's the large team, right?<br>That's the fundamental problem.<br>When you get into YouTube size,<br>there is the team/organization<br>that deals with data warehousing.<br>There's the team/organization<br>that deals with delivery.<br>There's a team/organization<br>that's like the middle layer,<br>how you even...<br>They're gonna be like<br>the little micro-surfaces<br>to talk to these places.<br>Then you have this front-end engine...<br>So for a small feature, you<br>have to get middle team,<br>you have to get back-end team,<br>you have to get all these things.<br>Quick example, Netflix.<br>Are you familiar with the<br>dystopian, Black Mirror?<br>- Yeah.<br>- Okay. Season one, episode one.<br>Do you know season one, episode one?<br>Everyone who watches Black Mirror<br>typically knows this episode.<br>- Okay, yeah. I don't remember what it is.<br>- Forgive my language,<br>but they call it the pig-fucker episode.<br>- Oh yeah, of course.<br>- [ThePrimeagen] Once<br>you've seen the episode,<br>you will then know this episode.<br>Well, when Netflix adopted<br>it, I got pulled into a room,<br>there's like a VP, a<br>VP, a product designer,<br>a VP, and they said,<br>hey, we're about to release<br>our own version of Black Mirror,<br>season three, I think at that time.<br>We need episode one, season one<br>to not be the first thing people see.<br>So let's just reverse the season order.<br>That required me...<br>I had like 20 engineers<br>I had to gather together<br>to be able to have this happen.<br>And that's just the<br>problem of big companies<br>is that eventually every little thing<br>has to become its own team.<br>And so even small...<br>There's no such thing as a small feature.<br>- Reversing the order of the dropdown<br>that selects the seasons is a meeting<br>with a bunch of VPs and engineers.<br>That's really interesting.<br>- Yeah.<br>- There's got to be a<br>way to accelerate that.<br>The natural scaling of a<br>company and the bureaucracy<br>that grows, yes, slows that down.<br>But just having seen Elon work a lot,<br>his teams are able to<br>still keep it very fast,<br>even as the company grows.<br>There's got to be a process to doing that,<br>especially for,<br>yeah, for the pig-fucker episode.<br>I don't know where that's<br>in the priority list,<br>but for important things like that,<br>you should be able to do that quickly.<br>I don't know. Can you speak<br>to how would you do that?<br>- Well, I can tell first how it was done.<br>Remember, so at a place like<br>Netflix, there would be...<br>I think that at that point it's called,<br>a product called Dexter.<br>I can't remember.<br>There's our actual<br>movie metadata warehouse<br>that's gonna be highly<br>integrated with Hollywood,<br>that's gonna be, where that<br>side is able to manage all that.<br>So I'm like, "Hey, you need<br>the ability to mark things<br>that need to be reversed<br>because we're gonna<br>run into this a bunch."<br>And we did.<br>We ran into quite a few topical shows<br>that all need to be reversed and all that.<br>And so it's like,<br>"We need to be able to<br>reverse episode numbers,<br>season numbers.<br>We need to be able to hide<br>season or episode numbers."<br>Like in the case of the<br>Chelsea Handler Show,<br>it was like a daily show, so it's like<br>you don't need episode numbers,<br>you just need the latest one.<br>And so there's this whole<br>problem that exists.<br>And so it's like, okay,<br>you need to work on that<br>for your UI over there,<br>then you need to be<br>able to store that data.<br>Then we need to be able<br>to go to the people<br>that can actually get the<br>video data out of that<br>and provide it to our service layer.<br>I need to go talk to<br>them and convince them<br>they need to be able to<br>give me the new methods<br>and everything to do that.<br>Then I need to be able<br>to go write the methods<br>to get it down, and then<br>I need to go to the UI<br>and make that accessible.<br>Now I need to go to the website people,<br>I need to go to the mobile people,<br>I need to go to the TV people.<br>And so it's like...<br>- Yeah.<br>- You can see this thing like snowballing.<br>And for us, the big thing that<br>Netflix did that was so well<br>is after I met with these<br>people that were high level,<br>I was the captain. "I'm the captain now."<br>So I went to all these teams and said,<br>"Hey manager, I need an engineer.<br>We need to get this done within<br>the next couple of months<br>because we got Black Mirror coming out."<br>So she would go, "Okay, here you go."<br>The map team, I need someone to help me<br>with being able to get data<br>out of the LoLoMo for this.<br>And so it's like, "All right,<br>you're working with this engineering."<br>I'd go to the BMS team,<br>"Okay, I need this engineer."<br>I'd go to the billboard<br>team, "I need this engineer."<br>I go to all these little places<br>to get all these little pieces of data.<br>And then I was the captain, I was like,<br>"You're working on<br>this, you're doing this,<br>you're doing this, you're<br>doing this, I'm doing this.<br>Let's go."<br>And so it's like that worked.<br>And we were able to go pretty<br>fast for a big company.<br>And the fact that it required 20 engineers<br>to do such a simple task,<br>we were able to do it in,<br>gosh, I'd say about three<br>weeks worth of effort.<br>But that was still...<br>I thought that was amazing, comparatively,<br>to how many people move.<br>- Well, because you have the<br>freedom of the agency to do it.<br>You said the captain of the<br>ship. That's really powerful.<br>For big companies, that's a risk.<br>Because you can fuck it up.<br>You might not see the bigger<br>context legally or any,<br>the bigger context of the<br>impact on the industry<br>or all the contracts<br>that are made, all that.<br>So it's a risk, it's a risk,<br>but it's a risk you have to keep taking.<br>And then when you fuck up, you fix,<br>and then maybe pay the cost<br>legally for that, whatever.<br>But the long term, that risk pays off<br>because you're going to<br>keep creating a better<br>and better product, evolving<br>where the industry is going,<br>constantly innovating ahead<br>of where the industry is going<br>and so on.<br>Yeah.<br>- And not only that, I think one thing<br>that is just so important is that,<br>yes, the product will get better,<br>but the people that you hire<br>and the people that you<br>keep around are better<br>because they're the<br>ones that show maturity.<br>They're the ones that can just...<br>You give them something and<br>they can rally the troops<br>and make something happen.<br>That's a very great<br>group of people to hire.<br>And so you also naturally<br>select out great engineers<br>that aren't just simply good at coding,<br>they're good at coding and<br>they're good at explaining<br>and they're good at<br>convincing, and they're good...<br>And you have to create<br>a very lean audience<br>that can move fast.<br>- And I think for great<br>engineers, having to wait<br>for like, "Okay, let's schedule<br>a meeting for next Wednesday<br>with the VPs and..."<br>That destroys their soul.<br>And they either don't<br>want to contribute anymore<br>or they leave the companies<br>or they just tune out<br>and take the golden handcuffs<br>and just buy a nice house<br>and focus on a family.<br>- And I feel like I<br>would die under that...<br>Honestly, that is my death sentence is<br>where it's just that<br>there's no reason to try,<br>there's no reason to do anything.<br>I'm just gonna go in there,<br>effectively zombie through<br>my day and call it...<br>I don't want to live like that.<br>I want to feel like I'm<br>trying to do something.<br>- I should also mention on top of that,<br>so you've brilliantly laid out<br>how incredible the challenge<br>that Netflix has to solve.<br>On top of that with YouTube,<br>the metadata thing,<br>because users are able to<br>upload video and there's an API<br>where they can upload automatically<br>and change all this kind<br>of stuff automatically.<br>Every one of those things<br>is an attack vector,<br>as we mentioned.<br>That's something they<br>have to consider seriously<br>on the engineering side.<br>And on the legal side,<br>they can get into trouble<br>all kinds of ways.<br>So they have to consider all<br>of that, which is fascinating.<br>- The legal side is obvious,<br>but it's not really like...<br>I would never have initially<br>thought someone would,<br>say, upload images that you're<br>not allowed to own or have.<br>But that guarantee you that happens.<br>Then you have the whole kid side, right?<br>I think about when you mark<br>something as kid-friendly,<br>how many times have they snuck porn<br>into a Taylor Swift video or whatever?<br>That was like a few years back,<br>there was that whole<br>Taylor Swift or whatever.<br>I forget what it was, I<br>thought it was Taylor Swift.<br>But there'd be these mock videos<br>that'd come up and then, boom.<br>It's like, that is such an awful problem<br>and I'm so happy that is not a problem<br>I have to try to figure out.<br>- Yep. Okay.<br>So yes, YouTube and Twitch and Netflix<br>are doing an incredible job.<br>You eventually chose,<br>the madman you are, to leave Netflix<br>and to start on a new journey<br>of being a wolf pack of<br>one, start streaming.<br>What was that? What was the story of that?<br>- So I was streaming for<br>almost seven years now.<br>It started actually at Netflix.<br>We did a charity, Extra Life,<br>shout out to Extra Life for<br>starting my streaming career,<br>effectively is just you stream<br>and whatever money you raise,<br>it goes to Kids with Cancer research.<br>They are a great charity in the sense<br>that they take no overhead<br>and they raise their own donations<br>for their website and everything.<br>And so it's a very great,<br>straightforward charity.<br>Really love what they've done.<br>It was super cool because<br>I live in South Dakota now,<br>but I actually could<br>choose a hospital directly<br>where the money goes to.<br>So there's a direct impact from A to B.<br>So it's a pretty cool organization.<br>And so my friend, Guy Cirino, Nice Try Guy<br>is what I like to call him,<br>he was probably the<br>single greatest engineer<br>I've ever met in my lifetime.<br>And he was just like, "Hey, come do this.<br>We're going to all do<br>this." So I played Fortnite.<br>And so before I did that, I was like,<br>oh, I better learn how to stream first.<br>I better get affiliated so<br>I can take subscriptions.<br>And then if anyone<br>gives me a subscription,<br>I'll also pay that forward.<br>So June 2018 or something like that,<br>I start, I start streaming<br>and I start streaming some Fortnite.<br>End up getting affiliated,<br>end up doing the whole extra life thing.<br>I end up really enjoying it.<br>I'm like, "This is a lot of fun."<br>I'm playing Fortnite at that point. Okay?<br>So mind you, I'm a Fortnite<br>streamer at that point,<br>and I start really enjoying it.<br>I keep doing it and then one day I decide<br>I'm gonna do some programming.<br>Because I really love Vim<br>and I think I'm fast at Vim,<br>and maybe people think<br>programming is kinda cool.<br>Because there was no<br>really programming section<br>at that point.<br>And I did it.<br>I had like 30 people show<br>up, which was just...<br>And it felt like incredible<br>numbers at that point.<br>So I was like, "Oh my gosh,<br>there's like 30 people<br>watching me program."<br>And so it just kept on going<br>and it kept on happening<br>and it just kept on growing.<br>And I did it for year after year.<br>I would do my job, I would come home,<br>I'd eat dinner with the kiddos,<br>I would read them Lord of the Rings<br>and the Hobbit during that time,<br>I'd read to them for a half an<br>hour, then I'd set that down.<br>And then three nights<br>a week I would program<br>until like 2:00 in the<br>morning or play video games<br>until 2:00 in the morning streaming<br>and building up this whole side thing.<br>And I did this for a long, long time,<br>and then eventually it just<br>kept working out so well<br>and I started making YouTube videos.<br>And then that started getting better.<br>And it was just a long, long<br>grind until April of last year.<br>I went to the Streamer Awards<br>and I got to announce<br>the programming category<br>and Pirate SoftwareOne.<br>It was awesome. It was a great time.<br>And during that time he<br>gave me a challenge coin<br>and just said, "You just got to go for it.<br>Just go full time."<br>And so I just sat there and<br>my wife can attest to it.<br>It was like an emotional turmoil thing<br>and it just took a lot of,<br>it was pretty awful because I didn't...<br>Netflix is very safe option.<br>It was both very fun. It was challenging.<br>I liked a lot of the people worked with<br>It was overall a really great thing.<br>I had a really great boss,<br>really appreciated him.<br>I still have text him now and<br>then he's really great guy.<br>So it's just like I'm<br>leaving all these things<br>for something that's unsure.<br>And the reality is that<br>streaming and all these things,<br>you know, people love you one day,<br>they could hate you the next day.<br>There's all this stuff that goes into<br>being on the public side.<br>And I had Netflix as the backing,<br>so it's like if public hated<br>me the next day I'd be like,<br>deuces, I'm out.<br>I don't care.<br>Now it's like, now I'm<br>gonna do this as a job.<br>And so there's a whole huge<br>turmoil to this whole thing<br>that I kind of went through it.<br>And eventually I just said,<br>okay, I'm gonna make this.<br>It resonated with me<br>when I first made the<br>decision to join Netflix.<br>I'm getting older.<br>There's not a lot of chances<br>to do something unusual.<br>Those chances go down<br>constantly as you get older.<br>This might be the last<br>crazy thing I get to do.<br>Let's just try it.<br>So in April I went full-time<br>and I guess I haven't looked back.<br>I'm only not even a year into<br>doing this as a full-time gig.<br>And it's just been a lot of fun.<br>And the biggest thing is just<br>being able to really explore<br>and do these things on stream<br>where people really enjoy<br>watching and engaging.<br>It's been a great, hard, fun,<br>amazing, difficult experience.<br>- It's a really inspiring leap.<br>It's a really hard one<br>to take for many reasons,<br>like you outlined, but<br>also the loneliness of it,<br>I think it's a pretty lonely pursuit.<br>- It is. Yeah.<br>- Just you and the camera and the audience<br>and the ups and downs of that.<br>And there's not really a team.<br>- I do have one lucky thing<br>I'd say that, my editor, Flip,<br>shout out Flip.<br>- Flip, shout out.<br>- He said it would<br>mean the world to him if<br>I said, "Shout out, Flip."<br>- I love you, Flip.<br>- I love you, Flip.<br>- We all love you.<br>- Oh, man.<br>He had, as he would say, he<br>had nothing going for him.<br>He had a really hard growing up.<br>A lot of rough life decisions<br>have gone into his life<br>and he's crawling back out of it.<br>And he just said, "Hey, I'll<br>edit full-time for you."<br>So I just said, "All right, like 50/50,<br>whatever I make on YouTube, you get.<br>We're gonna do this together."<br>And we did that for years,<br>making $0 a month pretty much.<br>And so it's just like that<br>was an incredible jump<br>and now we get to work together.<br>So I do get that one team aspect<br>that I think is really nice.<br>But it's not like it was at Netflix<br>where I could hear about<br>stuff people are building,<br>I don't have a team, I don't<br>have product or cycles,<br>I don't have a manager that<br>I have to try to make happy.<br>It's just like...<br>It is very lonely.<br>And I don't think a lot of people realize<br>how lonely it actually can be.<br>- Yeah, so combine that loneliness with,<br>in my case, I don't know<br>how many people attack you.<br>- I have a shockingly low<br>amount of attack rate,<br>I feel like.<br>- Yeah, people generally...<br>I mean it's sometimes fun sort of teasing,<br>that kind of thing, but<br>it's mostly just really...<br>You give so much love to the world<br>and inspire so many people,<br>even when you're making<br>fun of stuff, yeah.<br>But with me taking the loneliness of it<br>combined with just really<br>intense attacks, it's tough.<br>It can be rough. Psychologically,<br>really a tough journey.<br>You miss working with a team,<br>just from even a software<br>engineering side,<br>where you can share<br>code or talk over code?<br>- [ThePrimeagen] Yeah.<br>- Or the collaborative aspect of it?<br>- Yeah, multiple things there.<br>One, hey, we love you Lex,<br>so don't let the things get you down.<br>- Thank you. Thank you.<br>I love you too.<br>- Thank you. Hey, little<br>bonding moment here going on.<br>But one thing I really miss-<br>- Not in a sexual way, just to be clear.<br>- The tension is a little tense here.<br>- I'm getting uncomfortable.<br>Yeah. Anyway, team.<br>- It's just the one thing<br>I really miss is just,<br>even when I hated how people did it,<br>just seeing how other<br>people solved things,<br>it's really amazing just<br>the raw creative power<br>so many people have, and<br>just being like, oh, wow,<br>I would've never done it this way.<br>Crazy, right? Wow, this is awesome.<br>And then you kind of<br>internally process this<br>and you're like, oh, I<br>now have a new little tool<br>in my tool belt.<br>Because at some point it's<br>really hard to find a mentor<br>when you're first, young<br>and you're just starting out programming.<br>I mean, anyone with a<br>couple years of experience<br>will be not just a little<br>bit better than you,<br>but infinitely better than you.<br>It feels like crazy how<br>much better people are.<br>And so you have to get mentors<br>and you learn from people.<br>And then as you get better,<br>that amount of availability<br>gets really small.<br>And so it's something<br>that I really do miss is<br>kind of that forced hard<br>problem solving together.<br>- I think there's also a<br>skill to mining the wisdom<br>from other people.<br>I generally try to approach<br>even junior people, young folks.<br>It's just mentally, at least<br>for me, it works as a hack<br>to assume they're the<br>smartest person in the world,<br>way smarter than me.<br>And so I take every single word they say<br>as potential wisdom,<br>and that helps me sort of mine<br>for potential wisdom there.<br>Because it's so easy once<br>you get older to judge,<br>to be like, yeah, okay, okay.<br>I've been through that. I<br>remember feeling like that.<br>I remember thinking that.<br>That's incorrect, whatever.<br>But just kind of assume that I don't know<br>what the fuck I'm doing, and<br>the other person is this sage.<br>And in that kind of interaction,<br>I think you could actually learn a lot.<br>And my favorite interactions<br>is when we both think that way.<br>So from there, I think that's a catalyst<br>for a great, great<br>collaboration and interaction.<br>- It just also makes<br>everything much nicer.<br>It really stinks to work with someone<br>that's combative and negative.<br>I don't mind combativeness<br>if it's like I'm trying to figure out<br>what's best to do right<br>now, versus combativeness<br>just because you're a negative person<br>and things have to be<br>this one particular way,<br>because if they're not<br>this one particular way,<br>it's the end of the world.<br>And that's actually really<br>hard for me to work with.<br>- What's the origin story<br>of ThePrimeagen name?<br>- The origin story of<br>ThePrimeagen name was,<br>are you familiar with a<br>video game called Turok?<br>Nintendo 64.<br>- Yeah<br>- So Turok had Turok I<br>and then Turok II.<br>Turok II was a brutally hard game.<br>This is back when first-person shooters,<br>they would only give you a<br>certain amount of health,<br>and you had to go discover<br>health and get that health.<br>And you had to beat the whole game<br>without effectively dying.<br>That's an old, that's like<br>the first version right there.<br>That's like Turok I and Turok II.<br>- Turok is a renowned first-person<br>shooter video game series<br>featuring dinosaurs,<br>action, and sci-fi elements.<br>The franchise has evolved significantly<br>since its inception in 1997.<br>- There you go.<br>So in 1998, there, you<br>can see it right there.<br>- Turok II, Seed of Evil followed in 1998<br>featuring larger levels,<br>more challenging puzzles,<br>and deadlier enemies.<br>- The notable difficulty,<br>it was very, very, very difficult.<br>So I spent, when I got it,<br>it came in a black cartridge,<br>not like your standard gray Nintendo 64,<br>the black cartridge.<br>Badass game.<br>And I got it and I put it in and I played,<br>and I played every day for 10 hours a day,<br>for a month straight.<br>And I beat it.<br>And it was such an<br>incredible, great experience.<br>And the last leader of Turok<br>II is called the Primeagen.<br>And so when I was a kid,<br>when you're in fifth grade,<br>that's super cool,<br>named after the bad guy.<br>And so for a long time<br>on any internet thing,<br>like Graal Online that<br>I mentioned earlier,<br>the name was ThePrimeagen.<br>It was great.<br>And then I became an adult<br>eventually, and it's just like,<br>okay, I'm an adult. My name's<br>Michael Paulson underscore.<br>And that's what I was on the internet<br>for a long time was that.<br>And I remember it was like 2017,<br>2018, somewhere in there.<br>I remember just how bad the<br>tech world had kind of become.<br>It was just like this<br>super pretentious place,<br>tons of dick measuring,<br>just everything that just was the worst.<br>Ken Wheeler got canceled<br>over playing the Circle game.<br>It was just like,<br>it is so hard to describe to<br>people that weren't there,<br>but it was just the worst place to be.<br>Tech was extremely unfun.<br>It was extremely awful.<br>Everything was just so, it wasn't academic<br>because it was research.<br>It was like we're building<br>the most sophisticated things,<br>and this is for the smart people<br>and everyone else is the dumb people.<br>Don't worry. We'll design for you, dummy.<br>We'll show you how to make<br>the perfect architecture.<br>And I remember changing my Twitter handle<br>because I got so upset<br>and just went back to my video game name.<br>I was like, I want things to be fun.<br>I want this to stop.<br>And so when I started streaming tech,<br>my goal became to destroy<br>whatever that tech mentality was,<br>because it includes nobody.<br>Everyone thinks that<br>they're the smart people<br>and they design for the dummies.<br>And it's just like, no, I<br>want tech to be this place<br>where people feel like they<br>can be creative, and excited,<br>and actually build something.<br>And if you're new, it's okay to be dumb<br>and ask dumb questions.<br>Learn from your dumbness.<br>No one's expecting you to be<br>smart. Pick whatever you want.<br>Actually do something and have fun<br>and build your crazy ideas.<br>Oh, you're going to reinvent<br>the wheel, reinvent the wheel,<br>understand what you're<br>doing, learn it really good,<br>and interact and stuff.<br>And it was just so different<br>than what was out there.<br>And the name...<br>Arnold Schwarzenegger talks<br>about this thing where,<br>when he first started acting,<br>his name was the thing that people hated.<br>As he once said, you have a strange voice,<br>you have a strange body, and your name,<br>your name's unpronounceable.<br>No one's going to Schneitzinfinitzel,<br>no one's going to remember that.<br>- Yeah.<br>- And he said,<br>but now the name is the strong part.<br>And for me, I've always felt akin to that,<br>though my name's not nearly as cool,<br>nor am I as popular as Arnold,<br>nor am I as tough or<br>good-looking or successful.<br>But nonetheless, it's just the name<br>represented this counterculture<br>movement within myself,<br>in which I just hated what was there<br>and I wanted to defeat it.<br>And so this has been the thing.<br>And now people remember me so well<br>because of how weird my name is.<br>And so it's just like for whatever reason,<br>it became its own thing.<br>And so that's the...<br>Now I would never change it,<br>and back then I would never change it<br>because it was my rage<br>against the machine moment,<br>if you will.<br>- Yeah, I love that as a symbol of rage<br>against the machine<br>and the rage being fun.<br>- Yeah.<br>I just want people to be<br>creative and have fun again.<br>It's okay.<br>- What about the mustache?<br>It's an epic mustache.<br>It's an epic stash. It<br>has a life of its own.<br>Is there an origin story<br>or did you guys discover<br>each other at some point?<br>Or did it emerge from the darkness<br>of the struggle that is your life,<br>or where does it come from?<br>- Well, the original mustache is<br>that it was no-shave November<br>back before it became Movember.<br>It was no-shave November back in the day.<br>And after no-shave November,<br>you had all this hair.<br>And so what's the natural<br>thing you got to do?<br>You got to sport a<br>mustache for a day. Right?<br>So whenever I'd forget to<br>not shave for a long time,<br>and then I'd let it start<br>growing out really big,<br>I just go, oh, this is kind of funny.<br>I'll have a mustache.<br>So one day when I was streaming,<br>it's just one of those<br>times I just didn't shave,<br>and then I started just letting it go,<br>and then I got kind of a beard,<br>and then I just had a mustache.<br>When I did it, people were just like,<br>yeah, it's mustache time. And<br>I was just like, heck yeah,<br>it feels like a lifestyle decision.<br>This is the fun times.<br>And so all of a sudden<br>it was just exciting<br>to have a mustache.<br>And I shaved it off and<br>I was like, oh, okay.<br>But then part of me is like<br>there's this weird energy<br>that comes from just having a mustache.<br>So I was like, I'm going back.<br>Told my wife, forgive her.<br>She was very not as<br>thrilled about my decisions<br>to have a mustache long-term,<br>but I just decided to have it back<br>and it was the right thing.<br>It's always been the energy<br>that I had was the mustache.<br>It was always been there.<br>It just never was visible<br>until later on it feels like.<br>- Yeah, we're chatting offline<br>how one of the components<br>of a successful relationship<br>is sacrifice and your wife was<br>willing to take the sacrifice<br>of allowing you to have a mustache.<br>- I clearly was not willing to<br>sacrifice not having one. So.<br>- You do this incredible thing<br>where you tried a bunch of<br>different programming languages<br>when you stream.<br>You have like...<br>You go all out on certain<br>programming languages<br>like Rust and then go and<br>then try to pick a new one,<br>but also are experimenting constantly.<br>So maybe one question I<br>could ask is about learning.<br>What's your approach to learning<br>a new programming language,<br>and maybe what's your advice<br>on learning a new programming language<br>when you begin that journey?<br>- So I've kind of done a<br>bunch of different ways<br>to go through this learning process,<br>and I've tried a lot of different ones.<br>Something that is obviously successful<br>is just start building something.<br>Just put your hands on the keyboard,<br>especially if you already<br>know how to program.<br>You're like, okay, I'm now using Zig.<br>How do I do a main function<br>so I can just run the program?<br>Okay, now I know how to build.<br>Okay, how do I do an if<br>statement? What does it look like?<br>Okay, how do I declare my own functions?<br>How do I do modules, right?<br>You just kind of Google your<br>way through it, if you will,<br>to get to the end product<br>and build something.<br>It's a great way to do things<br>because I find that repetition,<br>rote learning is obviously<br>the best way to do this.<br>You have to kind of go over it a bunch<br>and you can definitely get out<br>and build a lot of stuff with that.<br>I like that initial kind<br>of get used to things.<br>But on top of it, I find<br>that, by doing that,<br>you also fall into traps.<br>You kind of Google and<br>you try to solve a problem<br>in the language based on all<br>of your previous experience.<br>And so you don't have what<br>makes that language special.<br>You have what all the other<br>languages make special.<br>And so you end up kind of<br>not really being able to<br>use it very effectively,<br>but you can certainly kind of learn it<br>and get kind of good at it.<br>And so the second approach<br>I've been doing lately,<br>and this has been inspired<br>by the creator of Ghosty,<br>Mitchell Hashimoto, is to just start<br>by reading the language<br>reference, the whole thing.<br>And so lately I've been<br>just kind of going through<br>and just reading the entire<br>manual for these languages.<br>Like Zig, I'm almost done with that one.<br>It's like 8 to 10 hours of<br>just sitting down reading,<br>and I'll whip out my<br>computer and kind of practice<br>a couple of the things<br>from the actual docs,<br>and that way I can learn all the things.<br>So then when I start building<br>again, I'll remember,<br>okay, I know there's a thing over here,<br>let me go reread about it<br>because now I have it<br>indexed in my brain somewhere<br>that will remember.<br>And so I don't think there's<br>a right or wrong way.<br>I mean at the end of the<br>day, the right way is always<br>that you have to build<br>something eventually.<br>You cannot just read about it.<br>You have to put your<br>hands on the keyboard,<br>you have to build something out.<br>And then once you do that,<br>that's where you really discover<br>what makes it painful<br>or what makes it great.<br>And if you don't have the breadth<br>of what the language offers,<br>you just may make it painful<br>by simply being bad at it.<br>- Where exactly are you reading this-<br>- [ThePrimeagen] Language reference.<br>- The language reference.<br>- [ThePrimeagen] So it just goes through<br>every feature top to bottom.<br>- That's a lot. Yeah.<br>- [ThePrimeagen] Every way it's described,<br>all the different things.<br>I think Zig's is, it's a decent size,<br>but it's not just simply read the words.<br>You want to internalize<br>each concept as well.<br>So it takes a long time.<br>So I'm a slow reader.<br>- So you're building, in AI<br>terms, like a background model.<br>'Cause I don't think you<br>can just start building<br>once you're done reading<br>because you probably forgot<br>how to do a for loop.<br>You kind of forget the specifics.<br>You just are building<br>up the design choices,<br>the set of features available,<br>what are the strengths and weaknesses,<br>all that kind of stuff.<br>And then you start building.<br>That's really interesting.<br>Probably not the thing you would recommend<br>to a junior developer,<br>somebody who's just starting out at first.<br>- If you don't know<br>what an if statement is,<br>that's not a good way to learn.<br>To me, the best way to learn then is<br>really hands on the keyboard<br>and building extremely simple things,<br>and slowly growing in complexity.<br>Because understanding<br>what a class and methods<br>and instances versus the blueprint,<br>which is the class versus functions<br>versus modules versus all that stuff.<br>That just takes time to learn.<br>And so that's a completely<br>different style of learning.<br>- I wonder because for<br>me, learning right now,<br>AI is a huge help, but I already<br>have a lot of experience.<br>I wonder, if you're starting from scratch,<br>whether that's a good idea.<br>But I still think it's<br>probably a really good idea,<br>but basically generate some code using AI<br>and figure out what it's doing<br>by playing with different parts.<br>Maybe can you comment on that aspect,<br>like the use of AI as part<br>of the learning process?<br>- This is where I have both<br>the hopeful and the doomer take<br>at the exact same time.<br>- Yeah.<br>- And it's the same thing<br>with Google or Stack Overflow,<br>it's all the same kind of take,<br>which is it's just making<br>things more democratized<br>in some sense.<br>I get to ask questions<br>in probably the most personal possible way<br>with my own voice, in my own words,<br>and it's able to produce out answers<br>and hopefully help guide me.<br>Now, regardless of just say the errors<br>and the incorrectness of<br>it, ultimately just using it<br>as a learning tool and<br>being able to just formulate<br>and read answers in your own voice,<br>I think is super powerful.<br>And I think it's super amazing.<br>But the part that I think<br>is gonna be really difficult<br>is that we don't value<br>remembering things anymore as a society.<br>Since the internet came about,<br>I can just look that up.<br>I can just look that up.<br>You don't need to memorize<br>your times tables. Right?<br>You can just use a calculator.<br>You can just do all that.<br>I remember I just was<br>sitting on the airplane<br>and I watched someone do the<br>world's most simple addition<br>and subtraction like 10<br>times on their phone.<br>And why are you not just...<br>You should already know,<br>you should be able to do these things.<br>And I realized that we kind<br>of offload our brains, right?<br>Oh, I don't need to know these things<br>because I can look them up.<br>And that's not a bad answer in some sense.<br>I can understand that.<br>I don't need them to<br>remember every last thing,<br>but then it also makes me realize<br>that you kind of develop<br>this learned helplessness,<br>that a new error comes up.<br>I'll just ask the AI.<br>AI says, oh, okay, I got to<br>fix this line. I fix the line.<br>You didn't actually learn anything.<br>You kind of just used it as a quick means<br>to get something out and move on.<br>And so you sacrifice knowledge for speed,<br>which is a great thing in some...<br>We have to make those trade-offs<br>all the time in engineering.<br>Sometimes you have to move fast<br>at the sacrifice of knowledge,<br>and I'm totally on board for that,<br>but I worry that what we'll create<br>is an entire generation<br>of incompetent programmers<br>who can do some amount of things well,<br>but anything that is unique, bespoke,<br>or requires some extra<br>like little elbow grease,<br>might become very difficult.<br>It might cause a whole chasm<br>where juniors remain juniors forever.<br>And I don't want to see that.<br>I want to see people grow.<br>I want to see people<br>actually be able to take this<br>as a craftsmanship thing.<br>And so that's both my hope and my worry<br>is that AI think can do both really.<br>If you could ask whatever<br>question you want<br>and you don't have to rely on, say, a book<br>to give you that exact answer.<br>And if the book just said it wrong<br>and you can't understand<br>it, it's just like,<br>sorry, you don't get<br>to learn what this is.<br>Like recursion for me, I<br>spent way too much time<br>until someone gave me the right problem<br>to understand recursion.<br>You could imagine AI could<br>have solved that for me<br>way faster because it could<br>have gave me the right problem<br>and walked me through much better.<br>But what happened if I just<br>always have recursion solved<br>by them and not actually learn it myself?<br>- So if I ask AI to generate<br>code to do a certain thing,<br>actually a large percentage of time,<br>most of what AI generates is<br>going to be correct for me,<br>but some percent of time<br>it's not, fundamentally not.<br>And for me to recognize the<br>difference between those two,<br>I think it takes a lot of experience.<br>I think to learn that skill of knowing,<br>no, no, no, a different<br>new out of the box solution<br>is needed here than the<br>one you're providing.<br>You're missing the point.<br>That's a skill, and how do you learn that?<br>You learn that by building from scratch.<br>So both are probably really necessary.<br>But I think as a first step<br>of learning how to program,<br>it's pretty nice to generate a function,<br>to generate for loops and<br>all that kind of stuff,<br>and then just fuck with the<br>different lines and modify them<br>to try to adjust the<br>behavior of the program,<br>and from the way the behavior<br>of the program adjusts<br>or bugs are created, you<br>learn about the syntax<br>of the language, the<br>behavior of the language,<br>all that kind of stuff.<br>So I think it's a super<br>powerful way to learn.<br>But yeah, you need to<br>also write from scratch.<br>- At some point you have to<br>take off the training wheels,<br>because I think what<br>you're really spotting<br>is the difference between<br>reading and writing code.<br>I can read a lot of languages very well.<br>I can see what's happening.<br>I can understand it,<br>but I would not be very<br>good at writing it.<br>I can understand a lot of things about C++<br>and I can read it, but I'm just not that<br>because I just don't, I<br>haven't done it in so long.<br>I can't remember where all<br>the semicolons, and colons<br>and you do public and private,<br>and how should you do naming conventions?<br>All those things kind of add all together,<br>and then you're just like, oh,<br>I'm really bad at writing it,<br>though I can read it.<br>And so there's a skill gap chasm<br>that exists between those two.<br>- All right. Well, let me talk<br>about the various languages.<br>The cheesy, ridiculous question<br>of what's the best programming language?<br>Let's say, what's the<br>best programming language<br>that everybody should learn?<br>Maybe let's go with the top five.<br>I'm gonna pull up the Stack<br>Overflow developer survey,<br>because I think we have....<br>- Yeah, those are...<br>- You don't like them?<br>- You gotta remember, because<br>I mean, you're a data guy.<br>You know about biases and data.<br>What does Stack Overflow<br>naturally bias towards?<br>- Well, they have the different slices<br>of professional developers,<br>junior developers,<br>they have different slices.<br>Okay, what is the bias?<br>- I hear you, but who fills<br>out a Stack Overflow survey?<br>Someone who participates<br>on Stack Overflow.<br>Who's participating on Stack Overflow?<br>Largely very, very new people,<br>and that one guy that<br>loves answering questions.<br>And so I'm not sure if Stack Overflow<br>is a great place to get data.<br>It could be a very biased set of data.<br>- Is it really only new people?<br>- I mean that's who's<br>using Stack Overflow.<br>- All right. Most popular technologies.<br>On this...<br>- JavaScript, HTML, Python, SQL.<br>- SQL is the more general kind of...<br>I'm sure they're not doing the individual<br>sort of flavors of SQL.<br>By the way, pronounce SQL versus SQL?<br>- It's SQL.<br>- SQL? You SQL?<br>- SQL, I think is the correct way.<br>- SQL.<br>- I did SQL because I<br>didn't know the audience.<br>I don't know if they can handle the truth,<br>which is its SQL<br>- The squeal of joy, squeal...<br>- SQLite, MySQL, PostgreSQL.<br>- By the way, I had a lot of joy<br>from earlier saying<br>pig-fucker, for some reason.<br>- It's such a dig...<br>I mean, can you believe<br>- I had so fun to say-<br>- that was a real conversation that I had?<br>- Yeah, that was.<br>TypeScript, BAS,<br>Java, C Sharp, C++, C-PHP.<br>- It largely kind of aligns<br>with the world you'd expect,<br>but Assembly, why is Assembly<br>more popular than Ruby?<br>Who's writing just Assembly by...<br>No one writes Assembly by hand<br>other than maybe that one<br>guy that's developing TLS 1.3<br>and hand rolling a cryptography algorithm<br>to be the fastest possible algorithm.<br>- Yeah. Assembly is a weird one.<br>Maybe people write it maybe in school,<br>but even in school now<br>for a operating systems<br>course or something like that,<br>or system engineering.<br>I don't know if they<br>write Assembly anymore.<br>I don't think so anyway.<br>- And Swift and Ruby being<br>less popular than Assembly<br>seems ridiculous.<br>But nonetheless, okay, so<br>you get my ideas behind that,<br>but as far as top five languages go,<br>that's probably too broad<br>because you could just name so many.<br>I think you should<br>probably archetype it by<br>what do you want to do?<br>So if you want to get<br>into game development,<br>perhaps C Sharp, C++<br>could be good choices.<br>Or JavaScript and doing Canvas games,<br>I could see that also working.<br>But you're limited by<br>doing JavaScript obviously,<br>because you can't do as much<br>because the language is just<br>not fast enough to do as much.<br>So it's like a good thing to remember.<br>If you're gonna be doing backend stuff,<br>if you want a job, if<br>you're looking for a job,<br>maybe C Sharp slash Java, or JavaScript,<br>or Go would be great choices.<br>If you're looking to do embedded,<br>you probably want to do C, C++,<br>like that would probably be a good choice.<br>And so you kinda have to...<br>I think you have to first determine<br>what do you really want to get out.<br>- If you're just curious<br>about programming,<br>which I talked to a lot of people who are,<br>yeah, you can consider jobs,<br>but basically their question is,<br>okay, what's the first<br>language I should learn,<br>and maybe what are the several<br>languages I should explore?<br>- Can I say something<br>that's gonna make a lot of people angry?<br>- Yeah, sure.<br>- I think the first<br>language people should learn<br>if they have no idea about<br>anything is JavaScript.<br>- Yeah. Why would that make people angry?<br>- Oh, because people just, first off,<br>I'm not supposed to say<br>anything nice about JavaScript.<br>- Yeah, usually that's the meme,<br>that you hate JavaScript, right?<br>- Yeah. No, JavaScript's<br>a beautiful language.<br>And it has a lot of things<br>that are very great for it,<br>and one of them is that<br>you can express anything<br>with very little effort.<br>And so someone that's new,<br>I think it's really great<br>to be able to draw a box and move a box.<br>That's great. You get to see it visually.<br>I think that's one thing<br>that's really great<br>about JavaScript is that you can do that.<br>Then you can go, okay, I want<br>to learn about the backend.<br>I want to make a request now.<br>You can write a quick backend in it.<br>Now you're starting to get familiar<br>with programming a little bit.<br>I can save this to a database.<br>I can bring it down.<br>I can put it on a screen and<br>I can animate it all around,<br>and I can even put it on a<br>canvas and render it in 2D or 3D.<br>So it's like there's so much<br>variety of what you can do<br>with JavaScript.<br>It's a great way to get<br>introduced into programming.<br>But then at some point you have to go,<br>okay, I now need to learn<br>more about this whole thing.<br>- I mean, yeah, just like<br>you said, you can make games,<br>you can do front end,<br>backend for web development.<br>- You can even do embedded.<br>They actually have...<br>Like there's Wes Bos is<br>building his Roomba or something<br>and programming it with<br>JavaScript and React,<br>which is just the world's worst language<br>to choose for embed,<br>but you can still do it.<br>- Also, we mentioned sort<br>of in terms of applications,<br>anything that relates to<br>data or machine learning,<br>Python is the sort of the leader there,<br>so that's a great one.<br>- It seems like Python, CUDA stuff and C++<br>would be a dynamite in that,<br>because a lot of these<br>Python libraries are assumed<br>you're just smuggling in C++<br>underneath the hood or C.<br>- Okay, so JavaScript. I'll say Python.<br>- Python's a great one too.<br>You can get quite far with it,<br>but you can't write the front end.<br>What happened if you love the front end?<br>What happened if you really<br>just want to design things<br>and you just didn't know that?<br>- Well, it's okay. So<br>for that, JavaScript.<br>- But Python's a good choice<br>because you can't do the ML stuff<br>in JavaScript nearly as easy.<br>- Do we count HTML and CSS<br>as programming languages?<br>- I think there's some<br>technical definition that it is.<br>If you use this certain<br>amalgamation of CSS plus HTML,<br>it actually has, it can be<br>a Turing complete language.<br>But I mean for practical purposes, no.<br>HTML is not a language.<br>For me, yes, the Turing<br>test is a good one,<br>but for those that are just<br>not wanting to be as academic,<br>if I can't write a function<br>and an if statement,<br>I don't feel like that's...<br>If I can't loop, if, and function,<br>I don't feel like that's a good,<br>that's a programming language.<br>- Although modern HTML<br>has a lot of features.<br>- It's crazy how much it has,<br>but it's more of a specification<br>than anything else.<br>I specify it to be a pop-up.<br>I specify it to have this<br>kind of accessibility,<br>this kind of look.<br>Under these conditions look like this,<br>transform like this, move down here.<br>- I don't know.<br>I kind of like these popular<br>programming languages<br>in this list.<br>I like JavaScript.<br>- You like Bash?<br>- Oh, yeah. I like Bash a lot. Yeah. Why?<br>- Okay, Bash is kind of one<br>of those ones where it's like,<br>do you really like it?<br>I like it up until I need an array.<br>- Oh, as a programming language, just no,<br>but I like the command line.<br>- Okay.<br>- Do you like Bash? No, nobody likes Bash.<br>(Lex and ThePrimeagen laugh)<br>Do you mean-<br>- Someone is so offended right now.<br>- It means do you use it a lot? Yes.<br>I mean, it's good to learn, right?<br>It is good to-<br>- It is.<br>- Be comfortable in the command line<br>because it's a bit of a superpower.<br>It's like, I think I<br>follow on Twitter, FFmpeg.<br>- Great account.<br>(Lex chuckles)<br>- There's certain Twitter<br>accounts that are just legit.<br>And I think FFmpeg,<br>they have all these sort of parameters<br>that you can add on the command line,<br>that it's like one of<br>those cryptic languages<br>that only very few wizards understand.<br>But once you begin to slowly understand,<br>and I'm only at the very<br>sort of beginning stage<br>of that journey to mastery,<br>the powers you gain at every step,<br>it grows exponentially, it feels like.<br>I mean, FFmpeg is just this incredible,<br>what would you call a library system?<br>There's just the people behind them<br>must be just brilliant masterminds<br>because they have to work<br>with all these codecs,<br>with all these containers,<br>with all the mysteries of<br>the media codec universe<br>they're masters of.<br>And they understand compression,<br>which is another super fascinating<br>technical set of problems<br>that, I don't know, just<br>FFmpeg just fills me with joy<br>that it exists.<br>But you need kind of Bash type comfort,<br>command line comfort, to work with it<br>to really unlock its power, yeah.<br>- I think FFmpeg is probably<br>one of the most consequential<br>libraries of our day,<br>and the Twitter account is so unhinged.<br>It is the most amazing thing to see<br>because I think FFmpeg does<br>not get the love it deserves.<br>Every single application, OBS,<br>probably FFmpeg underneath the hood.<br>Everything, FFmpeg underneath the hood,<br>and yet they do not get<br>the love they deserve.<br>I just love it. I just<br>think they're the best.<br>- Yeah, I would say JavaScript, HTML, CSS,<br>Python, SQL, I mean that is SQL,<br>SQL is a programming language.<br>It's an incredibly sophisticated<br>programming language. Yeah?<br>- SQL is interesting.<br>I believe you can classify<br>it as a programming language.<br>It does have, if.<br>You have case statements<br>and it's pretty crazy<br>what you can do with it.<br>- You could do functions,<br>you can do all that stuff.<br>You shouldn't.<br>- Yeah, for stored procedures,<br>that's how you make your life hell.<br>I will say that all the<br>top languages right there,<br>none of them are strict<br>static typed languages.<br>And so even TypeScript,<br>I don't like this any.<br>And so for people that are learning,<br>doing something that's much<br>more strict would be great.<br>Something like Go, Rust,<br>I mean even C Sharp, C++.<br>Anything that kind of changes<br>your perspective of types<br>I think is really helpful<br>to kind of go through.<br>They're not getting nearly as much love<br>on this most popular language list,<br>but I think they're very fantastic.<br>- All right, well, if I<br>put a gun to your head,<br>top five languages, let's list them out.<br>There's a bright-eyed<br>20-year-old asking you,<br>what are the top languages,<br>five languages to learn?<br>- If I were to pick five languages<br>that I think people<br>should learn, or at least,<br>let's restate it this way,<br>I'm gonna say a couple languages<br>and you should at least<br>explore some of them.<br>I think you should<br>explore a loosey language,<br>so Python slash JavaScript,<br>where there is truly only one<br>type, which is a boxed value,<br>which is a multivariate, different types<br>underneath the hood.<br>- What did you call it? A loosey language?<br>- A loosey-goosey language.<br>It's a dynamic language,<br>and so I think it's really good<br>to explore one of those too.<br>So I'd put Python or<br>JavaScript right there.<br>Even Lua, throw Lua in the bunch.<br>I think you should<br>explore a strict language,<br>so I'd do something like Rust, Go.<br>I think those are both<br>really, really great.<br>- C++?<br>- You can do C++.<br>You can do some type erasure in C++.<br>You can do it with Go as<br>well, but for the most part<br>it's a great language to do that in.<br>It can get a little wild.<br>New C++ seems great.<br>Everyone keeps telling<br>me new C++ is great.<br>It has every feature you've ever wanted<br>and all the features you don't want.<br>- Yeah, exactly.<br>I mean there's smart pointers,<br>there's dumb pointers,<br>there's all kinds of pointers.<br>There's no memory leaks.<br>That's not an issue.<br>- Foot guns, face guns, soft beds.<br>There's everything in there.<br>- Unless you like memory leaks,<br>it has that too if you want<br>that kind of thing. It's great.<br>- Okay. How about this one?<br>Languages that I actually<br>want to really learn,<br>that at least sit in my curiosity bank.<br>There's three languages,<br>which is going to be Swift, Elixir, OCaml,<br>and then I'm going to throw Odin in there,<br>just because Ginger Bill is great.<br>But Elixir and OCaml,<br>I don't have a strong functional language<br>underneath my belt.<br>That's something that<br>I just genuinely lack.<br>- Yeah, I've heard incredible<br>things about Elixir,<br>about Odin, about OCaml.<br>Obviously, I'm a person, as<br>you know, who loves Lisp.<br>- [ThePrimeagen] I have never done Lisp.<br>Lisp could be in that<br>category too, just, or Closure<br>I think at this point is what<br>everyone tells you to use.<br>- So in the case of Lisp,<br>I don't want to speak<br>negatively about Lisp,<br>but it's important about modern community,<br>what the community looks like.<br>It seems like there's<br>an excited, maybe small,<br>but an excited community<br>around Elixir, Odin, and OCaml,<br>so that helps.<br>Because then you can post shit<br>on Twitter that you're like,<br>I accomplished this.<br>People get excited and it's<br>nice. It's a good feeling.<br>- You can post something on Twitter<br>and you'll get a thousand likes<br>if you do something cool on Elixir,<br>which is that's a pretty<br>big amount of people<br>to like a post for such a niche topic.<br>Programming's already<br>a pretty small topic.<br>Then you get into functional program.<br>That's a small topic in a small topic.<br>- Yeah. I don't get that much.<br>If I post something about Emacs,<br>I'll get crickets if I<br>post something about...<br>If I proudly use Neovim,<br>there'd be a lot of people like, good job.<br>- Because it is the best editor.<br>- Yeah, maybe it's just hype.<br>- Come back to the Civil War, Lex.<br>- Yeah, sometimes you have to sacrifice<br>and go from the superior<br>editor that is Emacs<br>and choose Neovim just to be popular.<br>You sacrifice integrity and values<br>and quality for just popularity.<br>It's a choice you made.<br>- Absolutely.<br>I love how you put it.<br>- Okay. Anyway, what<br>were we talking about?<br>I like how you're doing this<br>in bunches. That's great.<br>- Right now, my kind of side honeys<br>that I'm exploring-<br>- Side honey?<br>- Yeah, side honeys.<br>They're not my mainstay.<br>Right now Go's kind of my favorite one<br>to build a web app in.<br>If I'm gonna build some sort of backend<br>with a lot of complicated<br>logic, Go's just so convenient.<br>But I get really<br>frustrated with its ability<br>to express everything that I need.<br>If you have a list, a heterogeneous list,<br>a list that contains two types,<br>Go's just really not that fun to use.<br>And I could see, so the ones<br>I'm exploring is Jai or J,<br>or the language as Jonathan<br>Blow says, and Zig.<br>And both of them have<br>a lot of power to them.<br>They're both very interesting.<br>They definitely have foot guns in them.<br>They're definitely more, they<br>don't take it easy on you.<br>Zig seems like it's a<br>really amazing language,<br>and so does Jai.<br>They're both very cool.<br>- Yeah. Actually, I saw Dave<br>Plummer's testing of close<br>to 100 languages for speed,<br>and Zig came out on top.<br>- Yeah. That was a mistake.<br>I mean, when I say mistake,<br>nothing against Dave Plummer.<br>He's an extremely talented engineer.<br>It's just that Zig, C, C++,<br>all those languages<br>that were being tested,<br>they're all LLVM backends, right?<br>That's the one that<br>actually turns the thing<br>into the executable part.<br>And if there's a variation in speed,<br>it just means in one language<br>you didn't quite express<br>what you are supposed to correctly.<br>There's the language ball test<br>that's been bouncing around on Twitter.<br>Zig was like sixth or seventh below<br>I forget what language it is.<br>I played around with the example,<br>added the word "no alias" to the argument,<br>which means that the piece of memory<br>that's coming into this function,<br>there's no global pointers,<br>there's nothing to it,<br>and so the compiler can make<br>these really cool optimizations.<br>And I made it faster than the C version.<br>So it just means that it's<br>just not correctly specified<br>is all that means.<br>- Yeah, but it's still exciting.<br>To me, the competition between Zig, Rust,<br>and C++ is really interesting.<br>Part of it's for speed.<br>Part of it's how easy it is<br>to write performant code.<br>- I'll say something that's...<br>The reason why I think<br>Zig is so interesting<br>comparatively to say C or Rust.<br>C is the ultimate language.<br>It can do anything, you<br>have pre-process or macros.<br>You can do quite a bit with it,<br>but it's also really difficult.<br>And it's also really simple<br>and you can learn it.<br>So it's kind of its own unique beast.<br>And when you get really good<br>at C, C is a magical language<br>and people are really great at it<br>and people speak very highly of it.<br>Rust is like this ultra safe language.<br>What you can do in C, you just<br>can't even express in Rust.<br>Rust is gonna be the safe<br>man that holds you at night,<br>keeping you warm, right?<br>It's gonna be just the greatest.<br>But somewhere in the middle<br>lies Zig. Zig has optionals.<br>If you're not familiar with optionals,<br>that just simply means there's<br>a value here or there's not,<br>but you first have to check<br>that before you can use it.<br>So it prevents that whole null pointer<br>dereferencing segfault problem.<br>And that's not available<br>in C, just by default,<br>you have to kind of build that thing in.<br>It is the only option in Rust,<br>but Zig says, "Hey, if you have a pointer,<br>you can't express it as null<br>unless if you market that it can be null."<br>There's ways around it,<br>there's other types of pointers<br>and stuff like that that can do that.<br>But for the most part,<br>Zig will give you safety<br>for the most part.<br>So it's like a little bit<br>of safety, but more like C.<br>So it kind of gives you<br>everything you want in that region<br>where you can express<br>safe code and unsafe code.<br>It's very easy to write. It's very pretty.<br>Or at least the idea<br>behind it is very pretty.<br>The language itself is bland, but.<br>- Wow, there's beauty in everything-<br>- Yeah.<br>- Prime.<br>You've programmed in Rust a lot.<br>What do you love about Rust?<br>What are the strengths?<br>What are the weaknesses?<br>Maybe you can speak<br>about memory management<br>that you already mentioned,<br>the challenge of memory management<br>that several of these languages address,<br>but yeah, what do you love about Rust?<br>- What I love about Rust,<br>I love the ability to free the memory<br>that you're using is<br>directly tied to the stack.<br>So whenever you create something,<br>there's a stack variable<br>or there's some amount of stack memory,<br>whether it's a pointer off to the heap,<br>a pointer and a length.<br>So some amount of memory on the stack<br>and then some memory on the heap<br>because a string is not all on the stack,<br>it's some on the heap, some on the stack.<br>And when that stack<br>variable goes out of scope<br>and gets cleaned up, it also<br>cleans up what's on the heap.<br>So it kind of simplifies<br>this whole idea of,<br>whoops, I forgot to free my memory.<br>It just does it for you.<br>- So it's not a garbage collector,<br>which will do it sometime later.<br>It's not like C where you<br>have to call it yourself,<br>it's somewhere in between.<br>Now, there's a lot of<br>strategies people use,<br>arenas and all that that<br>make that C part much easier.<br>I'm just not even mentioning it,<br>but it just makes it a lot easier.<br>But Rust does that really beautifully<br>and it's just like a<br>really cool idea about it<br>and I really like that.<br>And the second thing that<br>I think Rust does really,<br>is such a good thing is<br>that mutability of something<br>is you have to specify it.<br>So you don't just create a<br>variable and then mutate it.<br>You have to say this<br>is not only a variable,<br>it's a mutable variable.<br>And I think that just<br>makes code really readable<br>and really understandable.<br>Because anything that does not have<br>the word mute next to it,<br>you know for a fact it cannot change.<br>There's some rules around that,<br>but you get the general idea.<br>- Unlike most programming languages,<br>you have to explicitly state<br>that this is going to be changed.<br>- [ThePrimeagen] Yeah.<br>- Yeah. That's really interesting.<br>I mean it's safe, it's trying to be,<br>and the safety might<br>be, create limitations.<br>Let us consult the AI overlords.<br>Rust is a blazing fast<br>memory efficient systems<br>programming language that<br>emphasizes performance,<br>type safety and concurrency.<br>The language enforces memory safety<br>without using a garbage<br>collector, as you said,<br>instead utilizing the unique,<br>quote, "borrow checker"<br>that tracks object<br>lifetimes at compile time.<br>This prevents common programming<br>errors like null point<br>or dereferencing and memory<br>leaks and so on, yeah.<br>So you've also spoken<br>about metaprogramming.<br>Which of these languages do you like<br>for the metaprogramming?<br>I love metaprogramming in<br>C++, but it's a giant mess.<br>At least when I program<br>C++ 17 standard, I believe,<br>it's just a mess,<br>especially a mess to debug.<br>- Yeah, I would consider myself<br>kind of a metaprogramming newbie.<br>I have only solved some<br>amount of problems with it.<br>That's kind of like what this year is for,<br>is for me to really, I want to see<br>where the ends can go in that.<br>So I don't have a strong<br>opinion on this one.<br>Zig, one thing I really like about Zig<br>is that the metaprogramming<br>is also the language itself.<br>So you don't have to,<br>there's not an alternative.<br>So with Rust there's an alternative.<br>When you create a macro, you<br>have to do the macro syntax.<br>With Zig, it's just, it is the thing,<br>you just program it and<br>you add the word comp time<br>if you want it to be a compile time only.<br>So you can create the<br>list of prime numbers<br>at compile time in Zig,<br>which is kind of an<br>interesting, unique thing.<br>So you have code that<br>executes at compile time<br>and then you can take advantage<br>of the result of it at runtime.<br>So neat, right?<br>That's how I'd look at it.<br>But again, I haven't used it to the point<br>where I feel like I can super<br>authoritatively talk about it.<br>- You have been undecided,<br>what language are you going for this year?<br>- I'm gonna keep Go as my mainstay,<br>my two side honeys, Jai and Zig.<br>I'm going to explore and try<br>to build out a service in them<br>that can do a bunch of<br>talking to, say, ChatGPT<br>and ElevenLabs and send<br>stuff down to client<br>and work with web sockets.<br>And I want to make sure<br>that, I just want to see<br>how do they perform in this realm.<br>And I may be using the<br>language incorrectly,<br>like Jai, it's not really been<br>designed for the web world.<br>I just got done writing the<br>ability to read Twitch Chat<br>and it required me to do Berkeley sockets.<br>So if you're unfamiliar<br>with Berkeley sockets,<br>it's like the old way of doing<br>it, it's how you do it in C.<br>So you have to kind of go<br>through the whole nine yards<br>of creating your own connection.<br>I had to create my own connection,<br>I have to read from the socket,<br>then I have to parse<br>out all the IRC, right?<br>You have to kind of build it from scratch.<br>There's not like a new TCP<br>connection to this server.<br>You have to be like,<br>"I'm creating a socket."<br>You're gonna be of the IPv4 family<br>and TCP and you're gonna do, you know,<br>I'm gonna now have to take your address<br>and go look up your address<br>with DNS, get that address back<br>and then connect to a TCP.<br>So it's a lot more manual still.<br>It's a lot more raw in<br>that area, but it's fun.<br>- What are some epic projects<br>you've built on stream<br>that jump to memory?<br>- My most favorite...<br>Sorry for interrupting you.<br>So I'm really jazzed right now.<br>- Let's go.<br>- Okay. So jazzed.<br>- Jazz hands.<br>- My most favorite project<br>was the one I did last year.<br>Someone built a Doom ASCII port.<br>So you could play Doom with ASCII.<br>So that means you could<br>play it in your terminal.<br>Very, very fun, very excite.<br>So I made a Go program that<br>could spawn out the Doom ASCII,<br>then I took that Doom ASCII<br>and I sent it to the browser<br>so that people could play<br>Doom ASCII in the browser,<br>but then I made it so that Twitch chat<br>could control that instance of Doom ASCII<br>by piping in Twitch chat,<br>taking the average of the<br>movements over so much time<br>and replaying it as if<br>it was a controller.<br>And I had Twitch chat beat<br>level one by spamming it.<br>But the fun part was<br>I used a bunch of fun encoding techniques.<br>I used quad trees to be<br>able to take smaller amounts<br>to use run length in coding.<br>Tried to create my own<br>compression algorithm<br>because if you're sending<br>out a bunch of ASCII stuff,<br>it's still pretty expensive<br>because you have to represent<br>color, color's not cheap.<br>On top of it you have to<br>represent what does it look like?<br>What does the ASCII look like?<br>Well, I realized there's all<br>these fun techniques you can do<br>for compression like the shape<br>of the ASCII you send down<br>in a lot of these engines are<br>actually just proportional<br>to the lumosity of that pixel.<br>So you'd use an eight to represent<br>or a pound sign to represent white,<br>but black, you're gonna<br>want to do a period<br>or a comma or a bar, something smaller.<br>So it's like I then developed all these<br>different compression algorithms<br>that turn a bunch of data,<br>which would take, I forget<br>how much it would take.<br>It'd take gigabytes upon gigabytes<br>to be able to send out<br>to thousands of people<br>to all see the same<br>image at the same time,<br>to all be able to interact<br>with Doom at the same time.<br>I turned it from gigabytes into kilobytes<br>by just trying to figure out<br>how to make it as small as<br>possible and send it all out.<br>It was super fun.<br>Absolutely had a great time.<br>- So you're actually sending<br>it to all the people in chat.<br>So where's that pipeline,<br>how chat is able to<br>control the Doom thing?<br>- Twitch chat.<br>Yeah, so they would<br>go, people would spam W<br>and if you said W, it would<br>hold down W for 150 milliseconds<br>if the majority of people<br>during that time period said W.<br>- Nice. Okay.<br>And how are they getting the input<br>of where you are on screen?<br>- So originally I was gonna<br>send that through Twitch,<br>but Twitch is like five seconds behind,<br>so that's why I piped it out to a website<br>- Ahhh.<br>- so everybody could see<br>from my computer to the website<br>and typical lag was right<br>around 70 milliseconds.<br>So it's like they could<br>mostly see what was happening<br>in that short period of time.<br>It was pretty exciting.<br>So we had 1,000 people,<br>or I had somewhere between<br>1,000 to 1,400 people<br>smashing Ws and pressing<br>F to fire and turning<br>and we killed some zombies.<br>We blew up the barrel at<br>the very end of level one<br>to kill the Imp.<br>- How are you getting the<br>Ws from the Twitch chat?<br>Is there an API?<br>- I was using IRC, so<br>just a little TCP socket<br>and then you just parse out IRC.<br>- Okay. And there's very little lag there.<br>Okay.<br>- Yeah, I think it's a couple<br>hundred milliseconds though.<br>It's enough that it actually<br>made it a little bit difficult<br>because people would often overturn<br>and then go forward and miss the door<br>and then they had to go back and...<br>- That's awesome.<br>- It was awesome.<br>So that was my favorite I<br>think project of all time<br>just because I never got<br>to do a lot of encoding.<br>Encoding's kind of like,<br>what do you normally do?<br>Okay, I need to send something down.<br>I don't know, gzip it,<br>server will just do it.<br>Server just does the right thing.<br>I don't need to think about it.<br>So instead it's like I think about it,<br>I'm gonna send the right thing.<br>- Yeah, you have to think<br>about the compression. Yeah.<br>And there you go.<br>That's some more love towards FFmpeg<br>because they have to<br>think about that a lot.<br>- Ultimately inspired by<br>FFmpeg and their awesomeness.<br>- So can you speak to just<br>the chat community in general?<br>A big part of what you do<br>in terms of streaming is the humans<br>that are communicating with you live.<br>Can you talk to the<br>different chat communities?<br>First of all, which is<br>the best chat community,<br>YouTube, Twitch, or X?<br>- This is where I feel bad for YouTube,<br>because I do think it's<br>technically the worst,<br>but it's not YouTube's fault.<br>And let me kind of explain why.<br>- And then I will<br>explain why you're wrong.<br>But go ahead. YouTube is great.<br>- I know you love YouTube<br>but let explain why,<br>is that when you go on Twitch,<br>you go to anyone's channel,<br>they have this cultural<br>human centipede thing<br>that's happening where<br>as the memes flow in,<br>all of Twitch reacts and<br>morphs to all those memes.<br>So every channel you go<br>to has this same culture.<br>There's a lot of similar<br>emotes and everything,<br>so it's very tight-knit.<br>So when I stream, I get all the same jokes<br>that you would pretty much see if you saw,<br>I don't know, Sodapoppin<br>or some big streamer,<br>Asmongold, whoever,<br>Portahteh software streaming.<br>All the same memes would all flow<br>through the exact same kind of pipe.<br>And so it's a very<br>holistic kind of community.<br>So every time you're making jokes,<br>you're making jokes that are in the ether.<br>Twitter kind of has that too.<br>Tech Twitter kind of has a set of jokes<br>and so you can kind of see it.<br>The problem with Twitter chat is<br>that there's just nobody there right now.<br>Typically just to put it into perspective,<br>I have somewhere between,<br>somewhere between like 1,500<br>to 3,000 people on Twitch,<br>somewhere between 800 to 2,000 on YouTube,<br>and like 50 people on Twitter.<br>So the difference is massive.<br>But Twitter has that same<br>thing that's developing<br>where there's memes that are<br>constantly flowing through it.<br>And so they're very highly connected.<br>YouTube just doesn't seem to have that.<br>They're just a bunch of people<br>and people go to YouTube<br>for various reasons.<br>I'm going to YouTube to learn.<br>So they come in and they want to learn.<br>So they're not on the meme train,<br>they're not in this<br>cultural zeitgeist train.<br>They're just like, "But why<br>would you use this if statement<br>when a switch statement in<br>this one particular case?"<br>And you're just like, well, that's not<br>what I'm trying to do here.<br>- Yeah, you want to captain the meme train<br>or you want to ride on the meme train.<br>- Yeah, or you just want to be able<br>to create a culture on your chat<br>because your chat's<br>gonna be some variation<br>of that kind of zeitgeist<br>that's flowing through Twitch.<br>And it kind of is very<br>contiguous between X and Twitch.<br>It just feels really out<br>of sync with YouTube.<br>And then YouTube<br>particularly does a bad job.<br>And some people would argue a<br>good job because you can swim.<br>Swim being, you can actually change<br>what timestamp you're at.<br>So all of a sudden you'll be like,<br>oh yeah, something about<br>driving to soccer in my minivan.<br>And then 20 minutes later<br>you'll be talking about Zig<br>and then someone's like,<br>"I personally use whatever<br>to drive to soccer."<br>And you're like, "What<br>are we talking about?"<br>So YouTube is a very<br>disjointed chat as well<br>because it depends on where<br>they're at within the video.<br>Swim comes from Netflix,<br>by the way, call it swim.<br>- The term?<br>- Yeah, people said swim.<br>- Oh, so you're, okay.<br>- Swimming through the...<br>- Yeah. So you're not<br>just making up the term.<br>Thank you. Wow.<br>- Yeah, but it's probably made up<br>and probably only 10<br>people said it at Netflix,<br>so no one's gonna know it<br>and they're gonna be like,<br>"Yeah, right. That doesn't<br>happen on Netflix."<br>- So going back to projects,<br>what projects on stream or in general?<br>- No, you need to answer why<br>YouTube chat's the best chat.<br>- Well, you kind of convinced me.<br>Okay, why YouTube is the best chat.<br>Well, I think I'm just a hater.<br>That's basically what it boils down to<br>and I'm just talking shit.<br>- Love it.<br>- And I'm probably just<br>from the outside shooting in<br>because Twitch is such<br>a fun culture of memes.<br>And so it's just fun to<br>shoot from the outside<br>to egg the house of Twitch.<br>And then I just sit back on my lawn chair<br>with the small YouTube<br>community just talking shit.<br>No, you're absolutely right.<br>There's a real sense of<br>community that Twitch can form.<br>But I just like the openness of YouTube.<br>It's just better at opening to the world.<br>It's more accessible,<br>it's easier to share.<br>It's just a more established<br>platform, that's all.<br>- Fully on that team.<br>- For the open world.<br>I can send it to people<br>that don't usually watch<br>video game streaming<br>or that kind of stuff.<br>- Yeah. If you send a<br>Twitch link, they're like,<br>"I don't like video games."<br>And you're like, "Well<br>actually it's not video games."<br>That talk happens every<br>single time you mention Twitch<br>because Twitch does have a perspective<br>about it that YouTube does not.<br>- I was just on Joe Rogan's<br>podcast and I think it came up,<br>he asked something like,<br>"Is Twitch still a thing?"<br>So that just gives you an example.<br>And then Jamie said,<br>"Yeah, yeah, it's<br>definitely still a thing.<br>It's still growing and so on."<br>And so yeah, there's just<br>a big slice of humans<br>that don't participate<br>in the Twitch sphere.<br>Yeah, I just like talking shit so yeah.<br>- That's a beautiful answer.<br>- But it's cool that you<br>sort of make it accessible<br>on all these different platforms.<br>And I have high hopes for X, but yeah,<br>it's feature-wise still has<br>a lot of growing up to do.<br>- And just why do people use X?<br>You typically are going there<br>for a text-based interaction<br>you want to look through.<br>So I also think they just<br>have a user expectation change<br>that needs to happen.<br>And that just takes a while.<br>That's gonna take a little<br>bit before people get to it.<br>I think their idea of audio<br>first is a great first step<br>where people can listen to it<br>and have the phone away maybe.<br>There's a lot of changes<br>that have to happen<br>before X can be successful in that.<br>- I mean, X has this<br>incredible comment section<br>just like Reddit, right?<br>So it's like...<br>- You said incredible. That's not Reddit.<br>Comment section, correct.<br>- Comment, yeah.<br>Incredibly dynamic and<br>vibrant even if it's...<br>Yeah. What is the technological platform?<br>How does the interface and the technology<br>shape the discourse?<br>It's fascinating<br>because X has a different<br>style than Reddit,<br>different style than Facebook,<br>different style than Instagram.<br>It's interesting.<br>And all those common sections<br>are different technologically,<br>like how the sorting is done,<br>how easy it is to sort of<br>build a community around it?<br>Because YouTube is not really a community.<br>Every single video on YouTube<br>has its own mini community.<br>You're all talking on just that one video.<br>But you can't jump across.<br>- There's not like,<br>"Hey Bill, hey George."<br>There's no crosstalk that<br>happens in multiple videos.<br>- Yeah. But the community is awesome.<br>I love community.<br>I love the feeling of community<br>and I guess that's what<br>Twitch really provides.<br>- YouTube also does have it though.<br>They have an aggregate community.<br>There's a lot of fun comments<br>and all that on the videos<br>and a lot of thumbs up and<br>then you see the fun discourse<br>that happens and it's<br>like that's the community,<br>it's just only a certain slice sees it.<br>- I think that's even more so<br>on YouTube for live-streaming.<br>All the same folks show<br>up and they talk shit,<br>they celebrate, the meme train arrives.<br>- Yeah.<br>- Okay. So now, what projects<br>shape you as a programmer?<br>Whether the ones you streamed or offline.<br>- For me, I don't know<br>if there's a one project I can point to,<br>but I can point to a specific<br>spot where I think it happens<br>and where I think you<br>can learn a lot from.<br>Any small program you<br>write will be somewhere<br>between 1,000 to 5,000 lines of code<br>I consider a pretty dang small project.<br>You can correlate this to any feature<br>within a larger system as well.<br>A specific feature on a website<br>could be a thousand lines,<br>a couple thousand lines.<br>- There's a point in which<br>all of your choices add up.<br>And I typically find that<br>right around 5 to 10,000 lines of code.<br>The choices you've made<br>either weigh you down<br>or kind of free you up.<br>And so it's right in that,<br>that I feel like I learned the most is<br>because I love getting to<br>that point in a project<br>or in some small part of the code base<br>because at that point I get to test, A,<br>how good were my initial<br>gut decisions about<br>how I designed the software,<br>but B, now I need to<br>go back and think about<br>how am I going to do testing across this<br>in a more effective way?<br>How can I scale this out<br>to 20,000 lines of code?<br>How can I do all these things<br>with what I've got or do I<br>need to kind of rethink it?<br>And I find that that's really<br>where the best learning<br>happens is that everybody<br>has probably a different<br>number that exists,<br>and as you go to each one of these numbers<br>or how well or holistic you<br>want your project to be,<br>I think that you'll come<br>up with different numbers.<br>And I think that number<br>should just get bigger<br>as you get more experienced.<br>Because there's projects that<br>are a million lines of code,<br>but they're most certainly<br>not holistic, right?<br>Every part of the code base is some age<br>at some capsule of time with<br>some sort of programming style.<br>Some is more functional,<br>more class-based, more,<br>God help your soul if it's<br>pre-processor macros in C++.<br>There's all these different<br>kind of things you'll find<br>throughout time.<br>And so that's why I try to<br>think about it as the feature<br>or the thing you're working on.<br>It's usually about 5,000 lines is<br>where I find that things get kind of,<br>did I make good or bad decisions?<br>And that's where I do all<br>my learning is, right,<br>on that phase. I'm trying<br>to get it to the point<br>where I should be able<br>to shoot from the hip<br>and do 20,000 lines and<br>not be upset about it.<br>- So first of all,<br>just enjoying the thing<br>you create part, yeah.<br>About there you can sit back and see<br>all the parts dancing together.<br>For me, also debugging,<br>you get to see the choices<br>you make materialize<br>as like how easy it is to debug.<br>I'm a big proponent,<br>I think you've mentioned this in the past,<br>I put asserts everywhere.<br>- No. You are the reason why I do that.<br>You were like the first one.<br>Keep on going, sorry.<br>- Really? Okay.<br>So for me, one of the joys,<br>whether it's try catch box,<br>whether it's assert, whether<br>it's with the testing,<br>I get to see the payoff<br>of all the minefield of asserts<br>I've laid out before me in my kingdom<br>by how quickly I can debug<br>a system as it grows larger.<br>And I can first of all discover errors<br>before they become real bugs<br>and also how quickly I<br>can solve those errors.<br>And that brings me joy.<br>For me, a lot of the joys of programming<br>is creating powerful systems<br>that don't break down,<br>that work correctly,<br>that work correctly in<br>majority of the cases.<br>And there, sort of the<br>stress testing the system<br>and getting all of the signals<br>from that system that<br>everything is working correctly<br>is something that fills me with joy<br>and makes sure that the<br>system actually works.<br>So yeah, that, I don't know if<br>it's 5, 10,000 lines of code,<br>if it's Java or C++ it's<br>millions lines of code.<br>But yeah, in Python,<br>yeah, I would say 10,000 lines of code.<br>That's when you first<br>get to see the magic.<br>But anyway, you were saying?<br>- Okay, so you and John Carmack<br>had a conversation about asserts.<br>- Yes.<br>- You talked about this idea<br>of putting asserts everywhere<br>that effectively crash the program<br>when you have some state in your program<br>that should not be represented<br>and you have made this choice actively.<br>And so I've never done that before.<br>And I know this is like an old technique<br>and I obviously must be too young<br>or too dumb to know that<br>this was a thing people did.<br>I grew up in Java and I<br>think that's probably why<br>I didn't run into this.<br>So I saw that and I was like,<br>I'm curious about how to use asserts more.<br>And then I ran into a person named Joran.<br>He's the CEO and creator of TigerBeetle.<br>It's like the world's fastest,<br>greatest financial database.<br>And it was spawned out of a company<br>that needed to do a bunch<br>of financial transactions.<br>And it's written in<br>Zig and what they do is<br>they do deterministic simulation testing<br>and they just use NASA's kind of guarantee<br>for creating really great software.<br>So don't use U size,<br>specify your exact size of<br>int you expect everywhere.<br>All these kind of things<br>they do to be very specific.<br>And one of them is that every function<br>should contain two asserts.<br>Whether it's positive space<br>like these things should<br>happen or negative space,<br>like this pointer should never be null.<br>You're programming into things<br>that should never happen.<br>Normally, you would<br>just never specify that.<br>You'd never think about that.<br>So every single function<br>everywhere has all these asserts<br>and these asserts run both<br>in production and in testing.<br>They're always on.<br>And then they take<br>deterministic simulation testing<br>and run like 200 years<br>of just random data,<br>just complete slop<br>going through the system<br>and seeing how far it goes.<br>And when an assert happens,<br>they're like, here's the<br>input that caused it,<br>here's every last little<br>bit that happened,<br>and now you can identify<br>where this went wrong.<br>And it was so cool.<br>So between you, John Carmack and Joran,<br>that's where I got like,<br>okay, I got to really...<br>And NASA, I'll throw NASA a bone as well.<br>NASA can join in on that one.<br>I was like, okay, I want to<br>try this. And I did try it. I<br>built this big reverse proxy<br>for me trying to do some<br>game development stuff.<br>And I just went ham on the asserts.<br>And then I built the whole<br>simulation testing thing<br>that could do everything<br>deterministically.<br>So even the result of requests<br>would all come in specific orders.<br>And I found a bunch of bugs<br>that I just would never have found.<br>And then I did it for a game I was making.<br>I found some bugs where<br>my cursor went off-screen,<br>it would cause all<br>these different problems<br>because I just never tested them.<br>And it's super fun<br>and it's like a really<br>great way to program.<br>- Yeah, I think it's a<br>skillset you grow over time.<br>It's not just that you have<br>to specify the preconditions,<br>everything that has to be true,<br>it's also adding things that are like,<br>you might not even think about.<br>You have to sort of anticipate<br>really weird things.<br>And if you add asserts,<br>especially in complicated functions<br>or in complicated classes that<br>are able to catch really weird things,<br>that's going to save you so many headaches<br>and it's going to help you<br>learn about your own code.<br>This is one of the things,<br>I think it was Jonathan Blow<br>that either in conversation with you<br>or was it in a presentation,<br>he said that when he's<br>starting in a project,<br>he usually doesn't know<br>how to implement it,<br>how it's going to work.<br>And I think he was saying<br>that he wants a programming language.<br>This might have been a<br>criticism of C++, I'm not sure,<br>where he wants a programming language<br>that makes it as painless<br>as possible for him<br>to not know what he's doing,<br>how he's going to implement it,<br>and to quickly get to a place<br>where he figures it out.<br>I think there's a fundamental<br>part of programming is<br>building stuff while not really knowing<br>what the next thing you're doing is.<br>You kind of have a loose<br>design, maybe a strict design,<br>but really you're solving<br>puzzles that are not...<br>It is a dark room in a fundamental sense.<br>And there you have to anticipate<br>the kind of weirdnesses<br>that might emerge while not<br>really knowing everything.<br>Just this full fog, fog of war.<br>And there that's a real<br>skill to anticipate<br>the kind of issues that might arise<br>and put a asserts on top of them.<br>And it's also like spiritually, for me,<br>been a really nice way<br>of programming a building<br>of living life as having<br>very strict asserts<br>that say, "You're gonna fix<br>this problem if it ever arises.<br>You can't just look the other way."<br>This idea of treating warnings as errors.<br>Make sure your code compiles<br>without any warnings.<br>That was a big leap for me.<br>It's like, but there's so many of them<br>and it's not really that important.<br>It's like, no, no, no warnings.<br>Make sure you treat every single problem,<br>even fuzzy problems seriously,<br>because that's actually<br>long-term is going to create code<br>that's much easier to work with,<br>much more fun to work with,<br>much more robust, resilient<br>to all kinds of weirdnesses,<br>all that kind of stuff.<br>So it's a different way<br>of approaching coding,<br>probably more NASA-like<br>versus web programming style.<br>But yeah, it has made<br>programming for me personally,<br>much more fun<br>because one of the most painful<br>things about programming<br>is creating when you get past<br>10,000, 20,000 lines of code<br>and you have to find a bug.<br>And that bug can take hours,<br>it could take days to find,<br>and that's torture.<br>- Yeah, when your system<br>gets sufficiently large,<br>some of these bugs are just,<br>they are very difficult.<br>Bless anyone's soul that's working<br>on million line code<br>bases, because it does.<br>I can't tell you how many<br>times I've spent multiple days<br>just trying to figure out<br>the root cause of the bug.<br>Not even the fix.<br>Just like why does this<br>happen? And that's hard.<br>So I love that.<br>I just love the asserts<br>because I'm not good at them,<br>I can see it's definitely a skill<br>that I don't put into practice constantly,<br>which means it's just not like<br>a muscle memory type thing.<br>And so it's just one of<br>those things I just love.<br>It's such a fascinating<br>way to approach a problem,<br>because I would've never thought,<br>you know what I'm gonna do?<br>If I'm wrong, I'm gonna crash this thing<br>and I'm gonna crash it right here<br>because I should never be wrong.<br>But instead you're like,<br>"Oh, actually that makes perfect sense.<br>I should crash this thing.<br>I've done something terribly wrong here.<br>Why would this ever exist?"<br>And then you're like,<br>"This is gonna solve a<br>whole class of problems."<br>- Yeah, and especially<br>if it's in production,<br>it's like, well a user's<br>going to see this crash.<br>It's like, yeah, well you should minimize<br>the number of times any<br>user ever sees the crash,<br>not by having a nice blue<br>screen or whatever the fuck,<br>but actually stopping everything.<br>And that's going to create<br>an incentive for you<br>to never have that happen.<br>You're actually going to put in the time<br>to make sure it never happens.<br>- And the nice part is<br>with the web and all that,<br>you can always pop up something and say,<br>"Hey, things have gone very, very wrong<br>or unable to recover."<br>You can give them a nice<br>message and then log it off<br>so you can see it, and then measure<br>how often are you doing it.<br>I understand that there's<br>a bit of interestingness<br>to a web project like do you<br>want to always crash a server?<br>There's a bit of a gamble<br>if you release a bad version<br>and you crash all your servers constantly.<br>That's a pain you're<br>going to have to accept.<br>- I think this is more<br>applicable for single systems<br>like robots and so on.<br>You have struggled with ADHD.<br>I think a lot of people<br>are really inspired<br>by the fact that you're able<br>to be productive and flourish<br>while having ADHD.<br>How'd you overcome it?<br>- Well, there's a lot of<br>things that ADHD affects<br>and so<br>I'll start with some<br>of the easiest things,<br>because there's directly applicable,<br>then these kind of collateral<br>damage applicable things<br>that happen.<br>So one thing that has<br>really helped me with ADHD<br>is maturity.<br>I think that's just a thing<br>that everyone needs more of.<br>Meaning that I found<br>myself getting so wiggly<br>and so out of control when I<br>would try to sit down and read,<br>and I just couldn't handle it.<br>I just felt like I'd read a<br>page and didn't read anything.<br>The part of me that just went,<br>"Oh man, gosh, I just can't even do this."<br>I had to just simply quit<br>listening to it and said,<br>"Nope, I'm rereading this page."<br>I remember reading some pages in college<br>like 18 times in a row, just<br>like I'm going to force myself<br>to just do this the correct way.<br>And so there's an aspect of<br>maturity that really helps,<br>no matter what, I will do<br>the thing I'm going to do<br>and I'm going to do it well<br>and maybe it takes me a<br>lot longer and that's okay.<br>That's not the point of it.<br>It's that I'm doing it<br>and that's the point.<br>And so that's one thing that<br>I think just generally helps.<br>And ADHD, no ADHD,<br>the resilience, emotional resilience<br>is just a really important<br>aspect that just helps.<br>And so I think that has been a large part<br>that really helps me.<br>There's things that I still<br>obviously struggle with.<br>It's clear where I'm really bad at stuff,<br>and<br>just trying to think through<br>all the different things<br>that I'm bad at.<br>There's more things I'm<br>bad at than I'm good at.<br>And so programming obviously has something<br>that just allows me to remain focused<br>and it's like a strength of mine.<br>And so I started off<br>where I could just do it for a little bit<br>and then just through kind<br>of that emotional resilience,<br>I was able to start<br>doing it more and more.<br>And so now I can just do it<br>for like 10, 12, 15 hours<br>at a time and I absolutely love it.<br>And so it's become kind of like a joy.<br>It's like playing a musical<br>instrument. I'm really into it.<br>But then if it came down to,<br>"Hey, you need to go<br>schedule your own dentistry<br>and go do all these other things<br>or make sure the kids have<br>this type of stuff ready<br>for the meals you need to<br>pack throughout the week.<br>I'm historically very bad at that<br>and will probably continue<br>to be very bad at that.<br>And so I must say that one of the reasons<br>why I excel so much is<br>because I also have a wife<br>who is so good to me<br>and she helps clear out a<br>lot of the things in my life<br>that cause a lot of me<br>kind of getting snowballed<br>into a weird spot<br>where I'm just distracted<br>getting nothing done.<br>And so she's really helped me.<br>So it would be foolish of me to claim<br>that I've defeated the ADHD by myself,<br>but instead I find that the places<br>that I can really control<br>I've done a very good job at,<br>and the things that I obviously<br>need to do much better at,<br>my wife has helped me a whole bunch.<br>And so I've kind of cheated.<br>Maybe I found a cheat code, a loving wife.<br>But that has been the thing<br>that has really helped.<br>- You said a lot of interesting things.<br>So on the reading and for<br>me it's also audiobook side,<br>I do the same thing and I've<br>gotten much better at it,<br>which is I tune out mentally<br>and I read a page<br>and you don't understand<br>anything on the page.<br>You didn't actually read it.<br>And yeah, I forced<br>myself to just reread it<br>or re-listen to an audiobook,<br>which is a much more<br>common problem for me now,<br>and forcing myself to<br>really pay attention.<br>Because I listen to<br>audiobooks often when I run<br>and it's so easy to just tune out.<br>It's a skill.<br>I didn't realize how much of a skill<br>listening to an audiobook is,<br>especially when there's<br>other sensory inputs<br>like when you run.<br>So I have to force myself<br>to really pay attention<br>to every single word.<br>And if I don't, like tune<br>out and don't remember<br>what I just listened to<br>in the past 30 seconds,<br>I force myself to re-listen to it.<br>And sometimes that means five times<br>until, it's like punishing myself to like,<br>"You're gonna listen to this<br>boring shit over and over<br>until you get good at that<br>little skill of like zoom in."<br>And you're like, yeah, there's people,<br>they're doing stuff, there's<br>nature, it doesn't matter.<br>You're listening to every<br>single word and loading it in<br>and trying to stay focused,<br>even there's just so many<br>distractions all around you, yeah.<br>- It's definitely a learned skill<br>and it takes a lot of time.<br>And when I say, "Oh, I was<br>able to do from here to here,"<br>I'm speaking over the<br>course of like five years<br>of doing this every day.<br>It's not some small...<br>There's no...<br>The nice part about<br>that decision though is<br>you can make that decision today.<br>You can make it right now.<br>You're going to be<br>like, "From here on out,<br>I'll never make that mistake again.<br>I will say I'm going to read 50 pages,<br>I will sit down and read 50 pages,<br>and when I get distracted<br>I'll go back to the last place I remember<br>and I'll start again."<br>And like that's a decision you can make.<br>That's a mature, non-emotional<br>decision to make.<br>And you can do that, it<br>just may be really painful<br>for the first couple years<br>of making said decisions.<br>And then it gets easier<br>and then it gets easier,<br>and then it becomes more<br>natural to change yourself.<br>- Yeah, and with every<br>medium, with every platform,<br>I think it's like a new skill.<br>For me, like using social<br>media has been that,<br>just like I end up like doom scrolling<br>too easily on platforms.<br>And one solution is not to look at all,<br>which is kind of what I<br>lean on mostly these days,<br>but I feel like I should be able to check,<br>just read, okay, feel a thing,<br>learn a thing, and then put it down,<br>versus you have this<br>glazed look over your eye<br>and you're not really<br>paying attention anymore<br>and you're dead inside and<br>you feel horrible afterwards.<br>I don't understand.<br>- The horrible afterwards is real serious.<br>I've definitely...<br>I can 100% notice that I<br>am a more anxious person<br>the more time I spend scrolling.<br>- Yeah, yeah.<br>- I can just feel it.<br>It's like something inside<br>of me that's kind of...<br>I don't know how to say it<br>other than it like wants to get out<br>but I don't really know what that is.<br>It's not anger, but it's not...<br>It's very anxious.<br>- It's like the opposite<br>of the feeling I have<br>when I wake up in the<br>morning and I'm feeling good,<br>and I look out in nature<br>and look at the sun<br>and just, and there's like a bird chirping<br>and this kind of thing.<br>Scrolling through social media,<br>even if it's like super<br>positive stuff or whatever,<br>it's still not the same<br>feeling as the bird chirping.<br>Bird chirping on Instagram<br>is a different bird<br>chirping than in real life,<br>'cause bird chirping on<br>Instagram, I'll start swiping<br>until there's demons of different types<br>fighting inside my head<br>and then different anxiety,<br>insecurity, whatever the hell.<br>Just the mixture of chaos<br>versus the bird chirping in real life.<br>That is beautiful.<br>But again, that's the same<br>thing as with the audiobook.<br>It boils down to...<br>Man, these people that<br>talk about meditation,<br>I think that's probably...<br>They're onto something,<br>because that's what it<br>is be able to like focus<br>calmly and deliberately on a thing,<br>whether it's reading or<br>audiobook or existence.<br>When they sort of observe the breath,<br>you're able to silent out everything else<br>and remove everything else from focus.<br>Yeah. That's a skill.<br>That's a skill.<br>- I heard it put really<br>beautifully, which is that<br>we in America really have<br>misunderstood liberty<br>because we typically have liberty<br>as just the freedom to<br>do whatever you want.<br>And the argument was<br>that it's not the freedom<br>to do whatever you want,<br>it's the freedom to be<br>able to do what you will.<br>And how often is what you<br>actually want to do, you don't do<br>because you get trapped doing something<br>that you've convinced yourself<br>in this quick moment you want to do?<br>And so it's like, "I want liberty.<br>I want the ability to control my energy<br>and to be able to do<br>the thing I want to do,<br>not to get distracted and destroyed<br>in all the millions of distractions."<br>And some of us get handed<br>a worse deck of cards,<br>some of us get a better deck of cards,<br>but I don't think there's anybody<br>that doesn't struggle with<br>it in the technological age.<br>- Yeah, and that's the skill.<br>What can you say to the<br>skill of achieving focus<br>in programming?<br>Do you have a process of how you sit down<br>and try to sort of approach a problem?<br>So, all the different,<br>not just distractions<br>but the challenges of starting a project,<br>of thinking through the design,<br>how to maintain real focus,<br>because it's really difficult<br>intellectual endeavor.<br>- At this point I'm lucky,<br>but when I first started I can remember<br>that every last part of programming,<br>I had to go look up, I had to go read,<br>I had side quests at all time.<br>Every step was a side quest.<br>Why is my screen blinking<br>when I'm trying to render this thing out?<br>Oh, I didn't know about double buffering.<br>Why is this happening?<br>How do I even write to the screen?<br>How do I...<br>Everything was a question.<br>I had more questions than answers.<br>And so I constantly had<br>the problem of side quests,<br>and I find that to be a<br>very exhausting thing.<br>But as I learned my<br>instrument very, very well,<br>I don't have as many side quests.<br>I become more and more able to just focus<br>on the thing I want to do.<br>And I find that to be something<br>that is just super, super useful.<br>So, when I say I'm kind of lucky,<br>meaning that I've spent so much of my life<br>preparing for this moment<br>that now when I have the<br>opportunity to do something,<br>I can just do that thing and I don't...<br>Like I can be just on an airplane<br>and I can just program for hours.<br>I don't have to look up a single thing.<br>I don't have to do anything.<br>I don't even have to test the code.<br>I can write 1,000 lines<br>of code on an airplane<br>and I'm very confident<br>that it's gonna be 98% pretty dang good.<br>And I'm very happy about that<br>because that allows me<br>just to be in the moment<br>solving the problem I'm trying to solve.<br>Then I have 100% of my brain<br>power solving a problem.<br>And this is why I also...<br>It's the same reason why I recommend<br>learning how to type and<br>learning your editor so well<br>you don't even have to<br>think about the action<br>because the people that have to...<br>Even if you just look down,<br>that's still mental processing power<br>you have to spend looking at a keyboard<br>in which you already<br>know where the key is.<br>You do.<br>At this point, if you've been<br>typing for thousands of hours,<br>you know where the key is,<br>just stop looking down,<br>you'll learn really quickly.<br>And so it's like this<br>thing where it's like,<br>"I'm not gonna spend all that time<br>and all that mental effort<br>looking up the thing.<br>I'm gonna just memorize...<br>I'm just gonna get it in<br>me, and then I can go fast."<br>And it feels good.<br>And so that's how I'd<br>kind of defeat that is<br>because now I get to do something<br>where it's like there's no more questions.<br>It's now me just expressing myself<br>into this medium and it feels really good.<br>- I'm sure there's still<br>like things that pull at you,<br>like curiosities, distractions, like,<br>"Ooh, I wonder how..."<br>Anytime you have access to the internet,<br>you're gonna get like-<br>- Twitter's a big one on that one. Yeah.<br>- You're gonna get curious about stuff,<br>including, I guess you're<br>speaking about everything<br>in the editors optimize,<br>but, okay, you can always improve stuff.<br>You can always find<br>better plugins and macros<br>and, "Oh, let me... You know what,<br>this thing that took this pain point,<br>I just found this tiny pain point,<br>let me spend the next five<br>days creating a plugin<br>for my editor or whatever the fuck<br>to remove that one pain point,"<br>when you should have just kept going<br>as opposed to taking side quests.<br>- So, I have a rule which<br>is I do not edit my RC<br>other than some kind of cataclysmic thing,<br>like someone updates a plugin,<br>I didn't know they updated it<br>and now there's like a<br>hard error in my editor<br>and I have to move forward.<br>But I have a rule where I will edit my RC,<br>my Neovim RC or anything once a year.<br>Something that bothers<br>me, I'll write it down,<br>I'll remember it. I'll be like,<br>"Okay, I want to change that,"<br>but I will just not go back to it.<br>Now, every now and then I'll<br>break that rule if I know,<br>if like, "Oh, I want a new remap<br>to be able to do this one command<br>and that takes literally 13<br>seconds, like copy paste,<br>do this, bop-bop-bop, done.<br>Okay, I have this new remap,<br>it made perfect sense in this situation,<br>but I don't go plug-in exploring.<br>I don't try to solve every problem.<br>I don't want a perfect editor<br>because that is a pursuit<br>that will never stop.<br>I just go, "This is good, good breakpoint,<br>I won't do it again."<br>So, last month I probably<br>spent a hundred hours<br>just editing every possible thing I could<br>about how I start up my system and make...<br>I can have a computer from zero<br>to 60 in almost no time now<br>everything the way I exactly want it,<br>Neovim and everything<br>all perfectly set up.<br>Happy enough, I'm not going<br>to touch that system again.<br>Maybe I'll touch it next year.<br>Maybe I'll take a year off.<br>It's just I'm fine with that.<br>I'm fine with not being perfect.<br>- All right, zero to 60, let's<br>talk about the perfect setup.<br>What's your perfect programming setup,<br>keyboard operating system,<br>how many screens, chair?<br>- All right, I like all these.<br>- IDE, let's go.<br>- So, keyboard,<br>you're using my favorite<br>keyboard right there,<br>the Kinesis Advantage.<br>Saved my career. Beautiful keyboard.<br>Concavity and thumb clusters<br>are just so important<br>because if you really think about it,<br>especially if you're using qwerty,<br>when you're pressing the<br>symbols on a standard keyboard,<br>you're just doing this the whole time:<br>Backspace, Enter, symbols.<br>You're just doing this,<br>and it just screws up your<br>wrist constantly doing this.<br>And this when you're constantly<br>doing like Ctrl and Shift.<br>And it just is like messing you up,<br>so it's just like right here.<br>That's so much nicer in life.<br>So, keyboard most important, I'd say.<br>Get that one done.<br>- For people who don't<br>know, Kinesis keyboard,<br>I think the thing that<br>you experience the most<br>is exactly the thing you just said now,<br>which is the backspace<br>is really easy to press<br>versus what it is on normal keyboards.<br>So, backspace in general<br>symbolizes you're deleting a thing,<br>it symbolizes a mistake.<br>Not symbolizes, it<br>usually means a mistake.<br>And so not only did<br>you just make a mistake<br>in what you were typing,<br>you also have to take a<br>physically painful action,<br>annoying action to fix that mistake.<br>And for most of us, we<br>make a lot of mistakes,<br>so Kinesis just makes it pleasant and fast<br>and easy physically to<br>correct the mistake.<br>That's probably for me the<br>number one reason of Kinesis.<br>Everything else, yeah,<br>super plus with the macros<br>and the positioning, the<br>concavity like you mentioned,<br>but their mistakes are pleasant.<br>- Yeah. I am on that team,<br>so that's why I love that.<br>I would say that's one of<br>the most important things.<br>The next thing that I find<br>to be very, very important<br>is that one monitor.<br>I'm a one monitor kind of guy.<br>- What? Really?<br>- So, when I program,<br>when I do anything...<br>Now, when I stream, I obviously<br>have a second computer<br>that runs the stream because<br>I sometimes crash my computer,<br>I have to restart or whatever.<br>So, I do have a second screen<br>there that I put stuff up,<br>but most of the time you'll notice<br>that even when I'm<br>streaming, you've been there,<br>I have to physically switch<br>to the streaming chat channel<br>for me to read it, and that's<br>because I'm operating off of one screen.<br>And so I have this whole style<br>in which I like to navigate,<br>inspired by StarCraft,<br>is that I believe in the press one key,<br>go where you want to be mentality.<br>And so everything about<br>my setup is press one key.<br>So, when I want to go to Twitch<br>chat, Alt+2, Twitch chat.<br>When I want to go to my browser, Alt+1.<br>That's my browser.<br>Alt+3, that's where I<br>go to my programming.<br>That's power finger, obviously.<br>The big middle finger right<br>there, just smash it down.<br>Alt+6 is going to be gimp,<br>so my GNU image manipulation program,<br>so if I want to draw, I go there.<br>When I used to have Slack, it was Alt+5.<br>If I have a spare terminal<br>where I need to run some<br>extra things, that's Alt+4.<br>I had all these kind of...<br>Everything is perfectly<br>mapped out to single-key.<br>And then when it comes<br>down to using, say, Tmux,<br>I have all my terminals<br>into one single terminal.<br>And now I'm able to kind<br>of switch between there.<br>Prefix one goes to my Vim editor.<br>Whatever project I'm in, it's<br>always the first Tmux tab,<br>if you will.<br>I'm not sure... They call it<br>a session, but I'm not sure<br>how to describe it if you're<br>not familiar with Tmux.<br>A tab.<br>Second one is like my spare terminal,<br>third one is my long-running<br>process terminal,<br>my fourth one is a<br>long-running process terminal.<br>So, I have it all set up,<br>so every project I go to<br>automatically spawns session one: Vim,<br>session two: spare terminal,<br>session three will also open it,<br>so it's like, brrrrr,<br>everything's just ready to rock.<br>Everything has been<br>optimized to where I do that.<br>If I want to go to a project, it's Ctrl+F,<br>and any terminal will<br>bring up a fuzzy find list<br>of every one of my folders<br>on my operating system<br>in which I can go to with<br>just a couple keystrokes<br>and, boom, I'm in that one now.<br>And so it's very oriented to find<br>where I need to be as quickly as possible.<br>- Via keyboard.<br>- Via keyboard.<br>Then in Vim I developed<br>a plugin called Harpoon,<br>which is I press one button<br>and I can pin one of the files<br>to like a temporary buffer.<br>I think Projectile is potentially<br>close to this in Emacs.<br>I can't remember if Projectile...<br>I think Projectile is closer<br>to my sessionizing script.<br>Anyways, so now I have four pinned files<br>in which I can go to any<br>of those pinned files<br>with just a single keystroke.<br>And so now it's just like...<br>Because every time you develop a feature,<br>usually you have like three files<br>you're kind of primarily working in.<br>And I can fuzzy find for the<br>other files and that's that,<br>but usually I just have<br>like these three power files<br>that I'm always swapping in between.<br>And so it's like now everything is just,<br>"I want go to the<br>browser." That's one press.<br>"I want to go to my<br>workstation." That's one press.<br>"I want to go to a specific folder,<br>I need to change folders."<br>Sometimes you work between<br>two different projects,<br>so in Tmux that's prefix,<br>capital L will swap between your last two.<br>So, I have alternate projects,<br>so I can even swap between<br>projects in pretty much one key.<br>So, it's just like do-do-do,<br>just trying to optimize it,<br>so I don't think as much,<br>because I think search<br>fatigue is a massive fail<br>where you have to look for it.<br>When I see people on a Mac do this<br>and then explode all the different ones,<br>that gives me anxiety.<br>I'm like, "Why are you using your eyeballs<br>to search for what you want to do?"<br>Make it into a key press<br>and never think about it again, ever.<br>- You're making me think a lot<br>whether I can live with your system,<br>whether it's better<br>because it feels better.<br>- It at least intellectually feels better.<br>It may not be great for some people.<br>- Well, there's a few<br>profound things you said,<br>which is like really what,<br>the number of windows or tasks<br>you're switching between,<br>whether it's programming,<br>the number of files you're working on,<br>it's small at any one time,<br>at any one space of 20 minutes<br>or something like that.<br>So, okay, that's a profound truth.<br>Sometimes we think like,<br>"Oh I need the full freedom to search,"<br>but you don't.<br>You usually work on a very small slice.<br>But I guess the trade-off there...<br>I always have three monitors,<br>not when I'm traveling,<br>but my happy place is three monitors.<br>It's like, do you really need all of them<br>to be present there?<br>So, you're turning your head.<br>Now, the monitors I have<br>is two vertical ones,<br>which is just better for<br>certain kinds of content.<br>They're positioned<br>vertically, so you can read.<br>You can use your eyes to scan quickly.<br>- Interesting. So, I don't even do that.<br>I even have it so zoomed in<br>that I probably only have<br>like maybe 25 lines of code<br>at any one time on my 27-inch monitor.<br>- Yeah, I think that's...<br>I think I feel fundamentally constrained<br>when I can't see more<br>because your eyes are<br>just good at jumping.<br>Like, okay.<br>Like you could...<br>- Why not search? Why not<br>press a couple of keystrokes?<br>Ctrl+U, Ctrl+D, jump up<br>and down by a half page.<br>- Because the ape visual<br>system was designed to...<br>You're loading a lot of information.<br>If every time you have to<br>investigate this table,<br>what's on this table, you<br>have to press a keystroke,<br>you could develop the skillset<br>that integrates that<br>information but it's really...<br>There is an effective thing<br>where if you have a<br>sheet of paper like this<br>and I'm looking at it,<br>my eyes will be able to load in<br>the structure of the information,<br>the topics of the information.<br>You just can do it faster, I think.<br>There's a big cost because<br>it's an extra monitor,<br>but there is some stuff that's vertical<br>when vertically positioned.<br>See, code is an iffy one code<br>because code, you really,<br>25 lines at a time, I<br>think you can do a lot.<br>This is more for like articles<br>and especially with<br>visual information in them<br>or documentation, you<br>can just jump faster.<br>But I'm trying to...<br>As you were speaking so eloquently,<br>I was like wondering,<br>"Am I just like deceiving<br>myself that I need that?<br>Can I just keyboard<br>shortcut-ify everything<br>and just have everything on one monitor?"<br>That's something I should probably try<br>because I'm a big proponent<br>of just automating<br>everything with the keyboard<br>because you can just<br>move really, really fast,<br>and you don't have to think.<br>Because I also do creative stuff,<br>whether it's recording<br>music or video editing.<br>It's hard...<br>Some of these programs still<br>make it super easy for you.<br>On Windows, with AutoHotkey<br>you can do quite a lot,<br>but still there's limitations on<br>how much you can do with the keyboard.<br>So, it really is a pain in the<br>ass to have to use the mouse,<br>but, man, you're really making me think.<br>- Even the text one, the reading one,<br>fundamentally I think I agree with you,<br>that you can see a lot more<br>and you can kind of look up and down,<br>and see those two things.<br>And probably in articles<br>or things like that,<br>if there's a graph down<br>here that's really big<br>that take up your whole screen plus text,<br>I could see why that would be<br>very beneficial to zoom out,<br>to be able to have all that information,<br>but for me, I can only<br>look at like a square inch.<br>Really, that's all my eyes<br>can actually focus on.<br>So, when I'm reading, I'm right here.<br>Then I have to structurally<br>try to pattern match<br>what I think the information looks like.<br>Then I have to start reading it.<br>So, I'm not exactly sure if I<br>actually get any real benefit<br>of having a lot of stuff on screen,<br>as opposed to I can relax my eyes so much<br>I don't even have to focus.<br>The words are so big. I actually<br>program pretty zoomed in.<br>My text is bigger than<br>this when I program,<br>and so it's just that it's so comfortable,<br>I don't even have to exert<br>any effort to read the code.<br>- But you have to kind of<br>train your brain to know<br>that you can navigate<br>spatially using keys.<br>- Yeah, Neovim by the way.<br>- Oh, maybe it has everything<br>to do with Neovim. Okay.<br>- All right. And then Neovim<br>is obviously the next big one.<br>I love Neovim.<br>Reason being is that I think<br>you can make all the arguments<br>that you want about<br>which editor is the best.<br>I do not think you can make an argument<br>that Vim motions aren't superior.<br>- Here we go. Can you explain Vim motions?<br>What is this?<br>So, Neovim.<br>Vim is an old school editor.<br>Neovim-<br>- It's a modern take on<br>an old school editor.<br>- Yeah. And what's ELI5?<br>What does it take to work with Neovim?<br>- Oh, okay.<br>I thought you were talking<br>about a Vim motion there.<br>That's how...<br>I know, but you know that<br>meme that's just like,<br>"Hey, Jarvis, can I tell<br>you about Vim motions?"<br>Because they can't fit<br>anything else in their head<br>because they only have Vim motions.<br>You said EL5, explain it like I'm five,<br>but in my head it's like,<br>"Okay, E is jump to the end of the word,<br>L is the one more..."<br>Dude, I'm so broken that I'm<br>like, "Okay, Vim motion,"<br>when I hear letters.<br>Yeah, so, you can think<br>of it like this is that<br>Vim has a language to<br>describe movements in text<br>because its primary mode of<br>operation is manipulating<br>or editing text.<br>So, it is a well-thought<br>through set of movements,<br>deleting, yanking, pasting,<br>copying, all that kind<br>of stuff that goes in,<br>motions that are optimized for working<br>with pretty much code.<br>A good example, say you<br>have three lines of code<br>you want to delete.<br>If you're in VS Code, take<br>your little beautiful mouse,<br>highlight those things,<br>press the backspace.<br>That's lovely. Your<br>hand left the keyboard.<br>Very simple to do though.<br>It's very beginner friendly.<br>I was a huge Vim hater, by the way,<br>so I just want you to know<br>that before we go into this.<br>I was probably the biggest Vim hater.<br>If there was Saul to Apostle Paul,<br>I am like the Saul to Apostle Paul of Vim,<br>just so you can see how big the gap was.<br>Or you can do something that's like...<br>I don't know what the VS Code shortcut is,<br>but I'm sure there's<br>some keys you can press<br>to delete the current line you're on.<br>Delete, delete, delete,<br>you can just do that.<br>In Vim, I can go DAP,<br>delete around paragraph.<br>All contiguous code in that thing.<br>I'm going to delete, so D,<br>then I can choose my<br>motion I want to take,<br>AP, around paragraph.<br>Or maybe I want to DF, meaning<br>jump up to the next character<br>that matches the next<br>character I'm going to press.<br>So, DF opening parenthesis<br>will delete everything<br>from your cursor up to the<br>first opening parenthesis.<br>So, you get to describe your motion<br>in these little keystrokes.<br>And as you get really good...<br>You've seen people that<br>can master Fortnite,<br>it's the same thing with<br>mastering Vim motions.<br>When you get so good, you no longer think<br>about each individual movement,<br>and instead you're just like,<br>"Get rid of the paragraph,<br>jump here, jump this, highlight<br>this, yank this, do this,"<br>it becomes so fast that you<br>can superiorly edit text<br>at a very fast rate.<br>And there comes a point<br>when you know your language really well,<br>you know the problem you're<br>really working on really well,<br>where editing text and getting code out<br>actually becomes one of<br>the many bottlenecks.<br>People always talk about, "Well,<br>most of the time I think."<br>Most of the time I'm not<br>thinking, I'm programming.<br>I know what I want to do, I<br>want to go as fast as possible<br>because I've been just<br>doing it for so long<br>and I'm so familiar with the general space<br>that it becomes a huge problem for me.<br>I cannot tell you how many times<br>that I've been purely<br>bottlenecked by the fact<br>that I just can't type fast enough<br>and I just need to get it out of my head<br>onto the text editor.<br>And so that's why I think<br>Vim motions are superior<br>in all aspects.<br>Keep your hands on the<br>keyboard, on the home row,<br>and it can manipulate text<br>in very wide and fast ways.<br>- Oh, so, this is not<br>just about writing text,<br>this is about modifying text.<br>It's primarily about modifying text.<br>- Yes.<br>- And I'm sure<br>that most editors including Emacs,<br>including VS Code can do<br>all those same things,<br>but there is something...<br>They just don't encourage<br>you to discover those things.<br>That's like an important thing<br>about a lot of technologies<br>and programming languages<br>that a lot of them can<br>do a lot of the stuff,<br>but it's something about<br>whether it's the community<br>or the style of the language<br>or anything like this<br>that encourages you to not<br>be lazy in the beginning<br>and learn the fast way to edit text,<br>in this particular example,<br>how to use the keyboard.<br>That's a fascinating just reality<br>of how technology is used.<br>You want to be encouraged<br>to find the fast thing<br>as quickly as possible so that long term<br>it's efficient and fun to use the thing.<br>- It takes a long time for<br>dividends, like a long time,<br>but on top of that,<br>notice I didn't say Vim.<br>I'm not saying, "Go use Vim,"<br>I'm saying, "Vim motions."<br>Let me give you one more<br>example. I'm a big fan.<br>Let's say you have a line<br>that contains some variable,<br>some function you're calling something<br>that takes in a string. And<br>you need to do that again,<br>so you would typically copy that line,<br>you'd paste that line below,<br>you'd go into the string<br>and you'd change the string.<br>Let's say it's calling<br>some sort of configuration,<br>you need to call it three times<br>with three different configuring strings.<br>In Vim, I like to do shift-V<br>to highlight the whole line,<br>and then Y.<br>Some people do YY, but I<br>don't like to do double ones.<br>I like to be able to do<br>two different fingers<br>because you can do that way<br>faster than one finger twice.<br>It's just a little optimization for me<br>because you can't press that as fast.<br>So, anyways, I'm very<br>optimized in my approach,<br>so I yank the line, paste the line.<br>CI double-quotes will delete everything<br>inside the first occurring string.<br>Then I can type the string, escape, save.<br>And so it's like so optimized<br>that I can just jump so<br>fast in between that,<br>whereas the copying and pasting line<br>is probably the same speed,<br>but the navigating to the string,<br>deleting what's currently<br>in the string, and then...<br>That's such a fast motion in Vim,<br>and I just do that all the time.<br>- To backtrack, really dumb question,<br>CI, what's the difference<br>between typing the letters<br>and using the letters<br>to navigate and edit?<br>How do you switch between the two modes?<br>- Okay, so insert mode means<br>that you're just putting in text,<br>and then normal mode means<br>that you're moving your cursor.<br>- [Lex] And how do you<br>switch between the two?<br>- Escape. Escape goes from<br>insert mode into normal mode.<br>And to go into insert mode press I<br>to take your current cursor<br>and go to the beginning,<br>A to go to the end of the year Cursor,<br>capital A to go to the end of the line,<br>capital I to go to the beginning of line,<br>O to put a new line below<br>and then put your cursor<br>at the proper intended for the language,<br>Shift+O to shift your current line down,<br>and then put a new line in.<br>You can see, there's a lot-<br>- So, you're pressing Escape a lot.<br>- Yeah, I mapped mine. I do Ctrl+C.<br>Ctrl+C does the same thing<br>except for in one edge case.<br>People hate that.<br>I got used to it just due to the fact<br>that I was using IntelliJ,<br>and I really hate pressing the Escape key,<br>so I just got used to pressing escapee.<br>- That seems like an essential thing to do<br>if you're using Neovim to<br>map escape to something.<br>- Cap lock would be your standard go-to.<br>- Oh yeah, I map it too.<br>Cool. I got you. I got you.<br>- Yeah, so then it's just<br>really easy to press it,<br>and boom, boom, boom,<br>not a big deal at all.<br>But yeah, I think that if<br>you're willing to learn it,<br>Vim motions are superior,<br>but if you're not willing to learn it,<br>then they're not superior.<br>You should just not do it.<br>If you're willing to<br>endure pain, it's good.<br>If you're not, it's actually way worse.<br>It's 100 worse.<br>- Right, so if you like<br>pain, you use Neovim.<br>Totally. I understand.<br>- You're totally on-board.<br>- 100%.<br>- See, now you get it.<br>- If you like joy, you use Emacs.<br>- Sorry, sorry, did Emacs<br>ever get a good text editor?<br>I know they're a great operating system,<br>but I never caught up if<br>they got a good text editor.<br>- Operating system?<br>I think you've been miseducated my friend.<br>So, at least 30 minutes<br>on Emacs versus Neovim<br>is what Reddit requested.<br>Have you actually used Emacs<br>in order to be able to<br>talk so much shit or no?<br>- I used it for a year.<br>- You used it for a year?<br>- Yeah, yeah. Doom Emacs,<br>Spacemacs and regular Emacs.<br>- But you don't even know<br>Lisp, so did you really use it?<br>- I kind of hacked my<br>way through kind of like,<br>"Okay, so this is how to configure..."<br>You can kind of get your<br>way through and do all that.<br>- So, you recommend to mastering Neovim<br>and really learn the depths of it,<br>but Emacs is okay to just kind of use<br>before making a judgment.<br>I think everybody...<br>- You got me on that one?<br>- Yeah, no, and what's<br>Neovim written? It's Lua?<br>- Yeah, so Lua would be<br>the configuration language,<br>but you have...<br>It's written in C, but you have Lua 4.<br>And Lua is just a dead simple language.<br>Anyone can program Lua.<br>- I actually don't know why...<br>I think it's because my love for Lisp<br>that I went with Emacs.<br>I think you just choose a path<br>and you walk down that path.<br>And because there's just such a vibrant,<br>intense battle between<br>the two communities,<br>you just start fighting<br>just because everybody else is fighting.<br>And then one day you're<br>an old warrior on a horse,<br>and you're wondering,<br>"What was this all for?"<br>And it's quite sad,<br>in all seriousness,<br>that I haven't to this day tried Neovim.<br>I think because there is a learning curve.<br>There's a learning curve<br>to a lot of these editors.<br>- Yeah. To really learn it.<br>- To really learn it.<br>And I think this is some of the criticism<br>of maybe VS Code or Sublime or Atom<br>that it's so easy to not learn it,<br>to just kind of halfass use it.<br>And there is a big<br>benefit to having editors<br>that force you to have<br>some learning curve,<br>where you take the art,<br>the science, the procedure<br>of editing seriously.<br>Because you spend so much time in it,<br>you might as well learn<br>how to use the thing.<br>- My big takeaway really,<br>what I'm trying to say<br>with all these words is<br>that I honestly don't<br>actually think that...<br>The editor obviously does<br>not make the programmer,<br>but I think it says a<br>lot about your character<br>as a programmer if you don't know<br>how to use your editor well.<br>There's something about a person<br>who's willing to commit<br>their life to programming,<br>and spending literally 50,000 hours<br>doing an activity over the<br>course of their lifetime,<br>and never take the time<br>to learn their editor<br>through and through.<br>It just seems strange.<br>You'd never see that in another world,<br>where people would be<br>able to build something<br>or do something and just completely forget<br>how these things work,<br>and only just focus on<br>one part of their craft.<br>And so, to me, it's just<br>like it doesn't matter<br>how you use it, I want to see the person<br>that just knows how to use it,<br>and they know how to use it well.<br>When there's a problem, they<br>can say why the problem exists,<br>and then go and fix the problem.<br>To me, that's like, There<br>you go. You've done it.<br>You now know your tool, go forth<br>and conquer with said tool.<br>- Especially for tools you use a lot.<br>(ThePrimeagen chuckles)<br>You have to look at your whole<br>life, your life, whatever,<br>if you're a developer or anything,<br>what is the thing you do a lot?<br>- Meetings.<br>- Yeah, yeah.<br>- Sorry. Keep going, keep going.<br>- Ask a question like: how<br>can this be done a lot better?<br>Because every single day you do this<br>for hours a day,<br>how many hours did you spend on thinking<br>how to do this better or<br>whether to do it at all,<br>in the case of meetings?<br>People surprisingly just<br>don't do this enough.<br>I see this, just to go back to jujitsu,<br>there's a lot of people that show up<br>and do jujitsu or martial arts,<br>and they do it the same way<br>over and over and over,<br>and they invest tremendous<br>amount of energy.<br>And they don't ask like,<br>"How do I do it differently<br>to improve faster?"<br>In the case of jujitsu<br>or any kind of sport,<br>same with practicing<br>the piano or the guitar,<br>they just religiously put in a lot of time<br>and derive a lot of joy<br>from getting better.<br>They don't enough ask the<br>meta question of like,<br>"How can I do this better?"<br>And with editors, it's surprisingly<br>how often people do just that.<br>With typing, it's surprising<br>how many people do just that.<br>Like you said, they're<br>pecking or looking down.<br>It's like the quality of<br>life improvement you can have<br>by learning to touch type,<br>by just like typing without looking.<br>It's immeasurable.<br>You're bringing a lot of joy to your life<br>because all of us are typing a lot.<br>And the reason, by the way,<br>I was extremely efficient with Emacs.<br>I'm sure you know, all jokes aside,<br>it feels like Neovim has more room<br>for the kind of efficiency<br>I've had with Emacs<br>to be able to move really fast<br>as you described me to edit.<br>There is a real joy.<br>It's not just efficiency,<br>it's a freedom that you can get<br>when you get really good with an editor.<br>The reason I chose to go<br>with VS Code is it felt like<br>there's going to be an<br>acceleration of features<br>to which Neovim or Emacs<br>will not be able to catch up, in the...<br>And I don't mean in the next five years,<br>I mean in the next 30 years.<br>And it felt like I almost<br>wanted to take the pain<br>of learning new editors constantly<br>and just switching and learning that,<br>because I was getting<br>so comfortable in Emacs,<br>with this Kinesis keyboard,<br>everything, all the shortcuts,<br>I know how to program, and<br>it felt like this is not...<br>Neovim will not be here in 50 years.<br>Possibly might be, I don't know,<br>but it felt like you want to learn<br>these constant different technologies.<br>Cursor is a great example of that.<br>I primarily am using Cursor now.<br>I go back between VS Code and Cursor.<br>Just the skill of using<br>AI is a real skill,<br>from the shortcuts to the timing<br>to the layout of the<br>windows to how I think about<br>where, when and how to use the<br>AI that doesn't distract me,<br>that it empowers me,<br>not just for the fuck of<br>it or for the fun of it,<br>for the actual measure of productivity.<br>It's a skill.<br>And I feel like I would be stuck<br>in a local maximum of comfort<br>if I stayed with Emacs.<br>And maybe the same should<br>be true for me with Neovim.<br>I should try it seriously.<br>I'm sure there's a plugin, like<br>a copilot type of situation<br>that you could set up with Neovim.<br>I should possibly consider that.<br>But Cursor is doing a lot<br>of really fascinating stuff<br>on the IDE side, not just<br>sort of generate code<br>and edit that code manually,<br>it's like continuously<br>be able to rewrite code.<br>It's the idea of tab, tab, tab, tab,<br>move the Cursor around, but<br>also modify parts of code<br>and do the diff really nicely,<br>that whether it's Cursor or VS Code<br>that wins that battle out<br>with Copilot, I don't know.<br>But that feels like a<br>fundamentally different experience<br>than the really efficient,<br>joyful experience<br>that you just described<br>in your selling me on this is Neovim.<br>That doesn't have an AI in the picture,<br>obviously immediately, but<br>you can, yeah, absolutely.<br>- I would 100% agree that<br>Cursor seems like such a cool product.<br>I actually think there's a<br>lot of really neat things<br>coming down with all of that.<br>And I could change from Neovim.<br>I don't use Neovim because I love Neovim,<br>I use Neovim because I<br>love the instrument I play.<br>And so it's like if Cursor<br>can meet those needs,<br>I could see myself moving over.<br>I don't have some sort of<br>obsessed attachment with it.<br>I am curious though that<br>every time I use AI...<br>I think I just have skill issues.<br>I think I'm just so<br>riddled with skill issues<br>when it comes to using AI, I<br>have yet to be able to use it<br>in a way that I really love it.<br>- We'll talk about it, but before then-<br>- Oh, ball to sit on. I forgot<br>to say that, ball to sit on.<br>Desk needs to be properly heighted.<br>One monitor. Eyes should be<br>two-thirds way up the screen.<br>I don't like to turn my head.<br>I prefer my hands in a<br>pistol neutral position.<br>And there we go.<br>- A ball to sit on. Yoga ball.<br>- Yoga ball.<br>- What's that about?<br>- It just helps just<br>maintain good posture,<br>because when I have something<br>to lean against, I do this.<br>- You're for hours sitting without...<br>Wait, what are you doing?<br>- I sit on the ball, and then I bounce.<br>- Is your back leaning on a thing?<br>- No.<br>- What the fuck?<br>- Well, how else do you-<br>- You're the only person in the<br>world sitting on a yoga ball<br>as you program for hours.<br>You do realize this, right?<br>- It feels great.<br>The problem is whenever I<br>get a back, I just slouch<br>and I find myself just<br>getting uncomfortable.<br>And I'm like, "I'm uncomfortable."<br>My shoulders are getting goofed up.<br>I'm chicken necking constantly.<br>It's just like...<br>- But you're able to keep your posture<br>for hours on the yoga ball?<br>- Yeah. And so I can just do that.<br>And then I find myself, if I slouch,<br>I'm like, "Okay, Nope. Got to get back.<br>- Do you have incredible<br>back muscles or what?<br>- No, well, I don't think<br>it takes incredible back muscles to-<br>- Keep posture.<br>- remain upright.<br>Yeah, I think that's a<br>pretty basic human function.<br>I would not consider<br>myself a strong person.<br>- Yeah. Basic human function.<br>I don't know.<br>- [ThePrimeagen] Facts and logic.<br>- Okay, cool. With one screen.<br>Neovim. What operating system?<br>- Linux, just because I<br>want a good window manager.<br>That's the whole press one<br>button, bring up Chrome.<br>I just use i3.<br>I'm sure I could use<br>something better than i3.<br>People always tell me<br>all these window managers<br>are really great.<br>But I just have those three<br>screens I switch between,<br>so it doesn't really... I<br>don't really care what I use,<br>just long as I can<br>press one button and go.<br>- Yeah, I'm the same, so half and half.<br>Half Linux, the other<br>half Windows with Linux,<br>meaning WSL.<br>What's that? Windows Subsystem for Linux.<br>- Weasel.<br>- Weasel.<br>See, no, there's got to be a better one<br>that's more positive.<br>Weasel just sounds-<br>- Seems right up Microsoft's<br>alley. That seems perfect.<br>- People often accuse me of<br>being a shill for somebody,<br>sometimes dictators.<br>If I'm a shill for<br>anybody, it's for Windows.<br>There you go.<br>I get paychecks every week from-<br>- Dang. Bought by Bill Gates.<br>- Well, he's not Microsoft anymore.<br>- [ThePrimeagen] I know.<br>- Developers, developers,<br>develop. No, I'm just joking.<br>I think, man, I need to try Mac.<br>I need to try.<br>I'm surrounded by people with iPhones.<br>I use Android.<br>- I use the Android.<br>- Yeah. There you go.<br>See? Oh.<br>- We're losers together.<br>- Losers on a sinking ship.<br>Okay, just to stay on Neovim for a sec<br>and to give love and a<br>shout-out to your friend, Teej.<br>- [ThePrimeagen] He Streams, by the way.<br>- He's a streamer. And I subscribed.<br>And I've been enjoying it.<br>My allegiance is slowly<br>shifting from you to him.<br>The quality is far superior with him,<br>the looks, the intelligence, the skillset,<br>everything, just far superior.<br>No. Okay, so he...<br>- You know you're making his day.<br>(Lex laughs)<br>- All right.<br>He mentioned that he loves Neovim<br>because it gives him<br>the ability to eliminate<br>having to do things he doesn't like.<br>That's just a nice way to frame<br>what this automation process<br>that you described of automating a way,<br>assigning shortcuts to<br>things that are painful,<br>that procedure.<br>I wonder if you agree with that.<br>- Fully agree.<br>We have very similar mentalities<br>when it comes to usage of<br>Neovim, why people should use it,<br>all that kind of stuff, and<br>how to even use it well.<br>He definitely takes it<br>probably to a further degree.<br>He spends more time<br>automating and all that.<br>I don't necessarily derive a lot of joy<br>from getting the perfect setup.<br>But a lot to learn from.<br>He's very, very good at what he does.<br>He is by far probably one of these...<br>He's 30 years old, been<br>programming for not too many years,<br>and he is one of the most<br>talented developers for sure.<br>It's very shocking to see<br>how smart someone can be.<br>- People should check him out at teej_dv.<br>- Yep.<br>- Teej.<br>- DV, is last name is DeVries. DeVries.<br>- Oh, it's not developer. Okay, cool.<br>- Yeah, yeah, it's just TJ.<br>That's just his name just spelled fun.<br>- All right, Teej. What<br>do you love about him?<br>- Wow. How much did he pay<br>you to ask these questions?<br>- Thousands of dollars.<br>- Just so many dollars.<br>- Thousands.<br>I can't even count that many dollars.<br>- Trust, obviously trust is<br>the biggest thing, especially<br>in the, quote, unquote,<br>"streaming" YouTube world,<br>if you will.<br>It's very easy to find people<br>that will want to be a part of stuff.<br>People tend to latch onto<br>things, and it's very hard<br>to find someone that you<br>can really, really trust.<br>And so he's just somebody<br>whom I can genuinely trust.<br>He will always tell the truth.<br>He's all the right<br>things for a good friend<br>in this kind of endeavor.<br>- As a good friend, he told me<br>questions I could backstab you with.<br>- Okay, I hate him. I forgot<br>how much I don't trust him.<br>- Speaking of a harpoon, you mentioned it.<br>He said to ask you<br>basically how many years or<br>decades it's going to take<br>to transition to Harpoon<br>2 to actually release it,<br>develop it, and so on.<br>Can you describe what Harpoon is<br>and why your seem to be incapable<br>of finishing a single project?<br>- That was a lovely framed question.<br>Harpoon 2 is actually done.<br>This is what I did: To avoid the swirl<br>in the thousands of questions<br>I will inevitably get,<br>I kept the master branch as Harpoon 1,<br>and I've kept Harpoon<br>2 as Harpoon 2 branch.<br>And people that don't<br>read the read me to say<br>that I just use Harpoon 2<br>now, that's their fault.<br>That's it.<br>I really don't like answering<br>hundreds of questions<br>about open source stuff.<br>I used to love doing<br>open source and all that,<br>but I got my soul crushed<br>during the Falcor years,<br>and so I guess I'm just allergic<br>to being a really active maintainer.<br>I build everything just for me.<br>Harpoon's just literally<br>just built for me.<br>I spent three months trying to figure out<br>the most optimal navigation for files,<br>and that's what I came up with.<br>Harpoon, it's a take on alternate file.<br>If you're familiar with<br>the alternate file,<br>typically you'll have this in all editors<br>where you can go back to<br>the file you were just in.<br>And so that means you can<br>have effectively two files<br>you swap back and forth in.<br>You've probably used it a bunch;<br>really fast way to navigate.<br>Pretty nice thing to do.<br>I want alternate file, but<br>three of them or four of them,<br>and so that's all Harpoon is<br>is just being able to pin a file.<br>And so I have one button<br>to press to go to a file,<br>another for another, another for another.<br>And so I can have up to four.<br>I just had my four power fingers.<br>For Dvorak, what is that? That's HTNS.<br>If I go Ctrl H, T, N, or S,<br>it goes to one of the four files.<br>And that's it. That's all it is.<br>And you can technically make<br>it so you can add in functions<br>and be able to execute things externally.<br>You can open up terminals,<br>you can send requests off to servers.<br>You can do anything you want with it,<br>I just have it primarily<br>designed for opening files.<br>- Since you mentioned it, what<br>keyboard layout do you use?<br>You use Dvorak?<br>- I use Dvorak, but I used<br>a custom version of Dvorak.<br>The reason why I used it is in 2017,<br>we are just having my second kid,<br>it was Christmas and I'm<br>having so much pain in my arm<br>and I'm sitting there freaking out like,<br>"Oh my gosh, is this the end of my career?<br>Am I done programming? Is this all over?"<br>And so I decided that I was going<br>to create my own keyboard layout optimized<br>to prevent the pain that I'm experiencing,<br>so I used to Dvorak as the base<br>and then laid out the<br>symbols in a symmetrical,<br>reasonable way so that<br>it's opening, closing,<br>opening, closing, opening, closing.<br>And they all are right here.<br>I actually have to hold<br>shift to press a number.<br>Symbols are actually my<br>first thing I get to press.<br>And so it's very optimized<br>for a laptop keyboard layout<br>so I can use my laptop in<br>a very efficient, nice way.<br>That's how I got started<br>on Dvorak and all that.<br>I wouldn't actually recommend it<br>because I didn't have<br>a Kinesis at the time.<br>I didn't even know Kinesis<br>existed at that time.<br>And so when I discovered<br>Kinesis in also 2017,<br>that's when I was like, "Oh, okay."<br>- Would you recommend Kinesis to people?<br>- I'm technically sponsored by Kinesis,<br>so it's hard for someone<br>to believe someone<br>that's sponsored by it.<br>But I did use it before<br>I ever became sponsored.<br>They're the only sponsor that<br>I reached out to and said,<br>"I need a sponsorship from you.<br>I'm going to use you either way.<br>You can say no, but I really love it."<br>And for the first three<br>years of using Kinesis,<br>they gave me free Kinesises,<br>Kenisi, as my sponsorship.<br>- Kenisi. Yeah, I'm always torn.<br>I tried to leave so many times.<br>- You can't. It's too good.<br>- But, see, I have this absurd situation<br>of traveling with it.<br>- I relate. (chuckles)<br>- Yeah. I'm literally going<br>to the war zone in Ukraine.<br>I have a Kinesis keyboard, (chuckles)<br>a laptop, and just a few other<br>small things and that's it.<br>And it's like is Kinesis<br>keyboard really going to be 30%<br>of volume that you're<br>bringing to a war zone?<br>- Looks like the answer is yes.<br>- Yeah. Do you really<br>derive that much value?<br>I think it's probably spiritual<br>or psychological for me.<br>It feels like home.<br>There's comfort associated with it.<br>I try to leave.<br>- I love this experience.<br>It's like a relationship<br>you have with the thing.<br>- It is.<br>But I'm trying to figure out<br>if it's a toxic relationship or not.<br>I think it's mostly<br>love. I think it's love.<br>Like all relationship, there's some<br>push and pull complications, but-<br>- They say that distance<br>makes the heart grow fonder,<br>so maybe sometimes the Kinesis keyboard<br>needs to stay at home and the<br>laptop keyboard can be the one<br>so that your heart grows even more fond<br>and that connection grows even deeper.<br>- I already miss it as you<br>say it, so I don't know.<br>I think it's coming<br>along to all the trips.<br>If it breaks down, though...<br>I was worried that Kinesis<br>was shut down as a company.<br>I'm like, what's the business model here?<br>Who actually uses these keyboards?<br>But apparently they're still going strong.<br>- Yeah. Who uses these keyboards?<br>As you use the keyboard<br>"I have to take it with me everywhere."<br>I wonder who uses these keyboards.<br>- Yeah. Yep.<br>I should mention that one of the things<br>when I first became a fan of yours,<br>I heard you talk about coffee and term...<br>I still don't, by the way, understand<br>what you're even talking about.<br>I need to actually use it.<br>But you run, amongst many<br>things, a coffee company.<br>Man, this smells so good.<br>This one is dark mode, dark<br>roast, whole coffee beans.<br>There is seg origin, dash,<br>dash location. Brazil.<br>- Yeah, there's a bunch of stuff on there.<br>- Stuff on there that's very devy.<br>Shop, server, web.<br>Can you legit, as such,<br>order coffee via SSH?<br>- As of right now,<br>it's the only way you can<br>get the coffee is via SSH.<br>Okay, can I just origin, origin story you?<br>- Yeah, yeah. Yeah, right.<br>I was going to do some<br>kind of command line.<br>Command to request or dash<br>dash help or something or-<br>- Command coffee?<br>- Command coffee.<br>- Okay, TJ and I, again,<br>same Teej, Teej TV, about...<br>By the way, very amazing<br>designs done by David Hill.<br>They're very, very good.<br>Let me give the basic ideas.<br>It must've been about<br>a year and a half ago,<br>TJ and I were talking like,<br>"Hey, every one of these people<br>that have some sort of following,<br>some sort of online presence,<br>they're always selling a thing,"<br>but I got nothing to sell.<br>I don't really want to do merch.<br>I've never really enjoyed doing merch.<br>I just find that, I don't know,<br>it's just not as much fun for me.<br>- Don't want to have a tequila?<br>- I don't want a tequila.<br>I want something that-<br>- Like The Rock.<br>- And I also want something<br>that I really don't<br>feel bad about selling.<br>There's a lot of people<br>that will go on the internet<br>and they'll shill for a<br>whole bunch of products like,<br>"Oh, okay, try this, try this."<br>And this is why I've only<br>ever really done Kinesis is<br>because it's like, well,<br>I can point to something<br>that was really bad in my<br>life, I was very scared,<br>and now it's not bad anymore.<br>It's like, okay, that one made sense.<br>But everything else always has<br>been... It's harder for me.<br>And so we just talked for<br>so long, and we love Neovim,<br>so we're just like,<br>"Why haven't we could do<br>something from Neovim?"<br>And we're laughing about that,<br>ordering from Neovim<br>is just so ridiculous.<br>And then at some point, we're just like,<br>"Well, wait a second.<br>And maybe we could do coffee.<br>Every developer loves coffee.<br>Maybe we could figure out<br>this coffee business."<br>And so I had a good<br>friend named Dax, THDXR.<br>Dax, yeah, Dax. The<br>most sassiest man alive.<br>- Sassiest?<br>- Oh yeah, he has a lot of sass.<br>- Beard?<br>- Yep, he has a beard.<br>He does SST. He does a lot of stuff.<br>Very, very talented. We'll<br>call him DevOps engineer.<br>He's more than that.<br>But very talented guy.<br>Him and another person named<br>Adamdotdev, vegan, by the way,<br>great guy. We take him to<br>Korean barbecue all the time.<br>He eats nothing.<br>- That's great.<br>- And Liz, she has been super important<br>to the terminal coffee company.<br>I think without her, we would<br>not have been able to do<br>what we have done.<br>And then also David Hill,<br>designer, he does Laravel.<br>He designs for Laravel.<br>Very talented designer.<br>And so we all came together.<br>And we were just laughing<br>about how could we do something<br>that's just ridiculous? And<br>that's what we came up with.<br>Yeah, there you go. You<br>just open the website.<br>You literally cannot order.<br>We actually do not allow you to order.<br>- The website is something<br>that looks like the terminal.<br>Use command below to order your<br>delicious whole coffee bean.<br>SSH terminal.shop.<br>- Yeah. You can only SSH into it.<br>You have to copy that command<br>and throw it in there.<br>If you want to add in<br>the little terminal shop<br>for your known hosts, you could do that.<br>- How do you handle payment?<br>- Through Stripe.<br>And so one of the things, we'll<br>be adding a mobile checkout<br>to where I'll show a<br>QR code in the terminal<br>and you can just check out<br>on your phone, but right now,<br>you enter in your credentials,<br>it goes to Stripe.<br>- [Lex] Via all terminal, like SSH.<br>- Yeah, SSH, obviously it<br>stands for Secure Shell.<br>It uses elliptical quantum safe algorithms<br>to ensure that your data's<br>not being intercepted.<br>- Yeah, but does he use AI?<br>- I'm pretty sure Dax uses AI.<br>- Quantum AI?<br>- Can this-<br>- Fusion quantum AI?<br>- Can this even be a company<br>if it's not using AI?<br>- We have some crypto<br>chains with some quantum AI<br>that's powered by Fusion,<br>- Great.<br>- so it's pretty wild.<br>Anyway, yeah, we just came<br>together where we thought,<br>what is the...<br>That was from the Mike Tyson fight.<br>It was literally that night<br>Mike Tyson kissed the reporter<br>and then walked out without any clothes.<br>We did an ad for somebody.<br>- Nice.<br>- But we decided<br>to make a coffee shop, and then we thought<br>instead of just making it Neovim,<br>what if we made it from SSH?<br>Because everybody has<br>SSH. You have VS Code.<br>Launch VS Code. You can order<br>coffee from within VS Code.<br>Because your little bottom<br>terminal that has access to SSH,<br>bada bing, bada boom.<br>It's fun, and so we really-<br>- I love this.<br>- We just wanted to do<br>something where there's no<br>level and there's no world<br>that makes me feel bad about selling this<br>and people buying it.<br>It's good, ethical coffee.<br>We developed the entire<br>supply chain and everything.<br>It's all packaged, it's all boutique.<br>It's pretty high-end coffee.<br>It tastes really, really good.<br>- At this point, I don't<br>like drinking other coffee.<br>I get upset about it<br>because it's not as good.<br>And so it's funny that I've<br>fallen for my own stuff.<br>I'm high on my own supply<br>pretty hard right now.<br>I just got done ordering 16 bags<br>and gave it out to my family<br>to try to convince them.<br>But it's just something where it's like<br>I didn't sell you a software product<br>that's going to influence your startup<br>that could potentially lead to disaster,<br>I didn't convince you<br>to do a bunch of stuff<br>that's going to change<br>your career, I just said,<br>"Hey, here's some coffee."<br>And it's like a fun experience.<br>- Yeah, it's fun, everything.<br>The humor on it is great.<br>People should go to terminal.shop.<br>- SSH terminal.shop.<br>- I'm speaking to people<br>that don't know what SSH is.<br>And there, you can read the command<br>and then figure out how<br>to use SSH in order to...<br>It's a kind of documentation, right?<br>- Yeah.<br>- On the website.<br>- If you can't use SSH,<br>you probably should just not<br>worry about buying our coffee.<br>Like that's the-<br>- You can learn.<br>- You can learn.<br>If you're active and<br>you're a computer person,<br>you'd like to launch the terminal<br>and feel like a hacker, go for it.<br>We even have subscriptions.<br>- What I would love to see...<br>This is how it came up I think<br>on the cursor conversation,<br>is that I would love it<br>if an AI agent did this,<br>like Anthropos computer<br>use or something like that,<br>actually took the action<br>of ordering the coffee<br>while it was programming.<br>- Yeah, like, "Hey, order me some coffee,"<br>and it actually go off.<br>"Give me dark roast." Order coffee.<br>It could actually go through<br>the whole flow of order.<br>- Yeah, the whole flow.<br>But even better, if you<br>didn't ask it to order coffee,<br>you asked it to do something,<br>and as a tangent, as a<br>side quest it did that.<br>Which is computer use does that.<br>They showed off that it's<br>able to go to I think Google<br>for some images, take a pause,<br>and then continue doing other stuff.<br>Anyway, yeah, super cool idea. Love it.<br>Speaking of which, let's talk AI.<br>- All right.<br>- You've been both positive<br>and negative on the role of AI<br>in the whole programming<br>software engineering experience.<br>As it stands today, what do you think?<br>What's your general view about AI?<br>What is it effective at?<br>What is it not so good at?<br>- Okay, my general view is<br>it comes down to something<br>that's pretty simple,<br>which is that if you're doing something<br>in which is very predictable,<br>AI is really nice.<br>When you're doing something<br>that is just not predictable,<br>AI is not very nice to use.<br>If you're using anything<br>that's more cutting edge,<br>AI will not be using it,<br>or AI won't be very good<br>at doing stuff with it.<br>It's not great at Zig because Zig is just,<br>say, less documented. It's<br>really great at TypeScript.<br>I think there's a lot<br>of interesting things<br>that are going to come down through AI<br>that I think a lot of people<br>aren't really prepared for<br>or thinking through.<br>TJ's the genesis of this<br>idea, but the idea that<br>I think there's going to be<br>a lot of market manipulation,<br>if you will, through AI.<br>Meaning, hey, you want to research,<br>say, best woodworking tools.<br>Someone's going to be buying an ad spot.<br>Someone's going to be buying<br>premium training data.<br>They're the ones that get<br>the big boosts in the LLMs.<br>But LLMs don't really have<br>to market as an advertisement<br>because it's not really<br>directly an advertisement,<br>they just had a more premium spot, per se,<br>in the training data; a little<br>bit extra learning to it.<br>It's like there's a lot of things about AI<br>that I fear upcoming.<br>A lot of it just comes<br>down to people not learning<br>or making the trade-off<br>where productivity is the<br>only thing that matters.<br>And I don't think productivity<br>is the only thing that matters.<br>If you want to build something<br>complex and difficult,<br>productivity is not the only thing.<br>You actually are going to<br>have to do deep learning<br>and pursue it beyond the basics.<br>And so I see AI as this really cool thing.<br>It feels like a magic trick.<br>I remember the first time I used it,<br>I got early access to GitHub Copilot.<br>In fact, Nat Friedman<br>saw my Twitch clip of me<br>asking GitHub for it, and he<br>sent me early access himself.<br>It was awesome.<br>And when I used it, it predicted<br>an if statement correct<br>and my mind was just absolutely blown<br>because I had nothing before then,<br>and now it's just like first time ever.<br>And I just remember thinking, man,<br>this is going to change<br>programming so much.<br>And then the more I used<br>it, the more I just...<br>For me personally, I<br>kept introducing bugs,<br>and I couldn't figure out why.<br>And what I realized is that I developed<br>I wasn't copiloting well, I<br>was autopiloting much better.<br>And my ability to read code<br>versus my ability to critically<br>think and write code,<br>they're definitely different<br>sets of skill levels.<br>I don't consider as well<br>when I just read code<br>as opposed to what I write code.<br>And so I struggled there.<br>- I do think that's a skill set.<br>- [ThePrimeagen] Yeah.<br>Skill issue for sure.<br>- Skill issue.<br>For people who are not<br>aware, that's a hashtag thing<br>sometimes used mockingly in this case.<br>There's several layers<br>mockingly, but also seriously,<br>meaning the criticism<br>is grounded in the fact<br>that you lack the skill<br>versus some kind of fundamental truth.<br>Yes.<br>- Yes.<br>- I think that that's the reason<br>I use actually Copilot cursor a lot<br>is for developing the skill of editing AI<br>so I can just learn how to<br>do that better and better.<br>Because I think as I do<br>that better and better,<br>I start to utilize AI better.<br>At this time, it is a bit<br>of a boilerplate code thing,<br>but you can do out of the<br>box novel design decisions<br>or tricky design decisions from scratch<br>but fill out stuff using AI<br>and then just learn<br>the skill of modifying.<br>I personally just...<br>It's more fun to program with AI.<br>Even when I delete a lot<br>of the code, it's more fun.<br>It's less lonely.<br>It's what I imagine<br>pair programming to be.<br>And I've never done it,<br>but it just feels like<br>that friction that you get<br>when you're staring at an<br>empty thing is not there.<br>Empty function, empty class,<br>it's just more fun, less lonely.<br>And I do think that a lot of<br>the easier type of coding,<br>it really helps with like<br>interacting with APIs,<br>basic things that I would<br>usually have to look up<br>to stack overflow for.<br>It's just really fast at that.<br>As example, just interacting<br>with the YouTube API.<br>The YouTube API documentation<br>is not very good.<br>And you can just load it all in there<br>and ask it to generate a set of functions<br>that access the API, all kinds<br>of read and write operations,<br>and it figures it all out.<br>Well, you do have to read.<br>You have to read and check everything.<br>And you start to develop<br>the skill of understanding<br>where it misinterpreted the task.<br>What is that skill?<br>I don't even know.<br>You have to be empathic<br>about what the AI, what<br>its limitations are.<br>A lot of the times that has<br>to do with prompt engineering.<br>You have to at the same time understand<br>what the AI is aware of.<br>What did you actually give it as data<br>to be able to generate the code?<br>A lot of times, we don't realize<br>that we're not giving<br>it enough information.<br>- Yeah.<br>- So you've to like...<br>Okay, okay, all right.<br>You have to be empathic.<br>Be like, okay, these are<br>the files it's aware of.<br>This is the specifics of<br>the question you asked it.<br>You have to imagine you're an intern<br>that doesn't know anything else.<br>Oftentimes, we want the AI<br>to just figure out the things<br>that's left unspoken.<br>But you can't know those things,<br>you have to specify those things.<br>And so you have to actually<br>be much more deliberate<br>and rigorous in the things you<br>specify, is to spell it out.<br>And so I just have this sea of<br>prompts that I have saved up,<br>and I'm building these<br>library of different templates<br>for prompts and it's a mess.<br>And I'm sure there's a lot of developers<br>that have this similar kind of mess.<br>A lot of it has to do<br>long-term with the tooling<br>that's going to improve that.<br>One, the systems are going<br>to get much more intelligent<br>when you don't need the nuance.<br>And two, there's going to be the tooling<br>that allows you to specify those things<br>and load it in correctly<br>and give all the context<br>that the system needs in order<br>to make the good decisions.<br>And maybe the system asks<br>you follow up questions with,<br>"Here's things you didn't make clear,"<br>all that kind of stuff.<br>A lot of that has to<br>do with the interface,<br>with the actual design of the tools.<br>Like we said with Cursor,<br>it's going to keep getting<br>better and better and better.<br>My sense is developers in<br>general should be learning this<br>to not be left behind,<br>to see how that can be<br>used as a superpower<br>to boost their productivity,<br>their effectiveness,<br>their joy of programming<br>versus be seen as a competitor to them<br>or something like that.<br>But for me already,<br>it's been a big boost to productivity.<br>If you measure the actual<br>how quickly you're able<br>to get a thing done,<br>it's been a big...<br>And measured not across minutes<br>and hours but days also.<br>Sometimes there's things I have to do<br>that are not that important<br>that I'll just out of<br>procrastination will push off.<br>- I know that.<br>- And AI helps me<br>actually get it done,<br>because that thing, the empty page,<br>like I mentioned before,<br>it helps me write the thing, get it done,<br>get it tested, ship the thing.<br>Maybe it's just because<br>it's just less lonely<br>to work with an AI.<br>I don't know.<br>I don't know if any of<br>that made sense, but-<br>- It all made perfect sense.<br>I really do like that phrase,<br>it makes it less lonely.<br>I think there's something<br>to that that's interesting<br>having just some level of interaction<br>that's not just like an LSP autocomplete,<br>having something that's<br>actually a little bit more<br>than just that where it<br>actually is thinking through<br>and you can see a different<br>thought and you're like,<br>"Oh wow, that's a way different approach<br>than I would've taken.<br>Hey, that's cool. I<br>like these kind things."<br>And the thing is that I'm<br>not a AI negative person.<br>I can see why people<br>really, really like it.<br>I used Copilot from when<br>Nat gave me the access<br>all the way up until about six months ago.<br>I used it for quite some time.<br>And I really did enjoy the<br>things I used out of it.<br>It did the opposite for me.<br>I felt like I was more<br>reviewing than writing<br>and I felt like I was more<br>just letting things slide<br>where I just didn't really<br>think too heavily about stuff.<br>And just I wasn't as engaged.<br>And so I'm like, "Okay,<br>something's kind wrong here."<br>And that's just a me personal thing.<br>I recognize that is not<br>how someone should approach these things.<br>That's not a good reason for<br>why you should or should not use AI.<br>I just don't think that that's right.<br>I could probably correct that<br>and figure out a better way to do it.<br>I've been meaning to<br>have another AI round,<br>and so I've been thinking about<br>maybe I just need to<br>spend two weeks in Cursor<br>and just fully embrace what does it mean<br>to be somebody like this?<br>And what can I do with these new powers?<br>Have they improved to the point<br>where they're actually good?<br>And for me, because a lot<br>of the decisions I make,<br>a lot of the little functions<br>I'm writing, it's not<br>because trying to write this<br>function to solve this problem,<br>it's because I'm writing<br>these functions or this set<br>not just to solve this problem<br>but because I know in<br>about another 2,000 lines<br>of code of building<br>all these other things,<br>I'm going to need to start<br>doing this next activity.<br>It's like I'm trying to really<br>try to chess move myself<br>into the exact things that,<br>as I let things go faster,<br>I kind of fall apart on that chess move.<br>And again, skill issues for on my behalf.<br>And I mean it in the<br>truest sense of the word<br>where it's like I'm making a critique<br>because I don't use it well enough.<br>- The better you're at programming...<br>I don't know if this is a general rule,<br>this is my anecdote data.<br>The better you're programming,<br>the less you want to use the<br>AI, the more gets in the way.<br>Like the good programmers...<br>- It's fair enough, as far as I can tell.<br>- The more beginner<br>programmers are much more happy<br>to use AI.<br>When I use AI, it's for basic for just...<br>I don't know if there's a better term.<br>It's not boilerplate, but<br>it's pretty easy programming.<br>And that kind of programming<br>is much easier to do.<br>The 10X, not to use the meme,<br>programmers that I know<br>that are ultra productive<br>and brilliant people, they hate AI.<br>They're like, "This is nowhere<br>close to what's needed."<br>There's something to that.<br>I still think they should be<br>using AI just for the learning<br>because it's going to get<br>smarter, it's going to get better.<br>It's the same thing,<br>it's like when you super optimize Neovim<br>or super optimize Emacs,<br>you may not discover new things<br>that are in the pipeline,<br>so it's always good to<br>be training in that way.<br>- Let me ask you a question<br>here just for my understanding.<br>You talked about this idea<br>that you have all these LLM prompts,<br>all this big backlog of messy LLM prompts<br>that you have these templates for<br>that you can do various actions.<br>You have these strategies of<br>making itself explain itself<br>and then do the right thing.<br>As far as I can tell,<br>that's really built into a lot of people.<br>Well, then you make this<br>phrase where you're like,<br>but then at some point, the<br>interface is gonna get better,<br>and maybe it can do a lot<br>of these things better<br>where I won't need that.<br>Then my question is,<br>well, is anyone actually falling behind<br>for not using AI then?<br>Because if the interface is<br>going to change so greatly<br>that all of your habits<br>need to fundamentally change<br>and it will be able to clarify<br>and make all those statements,<br>have I actually fallen behind at all?<br>Or will the next gen<br>actually just be so different<br>from the current one that it's like, yeah,<br>you're over there actually<br>doing punch card AI right now.<br>I'm going to come in at compiler time AI,<br>so different that it's<br>like what's a punch card?<br>- Obviously open question.<br>It's a fascinating one.<br>I personally think, yes,<br>you're falling behind.<br>Not you,<br>but if you're not-<br>- It could be me.<br>it could be me.<br>- not playing with it,<br>you're falling behind<br>because the thing I'm<br>doing with the prompts<br>is you're learning,<br>you're building up this<br>intuition about how AI works.<br>You're understanding what is<br>its strengths and weaknesses?<br>Not even the current version,<br>but the next version and so on.<br>What does it mean to teach<br>an AI system about the world?<br>What kind of information does it need<br>to make effective decisions?<br>I think that does transfer to<br>smarter and smarter models.<br>You'll need to make less rigorous<br>and specific in details<br>instructions over time,<br>but you still have to<br>have that kind of thing.<br>I think it's a skill of almost<br>empathy with an AI system<br>because it doesn't know...<br>You know what it's missing?<br>It's missing common sense.<br>It's missing long-term memory.<br>A lot of things, when<br>we talk to other humans,<br>they have a basic common<br>sense about reality,<br>and AI systems often lack<br>that kind of common sense.<br>And they also don't remember things.<br>You have to realize<br>there's a constant blank slate happening.<br>It's almost just a skill<br>of talking to an AI system<br>that I'm training.<br>And by having to write all those prompts<br>and communicating back and forth<br>to understand what kind of<br>prompts work better or not,<br>you build up that intuition.<br>And also just raw the skill of<br>reading somebody else's code.<br>Maybe for people who work on large teams,<br>that's a skill that's already developed.<br>For me, not so much,<br>so learning how to modify the code<br>that somebody else<br>written is a real skill.<br>And also, the other thing you mentioned,<br>which is considering another perspective<br>on a piece of code is really nice,<br>but it is also a skill to understand,<br>okay, this is what you did.<br>There's a skill to asking<br>a question that code<br>that's been generated such that<br>you can have a conversation<br>about the approach that was taken.<br>I think there's just a lot of<br>subtle, little skills involved<br>in a cooperative endeavor to code,<br>kind of like there was a real skill issue<br>between you and Teej when<br>you guys did the video<br>of two idiots, one keyboard.<br>People should go watch that video,<br>where you guys obviously sucked at it.<br>- Yeah, co-using.<br>- That was pretty cool,<br>which you guys did,<br>which is controlling one Neovim interface<br>from two different keyboards.<br>- Yeah, and then we each get an allowance<br>of certain characters or<br>motions we could perform.<br>- Yeah. And so you both had<br>to communicate together.<br>That's a real skill.<br>I'm sure you can get<br>super efficient with that,<br>but it just takes time to<br>learn that kind of thing.<br>So yeah, I think there's some value to it,<br>but I think there's a learning curve.<br>- I do want one thing to be pretty clear<br>is that I actually use AI quite a bit.<br>I just don't use it for programming.<br>And so one thing I've been<br>trying to get it to is<br>to be able to have a long interview<br>or understand what Twitch Chat is saying<br>and become Twitch chat<br>and be able to speak<br>as if it is Twitch chat.<br>Try to learn how to prompt<br>it in different ways.<br>And so I think those things<br>for me are just really fun.<br>I tried to get it to learn<br>how to play tower defense.<br>I made a tower defense game in Zig<br>and then made it play tower defense,<br>and then played a Claude<br>3.5 against OpenAI.<br>Claude 3.5 would do better<br>during the daytimes,<br>and OpenAI did better<br>during the nighttimes.<br>I don't know why, I have no<br>idea what was going on there,<br>but one would just start winning<br>and the other one would start losing.<br>It was just very strange.<br>And so it's just this, I'm<br>learning to prompt well,<br>but I'm learning to prompt<br>in a very different axis.<br>I just don't find it very useful yet<br>in programming.<br>- In programming.<br>And I should also say that I'm using it<br>in every walk of life, in every context.<br>I use that same kind of exploration<br>about prompts and so on,<br>I'm using and learning.<br>I think it legit is a<br>whole field in itself.<br>- Yeah.<br>- Prompt engineering<br>and how to interact with AI systems,<br>I think it's worth the investment.<br>Can you actually speak to that?<br>Because I saw you're basically pulling<br>from Twitch chat and having an LLM speak.<br>I didn't realize, I thought you're,<br>you're not reading the<br>exact chat messages.<br>- Yeah.<br>- You're doing kind of,<br>some kind of summarization?<br>- Yeah, so I try to go like a....<br>I ended up making like<br>eight queries off to OpenAI<br>where it's just like<br>the first thing is like<br>I have it have it like<br>a default personality.<br>"Hey, you're Randall, the manager,<br>you're a software engineering manager."<br>Kind of explain their<br>position, what they like,<br>what they don't like, and then be like,<br>"These are the list of<br>thoughts you have in your head<br>and you need to talk to this person<br>and ask them a question."<br>- This is amazing.<br>- "Give me 10<br>of these responses that you<br>think are probably thoughts<br>that you have and you want to ask."<br>Make it kind of give you a<br>list and then be like, "Okay."<br>Then re-prompt and be<br>like, "Hey, you're Randall,<br>you're this, this, this, this, this.<br>You have these 10 questions before you<br>and now you need to select one of them<br>and reword it in a way<br>that sounds more like you,<br>the engineering manager."<br>And I'm constantly trying<br>to make it iterate on itself<br>as opposed to just one-shotting it.<br>And I found if I iterate too much,<br>it loses what it was<br>originally trying to ask<br>if I don't do it enough<br>and it's just too<br>degenerate from Twitch chat.<br>And so it's like I have<br>a lot of improvement<br>to do with this idea-<br>- Just to clarify,<br>you're feeding in Twitch chat,<br>these are the thoughts.<br>You're a manager,<br>these are the thoughts<br>you have in your head,<br>pick out some of the<br>most profound thoughts?<br>- Effectively. It's like<br>depending on what I want it to do.<br>I'm trying to work on a<br>better system still for it.<br>- [Lex] Kind of brilliant.<br>- And so it's like, how can<br>I give voice to Twitch chat?<br>Can I make it so that I can<br>create adversarial characters<br>against Twitch chat or for Twitch chat?<br>Can I incorporate YouTube?<br>All that kind of stuff.<br>And how do you describe to an LLM<br>to role-play into its position?<br>And so just thinking through<br>those kinds of things.<br>So maybe I am having some prompt skills,<br>but it's just not in the coding world yet.<br>- Sure.<br>- One day I'll get there.<br>- I saw that you were playing<br>with different voices.<br>There was like a sexy voice?<br>- That started off as a French voice-<br>- French voice?<br>- and then it turns out<br>ElevenLabs just cannot do a French lady.<br>And when you do multilingual French lady,<br>she starts talking.<br>It's like, "What? What is this?"<br>- I tuned into one of your streams<br>and there's this lady<br>in a sexualized way.<br>- It became too funny.<br>And so we call her Not<br>French Stormy Daniels.<br>- Oh, nice.<br>- Yeah.<br>But I want to go back to the<br>AI and some of the aspects.<br>- [Lex] Sure.<br>- And so my big gripe with AI<br>has nothing to do with its capabilities.<br>It's exactly capable,<br>as it should be capable,<br>because that's what<br>people programmed it as.<br>The things that I really dislike is,<br>A, there's a whole group of<br>people that are just like,<br>"The end is nigh.<br>AI is here, you just need<br>to stop programming."<br>I cannot tell you, even you<br>mentioned Pieter Levels earlier,<br>he made some sort of tweet<br>and one of the person's responses was,<br>"No one in 2025 or whatever<br>should be acquiring hard skills.<br>You should rely on everything<br>for the AI effectively."<br>And it's just like these are<br>really damning pieces of advice<br>for young people.<br>Young people are being told<br>that you should never become<br>an expert in anything,<br>you should always offload.<br>And the problem is that<br>anyone worth any of their salt<br>will tell you that AI,<br>though can produce code,<br>is going to get it wrong<br>in a huge number of cases.<br>And as the code becomes<br>bigger or more complex<br>or more input, it's going to just start<br>kind of sloshing back<br>and forth between bugs.<br>And so if you don't have those hard skills<br>and you're not ultimately the<br>driver at the end of the day,<br>you're going to really<br>find some hard times,<br>and your ability to progress<br>will be directly bound<br>to how good the LLMs are.<br>So if you believe that the<br>LLMs will be vastly superior<br>to humans in the next year,<br>maybe that's a good bet.<br>But if they aren't,<br>then your skill ceiling<br>is bound to whatever they are.<br>And even beyond that,<br>there's just a level of<br>information problem, which is like,<br>Can the thing actually navigate larger...<br>Do we even have enough compute power<br>to be able to solve<br>things at this real scale?<br>And even if we did, if everybody<br>started using it right now,<br>"Do we even have the compute power<br>for everybody to use it right now?<br>There's a lot of kind<br>of bounding questions,<br>there's privacy concerns,<br>and I just don't want people<br>to make the immediate,<br>or what appears to be the obvious choice,<br>where you don't need hard skills,<br>you don't need these things.<br>Our life is already gonna be...<br>We just need to only think creatively.<br>It's like, no, I don't think so.<br>I think these hard skills<br>are going to be around<br>for quite some time<br>even with a massive improvement in the AI,<br>you're going to really be<br>needed to step in regularly<br>for quite some time as far as I can tell.<br>- But I also think even on top of that,<br>just even acquiring the hard<br>skills or whether that means,<br>programming from scratch, for example,<br>in the context of programming,<br>that's going to make you<br>better at steering the AI,<br>not just correcting the<br>AI, but steering the AI.<br>I think there is some kind of,<br>if you know how a computer works,<br>you can program Python better.<br>It's maybe counterintuitive,<br>but if you know the<br>low level abstractions,<br>some intuition around that,<br>you can steer the high<br>level abstractions better.<br>- Yeah.<br>- But that just seems<br>to be the case.<br>Unless of course AI becomes<br>like truly super intelligent<br>like many levels above,<br>but it's very unlikely in the short term.<br>And in the long term it's still good<br>as it gets better and better and better<br>to be able to ride the<br>wave of the improvement.<br>- Yeah, I'm on that team very much so.<br>- A lot of people have written to me,<br>I think a lot of developers,<br>programmers are really concerned<br>about the future of their profession<br>in the context of quickly<br>improving AI systems.<br>So do you think AI will<br>eventually replace programmers?<br>- The hard part about that phrase is<br>you use the term eventually,<br>meaning do I think in five<br>years, 10 years, a hundred years?<br>What does that term actually mean?<br>I think at some point<br>if we are able to scale,<br>if all things continue at the<br>current rate of improvement,<br>there does come a point where programming<br>as a hard skill does become unnecessary.<br>At some eventual point,<br>way, way down the road, yes.<br>I don't know what that point looks like.<br>I don't know when it's going to happen.<br>I don't even attempt to<br>make predictions about that.<br>But there are still some leaps<br>and bounds we need to make.<br>I mean even just societally,<br>there's plenty of companies<br>that don't even allow you to use AI.<br>I mean, there's just<br>practical problems that exist.<br>So that's a question I<br>just try not to answer<br>in the direct sense.<br>There will come a day<br>if humanity continues<br>and all things continue in<br>a good positive direction,<br>where a lot of skills<br>will go out the window<br>due to immense computing systems.<br>So, yeah, I'll give you that one.<br>But it's just like if I<br>don't think it has anything<br>in the near term, there's<br>been no computer improvement<br>up to this date that did<br>not result in more jobs.<br>- Yeah, absolutely.<br>I would say that I think it depends<br>how you define programming also,<br>because when the community<br>moves from assembly to C, from C to,<br>I don't know, Python and JavaScript,<br>that's evolution.<br>That's really painful for a lot of people<br>who are used to programming<br>that lower-level language,<br>so there's going to be<br>a continuous evolution.<br>And maybe that means with AI,<br>there's going to be<br>more and more evolution<br>towards natural language<br>as part of the tool chain<br>like being able to learn<br>how to write proper prompts.<br>Yeah, because natural<br>language is still a language.<br>And in the long term, it's possible<br>that a large percentage of<br>programming is natural language.<br>There are probably still going to be<br>some percentage that's not,<br>that's going to be extremely<br>structured language.<br>- Right now, I don't think we are<br>anywhere near natural<br>language being possible<br>because it's ambiguous.<br>And I think what we'll end up seeing<br>as people push really hard into this,<br>you're going to see some<br>sort of pseudo-lang,<br>which is going to be a language<br>for AIs in which you prompt,<br>which is going to be less ambiguous.<br>People keep striving towards<br>the less ambiguous state.<br>And at that point you're just programming<br>or just programming yet another evolution<br>into a higher order language.<br>And perhaps that is a future<br>in which people will have<br>a more terse language.<br>I'm just not sure how much<br>more terse it can get.<br>I mean, all I see is that<br>if you say natural language<br>can be used in the pipeline,<br>you've just made that many more people<br>can become programmers, which<br>means that much more software<br>will eventually be created,<br>which means there's<br>that much more software<br>that will need to be maintained,<br>and just becomes a real<br>big snowballing effect.<br>- But there's just people<br>who are programmers<br>who are worried about their jobs.<br>Not a complete replacement,<br>but maybe a rapid evolution<br>of what it means to be a programmer.<br>Like you mentioned, if<br>natural language becomes a way<br>that you can communicate<br>or you can program,<br>that means the pool of people<br>who can get programming<br>jobs changes rapidly,<br>so they're really concerned.<br>- And to some extent,<br>because no matter how much we<br>want to say how good AI is,<br>there comes a point<br>where there exists a bug,<br>there exists a large piece of software<br>in which to describe the change<br>requires just pages and<br>pages of description<br>to the point where it is<br>significantly just faster or easier<br>for someone to just whip something out.<br>There's definitely a balance there,<br>it's not like a perfect trade-off.<br>And so I think people<br>need to quit worrying<br>and think about how they<br>can integrate it and try,<br>like prove it to themselves.<br>Do they actually make<br>themselves irrelevant?<br>- And if you truly make<br>yourself irrelevant,<br>I would challenge you that you're already,<br>you're just doing something<br>that was just slightly too<br>complicated to automate.<br>If you're only writing<br>just straight up crud apps<br>from backend to front end<br>and simple table displays,<br>yeah, maybe we just couldn't<br>quite automate that away<br>and now we just have something<br>that can just do that a little bit better,<br>so now that's automated away,<br>but that's not really programming.<br>That's almost like building<br>Legos at that point,<br>where the designs are already set,<br>you just simply have<br>to move piece from bag<br>into correct position.<br>- Yeah.<br>Is there something you recommend<br>how a developer or programmer<br>could avoid the situation<br>where AI can automate them away?<br>- I think that the bigger<br>the project you can manage,<br>the bigger the thing you can<br>build, the more understanding<br>both down and up the stack you can go,<br>the more valuable you become.<br>Because if you understand<br>how to build something<br>in the front end,<br>okay, well, now you kick off<br>some LLM task of some sort,<br>that's going to go off and<br>make a change to the front end.<br>Okay, while it's doing that,<br>you can go and kick off<br>something in the CLI tool,<br>you can go and you can go kick<br>off something somewhere else.<br>And as these things<br>come back with results,<br>you can review the results,<br>make sure it's the way you want it,<br>change it, commit it, go to the next.<br>You only become more,<br>as you said in the end,<br>more productive if we reach this state<br>where it's truly able to do that.<br>- I think there is like a skill<br>to working together with AI,<br>which is why I'm kind of excited<br>to watch you keep trying to do it.<br>- [ThePrimeagen] Yeah.<br>- It's like we don't<br>know how it fits exactly,<br>but it feels like AI should<br>be a boost to productivity.<br>And I definitely think it's a boost<br>to just the joy of programming.<br>I think there's a lot of people,<br>yeah, it's a job, but it's<br>also a source of meaning,<br>a source of joy.<br>Programming is fun, you're<br>creating something cool,<br>and also potentially<br>that a lot of people use.<br>- There's this one thing that<br>just really frustrates me,<br>and this is kind of going<br>into the Devin category,<br>which is that I want an intern that cares.<br>- [Lex] Yeah.<br>- You don't get that out of<br>an LLM. It does not care.<br>Meaning that I don't want<br>it just to make a UI for me<br>that displays these icons like<br>I asked, I want it to care,<br>I want it to think about it,<br>I want it to present to me<br>and me being like, "Oh<br>yeah, yeah, that's great."<br>And then me to make changes.<br>And then later on it's like,<br>"Actually, I really rethought about this<br>and actually it'd be way<br>better if we change..."<br>It doesn't actually care about the craft.<br>But when you work with an intern<br>or you work with somebody else, they care.<br>When they factor something,<br>they actually go over and go,<br>"Oh yeah, this is actually kind of bad.<br>I'm going to come back to that."<br>They finish this, they go back over here<br>and they make this even better.<br>They actually care about the thing itself.<br>It's a completely different experience.<br>I just want something that also cares<br>that wants to make the thing better,<br>not just simply accomplish the task.<br>And I know I'm asking way<br>too much that's not...<br>Now we're getting into<br>Blade Runner's level AI.<br>I just want something that<br>it just feels like I'm missing that,<br>where it's just like it<br>will complete the task<br>to whatever level it understood<br>what I was prompting,<br>but it doesn't actually care about it.<br>- I mean, there's so<br>many aspects to caring<br>versus the trivial version of<br>that is a kind of restlessness<br>where you want to keep improving,<br>and I think that is very much AI could do,<br>where it constantly just ask itself,<br>"Can I make this better?"<br>And if it keeps doing that,<br>it probably is going to take<br>it to some ridiculous place,<br>so actually it's also<br>knowing when to stop.<br>I think developing something<br>you can call taste,<br>which is like trying,<br>working extremely hard,<br>constantly improving<br>until it just feels right.<br>This is it.<br>And I think that is a thing<br>that AI is not good at<br>where it's just like, "Yes, this is it."<br>- I've had write iterated<br>three times and three was the-<br>- Yeah, that's it. We're now there.<br>And I think ultimately that<br>is what humans are amazing at,<br>which is like knowing<br>when something is right<br>like, "This is it."<br>Especially as you understand,<br>as you develop taste in<br>a particular industry,<br>in a particular context<br>application, knowing like,<br>This is it. Yeah.<br>The rounded corners on this<br>button, that's exactly that.<br>That's beautiful.<br>So it's just a sense of<br>beauty, a sense of function,<br>and efficiency, and so on.<br>Yeah, but humans could do<br>almost like supervision of<br>AI systems in that context.<br>- Yeah.<br>- Yeah. You've ranted about<br>Devin just full of rage.<br>- I mean, first off,<br>the people that run<br>Devin are extremely nice.<br>I want that to be understood.<br>I don't have some sort of upsetness<br>against them or anything like that.<br>Second, Devin, it's like the full package<br>when it comes to programming.<br>So it's going to have, you're<br>going to give it a task<br>and a repo, and it's going to go through,<br>it's going to try to understand<br>the repo and the task,<br>make the change to the<br>repo by exploring it,<br>then actually make a commit to GitHub<br>and explain what it did, so<br>that you can have like...<br>So hopefully you have<br>this whole offline thing,<br>which is the other part of this AI part<br>that I actually really<br>like, where it's just like,<br>"Go fix this thing."<br>Then I can just go and<br>unbroke and fix this one thing<br>and come back and go, "Okay,<br>good enough, merge, boom."<br>I want that kind of running,<br>being able to complete things.<br>I think the ideal solution is that<br>you can start giving it small bugs<br>and it goes and fixes these<br>bugs and you can just come back<br>to these backlog tickets<br>that no one ever does,<br>and it actually starts going<br>through these backlog tickets,<br>and it's actually a<br>really amazing experience.<br>So I love the idea.<br>I think we can all agree<br>that that sounds great,<br>but every time I've done it<br>and I've asked it for many<br>and I try to keep narrowing<br>down the problems,<br>the more narrow the<br>problem, the better it does.<br>So if I'm like, just<br>add one singular icon.<br>And when it gets clicked,<br>I want you to do this<br>just console, click me.<br>At least create me an SVG<br>and place it so it's nicely placed.<br>The more narrow the task,<br>the more likely it's to be successful.<br>There's like a certain level of specifying<br>where if you specify too much,<br>it just like can't do it.<br>If you specify too little,<br>it just does weird things.<br>So it's kind of like<br>this very kind of fun,<br>unique way you have to<br>play the balance game.<br>But so far, every time I do these things,<br>I always end up going,<br>"Gosh, I should just<br>get better at Tailwind<br>and write it myself,"<br>because I always go back<br>and I just rewrite it,<br>and then it's just like,<br>"Dang it. What am I saving at the end?"<br>I feel like I'm not saving anything yet.<br>And it's just like this,<br>"I want it so bad."<br>I actually want AI to be great<br>because then I can really go fast.<br>I mean, I can go amazing fast,<br>but then I always just go,<br>"Gosh, I should have just<br>learned Tailwind myself<br>to like the nth degree and just go fast."<br>- Yeah, we should also<br>mention that debugging,<br>this might be intuitive<br>or counterintuitive,<br>AI is really bad at.<br>- Yeah.<br>- Like that is<br>one of the hardest...<br>It actually makes you realize<br>how special humans are<br>and how difficult the<br>task of debugging is.<br>Obviously, for trivial debugging,<br>maybe you can find bugs,<br>but that is the real art of programming<br>is finding bugs, logical bugs,<br>extremely complicated<br>rare bugs, edge cases.<br>AI can assist, but man,<br>the hard ones really<br>require so much context,<br>so much experience, so<br>much intuition from,<br>again, operating in a<br>fog full of uncertainty.<br>It's hard.<br>- Yeah.<br>- Of course AI could maybe create logs<br>and do traces and do some kind of<br>loading a huge amount of<br>data that humans can't,<br>but ultimately that just means<br>it could be a better<br>assistant in debugging<br>versus the actual lead debugger.<br>- Yeah. I mean, it'd<br>be great if they could.<br>I mean, the more it can<br>do that, the better,<br>because as far as I can tell,<br>correct me where I'm wrong on this,<br>current state debugging is<br>really, it looks at the code,<br>it looks at the bug problem,<br>it just kind of tries to text-predict<br>where it's most likely accurate,<br>and then just tries to fix that spot.<br>And so it's like it's likely this spot,<br>you said admin panel, it's<br>slightly off, this, this, this.<br>It's probably this location,<br>which could actually be a<br>really great way to do search,<br>let me do semantic searching,<br>point to me where this is,<br>because maybe that is a really great way<br>to navigate large code bases.<br>It's like smart intelligent search.<br>As opposed to trying to<br>make it do the thing,<br>ask it to just help you do the thing<br>in pinpointing problems.<br>I'd love to see more of that,<br>because that's for me is<br>like the exciting part.<br>And there's this really great article<br>by creator or maintainer of curl,<br>it's the I in the LLM<br>stands for intelligence.<br>And he writes curl and maintains Curl.<br>Curl has been inundated with<br>security problems and all this,<br>and it's all from LLMs being like,<br>"Oh, I found a security flaw.<br>Here's the security flaw,"<br>details it out in the code.<br>And he's just like,<br>"Okay, how did you<br>reproduce that? Show me,"<br>because if you look at<br>the code right here,<br>that's actually an impossible<br>situation you're speaking of.<br>And it's just like going in these circles<br>and security right now is being inundated,<br>these bug bounty programs<br>are being inundated<br>by LLM-submitted responses<br>because they can't<br>actually analyze the code<br>beyond just like basic text prediction.<br>"Oh, this is a stir copy.<br>Stir copy is commonly referred,<br>blah, blah, blah, blah.<br>Boom, there you go. Here's the bug."<br>And it's just like, "No,<br>that's actually impossible<br>because the if statement right beforehand<br>leaves the function if<br>the string is too long,<br>so it's like we don't<br>even run into this case.<br>It's impossible what you're saying."<br>So debugging is very interesting.<br>- Yeah, I mean, that<br>for me would be the big,<br>if it can solve that, not<br>solve that, but improve that,<br>that would be huge, whether it's agents<br>or just LLMs integrated into IDE.<br>- I think there's this whole idea,<br>I call it a denial of attention.<br>I think there's an entire attack vector<br>that's going to be happening.<br>We're using LLMs to<br>generate fake bug reports,<br>fake all these things to<br>just actually effectively<br>to demotivate<br>and hurt open source maintainers.<br>Polykill was the first bug that<br>kind of had this experience,<br>is this denial of attention<br>where an active malicious<br>maintainer just hounded the owner.<br>And then a white knight came out<br>and offered to buy some<br>stuff from under them.<br>And when they bought it,<br>they actually replaced it<br>with a malicious piece<br>of code and then used it.<br>So there's this whole security world<br>that's developing around using these<br>in a very aggressive format.<br>- I mean, it's a fascinating<br>world we're entering into,<br>but I do agree with you<br>that human developers will<br>be a huge part of that world.<br>- Yeah.<br>- That the job might evolve,<br>but it's going to be there.<br>If I can, I didn't<br>really look at this page,<br>I thought it would be<br>cool to go over with you.<br>This is, again, the-<br>- Stack overflow, my favorite.<br>- Stack Overflow Developer Survey,<br>talking about their sentiment<br>and usage of AI systems.<br>The general sentiment of, yes,<br>61% say yes, they use it<br>and 25% say no, don't plan to.<br>So majority use it,<br>majority have a favorable<br>sentiment over it,<br>favorable or very<br>favorable or indifferent.<br>That's like looks like over 90%.<br>- That's really surprising that<br>that many people just have<br>no plan in looking into AI.<br>As much as I don't like<br>using it for coding,<br>I hope one day I can use it more.<br>And so it's like, to me,<br>I'm always looking for the next thing.<br>I'm just surprised that people are, that,<br>I guess obstinate for it.<br>Obviously, the second one,<br>the AI tool sentiment,<br>it must be only the users who responded<br>to the top two of that first one<br>just given the amount of respondents.<br>- [Lex] I wonder if no and<br>don't plan to are people<br>who have tried it and quickly<br>built up the intuition like,<br>"This really sucks."<br>- Yeah.<br>- So it could be<br>like experienced programmers.<br>They're like, "No, this is not<br>making me more productive."<br>81% agree that increasing productivity<br>is the biggest benefit that<br>the developers identify<br>for AI tools.<br>Okay, so this is, what are the benefits?<br>Increased productivity, speed up learning,<br>greater efficiency,<br>improve accuracy in coding,<br>make workload more manageable,<br>improve collaborate.<br>Where's the fun, increased fun?<br>I would say that's like number one for me.<br>- Maybe speed up learning is<br>like a subcategory of fun.<br>If you're able to learn more<br>and be able to become better.<br>To me, that sounds good.<br>- [Lex] I don't know.<br>It's different because<br>productivity is part of fun too.<br>There is just a lightness.<br>I mean, maybe improved collaboration,<br>all of these elements for sure.<br>- My time using Copilot,<br>there was certainly a level of wonder<br>that would happen for quite some time<br>where it's just like, it's<br>just amazing what it can do.<br>- Yeah.<br>- I'm just super impressed<br>by what it can do, even<br>though I don't use it.<br>It's amazing to me that we have something<br>that can even get that close.<br>- [Lex] In terms of accuracy of AI tools,<br>only 2.7% highly trust.<br>- [ThePrimeagen] I would say<br>that you have to be very green<br>to think that you should<br>highly trust an AI output.<br>You should be very skeptical.<br>- [Lex] Yeah, I don't know where I stand.<br>Probably somewhat distrust.<br>Highly distrust seems aggressive.<br>- It does seem a little, true.<br>You definitely be in the somewhat like...<br>You should always assume<br>that there's something wrong,<br>and then from there you<br>can go and challenge it.<br>- [Lex] And then estimation<br>of whether AI can handle complex tasks,<br>most people don't think it<br>can handle complex tasks.<br>I mean, it seems like<br>people have a good sense<br>of what it's able to handle and not.<br>- I would argue that people<br>don't have a good grasp<br>of what complex is in programming.<br>- [Lex] Sure, yeah.<br>- If you say, "Write me quicksort,"<br>some people will think<br>quicksort's super complex.<br>But I would argue that that's actually<br>probably the simplest thing<br>you could ask an AI to do.<br>Things that are so well documented,<br>it's going to do a great job at that.<br>- Yeah, probably high-level<br>design decisions,<br>which people don't even<br>use AI for right now,<br>I guess agents are supposed to<br>be doing that kind of stuff.<br>That's probably the most difficult thing<br>or the most impactful thing,<br>or the most difficult<br>thing is finding bugs.<br>- [ThePrimeagen] Yeah.<br>- [Lex] AI tools next year,<br>writing code, and so on.<br>- [ThePrimeagen] Now,<br>this one, the ethics part.<br>I'm actually super curious<br>your take on the ethics.<br>Will we see Europe laying<br>down some new regulations?<br>- [Lex] Oh, boy.<br>- [ThePrimeagen] What about artists?<br>What about people that are really...<br>Because the difference<br>between coding and artists<br>is very, very simple.<br>If you gave me a sheet of<br>paper, I could draw you a crab.<br>You go, "That's a crab."<br>But you can't do that with coding.<br>It's like it's right or it's wrong.<br>There's not a variation of interpretation<br>for what a crab is.<br>It's like, "No, you cannot<br>make that statement."<br>It's very bounded in what it can express.<br>And I could see why artists,<br>that's a very frustrating point.<br>And then who gets rewarded for all that?<br>And then there's like the whole thing<br>with coding and licenses.<br>How much of it is GPL<br>licenses, do you think,<br>they've scraped and used as training data?<br>GPL forces open source.<br>What are you going to do with that one?<br>That means your model might<br>need to be open source.<br>OpenAI may have to get forced open,<br>all their previous stuff<br>if there's any hint of GPL.<br>- Yeah, that's a weird one.<br>That's a really weird one<br>because most of these models<br>I think are training on data<br>they don't technically have<br>rights to be training on.<br>- Yeah, there's a lot of questions.<br>- There's an unspoken,<br>it's a real Wild West.<br>- Because you could imagine<br>that, I always use Europe<br>because they tend to have like<br>maybe the most consumer<br>protection laws out there.<br>You could imagine what happens<br>if a law came down that said<br>that if you used a model that<br>produced GPL potential code,<br>you have to open source?<br>How many companies are going<br>to be like, "Oh my gosh"?<br>Like, "You have one year<br>to get rid of all code<br>that was generated that's<br>potentially GPL-sourced<br>from a model."<br>You could imagine just the sheer panic<br>that's going to happen.<br>It'd be a fire sale of code.<br>- So given all that,<br>can you give advice to young programmers?<br>This is another question from Reddit,<br>the infinite wisdom of Reddit.<br>"What should a person<br>in their early 20s do<br>to move forward in the tech industry?"<br>And this is an interesting<br>addition to the question,<br>"And by doing it,<br>will this be walking on<br>someone else's path?"<br>- I am going to try to<br>answer that question,<br>I guess the best I can,<br>which I think that if you're<br>entering into the tech world,<br>one of the hardest pieces of advice<br>that I took a long time to learn was<br>I became enamored and addicted.<br>Obviously, we talked about that I program<br>for way too many hours,<br>forgetting to spend the<br>time I needed with my wife,<br>with my friends, all that stuff,<br>like totally wrapping<br>myself up into one activity.<br>I think though it made me who I am,<br>it was probably an unhealthy activity<br>and probably not a wise activity.<br>And so the best advice I can give is that<br>you got to develop the love,<br>the skill, the desire for it.<br>Whether that's just only using AI agents,<br>programming yourself, using<br>Zig or programming JavaScript,<br>whatever that flavor is<br>that's going to get you<br>coming back every single day,<br>getting the reps in the gym,<br>if you will for programming.<br>But also knowing how to<br>value what is valuable<br>and not getting lost in the<br>sauce where you're just so stuck<br>on trying to make the<br>next greatest startup<br>that you sacrifice your health,<br>you sacrifice your relationships.<br>Or even worse, you<br>sacrifice your own morals<br>to take certain shortcuts<br>that you probably shouldn't be taking<br>in life to be able to<br>achieve these things,<br>because I'm sure there's<br>hundreds of horror stories<br>you could hear where people<br>definitely shortcutted their<br>morals for monetary success.<br>- Yeah, I mean, the<br>golden handcuffs comfort<br>can destroy the soul in some sense.<br>Yeah, so that's really<br>important to remember.<br>There's young people kind of thinking,<br>"Do I even want to be a programmer now?"<br>It seems like AI is<br>getting better and better<br>at programming.<br>If they were trying to make that decision,<br>would you still say,<br>"Yeah, if this is something<br>that fills you with joy"?<br>- I still want my kids<br>to learn how to program<br>if I can answer that, if<br>that's a good enough answer.<br>- Yeah, that's a really<br>- In the sense that<br>- Powerful answer.<br>- my kids are<br>decade younger than a young<br>person trying to learn<br>how to program right now.<br>And so if I want...<br>I'm hoping that my kid can run and build<br>whatever he wants in Roblox.<br>I'm showing him ChatGPT and be like,<br>"All right, let's ask<br>questions. How do we do this?"<br>It's still extremely confusing for him<br>to do all these things.<br>And so it's like, "Let's do this."<br>I want him to learn and be effective,<br>and maybe one day he has to throw away<br>all those skills in 20 years.<br>But I bet you that whatever<br>skills he threw away<br>or whatever hard skills<br>he had to throw away,<br>an entirely new field that<br>none of us have thought about,<br>just like if you would have<br>asked somebody in the '70s<br>about social networks, they'd be like,<br>"What the heck are you<br>even talking about?"<br>Things will exist in the future<br>that are going to be massively different,<br>and crazy, and exciting.<br>- Maybe in virtual reality.<br>- [ThePrimeagen] There you go.<br>- Maybe all of us actually down the line<br>will just be building video games.<br>- Just entertainment for all,<br>the brave new world of our world?<br>- Well, I think entertainment<br>is a kind of trivialized version<br>of what a video game could be.<br>It's like, what is the<br>purpose of life anyway?<br>I mean, it could be a deeply<br>fulfilling video game.<br>It doesn't have to be<br>just like dopamine rush.<br>It could be educational,<br>it could be scary, it<br>could be challenging,<br>forcing an evolution,<br>the leap into adventure<br>that it makes up a fulfilling life.<br>That could be video games. Who knows?<br>Especially in virtual reality.<br>I tend to...<br>That's the other thing. I<br>play a lot of video games.<br>I think there's a lot of room<br>to make video games deeply fulfilling,<br>like there's a lot of<br>space where that can go.<br>- I didn't know you played<br>a lot of video games,<br>because when I asked you specifically,<br>"Should I play World of<br>Warcraft or do Advent of Code,"<br>you're like, "Advent of<br>Code, Advent of Code."<br>- Oh, well, that might mean<br>I've never played World of Warcraft<br>because there's certain games I avoid.<br>Fortnite, by the way,<br>I think was one of them<br>because I was worried<br>it'd become too addicted.<br>- [ThePrimeagen] Yeah, yeah.<br>- So there's certain games I just know<br>I won't get super addicted to.<br>Like for example, I'm<br>terrified of Civilization.<br>I have never played a Civ's<br>game because I'm worried.<br>I'm worried the dark path in my lead<br>because there's some games<br>just really pull you in.<br>I'm much better with,<br>that's why I play Skyrim.<br>I can play these games or a Baldur's Gate,<br>and moderate how much I play.<br>And they could be like<br>a lifelong companion<br>versus an addiction<br>where it's like sunrise<br>and you're like, "What's<br>happening with my life?"<br>And I find myself naked<br>behind a dumpster somewhere<br>just wondering what happened.<br>Yeah, so that's how I<br>choose my video games.<br>- You're not the first person<br>who has specifically<br>called out Civilization.<br>- Yeah.<br>- I've had more<br>than one person, also very<br>high up in the tech world,<br>be like, "Civilization is my downfall.<br>If I get near that game, I'm done."<br>- [Lex] Yeah. So.<br>- I've never even played the game.<br>Now it makes me be like,<br>"Dude, I got to give this<br>a try. That sounds crazy."<br>- Yeah, and the new one<br>is actually supposed to<br>be really, really good.<br>What were we talking about? Yes.<br>For that same young developer,<br>is there a trajectory through jobs<br>that you could give advice on?<br>So you started out with Schedulicity?<br>- Yeah, that was my first full-time...<br>When I had the government<br>contracting one before,<br>that wasn't quite full-time.<br>It was in C. It was a lot of fun.<br>And then building my own<br>startup for quite some time.<br>So if you count either<br>of those as full-time,<br>then those would be the full-time.<br>Schedulicity was the official on the docs.<br>- Is there some value to jumping around,<br>working in one company<br>and another to try to figure<br>out what brings you joy?<br>- I think there's a lot to that<br>because not every job you're<br>gonna get is gonna be great.<br>Now, your first job you could get<br>could make you think you hate programming.<br>It happened, I did an<br>internship at a place<br>and I keep on surprising you<br>with more kind of things<br>I did in the past,<br>did an internship at-<br>- Fuck. You did so many things.<br>It's incredible.<br>- At a place called Total<br>Information Management System.<br>Remember when I talked<br>about that hours ago,<br>about healthcare and that<br>and industrial shipping and all that?<br>It was a C-sharp shop.<br>It was so bad that after I did that,<br>I went and changed my major<br>to mechanical engineering<br>first semester in college.<br>- Oh, boy. Oh, boy.<br>- I thought I,<br>"Okay. Actually I like computer science.<br>I hate the programming."<br>So just because you've had a job<br>doesn't mean it's going to be the one.<br>And the thing is, here's<br>the best part though,<br>if you get a job and you like it<br>and you want to do it and it's exciting,<br>you don't need to change.<br>I think a lot of people are like,<br>"Oh, I got to find the next thing.<br>I've been here for two years."<br>There's of this, you got<br>to move around mindset.<br>I don't think you have to move around.<br>I don't think it hurts your career.<br>Because if anything, you'll<br>gain more responsibility<br>and you'll be able to talk<br>with way more authority.<br>And the next time you interview,<br>you're going to be way more into like,<br>"Oh yeah, I had to get these<br>X people and these X people<br>to be able to do all this stuff."<br>And it's like you can talk<br>with much more authority<br>if you stay at a place longer.<br>And that's nothing but<br>benefits in my book.<br>It's only if you stay at a<br>place because you're afraid<br>or you don't want to...<br>You already have something<br>that works for you<br>and you just never want to<br>change and you're just like,<br>"I get to go in and just<br>be completely mindless."<br>I think if you go mindless<br>for a couple years,<br>you'll find yourself...<br>That's the only real danger.<br>You just come out with nothing at all.<br>- Especially when you're<br>younger, that's the whole point.<br>"Take the risk.<br>Take the leap out to the next<br>thing, to the next thing."<br>And not for money, but for<br>just personal joy, joy.<br>- And money could get at the<br>end, that's the best part.<br>When you don't strive for the money,<br>sometimes the money just shows up anyways.<br>- Yeah.<br>And some of the, what<br>makes life worth living<br>is the people you work with, a good team.<br>Some of it's not to be<br>generic, but culture matters.<br>It's whatever makes you happy.<br>For example, I just had<br>won't call out places,<br>but there's certain companies<br>where everybody is very nine to five.<br>And even if the work is exciting,<br>they don't work hard enough I would say.<br>I'm one of those people<br>that likes to go all out,<br>likes to be surrounded by<br>people who are super passionate.<br>Now to be fair, a lot of them<br>don't have families or don't-<br>- Yeah.<br>- It's a fascinating choice.<br>I really don't want to<br>talk down on any choice<br>like work-life balance or not,<br>I think both are beautiful paths.<br>And if you really derive a lot of value<br>from joy from your work,<br>going all in, at least for<br>some stretch of your life<br>is a beautiful thing to do.<br>Just all out,<br>full-on passion, sacrifice<br>a lot of social life,<br>all that kind of stuff.<br>I don't know. That<br>could also be beautiful.<br>- There could be something<br>very, very exciting about that<br>in some sense, especially if<br>you're building your own thing.<br>I could imagine that<br>would be very exciting.<br>If I was Amazon, Jeff<br>Bezos building Amazon,<br>one could imagine that those early years<br>were probably very rough<br>and the amount of hours<br>he probably put in were very, very rough.<br>But I will say that<br>there's this unique aspect<br>in our culture where we make<br>this as an equal trade-off<br>between family or work,<br>like "Oh, you do or you<br>don't have to have kids."<br>And my only real notion<br>with that one is that<br>you will never know your capacity for love<br>until you have kids.<br>You just don't know.<br>And some people are like,<br>"Oh yeah, but I love my dog."<br>It's just like I loved my dogs too.<br>And then I had kids and now my dogs are,<br>"They're all right. I like them."<br>- I get it.<br>- I could come home<br>and I pet Indy and I'm like, "Oh, Indy."<br>And then I'm just like, "Okay, bye Indy."<br>I can't even describe the<br>difference between the two,<br>it's not even the same.<br>And so that trade-off making<br>is no one can tell you<br>what it's like because<br>there's a real reality<br>that's right now, and I'm<br>sure, I'm 100% positive<br>this is with my wife as well,<br>where if right now we got news that said<br>you have some medical<br>procedure where if we do this,<br>you will die, but your kid will live,<br>there's not a question in my<br>soul that I wouldn't do that.<br>If I could look into the future<br>and if I had to die right now<br>knowing that my kids<br>would've a better life,<br>they would be happier,<br>they'd be more fulfilled<br>and all those things, I guarantee you<br>either my wife or I would<br>take that every single time.<br>It's just like you'll never be able<br>to say that about most things.<br>People will jokingly say that<br>until it's actually on the line.<br>But it's like with that, you<br>just have this ferociousness.<br>I can break out and sweat thinking<br>about somebody fictionally<br>pushing my kid to the ground,<br>actually get real adrenal<br>responses flowing through my body.<br>So it's just such a different world<br>and it's hard to explain.<br>And you could never have convinced me<br>when I was young that it'd be this big.<br>- [Lex] Yeah, yeah.<br>- Yeah. I thought I knew.<br>I didn't know.<br>- But to add on top of that,<br>some of the most successful people I know,<br>some of the most productive<br>people I know have kids.<br>So I don't know if it's even a trade-off.<br>That love you feel, it seems<br>to be a catalyst for like<br>to make sure you have less time,<br>but you're going to use that<br>time better to be productive.<br>- I would argue that it definitely<br>changed a lot of my life<br>and how I approach<br>problems and everything,<br>in a very different way.<br>- Let me ask some random<br>questions from Reddit.<br>On a scale of one to 10, how<br>much do you hate every product<br>Microsoft has ever created<br>and why is it a 10?<br>I think we covered that.<br>- We haven't technically covered it.<br>- There you go. All<br>right, go ahead, go ahead.<br>- Okay, the only thing<br>I'll say is that<br>- Use your time.<br>- I don't like that Microsoft<br>pretends to be the good guy<br>when what they really<br>wanted to get you addicted<br>to their products, to get<br>you to use their products<br>as much as possible so they can extract<br>as much money out of you.<br>- Well, in this world, are<br>there really good guys?<br>- That's a great point. I would<br>argue Neovim is a great guy.<br>There's no way they can make money.<br>Justin Keyes is the benevolent dictator<br>and he thinks deeply about the product<br>and tries to make it the best as possible.<br>Whereas something like Microsoft,<br>they made VS Code as a loss leader.<br>Copilot's probably<br>operating on a loss leader.<br>These things are all<br>getting you so tied into,<br>GitHub, remote workspaces, CI, Copilot,<br>you become this trapped<br>in permanent person<br>and if that price rises,<br>the switching cost is<br>so great at some point<br>that you'll never be able to switch.<br>That's my only fear is that<br>Microsoft was once accused<br>of EEE and it feels like<br>they're EEEing again.<br>- Yeah, I'm nervous about<br>criticizing a good thing<br>because you could see an<br>incentive to do that good thing,<br>like Google creating all these services<br>that don't make money<br>like Gmail for example,<br>you can cynically say<br>they're only doing that to<br>tie you into an ecosystem<br>so they can basically keep you for life.<br>But also it's awesome<br>that they created Gmail.<br>- Yeah.<br>- And they created an<br>incredible product, so...<br>- I can side with you on that one.<br>It is a good product. VS<br>Code is a good product.<br>- Yeah.<br>- Now, I think,<br>don't put that on the...<br>But it is fine. They did a great job.<br>- Yeah, so there is going<br>to be financial incentives<br>behind some of these companies.<br>And by the way, me<br>defending, not defending,<br>but saying positive things about Microsoft<br>is just so I could talk shit to Prime.<br>But that's...<br>- I love that by the way.<br>- Yeah, Linux is my first and<br>last love, it definitely...<br>The spirit of Linux and open<br>source is a beautiful thing<br>so I do think that when you<br>have these large corporations,<br>even when they try to do good,<br>oftentimes the profit imperative<br>just takes over and they<br>can corrupt themselves<br>and Microsoft has a long history<br>of doing just that to themselves.<br>- Yeah.<br>- That said, they've done,<br>they have you could say for cynical reason<br>because they want to<br>seem like the good guy<br>amongst developers, but they've done a lot<br>to support open source.<br>It's just like, same with Meta,<br>Meta has done insane amount-<br>- Yeah.<br>- to support open source.<br>You can say, actually for that one,<br>I don't know if I can<br>even make a financial<br>or a cynical case for why Meta<br>is open sourcing Llama and these-<br>- Yeah, that one's confusing.<br>It just seems great.<br>- Maybe for hiring.<br>But no, I think that's legit,<br>just an ethical, really powerful decision.<br>And sometimes these companies,<br>because they have a lot of cash,<br>can make the right, do the right thing.<br>- Yeah. It's a really<br>positive way to look at it.<br>And I think that's really nice.<br>- Well, we should always be skeptical.<br>- Yeah, I mean because at the<br>end of the day, companies,<br>they're not good, they're not<br>bad, they're morally neutral.<br>It's the people that are running them,<br>the decisions those people<br>make that are really<br>where the bad or the good comes from.<br>- Another question, ask him<br>if he knows how to milk a cow?<br>I've already asked that.<br>The answer is-<br>- No.<br>- Oh, no, you don't know.<br>- I've never milked a cow.<br>- Never milked a cow.<br>- Almost been killed by a<br>cow, but never milked a cow.<br>- Did you ever ride a bull?<br>- No.<br>- All right. Why male models?<br>- Okay, so I can explain that one.<br>I will say something like,<br>"I really dislike the color purple<br>because the color purple makes me upset."<br>I don't know, just something very benign.<br>But then someone right<br>afterwards will be like,<br>"But why don't you like the color purple?"<br>And it'll just be like...<br>It's just like Derek Zoolander.<br>It's just like I get done on<br>a five-minute talk about it<br>and then the next question's like,<br>"But seriously why though?"<br>It was just like, "Why male models?"<br>- Yeah, so that's the Zoolander reference<br>when there's a long explanation<br>why male models and he<br>agrees and then forgets.<br>- Yep.<br>- What is Ligma?<br>- I've died by Ligma quite a few times.<br>So do you know the origin story of Ligma?<br>- [Lex] No.<br>- So Ninja, famous streamer,<br>someone got him with Ligma<br>and said like, "Oh," something like,<br>"Have you heard about Ligma?"<br>And he was like, "No." And<br>he's like, "Oh, Ligma balls."<br>And then after that Ninja got so hurt<br>by getting had by that,<br>he started banning anyone in<br>chat who's said the word Ligma<br>or something like that.<br>And so then if you don't embrace<br>the meme you get destroyed.<br>So of course, gets destroyed<br>and so then the whole goal is that,<br>can people get me with Ligma?<br>TJ did iladies.<br>He's like, "Oh, did you hear that E-girls<br>got renamed to iladies?"<br>And I just didn't even see it coming.<br>And I was just like, "What?"<br>And he's like, "iladies<br>nuts on your face."<br>And then it's just like, "Oh my gosh."<br>And then a pirate software<br>has also got me like,<br>"Oh, have you heard about Google SIMA,"<br>which SEMA is a real product by Google><br>And I'm like, "Oh yeah,<br>I've heard about this.<br>What is this again?" He's<br>like, "SIMA balls," right?<br>It's just like, "Dang<br>it," how do I keep...?<br>So I've just had it happen live<br>on stream many, many times.<br>I've died by Ligma the most.<br>- Please ask him about<br>the size of his dict.<br>- Okay, so that's D-I-C-T,<br>that's dictionary in Python.<br>- Who doesn't love dicts?<br>- Yeah, that's a great question.<br>Just a dicts party when you use Python.<br>- I love dicts.<br>- That should be a T-shirt.<br>That's actually a hilarious T-shirt.<br>So on Stack Overflow, you can<br>ask any question you want,<br>and I decided to craft a question<br>one day on Stack Overflow<br>that says how to measure<br>your dict in bytes.<br>And then I proceeded to really go to town<br>and explain all the different things like,<br>"Well, what about the cost of the strings<br>and the references?"<br>And when you really get<br>both hands on your dict<br>and really go after it, it's very hard to,<br>really threw in some innuendos.<br>The Stack Overflow team<br>deleted the question,<br>and then someone hand wrote<br>me an email explaining<br>why they deleted the<br>question and complimented me<br>on how thoroughly and<br>thoughtful the question was<br>just to weave in innuendos<br>and that the entire team was impressed,<br>but it's inappropriate<br>and it had to be deleted<br>and don't do it again or we're<br>going to ban your account.<br>And so it was a very funny<br>moment and so I was like,<br>"Oh, that's funny that happened."<br>That was about six years ago.<br>Last year I was at a conference<br>and there's a guy wearing<br>a Stack Overflow name tag<br>and I was like, "Oh, you<br>work at Stack Overflow?"<br>He's like, "Oh, yeah, I do."<br>I'm like, "Do I got a story<br>for you." And he goes,<br>- Oh, no.<br>- "No, wait a second.<br>Are you the dict guy?"<br>- Yeah.<br>- That was his<br>only question was that.<br>And I was just like, "Let's go."<br>I didn't even say anything about me<br>and he already knew<br>immediately I was the dict guy.<br>- I should say in all seriousness,<br>I think I've had a bunch of conversations<br>in the Python world where<br>I would have to mention<br>the name of this data structure<br>and it makes me uncomfortable every time.<br>- It's a very unfortunate<br>shortening of a word.<br>- Dict.<br>It's just like when I<br>go to the hardware store<br>and ask for caulk<br>and there's always a nice old lady<br>and I ask her where to find,<br>and it's very uncomfortable.<br>I try to pronounce it as hard as I can.<br>- Really get that L in there, like caulk.<br>- Caulk, just to be clear.<br>And try to avoid eye<br>contact the whole time.<br>You said that God was a big part,<br>was a big part of your life.<br>Can you speak to that a little bit more?<br>Who is God and what effect,<br>what role did he play in your life?<br>- So I did talk about that<br>one important evening where I,<br>for whatever reason, gained<br>my conscious that moment.<br>So obviously for me that<br>I grew up with a life<br>where I would probably argue<br>myself as a functional atheist.<br>I went to church a handful of times.<br>I can't quite really remember<br>actually going to church<br>as a family in any sort of sense.<br>So there wasn't some super strong tie<br>or anything like that to it.<br>Pretty much anyone else growing<br>up in America in the '90s,<br>you had some sort of<br>impact or intersection<br>with church at some point in your life,<br>that was just a very normal<br>thing I would probably say.<br>And so when that happened,<br>it was a fairly big surprise for me.<br>I wasn't necessarily going that direction<br>or deciding to do any of those things.<br>And so for me, it's<br>obviously the turning point<br>of my entire life.<br>I cannot speak to who I<br>would be now without that.<br>I can just tell you that I<br>wouldn't have had the drive.<br>I probably would not<br>have completed college.<br>I would've not have found<br>my wife or had my kids.<br>I wouldn't know how to value people.<br>I don't think without that whole thing,<br>my value for people would've<br>been very, very small<br>because I would've continued<br>to just objectifying<br>in the way I was.<br>And then probably the biggest thing is<br>there's this one verse, I<br>don't even know where it's at,<br>it effectively says that we<br>love because he first loved us.<br>And so for me it's like<br>I don't think I would've ever lived a life<br>that was happy without this.<br>And I just didn't even know<br>that that was an option for me.<br>And I never really,<br>it was a very tough set of years for me<br>and I was very, very sad<br>and just always just constantly<br>looking for something<br>to fulfill me.<br>And so it's like I didn't<br>have any confidence,<br>I didn't have any joy.<br>I felt very sad.<br>And so that was this moment where<br>for the first time ever<br>didn't, all of a sudden<br>I just felt like I didn't<br>have to live up to a standard.<br>The standards have already been paid for,<br>everything's already,<br>that's the free gift,<br>that's the exchange.<br>And so it's just like for the first time,<br>I didn't have to be the cool guy,<br>I didn't have to have all the right words,<br>I didn't have to feel, I didn't<br>have to go on the conquest,<br>the sexual conquest to find validation.<br>I didn't have to do any of those things<br>and it was exceptionally liberating.<br>And so who is God?<br>That's more of a catechism<br>question perhaps.<br>What is man, who is God?<br>Those are much harder questions.<br>I believe that anytime<br>you try to get too deep<br>into describing who God is,<br>you typically fall into Christian heresy.<br>- But for you, he gave<br>you a chance to be happy.<br>- Yeah, he gave me a chance<br>not just to be happy,<br>but also made it so that the first time<br>I can actually feel forgiven<br>I guess in some sense,<br>and able to forgive people that hurt me.<br>For a long time I had this<br>weight I'd carry around<br>from the things I hated about high school<br>and all that kind of stuff.<br>And through that experience,<br>I just wrote down every last person's name<br>and actually held them<br>with me for quite some time<br>and this was the list of people I forgave.<br>And I read it a few times.<br>I couldn't let myself be angry or consumed<br>by that kind of stuff<br>because hate is so sticky,<br>it sticks for a lifetime.<br>And there really is<br>only one cure for hate,<br>which is forgiveness.<br>I just don't think you can<br>get rid of it without that.<br>And so I just had choose<br>to forgive these people<br>and to move on, and it<br>really kind of freed me.<br>And I would never have<br>thought forgiveness as a means<br>for that change if I didn't<br>first experience it myself.<br>- What's the role of love<br>in the human condition,<br>to go to the philosophical,<br>and what's been the role<br>of love in your life?<br>- It's very obvious<br>that every person wants or desires love.<br>My wife has recently convinced me<br>to watch Love is Blind with her one time.<br>And you watch the show and if<br>you're not familiar with it,<br>it feels like just a<br>disaster of an experiment<br>to just cause crazy filming.<br>But anyways, the idea is that<br>if you just don't see somebody,<br>you can fall in love with somebody<br>and want to marry them after 10 days<br>or some very small period of time.<br>And what you really end up<br>seeing is all these people<br>who are just desperate for actually love.<br>And there's some part of it...<br>I told my wife, "It's<br>like love gladiators."<br>We're watching people<br>battle it out for drama<br>and really what they want is love.<br>And it's like they're fighting<br>to the death and love,<br>if you will.<br>And it's this almost kind<br>of sad aspect to watch.<br>And so I think that it's hard to call,<br>what is its role in the human experience,<br>because I think it's just something<br>that we all naturally<br>not just want, but need.<br>And I don't think that<br>you can really progress,<br>and when I say the word love,<br>I would like to kind of narrow<br>it down maybe a bit more.<br>And I don't mean Eros, the<br>Greek word like sexy love,<br>I think that paternal and friendship love<br>are extremely important.<br>And I think agape, God love<br>is also very important.<br>Agape love is the one that<br>is superior to them all,<br>but obviously different and also co-needed<br>with the parental ones and all that.<br>And so you kind of need<br>this mixture of them all,<br>and each one is different for each reason<br>and where it's applied.<br>And so I don't think...<br>I just don't see a world in which is good<br>of any kind without that as<br>a very foundational piece.<br>Because again, I didn't come here<br>trying to quote any sort<br>of scripture, but it says<br>that it's not the nails that<br>hung on there, it's love.<br>That's the reason why these things happen.<br>And so if forgiveness is the requirement<br>to kind of pay off hate in some sense,<br>then love has to be the<br>motivation for forgiveness.<br>- Yeah, that's the tragic aspect of life.<br>I think there's a deep loneliness<br>in all of us and a longing<br>to be a part of this bigger thing.<br>And that longing is a love and<br>it has many names, but yeah.<br>Yeah, the love aspect of it,<br>it's the beautiful aspect of life,<br>the tragedies, the loneliness,<br>and the unfortunate suffering<br>that is a fundamental part of life<br>and the beautiful aspect is the love.<br>- [ThePrimeagen] Yeah.<br>- Which I think is a good<br>time to mention more Reddit,<br>the place for everlasting<br>positivity and love.<br>Somebody wrote, "Please thank him, you,<br>for his everlasting positivity<br>and give him a big hug for me."<br>So I won't give you a big hug on camera<br>because I'm afraid I'll get a boner<br>and that'll be very unfortunate.<br>- Hey, let's not bring<br>dicts into this again, okay?<br>- It's my favorite data structure.<br>Like I said, I love dicts,<br>all kinds of dicts, ordered dicts-<br>- Unordered.<br>- Unordered dicts. I don't discriminate.<br>Yeah.<br>But just that to say<br>big thank you from me.<br>I listen to you a lot and<br>I just really enjoy...<br>I've been going through<br>a lot of shit myself<br>and just the positivity,<br>even when you're building<br>the stupidest shit,<br>it's just the positivity radiates from you<br>and you inspire me to be a good person.<br>You inspire me to build<br>stuff. So thank you.<br>And I'm sure there's many, many others<br>who listen to you for the same reason.<br>So thank you for your positivity.<br>Thank you for being the<br>light in many people's lives,<br>and thank you for talking to me, brother.<br>- Dang. That was very, very kind.<br>I really do appreciate all those<br>extremely nice words even from Reddit.<br>That's very surprising. But thank you.<br>I mean, I know you know<br>that there's many people's lives,<br>and I'm sure you've received the letters<br>that have been changed from<br>actions and things you've said<br>and things you've done.<br>And so it's one of the best parts<br>about doing this side is that<br>you get a chance to potentially<br>improve somebody's life.<br>And you getting to<br>interview a lot of people,<br>there's a lot of people that<br>listened to Chris Latner<br>and saw his excitement for Swift<br>and probably went and learned Swift<br>and then got really amazing jobs<br>and it can be all origined<br>back to back to you<br>and that interview, and so<br>those are amazing things.<br>And so same goes back to you,<br>you've done a lot of good stuff.<br>- Right back at you brother.<br>Thank you for talking today.<br>Thanks for listening to this conversation<br>with Michael Paulson, aka ThePrimeagen.<br>To support this podcast,<br>please check out our<br>sponsors in the description.<br>And now let me leave you with<br>some words from Paulo Coelho.<br>"When we strive to become<br>better than we are,<br>everything around us becomes better too."<br>Thank you for listening and<br>hope to see you next time.