back to indexThePrimeagen: Programming, AI, ADHD, Productivity, Addiction, and God | Lex Fridman Podcast #461

Chapters
0:0 Introduction
0:42 Love for programming
10:15 Hardest part of programming
12:31 Types of programming
20:8 Life story
30:12 Hardship
31:44 High school
37:30 Porn addiction
47:16 God
62:59 Perseverance
72:55 Netflix
85:23 Groovy
90:27 Printf() debugging
96:49 Falcor
106:19 Breaking production
109:4 Pieter Levels
113:34 Netflix, Twitch, and YouTube infrastructure
125:36 ThePrimeagen origin story
140:52 Learning programming languages
149:55 Best programming languages in 2025
154:50 Python
155:30 HTML & CSS
156:20 Bash
157:0 FFmpeg
163:42 Performance
166:15 Rust
171:3 Epic projects
184:27 Asserts
193:41 ADHD
201:49 Productivity
206:13 Programming setup
241:43 Coffee
248:47 Programming with AI
291:31 Advice for young programmers
303:3 Reddit questions
310:35 God
00:00:00.000 |
The following is a conversation with Michael Paulson, 00:00:05.500 |
He is a programmer who has entertained and inspired millions of people 00:00:13.000 |
whether you're a newbie or a seasoned developer 00:00:17.400 |
who has been battling it out in the software engineering trenches for decades. 00:00:21.980 |
In short, The Primogen is a legendary programmer 00:00:26.480 |
and a great human being with an inspiring rollercoaster of a life story. 00:00:33.340 |
To support it, please check out our sponsors in the description. 00:00:46.480 |
I can tell you the first time that I ever felt love in programming 00:00:49.920 |
or felt that joy or that excitement, which was in college. 00:00:56.880 |
And the teacher that was teaching, Ray Babcock, he was talking about linked lists. 00:01:01.720 |
Now, you have to learn Java at Montana State University when I went. 00:01:05.840 |
And so he's off there kind of explaining this whole linked list thing and all that. 00:01:10.920 |
And in the code, it's like abstract class node or whatever it was. 00:01:20.820 |
It is a class that is called node with a member that is of itself. 00:01:24.540 |
And for the first time ever, I was like, oh, my gosh, like there's no end. 00:01:36.040 |
And so like my mind kind of like exploded in that moment. 00:01:39.360 |
Like there's actually you like what you can express is huge. 00:01:44.660 |
Like I can see this kind of hopping through space. 00:01:47.020 |
And I just remember being just so blown away because up until that point, everything was 00:01:56.200 |
And the things I built were really small and trivial. 00:01:58.600 |
And all of a sudden, I felt like I could build like anything in that one moment. 00:02:04.220 |
I just remember sitting in class for what I don't even remember how long those classes were 00:02:09.260 |
But I just remember being just completely like profoundly impacted by this notion. 00:02:16.040 |
I had the exact same experience in Heavens Forbid by a software engineering class. 00:02:20.140 |
And we talked about the decorator pattern where you can keep on constructing these objects 00:02:24.280 |
Not that I think that's actually a good idea to do, but just watching that and realizing 00:02:27.920 |
like there's so many weird and unique ways you can solve problems. 00:02:31.340 |
And like you can just anything your mind can think of, you can just create that. 00:02:35.740 |
And I just remember getting just so excited about the possibility that anything is possible. 00:02:41.120 |
Yeah, let's wax philosophical about a linked list. 00:02:44.780 |
It is pretty profound for people who don't know. 00:02:47.740 |
A node in a linked list doesn't know anything about the world it's in. 00:02:51.660 |
It only knows about the thing it's linked to its neighbor. 00:03:05.960 |
And you realize like in that little simple data structure, you can construct arbitrarily 00:03:13.540 |
And they're like roots that go through memory. 00:03:16.420 |
And then, of course, that's where you get all the programming languages that allow you 00:03:21.080 |
to dump junk into memory and have memory leaks. 00:03:24.980 |
And therefore, create infinite pain as you try to figure out where that unfreed memory is. 00:03:34.680 |
For me, yeah, probably, it's so beautiful the way you put that. 00:03:41.400 |
Recursion, also for me, when I finally wrap my brain around what it means to write a recursive function. 00:03:52.940 |
Because I think you probably did factorial, where you just do a quick factorial of it. 00:03:59.080 |
What was the thing that kind of made it hit home? 00:04:12.080 |
You're probably pretty used to the recursion. 00:04:14.060 |
Yeah, all I remember is just surrounded by a sea of parentheses. 00:04:18.420 |
I mean, that's really probably when I, in high school, I think it was either Java or C++. 00:04:28.120 |
And then college, it was the generic bullshit software engineering classes were Java, but then the renegades, the cool kids were all using Lisp. 00:04:42.780 |
That's when you're doing the AI, the quote-unquote AI at that time. 00:04:48.780 |
If you want to write a chess engine, you would use Lisp. 00:04:52.580 |
And so for me, probably the moment I really fell in love with programming was Lisp and writing, like, Othello programs and chess engines, all kinds of engines that play a game. 00:05:06.260 |
And then I could play against that thing, and that thing would beat me. 00:05:09.800 |
The joy of being destroyed by the thing you've created. 00:05:13.400 |
And, oh, Game of Life, too, Cellular Automata. 00:05:17.860 |
That's when I built that in all kinds of programming languages. 00:05:22.280 |
It's less about programming languages and more about the system you create. 00:05:28.320 |
Having, now, similar to the linked list situation, creating a system where each individual cell only knows about its neighbors and operates in a very simple rules. 00:05:41.340 |
But when you take that system as a whole and allow it to evolve over time, it can create infinite complexity. 00:05:48.160 |
So I just, man, those are many pothead moments where I'm just, like, looking at the beautiful complexity that can be created with Cellular Automata. 00:05:57.760 |
That filled me with just infinite joy, for sure. 00:06:04.340 |
So my first, memories of my first are drowned in a sea of parentheses. 00:06:12.260 |
Mine is, I have, well, first off, mine was in Java. 00:06:15.280 |
So my first was a little bit more rigid, kind of a corporate, you know, a corporate experience. 00:06:24.380 |
Everyone was using CentOS at that, or CentOS, or however you say. 00:06:29.920 |
And so it's just like, I'm in this very cold. 00:06:33.800 |
I'm in, like, this cold, rigid environment with my Microsoft keyboard, programming away in Java. 00:06:39.720 |
But, and I still, I have just such this memory of despair because I love programming. 00:06:45.440 |
This was after the linked list, and I cannot figure out recursion. 00:06:50.240 |
And so I go to, you know, the university store, and I buy a book, and it's Die Tell and Die Tell, Learn Java, and it has a section recursion. 00:06:57.600 |
So I open it up, and I start reading it, and it just doesn't hit home. 00:07:00.560 |
And I'm, like, I'm spiraling into this, like, kind of, maybe I'm not a programmer. 00:07:04.980 |
Maybe I'm not worthy enough to enter into this circle of people who can figure out what the heck recursion means. 00:07:10.180 |
And so Die Tell and Die Tell is, like, I still remember this. 00:07:13.020 |
Their phrase, their exact phrase was, every young, budding developer solves this recursion program. 00:07:21.920 |
I don't know if I can solve the Tower of Hanoi to this day. 00:07:24.700 |
It's, it's, like, a very hard recursive problem. 00:07:28.340 |
And I just sat there and thought, oh, my gosh, I'm not going to make it. 00:07:32.940 |
And I sat there in the lab for eight hours, ten hours, doing these things, so worried. 00:07:43.180 |
And I just remember being, like, genuinely worried about that. 00:07:45.760 |
And then, because I always, my big problem was, is, like, okay, do factorial. 00:08:05.660 |
And it was, I'm going to give you a 2D array you have to read from a file. 00:08:16.360 |
I want you to find me a path through the maze. 00:08:19.180 |
And so I just sat there, and I'm like, okay, well, I guess I can just go up, and I can create 00:08:23.300 |
like a visited grid that, so I know not to visit these places anymore. 00:08:26.860 |
And then all of a sudden, it just started clicking. 00:08:29.240 |
I don't know the maze, but if I just go up, right, down, and left, and hop back every time 00:08:34.480 |
I've been to that square, don't visit it, like, I can just, it will just go forever. 00:08:38.360 |
And I realized in that moment, I'm like, I actually understand, I've understood recursion 00:08:42.940 |
I just never had a problem in which it actually made sense to use. 00:08:46.500 |
And that was like my big downfall is that I was measuring my understanding with the problems 00:08:52.000 |
that I had available, which were just, you know, list traversal, which is not a good use 00:08:57.420 |
And so I just, I just remember that freeing, oh man, recursion, it was a great moment in my 00:09:01.660 |
I mean, it does require, to be fair, a leap of faith, like, because people will tell you 00:09:06.820 |
those conformist dogmatic Java instructors will tell you that this is, you know, that's 00:09:17.180 |
important to understand recursion, but it takes a leap of faith that this is something, this 00:09:24.920 |
is a different way of looking at the world, and it's a powerful way of looking at the world. 00:09:28.580 |
I actually remembered when I think I first, I think I remember my first now. 00:09:36.420 |
I think it was a dub first search for one of the games, maybe Othello, something like 00:09:46.780 |
And for that implementing recursion, understand that you can search trajectories through the 00:10:06.020 |
And then, and that's when I also discovered conspiracy theories. 00:10:16.020 |
Oh, what was the most painful aspect of programming for you? 00:10:19.020 |
Like what, what memories do you have of deep, profound suffering in terms of programming in 00:10:27.020 |
Uh, I would say the biggest one that I can really hold onto had to be one of two experiences. 00:10:35.820 |
The first experience was when I was at a place called Schedulisti. 00:10:44.020 |
I'm not sure if they're even operating still at this point, but they're in both. 00:10:51.020 |
They actually, the name was so bad that when you looked at their like paid for Google ad terms, 00:10:55.020 |
that they would make sure that they're at the top of the list. 00:10:58.020 |
The spellings were just insane because no one knew how to spell the word Schedulisti. 00:11:02.020 |
And so it was just like the, the Google optimizing for that is just hilarious. 00:11:10.020 |
And the, the thing that kills me the most about programming, what I actually considered 00:11:13.020 |
the worst aspect of programming is when you know everything. 00:11:17.020 |
And so when I was at this job, it's just every single day I'd come in, there were no surprises. 00:11:27.020 |
I didn't understand all the things about the code base, but I knew I was going to go in. 00:11:30.020 |
I was going to generate some sort of object from the database. 00:11:32.020 |
I was going to take that object from the database and I was just going to map it over 00:11:38.020 |
It's very like almost factory line kind of work. 00:11:41.020 |
And that was a very kind of difficult moment for me, which is, I didn't enjoy programming 00:11:49.020 |
I already knew exactly what I was going to do that day. 00:11:51.020 |
I knew all the hurdles I was going to have to go over. 00:12:00.020 |
And it's just, that is for me, that is the worst part about programming is when you already 00:12:05.020 |
And it's just a matter of how fast you can type and get it out from your head to your 00:12:10.020 |
So the absence of uncertainty, the absence of challenge was the pain. 00:12:32.020 |
You stream about all kinds of programming, but what kind of programmer are you? 00:12:37.020 |
Are you full stack developer, web programming? 00:12:41.020 |
And maybe can you lay out all the different kinds of programming and then place yourself 00:12:46.020 |
in that in terms of your identity, sexual identity as well? 00:12:52.020 |
Plus, I mean, obviously those two are very, very tightly coupled. 00:12:55.020 |
I have seen you like on the borders, sexually aroused by certain languages. 00:12:59.020 |
I think you got real excited about OCaml or... 00:13:14.020 |
So first, let's do the previous or the in between question first, which is the different kind 00:13:20.020 |
I think that's a really interesting kind of question because if you go on Twitter or you're 00:13:24.020 |
new, your thoughts are probably that there is just web programming and maybe there's some 00:13:30.020 |
Like game programming, but you do like game programming in JavaScript and on the web. 00:13:33.020 |
You know, like there's this very kind of very myopic view of the programming world. 00:13:38.020 |
And I bet if you ask a lot of people these days, like what is the most popular form of 00:13:44.020 |
If you said what contains the most amount of repos, how many percentage of repos on GitHub 00:13:51.020 |
But the reality is that there's an entire embedded robotics world. 00:13:55.020 |
You know, you're familiar with the ML side of things. 00:14:00.020 |
There's going to be just like performance operating systems, compilers. 00:14:03.020 |
There's just huge amounts of variation of all these different type of programming verticals 00:14:08.020 |
And so we often talk about programming in perspective of web or something that's pretty narrow. 00:14:13.020 |
And I think that's just a social construct of Twitter more than anything else that it's actually 00:14:18.020 |
I don't believe it's that representative of the entire kind of programming world out there. 00:14:23.020 |
And I think a lot of programming is really, really fun. 00:14:26.020 |
Building your own language is just a very fun experience to do. 00:14:29.020 |
Every programmer should just do that once just to have a completely different, you know, 00:14:36.020 |
But as far as what do I do, I've always looked at myself as a tools engineer. 00:14:40.020 |
So at my time at my my jobs, typically I would start off on the UI and then they'd be like, 00:14:46.020 |
OK, well, hey, we need a library for this thing. 00:14:48.020 |
So then I'd be the one writing like the library. 00:14:50.020 |
So in 2012, 2013, I was writing a UI library for the web that can behave just like an iPad. 00:14:58.020 |
But it's still a web page because we didn't have any of that stuff back then. 00:15:01.020 |
It was a canvas had to do all the like matrices operations and all that stuff to kind of, 00:15:05.020 |
you know, it felt like you're on an iPad, but it actually wasn't on an iPad. 00:15:13.020 |
And so every single time I got into a job, it's like, OK, hey, we need to do a library. 00:15:23.020 |
So I had to hand roll my own JavaScript build system. 00:15:26.020 |
And so I always fell into these positions of building tools for developers to be successful. 00:15:33.020 |
So as I went on to, say, Netflix, spent 10 years there, I'd say the majority of my 10 years 00:15:39.020 |
were building things for developers to use that they could be successful at their job. 00:15:45.020 |
And so I just I've always really enjoyed that aspect because your share your stakeholders 00:15:49.020 |
and the people that use your program understand programming. 00:15:52.020 |
And they're going to say, like, hey, I need this. 00:15:54.020 |
And typically the thing that they need, they actually want. 00:15:58.020 |
Whereas with people, people want stuff, but what they actually need versus what they actually 00:16:02.020 |
want often are kind of like this weird separation people. 00:16:06.020 |
You know, that's like the old Henry Ford quote. 00:16:09.020 |
And he's like, no, what you actually want is a car. 00:16:11.020 |
And so it's like this, like you have to play this game of trying to really figure it out. 00:16:15.020 |
Whereas developers, it's like, I know you know what I'm doing. 00:16:20.020 |
That's actually that gives you a really nice big picture view of programming in general. 00:16:24.020 |
So I love the idea of just kind of starting at the interface, like you need to pinch and 00:16:30.020 |
And then figure out the entire thing that requires to make that happen, including maybe the side 00:16:36.020 |
quest tooling, how to make it more productive and efficient, all that kind of stuff. 00:16:40.020 |
So the entirety, the entirety of the thing, that's really cool. 00:16:43.020 |
So I mean, that would be full stack by the general definition of full stack, meaning like. 00:16:50.020 |
Versus like systems engineer, like starting at the bottom and trying to optimize a certain 00:16:55.020 |
kind of specific thing without seeing the big picture of like what the resulting interface 00:17:02.020 |
And a lot of people, you know, in web programming, they never go beyond the front end of how the 00:17:08.020 |
They kind of always assume there'll be somebody, some, some, uh, grunt in the shadows, in the 00:17:14.020 |
darkness of the basement that will implement the back end. 00:17:20.020 |
Like I like to call myself a generalist, um, just to kind of give some ideas is, you know, 00:17:25.020 |
at w at one point at Netflix, I built the web socket connection. 00:17:33.020 |
And before that I was doing stuff with memory. 00:17:35.020 |
And before that I built the UI for a tool, right? 00:17:38.020 |
You just tell me the thing to do and I'll just go do the thing. 00:17:42.020 |
I don't try to get super good at one specific activity. 00:17:46.020 |
Like I don't want to be a Kubernetes engineer. 00:17:50.020 |
But if I had to go learn Kubernetes, I'd go learn it and learn how to deploy some things 00:17:54.020 |
and then hopefully move on to like the next thing. 00:17:57.020 |
Uh, I posted about the fact that I'm talking to you on Reddit and there's a lot of wonderful 00:18:03.020 |
Uh, somebody mentioned that I should ask you about DevOps. 00:18:14.020 |
Well, people keep telling me DevOps isn't real. 00:18:16.020 |
There's actually, you want platform engineers, cloud engineers, infra engineers. 00:18:20.020 |
Uh, I just often think, I think the easiest way if we're doing like, just kind of like some basic 00:18:26.020 |
nomenclature, it's just DevOps are the people that make sure that when you launch a service 00:18:30.020 |
and all of that, it doesn't just disappear, right? 00:18:33.020 |
It's all the kind of backbone of being able to operate something at scale. 00:18:38.020 |
If you think about it, if you're just writing a mom and pa, like website, people that do PHP, 00:18:42.020 |
that are doing WordPress and all that, they're going to build something. 00:18:45.020 |
They're going to hand it off to, I don't know, Leno digital ocean, some company. 00:18:49.020 |
They don't really need a really complicated to build deployment. 00:18:53.020 |
It's just someone with a simple website so they can sell their goods. 00:18:58.020 |
And so that's kind of how I think of a DevOps is when things need to scale. 00:19:07.020 |
Of, uh, the time I spent at Google, it's like, oh yeah, yeah. 00:19:10.020 |
There's all these fancy machine learning people. 00:19:12.020 |
But the, the folks that are running the compute, the infrastructure, basically that make sure the shit doesn't go down. 00:19:23.020 |
It's a very incredible, like vertical of job. 00:19:25.020 |
And obviously I'm using a very broad term to describe, I'm sure like a bunch, you know, because making sure stuff doesn't go down. 00:19:31.020 |
You could also say that's like an SRE, right? 00:19:33.020 |
Site reliability engineer, whatever, you know, the ones that were the, the bomber jackets at Google. 00:19:38.020 |
And so when we say DevOps, I think people get very particular about terms specifically in this category. 00:19:43.020 |
They're like, well, actually you're mentioning infrastructure engineer versus, you know, versus site reliability engineer. 00:19:49.020 |
But generally when someone thinks DevOps, they think somebody that manages the servers and their life cycles and the reliability. 00:20:16.020 |
For people who don't know, uh, who, uh, the primogen is. 00:20:21.020 |
He mentions, uh, the fact that he has been very successful and has worked at Netflix and basically every other sentence. 00:20:37.020 |
So baby prime at the very beginning, you've had one hell of a life. 00:20:42.020 |
And I think it's inspiring to a lot of people. 00:20:45.020 |
You've, you've, you've gone through a lot of painful low points, including meth addiction. 00:20:51.020 |
And like you mentioned, you've come out of that to become a successful programmer and a person that inspires a huge number of people, uh, to get into programming and just to find success in life. 00:21:04.020 |
So maybe I would love it if you laid out just your whole life journey from the beginning. 00:21:11.020 |
So I guess if we're going to start with this whole journey, I think it's probably best to start when I was about four or five years old. 00:21:16.020 |
That was the first time I was ever exposed to pornography. 00:21:26.020 |
There was a day that didn't go by from when I was a very young lad all the way up until I was 20 some years old, where I didn't think about porn on the daily basis. 00:21:35.020 |
And so it was just like every single day, even at that young. 00:21:38.020 |
And so it was just a very mind consuming, time consuming, thought consuming thing that kind of plagued me from starting at a very young age. 00:21:49.020 |
Um, that was kind of a really tough period of life. 00:21:52.020 |
I, I still think about this time that I went over to China and there's kind of some rules that we were given. 00:22:02.020 |
And one of the rules was just like, Hey, don't talk about God. 00:22:09.020 |
And I was just like, okay, dad, it was like the first time I said that word in like 17 years or something. 00:22:17.020 |
And I was just like, oh, that was just the strangest thing I've ever said in my entire lifetime. 00:22:24.020 |
So kind of rewind as I got older, obviously was very good at computers, good at accessing porn. 00:22:30.020 |
Of course, uh, played, uh, video games on the internet. 00:22:36.020 |
I think the guy's name is Lord talk on Twitch. 00:22:39.020 |
I can't quite remember his name, but he built this game called Graal G R A A L and Graal online. 00:22:45.020 |
And when I was a young lad that it was just like Zelda, except for it also had a level editor and it had like a C like language. 00:22:53.020 |
And that's how I discovered how the program is. 00:22:55.020 |
I looked at these symbols and figured out what they meant. 00:22:58.020 |
And then I was able to make things happen in the game. 00:23:00.020 |
And that was like a, that's my introduction into programming. 00:23:03.020 |
So thank you, that guy, whatever your Twitch name was, but. 00:23:19.020 |
I wouldn't say I had a great time during high school. 00:23:22.020 |
Uh, definitely felt very out of place or offset or maybe misplaced if you will. 00:23:29.020 |
And so of course, at that point, I just always wanted to, I wanted to be accepted to fit in and all that. 00:23:35.020 |
I did forget to say one side story after my dad died. 00:23:38.020 |
My brother, older brother, he got and I started getting into drugs. 00:23:44.020 |
So at eight years old, I was smoking some marijuana for a while there until like maybe 11 or 12 and took a break. 00:23:51.020 |
And then again, did a lot of that as I got a little bit older. 00:23:55.020 |
But so I kind of got a lot of these exposures fairly young, 16, 15 through 18, a lot of drinking and all that. 00:24:05.020 |
When I graduated or as I was graduating high school, it's just like I had such sadness, if you will. 00:24:15.020 |
Um, obviously it was a very poor attempt and I'm still here today. 00:24:21.020 |
I'm glad that I didn't follow through with anything. 00:24:25.020 |
And when I was done, I just still remember kind of coming out of the hospital. 00:24:29.020 |
And at like that moment, it's kind of like something broken you. 00:24:31.020 |
Have you ever read the book, uh, Wheel of Time? 00:24:35.020 |
But right around page 12,000 Rand has to intentionally kill a girl, the main character. 00:24:41.020 |
And that's like the moment he breaks and he gets into like hard Rand. 00:24:43.020 |
Uh, uh, Quindelar Rand, if you will, for those that know Wheel of Time will appreciate all that. 00:24:49.020 |
Uh, for those that don't very confusing and I understand not the Amazon movie show. 00:24:57.020 |
So now that we kind of go back onto it at that point, it's just like something kind of broken me. 00:25:01.020 |
And it's just like, I just didn't care anymore. 00:25:03.020 |
So all the kind of social awkwardness, if you will, all that kind of just died away with me. 00:25:10.020 |
And so I started using a bunch of drugs, LSD, mushrooms, math, did a bunch of math, did a bunch of that stuff. 00:25:20.020 |
And then went off to college and continued to do a bunch of stuff. 00:25:24.020 |
I took too much acid to where for like quite a few years, I had like little squigglies on the side of my eyes whenever I'd walk by high contrast objects. 00:25:31.020 |
And so it's just like that whole period of life was just kind of marked by, um, just poor decisions. 00:25:39.020 |
And then sometime when I was about 19 years old, somewhere in that range, I just had this one evening where it's just, I felt the very dramatic and real presence of God. 00:25:49.020 |
And it's just like, I kind of had this choice like Frodo, uh, on a razor where it's like, if I go either way, I'm going to fall off and I need to change my life. 00:26:11.020 |
I'm just like pretending to be this other person. 00:26:25.020 |
And I was just like, oh, that's just like such a strange, weird kind of experience. 00:26:31.020 |
And then I remember, I think that evening I looked at porn and all of a sudden I just had a conscious. 00:26:41.020 |
And I was like, I've never felt shame in my life, right? 00:26:46.020 |
And then all of a sudden when I smoked pot, I just felt deep shame. 00:26:49.020 |
And when I hurt somebody or did something wrong, also, it's just like, I got a conscious from that evening. 00:26:53.020 |
That's what kind of my gift was, if you will. 00:26:56.020 |
And it's just like at that point, I didn't even have a choice. 00:27:01.020 |
Because for whatever reason, I've kind of been changed in a moment. 00:27:04.020 |
And so from there, I started actually trying in school. 00:27:07.020 |
I always kind of joke around that I got 2.14 in high school. 00:27:10.020 |
I had a teacher hand write me a note saying I was the worst student she's ever had. 00:27:16.020 |
And then in that moment, it's just like, okay, now life's changed. 00:27:29.020 |
I went and took pre-calculus and failed pre-calculus. 00:27:32.020 |
And I'm like, oh my gosh, I used to be the smart math guy. 00:27:37.020 |
And so it's like, I'm just questioning myself and all that. 00:27:40.020 |
And I spend hours upon hours in, in like a studying math learning center. 00:27:47.020 |
And then just at some point years into this journey, I'm like a year and a half into this 00:27:53.020 |
And I go from being the worst person to just immediately becoming the best. 00:28:01.020 |
All of a sudden I was the best person at math. 00:28:04.020 |
I started going into my computer science classes. 00:28:07.020 |
It's just like everything at, at just years after trying, just all of a sudden became easier. 00:28:12.020 |
And I'm not sure if it happened over the course of weeks or when the easier started, but it 00:28:17.020 |
was just first predicated by just a huge amount of difficulty. 00:28:20.020 |
And then this is kind of where I started really desiring and loving the process of learning was 00:28:25.020 |
when things started getting easier after all those years. 00:28:27.020 |
Cause I just was motivated by this desire to do something, not, not thinking it was going 00:28:35.020 |
And then all of a sudden it just started getting easier and it was great. 00:28:38.020 |
And that's kind of really where I guess I started having the biggest parts of my life change. 00:28:42.020 |
At that point, I started really, really, really wanting to never look at porn again. 00:28:50.020 |
And that was by far the hardest addiction to quit. 00:28:52.020 |
Like smoking cigarettes was also a really hard addiction to quit. 00:28:55.020 |
Shockingly hard addiction to quit, but porn by far was just the worst of them all. 00:29:00.020 |
And then I think about 22, I was finally done with all kind of addictions, if you will. 00:29:07.020 |
And then for a year, I just, I just worked in all that. 00:29:09.020 |
And I think right around maybe as 21 and three quarters, somewhere in that range. 00:29:14.020 |
I'm not really sure where I, I stopped all the addictions part, but, or at least the outwardly 00:29:20.020 |
And then at some point, six months later, a year later, met my beautiful wife. 00:29:24.020 |
Things just started falling more and more into place. 00:29:34.020 |
And after that, I was just like, I'm doing a startup. 00:29:36.020 |
And so like that night I started my first startup and I was just like, so it was in PHP, by the way. 00:29:48.020 |
And I would just program for, sometimes I'd program for 24, 36 hours straight. 00:29:52.020 |
And I just like nonstop, just that's all I wanted to do at all points. 00:29:58.020 |
I wouldn't, she would be like, can you drop me off at school? 00:30:01.020 |
I was not a very nice, you know, I didn't think through things that well. 00:30:05.020 |
And I was just so into it and I just did it nonstop. 00:30:08.020 |
And that's kind of like how I became me is that story. 00:30:13.020 |
Let's try to reverse engineer some of the pain and some of the triumph. 00:30:21.020 |
Maybe when you were seven years old, what do you think about the pain you've experienced there? 00:30:28.020 |
What do you think, what kind of impact did it have on you? 00:30:31.020 |
What kind of memories do you have at that time? 00:30:33.020 |
The best way I can kind of put it is that I just never knew what a dad was. 00:30:37.020 |
I was young enough that I could kind of maybe repress or just even have the capability of remembering things long term. 00:30:43.020 |
Cause I know most people don't remember a lot from when they're young. 00:30:47.020 |
I probably as at one of the best possible ages, if I'm going to lose a dad to lose a dad, you know, if you're going to lose one, if you're 11 or 12, it's like a terrible age. 00:30:58.020 |
And he fell into drug addiction and never got back out. 00:31:01.020 |
And so I just kind of have more of like a fuzziness and just kind of a longing that I just wish I had a dad. 00:31:09.020 |
What impact did that have on your evolution on your life? 00:31:16.020 |
I think that's why I was so bad, uh, socially in the sense that I was looking for approval, right? 00:31:25.020 |
I think that a lot of people kind of desire that approval or that loving figure. 00:31:30.020 |
And so I think I just looked for it and everything else, right? 00:31:32.020 |
Like if I was to psychoanalyze my actions during the time, it's not like I was actively thinking that. 00:31:38.020 |
Uh, but yeah, I just always wanted something to fill in whatever that was. 00:31:44.020 |
I felt, I think a lot of people listening to this will resonate with your experience in high school. 00:31:48.020 |
Like being the outsider being picked on, uh, struggling through a lot of different complexities at home. 00:31:57.020 |
Maybe the worst part about high school is that you're surrounded by a bunch of people your age and it feels eternal. 00:32:05.020 |
You don't think like the people that are around you, you feel like are the people that will be there for the rest of your life. 00:32:11.020 |
At least that's what I kind of like I thought, and I didn't really even realize this until many years later, that they are going to be some of the least consequential people in your life. 00:32:22.020 |
Which is very shocking to kind of think about, especially if you're in it right now. 00:32:27.020 |
Like right now they are the, everything that you're experiencing is your whole reality. 00:32:39.020 |
And if I could just tell myself that maybe I would have been a bunch of different person. 00:32:44.020 |
I mean, it is a, it's like a trial run, you know, like at the beginning of video games, there's a little tutorial. 00:32:51.020 |
And actually that should be a chance to try shit out, to take risks because real life will begin with. 00:33:04.020 |
Here you can, you know, if you like a girl, ask her out, try, try shit. 00:33:07.020 |
If you get picked on, hit that guy back, try shit out. 00:33:11.020 |
I'm not going to condone punching another person. 00:33:13.020 |
I will beat the shit out of them and take some jujitsu and learn how to take them down. 00:33:18.020 |
And then, and then, and then that girl that rejected you will be like, hmm, maybe I'll give that guy a second chance. 00:33:27.020 |
This is a very motivational speech for kicking ass. 00:33:32.020 |
I mean, there is something very true about that, that I think, especially, I, I mean, I have no idea what the girls experience of how. 00:33:36.020 |
The girls experience of high school would be like, but as a guy, there's definitely a lot of like physical requirements in high school. 00:33:43.020 |
There's a lot of physical measurement, at least where I grew up. 00:33:46.020 |
I think that might not be true in all high schools, but if they're filled with boys, it's probably true. 00:33:52.020 |
It's just like, yeah, it probably does help to do those things to go to BJJ, to do any of these activities, because even if you don't ever kick someone's ass, just having some level of confidence in yourself is probably a very valuable thing. 00:34:04.020 |
But just remembering that this is such a short, tiny moment in your life. 00:34:12.020 |
I mean, the way you phrased it is exactly right. 00:34:16.020 |
That's what it feels like that this is, these are the people that will be with you for the rest of your life. 00:34:22.020 |
And so that means that there'll be just tremendous amount of impact if somebody picks on you, or if you fall somebody low, somewhere low in the hierarchy, in the status hierarchy of this high school, that means you'll be low in the status hierarchy of the world and you're fucked for the rest of your life. 00:34:39.020 |
And that carries a tremendous amount of weight. 00:34:42.020 |
It's just why psychologically it's extremely difficult to be. 00:34:45.020 |
I think it's understated often by parents, by society, how difficult it is to be a high schooler, how difficult psychologically it is, how it actually makes sense that some people would suffer from depression and be on the verge of suicide. 00:35:01.020 |
I think it's even, I, you know, people always say back in my day, you know, blah, blah, blah. 00:35:05.020 |
I think it's genuinely harder today than it's ever been in the sense that when I was a kid, there was a qualification to people. 00:35:22.020 |
Like there, people can visually, they can inspect your exact social value on whatever platform you're on. 00:35:31.020 |
And I can imagine that there's a lot of, of just so much weight to put on that, that it's just, it feels probably way worse and way more damning to be uncool because you have an exact number of how uncool you are. 00:35:47.020 |
And the task, the quest is to remember that just because your social circle on social media and in high school thinks you're uncool, it actually might mean you are cool. 00:36:04.020 |
And you find that cool and grow it and let it flourish so that when real life begins, you can fucking come out of the gate, firing on all cylinders. 00:36:16.020 |
I think if anything, high school is really bad at picking out the cool people that like the, whatever the system, the hierarchy that forms, it is so, it's such a basic bitch hierarchy. 00:36:42.020 |
But the heuristic, I mean, even the objective function for that greedy search is just a really shitty one. 00:36:49.020 |
Where those people that win the game of high school are very often not going to be the people that win the much more exciting, beautiful game of life. 00:37:02.020 |
The weirdos are the ones that are going to succeed. 00:37:04.020 |
The weirdos in high school, probably because they also get bullied and they get to be tormented more psychologically and get to explore their own mind and think through what it means to be a human being more. 00:37:18.020 |
If you're winning in high school, you're not being challenged. 00:37:25.020 |
So there is some degree to like being tormented as long as it doesn't break you. 00:37:32.020 |
That's another powerful one that I think will probably resonate with a lot of people. 00:37:37.020 |
And it's interesting that you say that's one of the hardest addictions to overcome. 00:37:44.020 |
Some addictions have a much bigger societal look and porn is just not one of them, which makes it super hard. 00:37:50.020 |
None of your friends are going to cheer you on. 00:37:52.020 |
If you go on Twitter and say, I quit porn, they're gonna be like, well, that's good for you, but not everybody, you know, not every, you know, no one makes that argument with meth, right? 00:37:59.020 |
No one's gonna be like, well, not everyone has to quit meth. 00:38:02.020 |
It's actually a fine industry and people who, you know, are the ones producing it. 00:38:06.020 |
Like no one's going to make that kind of argument. 00:38:08.020 |
Whereas with porn, you're going to have like a whole thing and friends, friends are going to think you're dumb for doing it or whatever. 00:38:14.020 |
It's like you have, it's a much more difficult one in just like that. 00:38:22.020 |
You can practice, participate in privately, hide it from the world. 00:38:27.020 |
There's certain addictions that are harder to hide from the world for prolonged periods of time. 00:38:31.020 |
And porn addiction is probably one you can just have for many years and then it can deepen. 00:38:38.020 |
Boy, am I glad I grew up before the internet. 00:38:48.020 |
I mean, what can you speak about what impact it had on your life? 00:38:52.020 |
Maybe some of the low points, but also how to overcome it. 00:38:55.020 |
I'd say as far as impact goes is that you will have such a long and broken look at women. 00:39:03.020 |
So, by the very, like I can, again, I'm only speaking from a male's perspective. 00:39:08.020 |
That porn in it's just like most basic thing is that you use another person for your own desire or your own want. 00:39:20.020 |
There's no need, there's no like need for porn. 00:39:23.020 |
It's purely a want-based activity or a lust, however you want, whatever word you can fill in there. 00:39:31.020 |
Like someone else is on display for your own enjoyment. 00:39:37.020 |
Like I do think that the women that I dated during high school or the women after high school and college, like I looked at them as a means to an end. 00:39:44.020 |
And I think porn greatly kind of shifted that kind of perspective in my head that I did not give the value that was desired to another person. 00:39:52.020 |
It really devalues humanity just in general is my perspective of it. 00:40:02.020 |
And so during that, for me, that's kind of like the great effect of porn is that, you know, it's just consumerism gone wild or materialism. 00:40:16.020 |
Just like you said, because I can look at porn and then I can go out to lunch. 00:40:23.020 |
Like it's a very private, it can be very short session. 00:40:26.020 |
It doesn't have to be something that takes like, you know, you can't take acid, then go out to lunch, right? 00:40:30.020 |
You're going to be, you're going to, your whole day is going to be a very different day. 00:40:34.020 |
And so there's, it's very quick, easy, accessible. 00:40:38.020 |
And then obviously there's like all the, like the science and, you know, statistics, like men make worse decisions for some period of time after looking or being exposed to sexualized images. 00:40:48.020 |
That's just like, you're constantly need more and more dopamine. 00:40:50.020 |
That's why people typically don't just watch five minutes of porn and call it a day. 00:40:54.020 |
That's like, you know, the hundred to tab joke that's always made on the internet. 00:40:57.020 |
It's because you, it's just this, this constant dopamine cycle you're constantly doing. 00:41:04.020 |
And I'm sure statistics and science and all that stuff is really great arguments for some amount of people. 00:41:09.020 |
But for me, it just comes down to like, is it really a good thing to do? 00:41:13.020 |
Like, is it really actually something we want is to value people in such a profane or kind of just like disregarding way? 00:41:21.020 |
Like, I just really think it's just bad for the soul. 00:41:24.020 |
Even if all the stats said it was great for you, I still say it's actually bad. 00:41:29.020 |
Yeah, you have to look at the long term big picture psychological impact it has on your relationships with human beings in general. 00:41:39.020 |
My problem with the, the quote unquote sort of manosphere is I think sleeping with a bunch of women is great, wonderful. 00:41:50.020 |
But the problem is making that the primary objective of your life. 00:41:57.020 |
And I think porn does that like in its purest, darkest form, which is like the thing that matters is the sex, not the, like the deep connection with another human being. 00:42:16.020 |
And I think again, going back to high school and the, the manosphere, the objective function, if it's to get laid, which helps with status and confidence and all, all that is wonderful. 00:42:29.020 |
I think again, can be an addiction, but the thing that's even more awesome for a lot of people is a deep friendship or deep intimacy with a, with a romantic partner. 00:42:44.020 |
It's objectively better to have, like, I would say that there's no universe that exists or there should be no argument possible that exists that a guy who has meaningless sex has a better or a more meaningful life than say me and my wife have been together for 15 years. 00:42:59.020 |
We have a very, like, I can depend on her in all circumstances. 00:43:02.020 |
Whereas if you live that other life, it sure it could be, it could feel great, but there's no meaning to it. 00:43:11.020 |
I do think that getting laid can have a tremendous positive impact on the confidence of a young man. 00:43:18.020 |
I think just there's a certain number of sexual partners from which you can collect a lot of data and you can free you about. 00:43:27.020 |
Like, not to be so nervous about the opposite sex, not to be so nervous about human interaction, and that will allow you to see the world more clearly and to actually find that one partner that with whom you can be deeply intimate with. 00:43:42.020 |
Sometimes, like, the nervousness around, like, this societally constructed, like, value in getting laid can cloud your judgment. 00:43:54.020 |
And if you just release that by getting laid a bunch of times, then, like, you could see that the world clearly that getting laid is not nearly as important, as you said, as finding the right human. 00:44:06.020 |
Including, I should put in that pile, not just, like, a romantic partner, but, like, friendships, like, deep lasting friendships. 00:44:13.020 |
Well, I mean, I think you're right that our society puts a lot of emphasis on getting laid. 00:44:17.020 |
And I'm sure that's true among any group of males throughout any point in history. 00:44:22.020 |
I'm sure that's a very common joke that's never actually, like, never stopped at any point. 00:44:27.020 |
So, I'm sure that exists, but, and there's probably some truth to the sense that after you've, you know, who was it? 00:44:34.020 |
Jim Carrey, I hope that everyone can get rich so they realize that money solves none of your problems. 00:44:38.020 |
Like, the realization that this thing that society told you is hyper important is actually not the important part. 00:44:43.020 |
Like, it is a very important, it's a great sign that your relationship is healthy. 00:44:47.020 |
Like, if me and my wife were to have no sex at all for months on end, like, something's gone wrong. 00:44:52.020 |
Which means what, you know, we are no longer, like, on the same plane, you know, but it's not also a good identifier. 00:44:59.020 |
Just because you're having a lot of sex doesn't mean you're having a good relationship. 00:45:03.020 |
And so, it's kind of like a unique kind of, I forget the right term here, but it's a unique way at looking at the problems and our society puts so much emphasis. 00:45:14.020 |
And maybe that's why porn was so hard to quit, but I, my guess is it's just all the dopamine effect that it is. 00:45:20.020 |
But for me, like, the most important part and the thing that actually has real reward is having that, having just my wife. 00:45:29.020 |
I do not look at, I try, I desperately try not to look at any other woman. 00:45:33.020 |
I'm hopefully not going to get cop Mark Zuckerberg at the White House like that. 00:45:39.020 |
My wife has complete confidence in me that there is not going to be a situation in which she has to question me in any kind of sense. 00:45:44.020 |
And that builds a much more deeply, I would argue a very deep relationship because the trust is that much bigger. 00:45:52.020 |
I think the deepness of the relationship is probably proportional to the trust you have in each other. 00:45:56.020 |
It's very hard to have a deep relationship with no trust. 00:46:00.020 |
And, uh, a, probably a prerequisite, maybe a component of trust is vulnerability to where you, like, take the leap of being vulnerable with another human being. 00:46:12.020 |
And that vulnerability when reciprocated builds this, this really strong trust. 00:46:20.020 |
I, I, I personally just given my position, uh, that's even more challenging, you know, being vulnerable with the world. 00:46:28.020 |
And there's a bunch of people out there that want to hurt you for it. 00:46:31.020 |
And, um, but I think it's worth well anyway, to be vulnerable. 00:46:38.020 |
And in some sense, like obviously everyone has a different kind of life. 00:46:42.020 |
They have to filter through their actions with, right? 00:46:44.020 |
Because the person that has no say social following or anything, their risk reward profile could just be local impact, which could be just as, you know, damning or harming to them. 00:46:54.020 |
And so it's always worth the risk though, in my personal opinion, because like finding my wife has been obviously the most impactful or changing thing in my life. 00:47:03.020 |
So, or second most, I'd argue that one night with God would probably be the most impactful thing that led to everything else. 00:47:09.020 |
But then the wife would be the next most impactful. 00:47:11.020 |
I mean, I'm like cleaning up after myself and stuff now changed man. 00:47:16.020 |
Can we try to reverse engineer that moment of you finding God? 00:47:23.020 |
Because it feels like that was a big leap for you to escape, to escape the pain, to escape the addiction or the beginning of that journey. 00:47:36.020 |
I think it just felt like I just, there was no line that I wasn't willing to cross. 00:47:43.020 |
And just like, it just all of a sudden is just in that moment. 00:47:46.020 |
It's just like I had a, I guess, some sort of deep fear and understanding, like, I am going down a path. 00:47:56.020 |
And I don't know what the result of that path would be or anything like that. 00:48:00.020 |
I don't tend to speculate on things I, I don't understand. 00:48:04.020 |
I just know that in that moment, I had the option. 00:48:13.020 |
It's kind of mixed in this whole thing where it's just like, I had no value. 00:48:16.020 |
I wrapped up all my meaning or value in having sex or getting laid. 00:48:19.020 |
I had, you know, all that stuff, all the things we just talked about, like that was where all my worth was. 00:48:24.020 |
And that was just such a, like a terrible place to have your worth. 00:48:27.020 |
And it's just, I kind of all came to a point and I can't tell you the day of the week. 00:48:32.020 |
I can't tell you anything other than it was nighttime. 00:48:34.020 |
And I was in South hedges in Montana state university. 00:48:39.020 |
Um, that's about, yeah, that's the sign that we do at football games. 00:48:44.020 |
But like, that's all I can really, that's all I can really tell you. 00:48:47.020 |
Cause the night that night was no more or less special than some other night. 00:48:51.020 |
It's just the specialness was, I got at least a chance to make a choice. 00:48:57.020 |
Cause you find in that advice that you can give to others who are probably there's, there's probably just an endless amount of people that are struggling with porn addiction. 00:49:12.020 |
For me to overcome it, I had to realize that I was taking something away from my future wife. 00:49:20.020 |
Some people would be like, oh, well you just, you know, once you get a girlfriend, then you can stop. 00:49:24.020 |
And it's just like, no, because you never stopped the problem. 00:49:32.020 |
I just realized that I was truly taking away from something for my future wife. 00:49:36.020 |
And I didn't even know my current wife at that time. 00:49:40.020 |
I'm not even sure if she was at Montana State University at that point. 00:49:43.020 |
And so it's just, that's, uh, once I made that realization, I think it went from my head to my heart, which they say is the greatest distance in the universe. 00:49:56.020 |
So if the, the ability to say like, what's going to help you change and all that, I don't know if there's, I don't think there's silver bullets, right? 00:50:05.020 |
If someone could offer you a drug, I forget who says this phrase, but there's this really interesting phrase that goes something like, um, he was a very depressed man and he was struggling with suicide. 00:50:16.020 |
And he kind of writes about this in this memoir. 00:50:18.020 |
And he goes to the, these doctors and the doctors effectively say, well, here's antidepressants. 00:50:23.020 |
And he says that, well, the problem was, is that scientists told me that I could just touch my brain and make myself happy. 00:50:30.020 |
Like they could reach in, they could configure some stuff and I'll be happy. 00:50:33.020 |
He's like, for me, it was a lot like going out into a field and being able to take a drug to see the rain. 00:50:42.020 |
It'd be beautiful, but all the crop would still die. 00:50:48.020 |
And so for me, it's like the reason why I looked at porn is because I was unhappy. 00:50:53.020 |
I was trying to find value in something, right? 00:50:56.020 |
Something that was supposed to finally give me this ultimate satisfaction. 00:51:01.020 |
No matter how hard and no matter how much you think it will, there is no escapade. 00:51:06.020 |
There is no pornography that will ever give you that satisfaction you're looking for. 00:51:13.020 |
And that's kind of like my call to why you shouldn't do it, but how to get out of it. 00:51:26.020 |
You knew that this thing you're doing is preventing you from finding your future wife. 00:51:32.020 |
And future wife could mean more even broadly this path to a flourishing, to a beautiful life. 00:51:42.020 |
I think there's a lot of choices we make that are just preventing us from opening the door to whatever future. 00:51:49.020 |
I think what's really nice to do is to imagine, just like we said with high school, that there are a bunch of trajectories in life where you'll be truly happy. 00:52:02.020 |
And you need to construct your life in a way where you have the chance to travel down those paths. 00:52:07.020 |
And there's a bunch of addictions, there's a bunch of choices that prevent us from traveling down those paths. 00:52:12.020 |
So just believe that you're going to have an awesome life and remove from your life the things that are preventing you from walking down that path, which is essentially what you did. 00:52:24.020 |
It's a leap of faith that like, if you let go of porn, that a better life is waiting for you on the other end. 00:52:33.020 |
I definitely can't say how long it will take a better life. 00:52:37.020 |
But for me, there's no way in the universe I could have had the relationship that I have without first making those steps. 00:52:43.020 |
Because I couldn't value, like, I couldn't value my wife in a way that was proper for who she was. 00:52:52.020 |
I would have valued her through the index or the lens that I currently was looking through. 00:53:05.020 |
Oh, man, I don't know what the fuck I'm doing, honestly, with this interviewing thing. 00:53:17.020 |
Oh, and this topic, I should say that, like, there's a lot of, on Twitter and on tech, in the tech community in general, sort of people speaking negatively about ayahuasca. 00:53:29.020 |
I don't, I think it's such a roll of the dice. 00:53:32.020 |
Like, I had incredible experiences, but I don't think I want to recommend it to anyone. 00:53:42.020 |
Like, you could meet your demons and they could destroy you. 00:53:45.020 |
Or you can meet your demons and let go of them. 00:53:47.020 |
Or you could have experiences like I did, which is like never, apparently I don't have demons. 00:53:52.020 |
I'm pretty sure they're somewhere in the basement. 00:54:01.020 |
I'm a super happy an ayahuasca, just full of love. 00:54:06.020 |
I don't understand where the demons are, but that's my biochemistry, whatever that is. 00:54:10.020 |
And for some others, you know, one trip could be amazing and the next one could just completely destroy you and wreck your life. 00:54:17.020 |
So I don't know what the recommendation from that is. 00:54:20.020 |
Maybe avoid it, but then all of us die and life, you know, I tend to lean into adventure. 00:54:27.020 |
But drugs is, if you fuck with the biochemistry of your brain, you could really destroy yourself in a way that it's going to torment you. 00:54:38.020 |
So I would generally recommend that people avoid drugs altogether, probably, unless you're a crazy motherfucker. 00:54:58.020 |
I like, you are very correct in the sense that there is, at least when it comes to hallucinogens, there is a wild variance to what you're going to experience. 00:55:09.020 |
There's no, you know, just because you buy the product doesn't mean you're going to have a good time, right? 00:55:13.020 |
There's a lot of, personally, I find that stuff to be very, I believe in the spiritual realm, right? 00:55:24.020 |
And that kind of whole realm is like, I don't know what it opens you up to, but it's much, much different experience. 00:55:30.020 |
Now, some people will be like, oh, it's just a bunch of chemicals in your brain. 00:55:33.020 |
LSD just takes all of your pathways and they all go, you know, they all get kind of scrambled up in your brain. 00:55:37.020 |
And it's just like, yeah, the experiences are profound. 00:55:40.020 |
I had some really bizarre, very cool, very awful. 00:55:47.020 |
I can just tell you that I, like, I personally always say the same thing. 00:55:50.020 |
It's like choices that I made, I can never take back. 00:55:52.020 |
I would never take that away from myself because I don't know if I would be who I am today without all those experiences going up to it. 00:55:58.020 |
But if you have not had that experience, I'm on your team, or at least partially on your team, maybe more severely. 00:56:05.020 |
I don't think they're going to, you don't have to put yourself through that to make a good decisions or to realize that people have value, right? 00:56:17.020 |
Meth is like, if you've ever done cocaine, cocaine starts off with like a 15 minute dance party. 00:56:25.020 |
And then it just followed up by like, like a five hour, like just feeling wiggly, right? 00:56:31.020 |
Meth is like that, except for, I didn't get as much dance party or any dance party, but instead I just got that part for like 12 hours. 00:56:41.020 |
So did a lot of skateboarding, did a lot of, you know, running around. 00:56:46.020 |
Would you say it's a pleasant feeling or is it more like an escape from the loneliness of life? 00:56:55.020 |
Well, is it pleasant or negative in the actual moment, not the consequences, but in the moment? 00:57:01.020 |
So there, I mean, this is, this is just like a very interesting kind of area, which is that not universally, you can't say that. 00:57:10.020 |
Often you'll find that there's kind of these two groups of drug addicts. 00:57:15.020 |
There's those that like the, the opioids and those that like the uppers, they typically don't like there's, there's very few people in the drug world that do both. 00:57:22.020 |
They're really just kind of like find their side and they go for it. 00:57:25.020 |
So will is meth a thing that everybody's going to enjoy? 00:57:28.020 |
Well, categorically, as you can see, and just like how people experience drug addiction. 00:57:33.020 |
But for me, it's just like, I had a really, it kind of like feeds into like the ADHD nature of like this, like, because you know, you're kind of high energy. 00:57:42.020 |
So it's just like, you're in the moment, but it's just like, oh, I'm in the moment. 00:57:45.020 |
You know, like, it's like, everything's just so intense, you know, like, you just want to really be in the moment. 00:57:50.020 |
Uh, and so it's just experiencing that constantly. 00:57:55.020 |
Well, some people, you know, my wife always tells me this, like being like nervous or I forget the anxiety of a situation can also be the same thing as like thrill. 00:58:07.020 |
She, she's probably super disappointed that I messed this up, but it's like, you could perceive those two experiences in very different lights. 00:58:13.020 |
Some people, you know, get in front of a crowd. 00:58:17.020 |
Some people get in front of it and it's just like the worst experience of their lifetime. 00:58:20.020 |
They would actually literally rather die, which is a crazy thing to think about than stand up and speak. 00:58:25.020 |
And so for me, meth was that kind of thrilling side, but at the same time is it didn't, it still didn't like quite give me that thing. 00:58:37.020 |
I'd use it to help try to get that thing I want, but it was never giving me that thing I wanted. 00:58:43.020 |
Uh, for me, I've had all really wonderful experiences. 00:58:47.020 |
But like, Oh, it was like a YouTube policy, by the way, that you have to say, by the way, do whatever you do. 00:58:53.020 |
I, but I had great experience, but don't have whatever you do. 00:59:04.020 |
I'm just, uh, but seriously, no, I don't know. 00:59:10.020 |
I don't give a shit about YouTube or anybody. 00:59:11.020 |
Honestly, I'm just kind of careful about the words I say, because just because I had positive experiences, I don't want young people listening to this think they should try the experience. 00:59:23.020 |
I think the much more powerful message is that life is awesome even without that. 00:59:28.020 |
That's something I definitely experiment with on the alcohol side. 00:59:40.020 |
Alcohol is definitely a thing that helps with that sometimes. 00:59:43.020 |
But I think honestly, like it's not even the alcohol. 00:59:47.020 |
It's like having to do something while a person is talking to me. 01:00:02.020 |
It works the same as if the, if the liquid actually looks like alcohol, it does the same purpose often. 01:00:10.020 |
Because like alcohol from like if you have a whiskey or a beer looking thing, it kind of sends a signal that we should be having fun. 01:00:23.020 |
And then that means you don't actually need the alcohol. 01:00:26.020 |
You can get fucking crazy without the alcohol substance. 01:00:31.020 |
But there is some kind of like social signaling that happens when you have a drink in your hand. 01:00:39.020 |
So I've been to get togethers where I'm not drinking, but just doing like a fake drink situation. 01:00:46.020 |
So I've been, but that said, you know, traveling across the world, there are times when you need to be able to don a bottle of vodka. 01:00:53.020 |
That's very essential for the, for my line of work. 01:00:55.020 |
But, but that's, that's sort of, that's almost like a cultural experience versus like a necessary component of a successful social interaction and one that brings you happiness. 01:01:05.020 |
So not drinking, I think you can have fun and not drink too. 01:01:09.020 |
So all of this, man, I'm so careful saying drugs have had a, a good effect on my life. 01:01:17.020 |
Because I think for most people, no, for majority of people, they will in the long term, long term have a negative effect. 01:01:27.020 |
So I think if you were to choose one or the other, just no drugs, uh, and no drinking means one day you can be the president of the United States kids. 01:01:45.020 |
That's his funniest line, which is you would hate me if I drank, which I just like to me, that tickles me like to no end. 01:01:50.020 |
Just like, oh my gosh, that is such a funny line. 01:01:55.020 |
Like all of the reasons why I used drugs and all that was a form it's some level of escapism. 01:02:01.020 |
I'm sure that's like, would be the archetype or the box I'd put that into, or the pursuit of trying to feel something that cannot come from them. 01:02:09.020 |
It's like trying to find a meaning in your job. 01:02:14.020 |
You can find satisfaction and be happy with what you've created. 01:02:17.020 |
You can be, you know, thrilled by the experience, but you cannot find, I doubt you can find purpose. 01:02:23.020 |
You know, maybe some people in specific jobs, you know, like this, obviously have very broad strokes. 01:02:27.020 |
I'm painting with like, if you're an EMT and you save someone's life, maybe, you know, there can be purpose in that whole experience. 01:02:33.020 |
So I'm not saying all things, but like, as programming goes, most programmers, you cannot just simply find your purpose and same with drugs. 01:02:40.020 |
Like you cannot find that thing you're looking for, but they are a very great distraction. 01:02:46.020 |
And then at some point that distraction comes with a heavy cost. 01:02:49.020 |
I think Dr. Faust would probably know the best about the heavy costs, but it's just, you're making one trade for another. 01:02:54.020 |
And at some point that the bill comes due and that bill can be very, very large. 01:02:59.020 |
The other moment you mentioned that I think is really inspiring is that, you know, you failed pre-calculus. 01:03:09.020 |
And then eventually you're able to sort of persevere and I don't know, break through that wall of struggle. 01:03:19.020 |
Can you, by way of advice, figure out what happened and what kind of advice you can give to people who are struggling? 01:03:26.020 |
I'll, I'll paint it in kind of more clear picture. 01:03:28.020 |
A very fast speed run of it is that I took pre-calculus failed. 01:03:32.020 |
I took pre-calculus again, failed, took pre-calculus again, and got a C. 01:03:41.020 |
In that one, at the end, the final, the final was a two hour final. 01:03:46.020 |
I finished it in 30 minutes and that is the highest score in all of the school. 01:03:50.020 |
And I proceeded to be the highest score in all calculus and Diffy Q. 01:03:53.020 |
I was the only person out of 400 people to finish the Diffy Q final. 01:04:01.020 |
So I somehow went from really bad to really good. 01:04:03.020 |
And so my only, the thing that I did is that I had to win. 01:04:09.020 |
It was not like, oh, you know, this would be really great. 01:04:13.020 |
I will not finish my stuff if I cannot do this. 01:04:16.020 |
And so every single day I got up, I went to my, what, however many hour class it was. 01:04:22.020 |
Right after that, I went straight to the math learning center, did those problems. 01:04:25.020 |
When I got home, I just got the book and it had the odd answers in the back. 01:04:29.020 |
And I would try to walk through the problems over and over and over and over again until I absolutely got it. 01:04:34.020 |
And it just became this thing where it's just, I just simple rote memory took over. 01:04:39.020 |
And the ability to just effectively have the times table, but for calculus all stuck in my head, inverse trig substitution, trig substitution, doing Taylor McLaren series, like all those things kind of just over and over and over and over and over again. 01:04:57.020 |
And some people, you know, you hear these stories where they barely show up to class and they get A's. 01:05:03.020 |
I've always been the person that has to sit down, read through everything. 01:05:09.020 |
I like the concrete into the abstract, not the abstract into the concrete. 01:05:13.020 |
Very bad at talking about things theoretically, then trying to apply them. 01:05:16.020 |
But if I can do it once, literally, then it's really easy for me to go into the abstract. 01:05:20.020 |
And so it's just like, for me, it's just, I had, there's no substitute for the hours. 01:05:25.020 |
So if you've, if I were to give advice, it's just that you have to have time in the saddle. 01:05:34.020 |
And at first it's crushing, it's defeating, and it's not fun because you were bad at it. 01:05:39.020 |
But then at some point it, you're just not bad at it. 01:05:42.020 |
If you can just do it long enough and you'll start getting okay at it. 01:05:45.020 |
And then at some point you might even get good at it. 01:05:47.020 |
And when you get good at something, it feels amazing. 01:05:52.020 |
Like if you're, if you've ever played a musical instrument, 01:05:54.020 |
you stop having to think about all the little teeny things you have to do 01:06:01.020 |
And you start thinking about how you can explore that space. 01:06:06.020 |
And same with programming. Programming has an identical kind of feel to it. 01:06:10.020 |
It's just like, you'll cross that barrier and it becomes magical as opposed to a chore. 01:06:14.020 |
Yeah. Once you cross that barrier, it's somehow other things become easier. 01:06:18.020 |
But then if you want to have a truly successful life, then you find the next barrier. 01:06:23.020 |
The next barrier. Yeah. I've always been the same. 01:06:27.020 |
Yeah. I do not. I had, I've had no free lunches. 01:06:30.020 |
Everything's just been a lot of, a lot of pain and struggle. 01:06:34.020 |
I think somebody said that on this topic that you think work smarter, not harder, 01:06:54.020 |
The reason why I dislike that is that there is a kind of a, a hidden suggestion there, 01:07:00.020 |
which is that you already know what smarter is. 01:07:02.020 |
So just do that, that actually things should be easy. 01:07:06.020 |
You should just not have to like, try that hard. 01:07:08.020 |
You should just do the quick, easy, obvious path and boom, it's done. 01:07:12.020 |
It's like, I've never experienced that in anything I've done. 01:07:17.020 |
And most of the time I don't even know what I'm doing. 01:07:20.020 |
So therefore I don't even know what smart looks like. 01:07:22.020 |
And so for me, the only way I can learn how to work smart is by working very, very hard 01:07:30.020 |
And then when I finally figure out what smart is, when I work smart and work hard, it is that much better. 01:07:38.020 |
I think there's a deep, profound truth to that. 01:07:41.020 |
There's a lot of these phrases that just drive me nuts in our society. 01:07:44.020 |
But that one is, sorry, that one is really accepted. 01:07:47.020 |
If we can just linger on it, because it really bothers me as well. 01:07:50.020 |
So one, which is a really nice thing you said, the presumption there is things should be easy. 01:07:56.020 |
And you're a failure if you don't see the easy path. 01:08:04.020 |
And so it makes a lot of people that struggle feel like they're a failure. 01:08:11.020 |
And then the choice to have, well, I'll just go with the, I'll just be lazy. 01:08:16.020 |
And then maybe the profound truth will come to me somehow. 01:08:19.020 |
And yeah, I think, I don't think I've ever, and I don't think I've met great engineers that find the smart way without the extremely hard work. 01:08:31.020 |
work the annoying thing about those great engineers is then looking back they forget the hard work 01:08:37.260 |
because they remember all the joy they they now are experiencing from all the efficient smart work 01:08:43.020 |
they've figured out how to do they forget so when they give advice they give the stupid advice 01:08:48.140 |
of well just do it like you know the easy way yeah and here's the easy way but no no no no you 01:08:56.140 |
have to put in the hours like you know the musical instrument is a beautiful example of guitar and 01:09:02.380 |
piano i've put in i don't know how many thousands of hours and now when i'm explaining stuff jiu-jitsu 01:09:08.940 |
as well i'm i sound like i sound like one of those people like just you know just relax you know in 01:09:17.180 |
jiu-jitsu by the way just relax is a really wonderful thing for physical endeavors like piano and so on 01:09:22.780 |
but to learn how to relax your hand how to relax your mind your body and uh use the the whatever 01:09:32.460 |
the biomechanics of your body to apply the correct kind of leverage and the timing and all that that 01:09:37.500 |
takes thousands of hours of learning just to learn how to relax takes a lot of really hard work in jiu-jitsu 01:09:44.140 |
that takes many months of getting your ass beat over and over until you like uh you know ride the bus 01:09:53.660 |
home crying your your ego completely shattered and destroyed and then like a little element 01:10:01.740 |
is figured out late that night or next morning and from the depression there's this uh little 01:10:10.780 |
plant that grows this flower of uh insight and you use that insight to then get your ass kicked again 01:10:17.260 |
all next month and year and then you grow and grow and grow and from that you discover how beautifully 01:10:24.780 |
simple jujitsu is or judo is just speaking for myself or piano or guitar and then yes the the profound 01:10:34.460 |
truth or the mastery of a skill feels simple when you finally arrive to it but the path is for most 01:10:43.180 |
people is uh is going to be a hard one can i think i should make an addendum to the phrase i think the 01:10:48.300 |
phrase should be work hard get smart that's a t-shirt that's what it should be yeah agreed okay that was a 01:10:56.140 |
tangent of a tangent can i say one more phrase cultural phrase that i absolutely hate yes uh the journey is 01:11:01.740 |
better than the destination right everyone's heard this right just take one second to apply what that 01:11:08.540 |
means that means forever starting from now you are only going towards a place that's worse 01:11:14.540 |
right like that that literally is what it means enjoy the journey celebrate the destination that's like 01:11:23.180 |
that should be what it would be but no people say these phrases are everywhere there's these very shallow 01:11:28.060 |
phrases that have no logical bounds to them you're just like what does that why would the journey ever 01:11:32.860 |
be better than the destination because you're always this i think this might even be a cs lewis 01:11:36.700 |
uh quote is that cs lewis was like nope this is terrible though the journey is not in fact better than 01:11:42.060 |
the destination i love the demotivational posters uh progress moving forward is better than moving 01:11:50.540 |
backwards even if you're still going nowhere i feel that one so so much being in california for a few 01:11:57.340 |
years that is that is painful positivity if it doesn't break you today don't worry it will try again 01:12:03.820 |
tomorrow it's just a lot of really great posters i don't even know this was a thing this is a thing oh my 01:12:10.380 |
gosh i want that yeah hey hi this is the primogen you know one thing that i forgot to mention in this 01:12:17.020 |
podcast which feels just so foolish to me for forgetting is just what a big role my mom played 01:12:22.940 |
in my life she had to work 18 hours a day after my dad died she really made her house be able to survive 01:12:29.260 |
i always looked up to her and i always thought her amazing and she really was the reason why when i 01:12:33.500 |
decided to get my butt kicked back in gear she's just someone who i looked to as like an internal 01:12:38.940 |
kind of inspiration for me to continue to keep on going because i really wanted to make her proud 01:12:43.580 |
and all those years of just high energy effort i really wanted to make sure that she knew that i was 01:12:49.260 |
just so dang appreciative for it so hey i just wanted to say thank you love you mom for people who don't 01:12:56.300 |
know you worked at netflix by the way by the way no how did you go from there from the hardship that we 01:13:05.340 |
mentioned from the struggle from the addictions and so on to a place where you were working at this 01:13:13.340 |
incredible engineering company and uh building cool there so tell the netflix story yeah so 01:13:21.340 |
you know i kind of alluded to it earlier that i wanted to do my own startup so for 01:13:26.140 |
i forget how long it was one or two years or two and a half years built a startup php jquery everyone's 01:13:33.020 |
favorite language is all put together uh you can solve math stuff with jquery so i just was like 01:13:37.820 |
totally into just non-stop doing that this is like the height of stack overflow i was asking really dumb 01:13:43.740 |
questions on stack overflow like what is more pythonic and then you get a bunch of upvotes and try 01:13:48.300 |
to steal a bunch of karma away like all the fun stuff to do good times and i was just like so into it 01:13:55.020 |
breathing and i just breathe it in breathe it out and that's what i do all day every day and so it's 01:13:59.660 |
just like non-stop building of a startup ultimately that startup failed and so i had to get you know go 01:14:05.660 |
get a real job can you say what the startup was it is so wild thinking about it in the past i 01:14:10.620 |
before i tell you what it is i want to tell one quick thing about my dad my dad in the early 90s like 01:14:16.460 |
91 92 was building kind of like a phone card company where you'd be able to pre-purchase long 01:14:23.020 |
distance minutes now if you remember the 90s and about like what 97 98 99 10 10 220 all those different 01:14:30.620 |
things dial down the center right like all those companies where you can pre-purchase long distance 01:14:35.660 |
minutes kind of came out and were very very big and so my dad was like six years early to that notion 01:14:42.060 |
and ultimately his startup failed but he was just really early to something that would catch on 01:14:47.900 |
really really big specifically in the telecommunication space me as i grew up and did my own 01:14:53.580 |
startup i did a startup where it was text message marketing this was in 2010 where you could receive 01:14:57.900 |
say text about various deals all that kind of stuff and of course 10 years later now you don't stop 01:15:04.700 |
receiving texts and text message marketing is all the rage and so i also much like my father had a 01:15:11.020 |
startup in the telemarketing space in which was just like a half decade too early so is it fair to say 01:15:16.540 |
you're almost always ahead of your time and you're a visionary of sorts no in fact i am not ahead of my 01:15:21.580 |
time i just got on some would say i got unlucky on that uh situation but i did see it was it seemed so 01:15:27.420 |
obvious to me at that time when i was doing it 80 percent of phones were dumb phones most people had flip 01:15:33.500 |
phones when i went and sold uh via text is what the name was of that specific product it was and we 01:15:39.820 |
had the short code via text too so it's pretty you know pretty clever right six digits when i went out 01:15:45.980 |
and sold it i only had a flip phone during that time i didn't even have a smartphone right because that 01:15:50.620 |
would they were kind of untenable for a lot of people so it's you know it's kind of just wild times 01:15:55.260 |
to think about but then after that obviously had to get a real job we were living in an apartment in 01:16:02.380 |
right next to campus bozeman montana and the guy below us must have been on some some amount of 01:16:08.380 |
drugs he threatened to kill us several times would just like scream and just lose his marvels all the 01:16:12.620 |
time very unhinged man angry downstairs man is what we called him one time my wife had dropped a battery 01:16:18.780 |
double a okay so not like a big we're not talking about like a b battery or d battery we're just talking 01:16:22.940 |
about a double a drop down pa laying on the ground i'm gonna kill you like crazy right absolutely 01:16:29.260 |
unhinged behavior down there so i had to go get a real job we need to move out of there we're gonna 01:16:33.820 |
start our life and so i worked at a small place schedulicity which i kind of talked about the boredom 01:16:38.540 |
there got to go to a place called web filings where i'm working just tons and tons of hours 01:16:42.860 |
during all that time i'm still trying to figure out startups did one where you could pre-wish your 01:16:46.860 |
friend's birthday messages and then it would automatically send it via facebook beforehand 01:16:53.180 |
we called it greet feed it was pretty it was pretty clever nonetheless that story i say all that story 01:16:59.180 |
because everything that i was doing was exploring building finishing things working learning about 01:17:04.860 |
corporate life learning how to communicate in corporate life being able to be successful at a job 01:17:10.220 |
learning about a bunch of kind of technologies that were about and one of the big technologies 01:17:14.140 |
during that day specifically 2013 was rxjs if you remember that one rxjs that's a link 01:17:20.460 |
from c sharp uh kind of ported over to javascript and for people who don't know i guess c sharp 01:17:27.340 |
what is its closest neighbor java is java like they obviously just took java and ripped it off at one 01:17:31.820 |
point yeah but now it's such a dynamic interesting language that it seems like it could be a really 01:17:37.340 |
cool like bounds of practical versus not practical it's just i i'm not really into wearing pleated 01:17:42.300 |
pants and programming at a microsoft house so this pleated pants a requirement i think so okay we'll 01:17:48.220 |
get back to this can we just get back okay all right all right all right what what filings okay so 01:17:53.660 |
anyways what filings was that's where i had to do like all the matrix matrixy stuff and build systems 01:17:58.780 |
and just kind of all that and it really pushed me because they also wanted me to do like 60 hours a week 01:18:03.340 |
um it was not very healthy work-life balance it was very hard work and kind of like that really 01:18:09.180 |
hard work going to cutting edge stuff really understanding the world really made it so that i 01:18:14.220 |
was able to just be able to talk about stuff very commandingly because you know we had to build really 01:18:18.700 |
complex state machines for the ui for what we're building and so when i went and started getting a 01:18:24.460 |
linkedin and all that inevitably just due to the fact that i've touched all these technologies and i had 01:18:30.140 |
some sort of paper trail saying i've touched these technologies microsoft or microsoft dang it lex 01:18:35.260 |
pleated pants pleated pants reached out no netflix reached out and said hey like i see you've done rxjs 01:18:42.540 |
you know we do a lot of it you want to come and interview with us and you know i was always told 01:18:48.860 |
that you should never reject a kind of like a handwritten personal invitation to interview this was way 01:18:55.020 |
before bots and even the bots were pretty obvious to tell that we're bots this was a manager at 01:18:59.660 |
netflix jeff wagner first manager ever and he just wrote a really nice note just like hey i see you're 01:19:05.020 |
doing a lot of these things we really need help with javascript um i would love for you to come 01:19:09.420 |
interview we even using a lot of rxjs if you're interested in that and so i was like all right you 01:19:13.660 |
know i can come and i'll interview and lo and behold interview went on and i called my wife i think 01:19:21.020 |
halfway through the interview and i was just like defeated absolutely crushed because i said 01:19:27.420 |
and she might remember this but i said we now have to make a decision are we actually going to move to 01:19:33.260 |
california or not because i already knew i had the job at that point like i just was just knocking them out 01:19:38.220 |
of the park i was doing a great job on that and so i just knew for a fact i'm getting a job at netflix 01:19:43.740 |
i you know all the there's this thing that people always get so freaked out about when it comes to 01:19:47.900 |
interviews and all that and i luckily somehow avoided this i don't get test anxiety i don't get any of that 01:19:53.580 |
because when i go into these situations my only goal is to show the things i already know 01:19:58.380 |
and so it's like i walked into this situation i've been preparing for this 80 hours a week for the 01:20:03.980 |
last like five years so just walk in and just i'm just showing the things i know and it was perfectly 01:20:09.020 |
fitting for netflix at that time period in the 2013 early javascript days on television and so it's 01:20:14.780 |
just awesome just worked out perfectly got hired there so we're in california with netflix this is 01:20:21.500 |
san francisco los gatos so uh if you're familiar so classic uh symbol people do which is this is san 01:20:29.340 |
francisco yep oakland san jose los gatos is just like a little bit yep kind of a little bit below 01:20:35.580 |
a little bit south of san jose same mega contiguous city yellowstone is in montana yells on the show 01:20:41.020 |
yeah yeah yeah so is it basically like that kevin costner riding on a horse 01:20:45.580 |
were you riding on a horse to campus or no no but i mean i love those stereotypes actually i mean to be 01:20:52.140 |
completely fair when i was 15 years old i was driving around on what is now a very busy populated 01:20:58.780 |
street shooting gophers out the window of our car with a 22 so it's like montana was a different place 01:21:05.420 |
at one point than it is today and there's plenty of parts of montana that's still very rural still kind 01:21:10.060 |
of more of that old world so yeah a little bit you know you can kind of get whatever you want from 01:21:15.180 |
montana as far as like culturally goes i'm not really sure the best way to put the difference 01:21:20.140 |
between california and montana it's just different expectations like one thing i can really appreciate 01:21:26.460 |
about california or at least when i say california i mean the silicon valley because obviously la and 01:21:31.660 |
california and the silicon valley very different attitudes very different mindsets you can't really 01:21:36.540 |
compare one to the other one thing i can say that's really positive about the valley is that everybody 01:21:42.700 |
is operating on this idea of like trying to build or create something and there's an energy to it 01:21:47.740 |
that's like very exciting like you meet somebody they have a startup and they're working on the 01:21:51.580 |
startup and it's very exciting and you know there's a lot of negative aspects to that and we can all 01:21:57.420 |
agree that our entire life being commercialized has probably not been that great but the kind of the 01:22:02.380 |
experience of being there and everyone's excited to build something it's a really cool experience yeah 01:22:06.540 |
it's great it's really great the excitement the energy yeah montana doesn't have that i have an 01:22:11.660 |
admiration a romantic admiration for like uh for the shows like yellowstone being out in nature it's 01:22:16.460 |
beautiful yeah i like uh writing somebody also said reddit is full of wisdom about you uh some of it 01:22:22.380 |
could be fake news but something about horses and this kind of thing like you write you like horses you 01:22:27.100 |
like riding horses we have horses on our up our neighbor had much more hilly land yeah and one of the 01:22:33.420 |
horses broke its leg so they had to put it down yeah and so we just said hey we're on much flatter land like 01:22:38.700 |
you can just have your horses in our property and so we just have horses that run around on our 01:22:43.100 |
what about milking cows somebody asked about cattle and and cow and so i've only had open open cows so 01:22:52.460 |
if you don't how i mean girl open means that hey they've tried to get the cow pregnant the cow did not 01:22:57.900 |
get pregnant first try and so they're calling that gene they're getting rid of that gene the cow's gonna 01:23:01.900 |
now or the open cow is gonna now go out to pasture pasture for the year and then get turned into 01:23:06.620 |
delicious t-bone steaks and of various things and so we would house open cows on our property so no 01:23:13.820 |
there's no milking of open cows okay they'd be very upset if you tried to milk an open cow 01:23:18.780 |
because they're not they're not milking cows right you have to get like that cow pregnant and then once 01:23:23.340 |
you get pregnant you have to kind of put into this permanent state of milking and all that and it's a little bit 01:23:28.620 |
more complicated than say what we did which was just cows on eating grass and i didn't have to touch 01:23:34.220 |
them okay well that's wonderful reddit is not a great place for wisdom about me they're gonna give 01:23:39.500 |
you the craziest answers uh we will return to reddit time and time again my friend uh so yeah you took the 01:23:47.020 |
leap into netflix so what was that like it was you know this is one of those things where when you talk 01:23:54.060 |
about it people love to trivialize this because it's like oh you're taking a leap of faith by going into 01:23:59.580 |
a fang company in like 2013 sounds super risky uh my wife was 36 weeks pregnant we had to travel to a 01:24:06.540 |
place where we knew not a soul we were about to have our first kid we didn't even have a doctor if you 01:24:12.140 |
don't know having a baby does like kind of you kind of want a relationship with a doctor there's like a 01:24:16.940 |
whole thing that goes on there so it was kind of it was a really hard and great experience so i went to 01:24:23.900 |
a job in which their culture deck so during this time this is where netflix still had like 01:24:27.340 |
kind of that old generation x feel to it their culture deck was higher fast fire fast you know as 01:24:35.100 |
it was very in your face about like hey this is how we operate you don't meet the standards we kick you 01:24:38.940 |
out so it's like i'm going i'm leaving a place where it's more secure to go to a place i don't know anybody 01:24:44.540 |
to a job that's bold in its claims about firing everybody with a wife that's just about to have 01:24:49.740 |
a baby and so it's like and i'm from montana and you're born every montanans born with a natural 01:24:55.820 |
dislike of california so there's like all these things kind of flowing into it where it's just 01:24:59.980 |
going to be like wow this is going to be this is a very intense experience and it was hard for sure 01:25:06.780 |
like it wasn't just some easy simple experience that we were just like oh i work now at fang you know 01:25:12.220 |
we had to kind of work through that having a kid was very difficult our first kid was very difficult 01:25:16.700 |
you know not having any family around to ever help you like you know took a a much larger toll 01:25:21.740 |
on my wife than me for sure what was the uh technical learning curve for you you showed up in 01:25:26.380 |
your plaid pants like dressed up yeah and what was it well what did you have to learn about the stack 01:25:31.740 |
because netflix i imagine is it is this incredible infrastructure has to deliver 01:25:37.180 |
just a huge amount of data i'm just blown away 01:25:41.340 |
by netflix but also like youtube these companies that have to 01:25:51.900 |
bits netflix has the easiest out of all the companies netflix by even though we have you could 01:25:59.340 |
say maybe we have maybe we beat youtube in view hours i'm not sure if we do but let's just pretend 01:26:03.820 |
netflix has 5x more view hours than than youtube whatever it is netflix has a fundamentally easier 01:26:10.540 |
problem than all other companies and let's get back to that i'm going to first tell you about the stack 01:26:14.220 |
but i'll tell you why it has a fundamentally easier problem all right so when i first got there 01:26:17.740 |
they gave me my playstation 3 my boss said go learn some code come back to me in a couple days and tell 01:26:24.940 |
me what you've learned then i'm going to start giving you bugs to fix wait wait playstation 3 what are you 01:26:28.860 |
talking about well i was on the tv team i had to go plug in a playstation and start launching programs 01:26:33.900 |
onto the playstation 3 and figure out how to work netflix on a television device oh so like you have 01:26:39.980 |
different kinds of device why playstation 3 is other different it's just 2013 that plug into the t 01:26:45.740 |
okay cool yeah not many not as many tvs had netflix let alone what they called their darwin app 01:26:50.780 |
which is their new application so if you bought a vizio earlier that year you'd get their older one there 01:26:55.420 |
it's called plus ui you get their older version and so not many had the newer version we no longer 01:27:00.620 |
supported plus or we never actively developed on plus we only did stuff on darwin and so i had to 01:27:05.660 |
learn that whole stack i the back end or the middle end uh the middle layer between the actual back end 01:27:11.580 |
and the front end was written in groovy and as i went around groovy is uh if you're not familiar 01:27:16.540 |
with jenkins then you've probably never interacted with groovy but groovy's is a jvm language it's a very 01:27:25.260 |
interesting language but here's how it got started at netflix oh it's apache apache groovy is a 01:27:31.740 |
powerful object-oriented programming language that runs on the java virtual machine released in 2007. 01:27:37.500 |
it has evolved to become a versatile language that combines both static and dynamic typing capabilities 01:27:42.300 |
all right so the ai is kind of lying to you uh groovy is not a powerful great language nothing that 01:27:48.140 |
statement makes it seem way cooler than it actually is you will meet one out of 100 people that have 01:27:53.020 |
touched groovy that said oh yeah groovy is great yeah the other 99 will be like heavens forbid you 01:27:58.220 |
ever have to touch that language yeah so uh when i got there nobody not a single soul at netflix there's 01:28:05.260 |
40 some engineers had any idea how groovy pretty much worked somehow people just hacked together these 01:28:11.820 |
scripts and put them all on there and it worked and it was all this was before there was a groovy rx 01:28:18.380 |
port we wrote our own version called wx it was a nightmare observables all these things i remember 01:28:24.620 |
one time they told me that oh yeah you know with rx it's really easy you just say what you need to do 01:28:29.180 |
it maps out and boom boom boom boom everything will run multi-thread and all that i was like oh wow really 01:28:33.660 |
so all i did was go like uh observable dot sleep one because i just wanted to see it sleep and then do the 01:28:40.220 |
next thing and it turns out when a thread sleeps itself no thread can wake it up and i just turned off all of 01:28:46.300 |
staging because i ran it like 10 times like oh it's not responding oh it's not responding oh now it's 01:28:49.980 |
not even coming back broke all of staging for everybody so no developer could work for the rest 01:28:54.860 |
of the afternoon because i locked up all the instances because it turns out no it was in fact 01:28:58.780 |
not multi-threaded every assumption we've been told is a lie no one had any idea what they were doing it was 01:29:04.540 |
a wild time and so i just simply naturally gravitated towards that because i'm good at printf debugging 01:29:10.860 |
i'm good at doing those things so i was like here i'll just figure this out here i will do this 01:29:14.460 |
so i had to rewrite how we do the data structure on the front end for the tv 01:29:18.140 |
from what is called a lolomo list of list of movies into loloromo which is a list of list of 01:29:24.540 |
recommendation objects for a movie why would we need to do that think about this you have two 01:29:29.260 |
lists one has live free die hard bruce willis because you love bruce willis the other one has 01:29:33.820 |
live free die hard because you want tough men doing tough jobs well during those days we'd only 01:29:38.860 |
have one way we could show evidence why you wanted it so we couldn't say oh because you liked this 01:29:42.860 |
other movie you'd go to that one and say the same thing so we had to kind of add one level of indirection 01:29:47.580 |
where we could decorate the recommend or the video with the recommendation information okay so you can 01:29:52.300 |
abstract away into the space of recommendation versus the space of movies yeah so we you can't hang 01:29:57.740 |
it off the video because obviously then it would be the same for everything that shows that same video so 01:30:01.580 |
that's amazing i had to do all this and i wrote it in groovy and i was the i just did it and people 01:30:06.140 |
were like how did you how did you write this in groovy and it's just like well i read the language 01:30:12.380 |
reference for a day and then programmed it well what do you mean it was a very radical language shall we 01:30:18.540 |
say and so i just simply became the person that knew these things so they just give me more and more 01:30:23.100 |
jobs at that and so that's kind of how i excelled being the person that was willing to do the thing 01:30:26.780 |
that no one else was yeah can you actually speak to the print of debugging like you you walk into 01:30:31.420 |
a system and there's a lot of systems in the world like this like uh twitter was like this when 01:30:36.300 |
then you when uh when elon acquired twitter and then rolls in and there's this old janky code base 01:30:43.580 |
that's just like a giant mess and you have to basically do print of debugging like what's the 01:30:47.820 |
process of going into a code base and figuring out like what the well how does this work what are the 01:30:52.060 |
flaws what are the assumptions you have to like reverse engineer what all these other engineers did in the 01:30:56.700 |
past and the mess across you know the space of months and years and you have to 01:31:01.260 |
figure out how all that works in order to make improvements the thing the reason why i've 01:31:06.140 |
always just been good at print depth debugging because one of my first kind of side quest jobs 01:31:09.500 |
that i got was writing robots for the government when i was still at school and so i'd kind of do this 01:31:14.060 |
contractually for so many hours um so many hours a week and my boss hunter lloyd great professor by the 01:31:21.020 |
way he just said hey here's your computer here's the robot here's how you plug it in here's how you run 01:31:26.940 |
the code can you write the flash driver the ethernet driver can you write the planetary pancake motor 01:31:31.500 |
here's some manuals um i'm missing some just figure it out i'll be back so that was government work for 01:31:37.100 |
me so i was like okay i'll figure all these things out and i figured them all out and the only way to 01:31:41.020 |
really get anything out of the machine was to print and so it's like i had to become really good at 01:31:47.580 |
printing my way through problems and so that kind of became this like skill i guess i adopted is that i can 01:31:52.780 |
just kind of print after bug my way through a lot of these problems obviously i'm not a game 01:31:56.780 |
developer probably a different world probably should use i think john carmack was on here and talked how 01:32:00.940 |
great the debugger is different world because when i was at netflix there's machines that exist 01:32:05.500 |
somewhere where on aws i'm not logged into them i don't even know how to log into them i'm not even 01:32:09.900 |
sure if i have credentials to log into them they run once somewhere and i have to figure out what 01:32:14.300 |
happened and why it's happening so it's like i'm going to become this is like this is what i've trained 01:32:18.620 |
for i'm a print after debugging champion so it's just like i could just run through these things 01:32:22.620 |
really quickly and figure out why they're happening the way they're happening you're a special human i 01:32:26.940 |
think that's an incredible skill set to have to be able to drop in into any code base to drop into any 01:32:32.140 |
situation and do print after debugging meaning like you know you're in a dark room and you're feeling 01:32:37.260 |
around that room to try to figure out what the room is well i had the code so it's like i can kind of 01:32:41.820 |
blueprint what's happening like i don't understand the services or anything that's happening but 01:32:45.660 |
you can start guessing pretty quick as to what's going wrong right but then the print 01:32:49.900 |
side of that helps you uh confirm your intuitions test your intuitions and build up more and more 01:32:57.420 |
information and then you start to accumulate like this bigger picture from that what the edge cases are 01:33:02.940 |
that uh that break the system and not i mean i i think that just that kind of space like that kind of 01:33:10.780 |
situation is uh intimidating for a lot of engineers like they break down at that point i think it really 01:33:17.340 |
is a powerful thing to be able to come into a code base that's generally a skill set of like uh very few 01:33:23.980 |
of us start from scratch yeah and actually this is the fundamental problem of web development and in 01:33:30.540 |
general where they're like uh i don't know what's going on i'm going to write my own thing from scratch 01:33:36.620 |
right as opposed to like actually doing printout debugging on the on the space of languages on 01:33:42.140 |
the space of problems because there's a lot of wisdom and solved problems already in this code base 01:33:50.060 |
it's a much more important skill set to understand to learn from the mistakes and the wisdom of the past 01:33:57.100 |
of the ancestors that came before and build on them as opposed to throw it all out and start from 01:34:03.500 |
scratch this is something obviously you see a lot with a javascript framework that comes out and you 01:34:07.900 |
want every single day so i have a very great story about that but this is what like i think has shaped 01:34:13.260 |
me the most about my perspective of other devs there's this dev and he always just wrote things in 01:34:18.460 |
just what i thought was such a bizarre and weird way and it was this had to do with falcor so our data 01:34:24.220 |
fetching um library for netflix this would run on mobile so i had to write in objective c it had to 01:34:29.660 |
run on television and it had to also run on web so it ran on everything and it was me and one other 01:34:35.900 |
person were responsible for this thing working and the request side where we'd had to de-dupe the 01:34:41.340 |
information that we already have the requests that were pending and the new data so i had to figure all 01:34:46.060 |
that out based on what someone's requesting and then just only optimal optimally request the stuff that 01:34:50.460 |
we don't have he wrote in such a goofy way and i'm thinking man this guy is just 01:34:55.260 |
what a goofball so i delete it all and i start writing and i'm like look at how much nicer this 01:35:01.020 |
is it's looking so good i'm like oh there's that one edge case okay i can see why he wrote it this 01:35:06.700 |
one way that's not a big deal though the rest of my code is really great by the end of it i'm like 01:35:10.540 |
i literally almost line for line just reproduced what he already wrote it's like slightly different 01:35:15.980 |
towards my style but i just wrote the same code i'm like i'm an idiot i am the idiot in this 01:35:21.900 |
situation because it was already a solved problem i just didn't take the time to learn what he did 01:35:26.380 |
instead i re-learned what he did by rewriting the entire thing i think that's the skill set that is 01:35:30.860 |
extremely important for people to learn i see that in myself that's a constant struggle for myself 01:35:35.580 |
i when uh facing a code base for example but this applies generally in life where somebody did a lot of 01:35:43.580 |
work to do a thing you should invest a huge amount of time and get really good at figuring out what 01:35:49.900 |
they did why they did it do a lot of printout debugging to understand what they did it's a much 01:35:55.820 |
more efficient way to understand a problem deeply than to start from scratch even though there's a 01:36:01.660 |
constant temptation to start from scratch because starting from scratch is fun you do get the puzzle 01:36:07.820 |
solving all that kind of stuff it's just not going to be the right thing to do usually pain is the right 01:36:16.300 |
thing to do and it is for most people painful to understand other people's code bases i highly 01:36:21.820 |
recommend starting from scratch if you want to understand a concept you don't know how an http server 01:36:26.620 |
works create a tcp socket learn how to parse http it'll become very easy and you'll go this is the reason why 01:36:34.540 |
i whenever i get a request i have to await the text i now understand why the text is for whatever reason 01:36:41.580 |
not there i get it i now understand it and so you kind of gain these new perspectives just by simply 01:36:47.340 |
parsing something out all right back to uh the wisdom of reddit apparently there there are memes and legends 01:36:54.540 |
you know so many of those things about your uh programming arc in netflix uh this falcor system 01:36:59.100 |
you mentioned somebody i think it was uh tige how do you pronounce his name by the way tige tige okay 01:37:05.580 |
tige it's tj would be his name but we call it tige or telescopic johnson oh wow so many names 01:37:12.300 |
you know ddos distributed denial of service attacks you apparently were able to accomplish the simplified 01:37:19.100 |
version of that of just dos uh that's a legend so you basically broke down the system somehow 01:37:25.020 |
yeah yeah so can you tell the story of that i'd be glad to so this felt for so there's this felt 01:37:30.060 |
core business right and i kind of i a i did discover the bug before anybody else and i did report it to 01:37:36.620 |
security and and it it was so bad it actually got its own name repulsive grizzly attack yeah and they 01:37:43.100 |
even give examples of how to do it effectively what it means is that there is a request that targets 01:37:49.020 |
both memory and cpu and will destroy there you go look at how netflix the next one down was the article 01:37:54.220 |
that was actually written um i don't get mentioned which is a little bit upsetting considering i was the 01:37:58.620 |
one that discovered it and told everybody how bad it was uh anyways and had to write the fix for it 01:38:03.420 |
or the first fix so this is how it works is that it you can do something pretty similar i believe 01:38:11.340 |
with graphql as well it has the same kind of danger any of these kind of rpc requests as much or as 01:38:17.500 |
little of the data as you would like frameworks are vulnerable to this kind of attack so with falcor 01:38:23.020 |
what you do is you could you give it an array this is an array is called a path and that's the path to 01:38:27.180 |
the data but sometimes you don't want just like you don't want to have to write out i want movie 01:38:31.580 |
i want row zero or list zero or row zero column zero title i want you know row zero column zero description 01:38:39.500 |
i want you know you don't want to have to write out all that so instead you could just be like i 01:38:43.500 |
want um i want rows zero through ten columns zero through ten titles and descriptions so you can write 01:38:52.220 |
in a very compact nice little format and it'll give you all that data it'll go to the server the server 01:38:56.300 |
will fill that all in and give it to you oh dang it list three it only had three videos in it so what 01:39:03.180 |
happens when i try to re-request the data well i need a way to be able to tell my system that you'd 01:39:08.860 |
have requested the data and there's nothing there so this is called like a call this like a boxed value 01:39:14.380 |
so it's gonna be like type uh something value there's nothing there we've already requested it and there's 01:39:19.180 |
nothing there they call you know it's like a sentinel value if you will a boxed value and 01:39:22.940 |
we have this little special flag we'd pass called materialize meaning that when you ask for a path we will 01:39:30.140 |
make sure we fill it out so we don't accidentally erase anything and at the very end we'll say okay 01:39:35.180 |
the thing does the request you've made has already been made and there's nothing there 01:39:38.620 |
well what happens if i request rows zero through ten thousand columns through ten thousand 01:39:43.580 |
one more item through ten thousand and then a whole bunch of properties and then ask it to materialize 01:39:49.020 |
well i'm about to go create billions of objects in the jvm and what happens to the machine 01:39:56.140 |
it stops running and then we try to json even if it could create them all we then ask it to json 01:40:01.260 |
serialize it's not going to do it right like it's impossible and so that was the attack vector is a 01:40:08.060 |
simple while loop would have taken down and held down netflix for a very long time because one request 01:40:16.060 |
would kill one machine on aws and so that means it would just turn it all off and this was on the website 01:40:22.380 |
this was on um tv this was on mobile like this was profound and here's the worst part it was in 01:40:29.020 |
production for years so we couldn't even roll it back there was no like oh crap let's just roll back 01:40:34.780 |
to two weeks ago and we'll kind of fix forward and figure out no it's like we could roll back to 2011. 01:40:39.980 |
like that's our option it's 2011 and that's it so we had to figure out a way forward and all that and so it's like 01:40:45.740 |
the amount of problems that would have happened if nefl if someone would have discovered this is 01:40:52.780 |
is unstatable just to be clear the infrastructure that's 01:40:57.100 |
serving the videos would shut down yeah the ui like you couldn't perform any actions on the ui you'd 01:41:03.020 |
surprisingly could still stream video but you would never be able to get to a video to stream because 01:41:07.180 |
every action you would take would be completely shut down and so it wasn't a ddos because you 01:41:11.580 |
didn't need a bunch of computers to try to overwhelm the system by making a bunch of requests one request 01:41:16.620 |
one machine if we had 50 machines serving the millions of requests it only take 50 requests to 01:41:21.980 |
shut down the entire ui isn't it possible to do dos or ddos on basically any software system like 01:41:28.620 |
defending against all the you know closing all those attack vectors is probably really difficult if you take 01:41:34.700 |
any soft sufficiently complicated software system there's probably so many ways to overwhelm it 01:41:42.620 |
yeah it's i mean this is why people use cloudflare i think dhh said it best which is like 01:41:47.900 |
we have our website and we have a strong bodyguard on the outside so cloudflare has a bunch of utilities 01:41:53.260 |
all built in because you know obviously this is why everyone hates all these bluetooth devices that 01:41:58.940 |
connect to the internet because they just turn into attack vectors where people use those to dos 01:42:02.620 |
or ddos other sites and so you don't need something sophisticated you just need a bunch of requests to 01:42:07.340 |
come in and you can take down websites and so that's why these fronts are really good at kind 01:42:11.580 |
of discovering where these problems are but dos is a bit different because it doesn't have to be 01:42:16.460 |
overwhelming by using resources with a whole bunch of requests it really just means simply that there's 01:42:21.500 |
a denial of service attack one of them could be there's a regex attack that existed where 01:42:26.700 |
cloudflare actually did it to itself and shut itself down which is there's a regex expansion attack 01:42:31.100 |
we're given the right kind of regex if you know someone's running a specific regex you can actually 01:42:35.500 |
provide input that is maximally bad and that thing goes to like super processing it takes 10 seconds to 01:42:41.740 |
process a single request then you only need to make hundreds of requests and you shut down the whole 01:42:46.300 |
service it's not like you need some giant machinery to make one trillion requests you only need just some 01:42:51.260 |
small amount to completely destroy service and so there's the web is an extremely difficult place to 01:42:57.820 |
to do it correct this is super fascinating i i do also wonder how many ultra competent uh 01:43:04.940 |
what is it black hat hackers there are versus sort of the good guys versus the bad guys how many bad guys 01:43:14.060 |
there are and what is the average what is the distribution of skill set on the bad guy side 01:43:21.100 |
that are constantly trying to attack i assume there's probably a huge number of just really 01:43:25.420 |
simple ones script kitties right just people trying to just do things and then there's a huge amount of 01:43:29.660 |
like social engineering that just goes in where hacking is done not with a computer but just by 01:43:34.540 |
yeah you know one of the classic ones kevin mitnick had this one in his book which was 01:43:38.780 |
you'd call up somebody pretending to be like charlene we're uh doing some auditing and uh i think your 01:43:45.020 |
pin's out of date on file is it two three two three still and they're like no it's four seven four seven 01:43:50.140 |
you're like oh thanks sharon you know boom you just hacked them right like the classic people love 01:43:54.940 |
correcting bad information this is like a standard so like there's all these ways people hack and so 01:44:00.860 |
my assumption is that there are really great white hat hackers there's really great black hat hackers 01:44:06.940 |
but the vulnerability space the harp the thing is is that discovering a vulnerability and you don't 01:44:13.740 |
let anyone know the white hat hacker still has to make that same discovery yeah and that's where i 01:44:19.420 |
think the real thing is is that black hat hacking in some sense has a fundamentally easier job or at least 01:44:24.620 |
a job in which they can take advantage of for much longer periods of time one's the process of 01:44:29.660 |
discovering who's breaking the system the other one's trying to figure out how to break the system 01:44:33.340 |
and it seems like most software is held together by toothpicks and glue yeah and there is a lot of 01:44:38.700 |
dangers in every piece and also the social engineering aspect that's a real attack vector i think that's 01:44:45.260 |
the attack factor that will do in the long term the most damage in the world especially as ai tooling 01:44:51.420 |
becomes easier and easier to convince people at scale sort of do that kind of gram email grandma i think that's 01:44:58.940 |
that's a really serious attack vector like human psychology and all that i i kind of assume whenever 01:45:03.580 |
there's a girl that approaches me it's kind of some kind of social engineering project some attack 01:45:08.460 |
vector some some age intelligence agency in fact i'm pretty sure we're back to a beautiful mind aren't 01:45:13.900 |
we beautiful mind yeah i have a white board upstairs that i calculate everything everybody's 01:45:19.260 |
trajectory and move you're you're not wrong though with the attack factor especially in the day of ai like 01:45:23.900 |
one thing that i don't think a lot of people are talking about as we integrate more and more ai 01:45:27.900 |
is that prompt injection is like an extremely hard thing to defend against because it's not really 01:45:35.580 |
clear how you defend against it if it's just a you know at the end of the day word calculator make word 01:45:40.380 |
come out if you can figure out the proper word calculator input it might just break its bounds and 01:45:45.660 |
start doing something it's not supposed to do and there's a whole future where there's all these 01:45:50.060 |
products that are going to be vulnerable to things they never thought about like you it's one thing 01:45:54.700 |
where you forget an edge case while you're programming now you have to guess what people 01:45:58.540 |
might be able to think of making something that has access to a system be able to do right and you 01:46:03.180 |
don't have a way to reason about it it's reasoning came from reddit and other words that it's read and 01:46:08.140 |
how to put things together like this is a very it's a massive space that's going to be happening it's 01:46:13.580 |
why i'm personally thinking don't give too many powers yet like we don't know the attacks that are about to happen 01:46:18.780 |
uh yeah the more power we give to software systems the more damage they can do that certainly is the 01:46:24.780 |
case but the more awesome they could do and that's um the knife's edge that we all walk along as a human 01:46:30.860 |
civilization together hand in hand will we flourish or destroy ourselves question mark uh folks on reddit 01:46:39.500 |
the good folks on reddit demanded that i ask you about the time you broke production is this related to 01:46:45.820 |
falcor did you break production is this i've broken production quite a few times i've broken 01:46:49.820 |
productions for so many stupid reasons one time i broke production because i came up in the php and php 01:46:56.220 |
static means static for the lifetime of the php and php was the lifetime of every request right that's why 01:47:02.300 |
php was so inefficient was that every request was its own like instance and therefore static memory was for 01:47:07.820 |
the lifetime i guess i never put that together and so i had some objects that i made static because i was like oh i just 01:47:13.820 |
need this for the lifetime of the request and lo and behold those weren't lifetime a whole bunch of bad 01:47:18.860 |
data got all over the place people were showing up saying they were from all these different countries 01:47:22.540 |
and everything was all wrong because i just whoopsie daisies i just made a whole conundrum with that so 01:47:27.420 |
that was one time i did it another time is i took down if you were on the home page on the website 01:47:33.820 |
waiting for lady gaga's video to come out and you were watching the countdown go down if it reached zero 01:47:40.060 |
the billboard would freeze and it wouldn't work if you refreshed it would work but the reveal 01:47:46.460 |
the big reveal i screwed that up and my boss got real upset and so did other people in hollywood got 01:47:52.780 |
upset about that one that was like a my bad sorry jeff wagner again i remember that one i remember that one 01:47:58.540 |
specifically one time i released a bug where again on the billboard if you pressed add to my list 01:48:03.660 |
i accidentally programmed in an infinite loop and it just your whole web page would just freeze 01:48:11.100 |
are some are some of these bugs difficult to discover until you so that one seems really easy looking 01:48:16.140 |
back on it and there was we actually during those days we had manual qa that are supposed to go through 01:48:21.420 |
everything so i didn't feel as bad because my manual qa counterpart also missed it like we all missed it 01:48:28.460 |
but it was just so simple just press that button boom it just completely freezes the website 01:48:31.980 |
polluting the code with sort of global variables that are holding values uh as php i think allows you to 01:48:39.820 |
do that's a tricky one to discover because you rely on it but then there could be somebody else assigns a 01:48:46.460 |
value to it yeah it erases everywhere and i just didn't understand like in my head static was like 01:48:52.380 |
all this for the life like i was just so locked into the php world at that time that i i just made 01:48:57.820 |
a just a just such a like looking back on it it's so obvious but during the time it was it's hard so in 01:49:04.620 |
general pushing to production i talked to peter levels about this he i mean obviously he's operating as a 01:49:10.300 |
mostly a solo developer but he often on the websites that thousands not hundreds of thousands of people 01:49:17.900 |
use he he often ships to production uh pushes to production meaning like just no testing just like 01:49:25.660 |
push to fix uh what are the pros and cons of that approach in general to you what do you think it's 01:49:31.100 |
obviously much easier the smaller your organization is i think everyone i think no one would argue that 01:49:36.860 |
that sentiment if it's just you working on a singular project it is obviously much easier for 01:49:42.220 |
you to push directly to production because you are the only one working you know all the ins and outs 01:49:47.260 |
and if something were to break you would discover it so to me that makes sense like i think the way 01:49:51.660 |
he operates is perfect for what he does you couldn't take what he does and move it to say microsoft or 01:49:56.940 |
netflix or google because that would obviously it would just be a disaster just due to the amount of 01:50:01.420 |
people all pushing to production and so i i mean i personally love that i think that you have to 01:50:07.100 |
you have to gauge both the application you're building and its complexity and what you're pushing 01:50:13.340 |
and how many people are working on it i think those all go into how you can kind of do that because 01:50:17.820 |
not all applications are created equal either like that application i was making with zooming and 01:50:22.060 |
scrolling where we had all of our own everything it was a very deep logic like heavy logic app and that 01:50:28.300 |
was regardless of what it was happening on the website most the code was library code and that 01:50:33.740 |
becomes way harder if you don't have a good test suite and stuff to kind of run before you push it 01:50:37.980 |
out because when you squeeze that ball you know different things uh come popping out in different 01:50:43.660 |
areas and that's like that's very that's a very harder problem than say if you're doing more of 01:50:48.700 |
like a heavy visual one because a heavy visual one you're you're affecting just this one area's visual 01:50:53.260 |
stuff and you can test it and like that's normally the end of it whereas you know so it depends on like 01:50:59.420 |
the coupling and everything so i i mean i love his approach by the way i have such mad respect for 01:51:03.580 |
anyone that operates that way because it i think is a great way it just is so good because it kind of 01:51:10.220 |
breaks this notion that tech twitter has that oh well you have to use all these expensive services you 01:51:14.620 |
need to use all these kind of things because if you don't use all this kind of stuff if you're not 01:51:17.340 |
using the latest version of react if you're not using the latest version of this you're going to simply 01:51:21.020 |
you know you're simply not going to make it as a startup it's impossible and it's just like 01:51:24.140 |
no no that's not software like most of software isn't the new stuff most of software is old crappy 01:51:30.220 |
software that someone has to maintain and it actually is really really great and has lots of really hard 01:51:35.420 |
problems and if you look at it differently it's actually fantastic for people who don't know his tech 01:51:40.060 |
stack in terms of web development is php jquery and sqlite yeah all great stuff i'm just surprised he 01:51:47.820 |
still uses jquery just given the fact that at this point on the modern web everything is i mean you 01:51:52.300 |
have document query selector and add event listener click right it pretty much has everything you 01:51:57.340 |
already need it had dom content load like all the reasons i used jquery back in the day was adding a 01:52:02.380 |
click on a on a button was like hard you had to deal with ie7 ie8 ie9 right like those are hard 01:52:09.180 |
differences whereas now it's just so easy i'm just surprised it's even that i mean that's definitely a 01:52:13.820 |
a trade-off i i have i still use the exact same stack php jquery uh and different flavors of sql 01:52:20.540 |
but the question there is you know you keep using jquery because you can get the job done really fast 01:52:28.300 |
and there's no significant performance hit that yet that you detect so like why switch to something else 01:52:34.060 |
but it's always probably as we'll talk about good to explore and to learn not all tools are great at 01:52:40.860 |
solving all problems and so what you think is really like the problem is is you run into this kind of 01:52:47.340 |
trade-off which is you have some tool belt that you're very adept with you know all the ins and 01:52:53.820 |
outs there's no unknown unknowns but there's no surprises in this you know what you're building you 01:52:59.020 |
know what you're getting into you will go through and um you'll be able to solve the problem but if you 01:53:06.300 |
ever use a different language or a different experience you can find that some things are 01:53:10.780 |
able to represent states way easier in a way more efficient way and you can solve problems really 01:53:15.900 |
efficiently in some versus the other and so it's like if you don't take the time to explore as well 01:53:20.940 |
you could be missing out on something that makes you twice as good on this one specific problem like 01:53:24.940 |
subset and so i kind of value being able to look at all problems and so i don't want to get stuck on one 01:53:30.380 |
thing though i see why people do which is for the efficiency sake let's just return to the infrastructure 01:53:35.980 |
of the platform of netflix and speak more generally netflix twitch youtube like anytime i use any of these 01:53:41.500 |
services i'm just blown away by the the infrastructure it takes to deliver this service youtube and twitch are 01:53:49.660 |
unique versus netflix where the creators can roll in themselves and upload stuff yeah so on the consumption 01:53:56.380 |
side youtube has over 100 billion views a day over 1 billion hours watch time but on the sort of creator 01:54:05.100 |
side 1 million hours of videos are uploaded every day 1 million hours it's like you have to do you have 01:54:12.060 |
to service both and you have to deliver everything it's just it's incredible to me uh can you maybe 01:54:20.300 |
speak to your own intuition just zooming out on it what it takes to deliver that kind of infrastructure 01:54:24.700 |
for me the thing that i i find vastly complicated and i can't imagine the engineering hours is how do you 01:54:33.340 |
even create an edge in that situation and what i mean by an edge i mean like when people say this phrase 01:54:38.940 |
if if you're unexperienced an edge is where you deliver data to be you want that edge to be as 01:54:43.180 |
close to the customer as possible because that's where the data lives and then the communication 01:54:46.780 |
between the customer and what you're doing is really really small obviously the speed of light adds up 01:54:50.780 |
the amount of hops adds up the amount of services that you have to remotely call adds up they all add up 01:54:54.940 |
and they all add inefficiencies to the system so something like youtube they want to be able to serve 01:54:59.580 |
that data as quick as possible but their data changes constantly and relevance is almost directly 01:55:06.140 |
tied with the newness of the item so it's like how do you even cash these things out how are you doing 01:55:11.580 |
this so they must have such an incredible caching network that i can't even i can't even fathom what 01:55:17.020 |
it takes to do that that just to me is just so impressive a million view hours in how many different 01:55:21.900 |
uh resolutions with how much data what is a million view hours is it 4k million view hours along with 01:55:27.580 |
1080p along with 720p along with 1440p like that number is an insane number actually it is brilliant 01:55:35.020 |
what you said which is for youtube often the new thing is extremely important to show to everybody 01:55:42.540 |
and so you can't rely on caching or trivial kind of caching you have to like deliver the new thing as 01:55:49.980 |
quickly as possible yeah i mean it's incredible so there's the entire system the the recommendation 01:55:57.580 |
system that knows each individual human watching youtube and it has to integrate into that the new 01:56:04.780 |
thing while also caching this incredible cluster of possible videos that you're potentially interested in 01:56:12.300 |
so and integrate into that ads right in the case of youtube and twitch and so on it's a really tough 01:56:20.140 |
problem because you have to think like what is the cash hit rate on this because there's so much because 01:56:25.180 |
the problem now actually comes down to space like space actually becomes a real problem yeah how many 01:56:30.060 |
hundreds of petabytes do they have that they have to like okay what do we cash and where do we cash this 01:56:36.460 |
right like the number i mean i think in the terms of like gigabytes or maybe megabytes like they have to 01:56:41.900 |
think in in probably versions of bytes i don't even know the name for right like it's like such a different 01:56:47.100 |
problem and that's why i said netflix netflix has a much easier job when it comes to caching 01:56:51.660 |
so if you've never looked it up it's called the oca and that we know what videos we're releasing 01:56:57.180 |
we know what videos are hot in specific areas it's a very limited set we're not going to all of a sudden 01:57:02.860 |
get oopsies we got a million new view hours right we don't even have to worry about that as a problem 01:57:06.620 |
and says like okay we know stranger things season five is about to drop we're going to pre-cache strange 01:57:12.300 |
stranger things season five in every single oca across the world because that thing's about to get 01:57:17.100 |
hammered right and so it's like it's able to do such a different kind of decision making than what you 01:57:22.380 |
have to do with something like youtube and then twitch is even more wild because now you're actually 01:57:27.340 |
ingesting video and trying to make it go out all at the exact same time for all video and you have to 01:57:32.460 |
transform that video from whatever format and whatever the bit rate is into something that's 01:57:37.820 |
more efficient in the system like that hats off to twitch engineering like because that is like some 01:57:42.540 |
that's some serious work and here's some lex coming out and tweeting about youtube features so like 01:57:49.820 |
there's a i listen you're not wrong on the features you asked for though uh i think there's this is this 01:57:57.740 |
an engineering problem of how do you allow fast iteration and addition of features that shouldn't 01:58:05.660 |
have to be integrated or impact the whole code base so at the edges of the code base sort of improve on 01:58:11.820 |
certain features without like having to consult the mothership uh of the code it's the large team right 01:58:20.300 |
that's that's the fundamental problem when you get into youtube size there is the team 01:58:25.500 |
slash organization that deals with data warehousing there's the team slash organization that deals 01:58:30.700 |
with delivery there's a team slash organization that's like the middle layer how you even you know 01:58:35.100 |
they're going to be like the little micro surfaces to talk to these places then you have this front 01:58:39.180 |
end engineer so like for for a small feature you have to get middle team you have to get back end team 01:58:44.940 |
you have to get all these things quick example netflix um are you familiar with uh the dystopian black 01:58:50.780 |
mirror yeah okay season one episode one do you know season one episode one everyone who watches black 01:58:55.340 |
mirror typically knows this episode okay yeah i don't remember what it is forgive my language 01:58:59.740 |
but they call it the pig episode oh yeah of course once you've seen the episode yeah you will then 01:59:04.940 |
know this episode well when netflix adopted it i got pulled into a room there's like a vp a vp 01:59:10.380 |
a product designer a vp and they said hey we're about to release our own version of black mirror season uh 01:59:16.380 |
season three i think at that time we need episode one season one to not be the first thing people see 01:59:22.860 |
so let's just reverse the season order that required me i had like 20 engineers i had to gather together 01:59:31.660 |
to be able to have this happen and that's just the problem of big companies is that eventually every 01:59:36.700 |
little thing has to become its own team and so even small there's no such thing as a small feature 01:59:41.900 |
reversing the order of the drop down that selects the seasons is uh a meeting with a bunch of vps 01:59:48.540 |
and engineers that's really interesting there's got to be a way to accelerate that the natural 01:59:53.180 |
scaling of a company and the bureaucracy that grows yes slows that down but just having seen elon work a 01:59:59.340 |
lot his teams are able to like still keep it very fast even as the company grows there's got 02:00:05.100 |
to be like a process doing that especially for uh yeah for the pig episode like uh i don't know where 02:00:16.620 |
that's in the priority list but like for important things like that you should be able to do that 02:00:21.500 |
quickly i don't know can you speak to like how would you do that well i can tell first how it was done 02:00:27.100 |
remember so at a place like netflix there would be i think that at that point it's called a product called 02:00:31.420 |
dexter i can't remember there's our actual like movie metadata warehouse that's going to be highly 02:00:37.820 |
integrated with hollywood that's going to be you know where that side is able to manage all that so 02:00:42.540 |
i'm like hey you need the ability to mark things that need to be reversed because we're going to run 02:00:46.620 |
into this a bunch and we did we ran into quite a few topical shows that all need to be reversed and all 02:00:51.100 |
that and so it's like we need to be able to reverse episode numbers season numbers we need to be able to 02:00:55.260 |
hide season or episode numbers like in the case of the chelsea handler show it was like a daily show 02:01:01.100 |
so it's like you don't you don't need episode numbers you just need the latest one and so like 02:01:04.700 |
there's this whole problem that exists and so it's like okay you need to work on that for your ui over 02:01:09.500 |
there then you need to be able to store that data then we need to be able to go to the like the people 02:01:13.660 |
that can actually get the video data out of that and provide it to our our uh our service layer i need 02:01:19.340 |
to go talk to them and convince them they need to be able to give me the new methods and everything to do that 02:01:23.660 |
then i need to be able to go write the methods to get it down and then i need to go to the ui and 02:01:27.100 |
make that accessible now i need to go to website people i need to go to mobile people i need to go 02:01:30.620 |
to the tv people and so it's like yeah you can see this thing like snowballing and for us the big thing 02:01:36.140 |
that netflix did that was so well is after i met with these people that were high level i was then i was 02:01:41.900 |
the captain i'm the captain now yeah so i went to all these teams and said hey manager i needed i need 02:01:46.380 |
an engineer we need to get this done within the next couple months because we got black mirror coming out 02:01:50.220 |
yeah so she would go okay here you go the map team i need someone to help me with being able to get 02:01:54.620 |
data out of the lolomo for this and so it's like all right you're working with this engineer i'd go 02:01:59.900 |
to the vms team okay i need this engineer i'd go to the billboard team i need this engineer go to all 02:02:04.700 |
these little places to get all these little pieces of data and then i was the captain so i was like 02:02:08.780 |
you're working on this you're doing this you're doing this you're doing this i'm doing this let's go 02:02:12.140 |
right and so it's like that worked and we were able to go pretty fast for a big company and the fact that it 02:02:17.500 |
required like 20 engineers to do such a simple task we were able to do it like gosh i'd say about 02:02:23.020 |
like three weeks worth of effort but that was still i thought that was amazing comparatively to how many 02:02:28.380 |
people move well because you have the freedom of the agency to do it you said the captain of the ship 02:02:32.380 |
that's really powerful for big companies that's a risk because you can it up you might not 02:02:37.660 |
see the bigger context um legally or any and the bigger context of the impact on the industry or 02:02:45.100 |
all the contracts that are made all that so it's a risk it's a risk but it's a risk you have to keep 02:02:49.020 |
taking and then if when you up you fix and then maybe pay the cost legally for that whatever but 02:02:54.460 |
the long term that risk pays off because you're going to keep creating a better and better product 02:03:02.540 |
evolving where the industry is going constantly innovating ahead of where the industry is going 02:03:07.340 |
and so on yeah and not only that i think one thing that is just so important is that yes the product 02:03:13.100 |
will get better but the people that you hire and the people that you keep around are better because 02:03:18.780 |
they're the ones that show maturity they're the ones that can just you give them something and they 02:03:22.700 |
can rally the troops and make something happen like that's a very great group of people to hire and so 02:03:28.380 |
you also naturally select out great engineers that aren't just simply good at coding they're good at 02:03:32.940 |
coding and they're good at explaining and they're good at convincing and they're you know like you have 02:03:37.020 |
to you have to create a very lean audience that can move fast and i think for great engineers having to wait 02:03:45.260 |
for like okay let's schedule a meeting for next wednesday with the with the vps and that destroys their 02:03:52.620 |
soul and they either don't want to contribute anymore they leave the companies or they just kind of 02:03:57.260 |
tune out and take the golden handcuffs and just you know buy a nice house and focus on uh family 02:04:03.980 |
and i feel like i would die under that like honestly like that is that is my death sentence 02:04:08.380 |
is where it's just that there's no reason to try there's no reason to do anything i'm just gonna go in 02:04:13.180 |
there like effectively zombie through my day and call it like i don't want to live like that i want 02:04:18.540 |
to feel like i'm trying to do something uh i should also mention on top of that so you've brilliantly 02:04:24.940 |
laid out how incredible the challenge that netflix has to solve on top of that with youtube you know 02:04:31.580 |
the metadata thing because users are able to upload video and there's an api where they can upload 02:04:38.460 |
automatically and change all this kind of stuff automatically every one of those things is an 02:04:43.820 |
attack vector as we mentioned that's something they have to consider seriously on the engineering side 02:04:49.420 |
and on the sort of the legal side they can get into trouble all kinds of ways so they have to consider 02:04:55.260 |
all of that that's which is yes fascinating the legal side is obvious but it's not really like i 02:05:01.740 |
would never have initially thought someone would say upload images that you're not allowed to own or have 02:05:07.500 |
but that guarantee you that happens then you have the whole kid side right yeah i think about when you 02:05:11.660 |
mark something as kid friendly how many times have they snuck porn into a taylor swift video or whatever it 02:05:16.700 |
was that was like a few years back there was that whole taylor swift or whatever i forget what it 02:05:19.900 |
was i thought it was taylor swift but there'd be these mock videos that come up and then boom it's 02:05:24.700 |
like that's a that is such an awful problem and i'm so happy that is not a problem i have to try to figure out 02:05:30.460 |
yep okay so yes youtube and uh and twitch and netflix are doing an incredible job you eventually uh 02:05:40.300 |
chose the madman you are to leave netflix and to start in the new journey of being a wolf pack of one 02:05:48.140 |
start streaming what was that what was the story of that so i was streaming for almost seven years now 02:05:55.900 |
it started actually at netflix we did a charity uh extra life shout out extra life for starting my 02:06:00.860 |
streaming career effectively it's just you stream and whatever money you raise it goes to kids with cancer 02:06:06.220 |
research they are a great charity in the sense that they take no overhead and they raise their own 02:06:11.340 |
donations for their website and everything and so it's like a very great straightforward charity really 02:06:15.100 |
love like what they've done um it was super cool because i live in south dakota now but i actually could 02:06:21.020 |
choose a hospital directly where the money goes to so there's like a direct impact from a to b so it's 02:06:27.180 |
like it's a pretty cool organization and so my friend guy serino uh nice try guys what i like to call him he was 02:06:33.980 |
probably the single greatest engineer i've ever met in my lifetime and he was just like hey come do this 02:06:38.860 |
we're gonna all do this and so i played fortnite and so before i did that i was like oh i better 02:06:42.780 |
learn how to stream first i better get you know affiliated so i can like take subscriptions and then 02:06:47.740 |
if anyone gives me a subscription i'll also pay that forward and so june 2018 or something like that i start 02:06:54.060 |
i start uh streaming and i start streaming some fortnite end up getting affiliated end up doing the whole extra 02:07:01.180 |
life thing i end up really enjoying it i'm like this is a lot of fun i'm playing fortnite at that 02:07:04.860 |
point okay so mind you i'm a fortnite streamer at that point uh and i start really enjoying and i keep 02:07:09.980 |
doing it and then one day i decide i'm gonna do some programming because i really love vim and i think 02:07:15.260 |
i'm kind of fast at vim and maybe people think programming is kind of cool because there was no 02:07:19.500 |
really programming section at that point uh and i did it and i had like 30 people show up which was just 02:07:26.380 |
like and it felt like incredible numbers at that point so i was like oh my gosh there's like 30 02:07:30.700 |
people watching me program and so it just kept on going and it kept on happening and it just kept on 02:07:35.900 |
growing and i did it for year after year i would do my job i would come home i'd eat dinner with the 02:07:42.620 |
kiddos i would read them lord of the rings and the hobbit during that time i'd read to them for a 02:07:47.340 |
half an hour then i'd set that down and then three nights a week i would program until like two in the 02:07:51.100 |
morning or play video games until two in the morning streaming and building up this like whole side 02:07:55.420 |
thing and i did this for a long long time and then eventually it just kept working out so well 02:08:01.260 |
and i started making youtube videos and then that started getting better and it was just like a long 02:08:05.660 |
long grind until april of last year i went to the streamer awards and i got to like announce the 02:08:11.580 |
programming category and pirate software won it was awesome it was a great time and during that time 02:08:16.940 |
he gave me a challenge coin and just said like you just got to go for it just go full time and so i 02:08:22.940 |
just sat there and my wife can attest to it it was kind of like an emotional turmoil thing and it just 02:08:29.580 |
took a lot of it was it was pretty awful you know because i didn't netflix is very safe option it was 02:08:37.580 |
both very fun it was challenging i liked a lot of the people i worked with it was overall a really great 02:08:43.100 |
thing had a really great boss um really appreciated him i still ever text him now and then he's really 02:08:48.620 |
great guy so it's just like i'm leaving all these things for something that's unsure and the reality 02:08:54.060 |
is is that streaming and all these things you know people love you one day they could hate you the next 02:08:59.260 |
day there's like all this stuff that goes into being on the public side and i had netflix as the backing 02:09:05.420 |
so it's like if public hated me the next day i'd be like deuces i'm out like i don't care now it's like 02:09:10.140 |
now i'm going to do this as a job and so there's like a whole huge turmoil to this whole thing that 02:09:15.340 |
kind of went through it and eventually i just said okay i'm going to make this it kind of it resonated 02:09:21.580 |
with me when i first made the decision to join netflix i'm getting older there's not a lot of 02:09:27.900 |
chances to do something unusual like that those chances go down constantly as you get older this might 02:09:33.980 |
be the last crazy thing i get to do let's just try it so in april i went full-time and i have i guess 02:09:41.500 |
i haven't looked back i'm only not even a year into doing this uh as a full-time gig and it's just been 02:09:46.380 |
a lot of fun and the biggest thing is just being you know just being able to really explore and do these 02:09:52.460 |
things on stream where people really enjoy watching and engaging has just been it's been a great hard fun 02:09:58.940 |
amazing difficult experience i mean it's a really inspiring leap it's a really hard one to yeah to 02:10:04.700 |
take for many reasons like you outline but also like the loneliness of it i think 02:10:09.980 |
i think it's a pretty lonely pursuit it is yeah just you and the camera and the audience and the ups and 02:10:18.060 |
downs of that and it's not there's not really a team i do have one lucky thing i'd say that my editor 02:10:24.060 |
flip shout out flip he was he said it would mean the world to him if i said shout out flip but i love 02:10:29.260 |
you flip i love you i love you oh man he uh he had you know as he would say he had nothing going for 02:10:36.060 |
him he he had a really hard growing up a lot of a lot of rough life decisions have gone into his life 02:10:42.300 |
and he's kind of crawling back out of it and he just said hey i will edit full time for you so i just 02:10:46.380 |
said all right like 50 50 whatever i make on youtube you get we're going to do this together and 02:10:50.540 |
we did that for years making zero dollars a month pretty much you know and so it's just like that was 02:10:55.660 |
an incredible jump and now like we get to work together so that i do get that one team aspect 02:11:00.940 |
that i think is really nice but there's it's not like it was at netflix where i could hear about stuff 02:11:06.380 |
people are building i don't have a team i don't have like product or cycles i don't have a manager 02:11:10.860 |
that i have to try to make happy it's just like it is very lonely and i don't think a lot of people 02:11:15.900 |
realize how lonely it actually can be yeah so combine that loneliness with uh in my case i don't 02:11:22.700 |
know how many people attack you i have you know i have a shockingly low amount of attack rate i feel 02:11:28.540 |
like yeah your people generally i mean it's sometimes fun sort of teasing that kind of thing but it's mostly 02:11:34.620 |
just really i mean you you give so much love to the world and inspire so many people even when you're like 02:11:40.300 |
making fun of stuff yeah but with with me sort of taking the loneliness of it combined with just really 02:11:46.380 |
intense attacks it's tough it's can be rough psychologically really a tough journey uh you miss 02:11:53.420 |
working with a team just from even a software engineering side like where you can share code or 02:11:59.820 |
talk over code or yeah yeah the color the collaborative aspect of it yeah um multiple things there uh one 02:12:07.980 |
hey we love you lex so don't let the don't let the things get you down um thank you but thank you i 02:12:13.740 |
love you too thank you hey a little bonding moment you're going on but uh you know what i one thing i 02:12:19.580 |
really miss not in a sexual way just to be clear the tension is a little yes i'm getting uncomfortable 02:12:24.220 |
but anyway team um it's just the one thing i really miss is just even when i hated how people did it just 02:12:31.900 |
seeing how other people solved things right like it's really amazing just just like the raw creative 02:12:38.220 |
power so many people have and just being like oh wow like i would have never done it this way crazy 02:12:45.020 |
right like wow i just this is awesome and you kind of internally process this and you're like oh i now 02:12:49.980 |
have a new little tool in my tool belt you know because at some point it's really hard to find a mentor 02:12:55.820 |
when you're first young and you're just starting out programming i mean anyone with a couple years of 02:13:00.620 |
experience will be not just a little bit better than you but like infinitely better than you it's 02:13:05.260 |
like it feels like crazy how much better people are and so you have to like get mentors and you learn 02:13:09.740 |
from people and then as you get better that amount of availability gets really small and so it's 02:13:14.620 |
something that i really do miss is the kind of like forced hard problem solving together i think there's 02:13:20.300 |
there's also a skill to sort of mining the wisdom from other people like i generally try to approach 02:13:25.740 |
even like junior people young folks it's just mentally at least for me it works as a hack to assume 02:13:34.700 |
they're like the smartest person in the world like way smarter than me and so like i take every single 02:13:40.860 |
word they say as potential wisdom and that helps me a sort of mind for potential wisdom there 02:13:46.460 |
because it's so easy once you get older to sort of judge to be like oh yeah okay okay i've been through 02:13:52.700 |
that i remember feeling like that i remember thinking that that's incorrect whatever but just kind of 02:13:57.180 |
assume that you don't know that i don't know what the fuck i'm doing and the other person is this like 02:14:02.220 |
sage and from that in that kind of interaction i think you could actually learn a lot and my favorite 02:14:07.980 |
interactions is when we both think that way so we're that that from there i think that's that's 02:14:15.580 |
a catalyst for a great great collaboration and interaction it just also makes everything much nicer 02:14:21.500 |
you know it's really it really stinks to work with someone that's combative and negative like i don't 02:14:26.460 |
mind combativeness if it's like i'm trying to figure out what's like what's best to do right now versus 02:14:32.860 |
combativeness just because you're a negative person and things have to be this one particular way 02:14:36.700 |
because if they're not this one particular way it's the end of the world and like that's actually 02:14:40.140 |
really hard for me to work with what's the origin story of the primogen name the origin story of the 02:14:48.700 |
primogen name was are you familiar with a video game called turoc nintendo 64. so turoc had turoc one and 02:14:57.740 |
then turoc two turoc two was a brutally hard game this is back when first person shooters they would only give 02:15:05.260 |
you a certain amount of health and you had to go discover health and get that health and you had 02:15:09.980 |
to beat the whole game without effectively dying that's an old that's like the first version right 02:15:14.220 |
there that's like rock one and turoc two turoc is a renowned first person shooter video game series 02:15:20.300 |
featuring dinosaurs action and sci-fi elements the franchise has evolved significantly since its inception 02:15:25.900 |
in 1997. yep there you go so in 1998 there you can see it right there truck 2 seed of evil followed in 02:15:32.780 |
1998 featuring larger levels more challenging puzzles and deadlier enemies the notable difficulty it was 02:15:38.700 |
very very very very difficult okay and so i spent when i got it it came in a black cartridge not like your 02:15:44.940 |
standard gray nintendo 64 the black cartridge badass game right and i got it and i put it in and i played 02:15:53.020 |
and i played every day for like 10 hours a day for a month straight and i beat it and it was like such an 02:15:59.500 |
incredible great experience in the last leader of turoc 2 is called the primogen and so when i was a kid 02:16:05.260 |
when you're in like fifth grade that's like super cool like named after the bad guy and so like for a long 02:16:10.860 |
time on any internet thing like grail online that i mentioned earlier the new was the primogen it was 02:16:15.580 |
great and then you know i became an adult eventually and it's just like okay you know i'm an adult my 02:16:20.780 |
name is michael paulson underscore you know yeah that's what i was on the internet for a long time was that 02:16:25.580 |
and i remember it was like 2017 2018 somewhere in there um 02:16:35.740 |
i remember just how bad the tech world had kind of become it was just like this super pretentious place 02:16:42.620 |
tons of dick measuring just everything that just was the worst uh ken wheeler got canceled over playing 02:16:49.340 |
the circle game it was just like it it's so hard to describe to people that weren't there but it was just 02:16:55.980 |
the worst place to be tech was extremely unfun it was extremely awful everything was just so it wasn't 02:17:03.740 |
academic because it was research it was like we're building the most sophisticated things and 02:17:09.420 |
this is for the smart people and you're everyone else is the dumb people don't worry we'll design 02:17:12.620 |
for you dummy we got that we'll we'll show you how to make the perfect architecture and i remember 02:17:17.020 |
changing my twitter handle because i got so upset and just went back to my video game name because i was 02:17:21.900 |
like i want things to be fun i want this to stop and so while i start when i started streaming tech my goal 02:17:29.660 |
became to destroy whatever that tech mentality was because it includes nobody everyone thinks that 02:17:36.220 |
they're the smart people and they designed for the dummies and it's just like no like i want tech to 02:17:40.940 |
be this place where people feel like they can be creative and excited and actually build something and 02:17:46.060 |
if you're new like it's okay to be dumb and ask dumb questions like learn from your dumbness no one's 02:17:51.660 |
expecting you to be smart pick whatever you want like actually do something and have fun and build like 02:17:55.980 |
your crazy ideas oh you're gonna reinvent the wheel reinvent the wheel understand what you're doing 02:18:00.940 |
learn it really good and like interact and stuff and it's just so different than what was out there 02:18:06.300 |
and that the name arnold schwarzenegger talks about this thing where when he first started acting his name 02:18:12.220 |
was like the thing that people hated as he uh once said you have a strange voice you have a strange body 02:18:17.900 |
and your name your name's unpronounceable no one's gonna schneitz and finitzel no one's gonna remember 02:18:22.140 |
that yeah and he said but now the name is the strong part and for me i just i've always felt 02:18:27.260 |
akin to that though my name's not nearly as cool norma as popular as arnold norma as tough or good 02:18:31.980 |
looking or successful but nonetheless it's just the the name represented this like counterculture 02:18:37.740 |
like movement within myself in which i just hated what was there and i wanted to defeat it and so this 02:18:43.580 |
has like been the thing and now people remember me so well because of how weird my name is and so it's just 02:18:49.740 |
like i for whatever reason it became its own thing and so that's kind of the now i would never change 02:18:56.540 |
it and back then i would never change it because it was my rage against the machine moment if you will 02:19:00.940 |
yeah i love that as a symbol of rage against the machine and the rage being fun yeah i just want 02:19:08.540 |
people to like be creative and have fun again it's okay what about the mustache it's an epic mustache it's 02:19:14.140 |
it's an epic stash it has a life of its own yeah is there an origin story or did you guys discover 02:19:20.220 |
each other at some point or was it did it emerge from the darkness of the struggle that is your life 02:19:27.180 |
or where where does it come from well the original original mustache is that it was no shave november back 02:19:33.980 |
before it became movember it was no shave november back in the day and after no shave november you had all 02:19:39.260 |
this hair and so what's the natural thing you got to do sport a mustache for a day right so whenever 02:19:44.380 |
i'd forget to you know not shave for a long time and then i'd let it start growing out really big i just 02:19:49.580 |
go oh this is kind of funny i'll have a mustache and so one day when i was streaming it's just one of 02:19:54.380 |
those times i just didn't shave and then i started just letting it go and then i got kind of a beard and 02:19:58.540 |
then i just had a mustache and when i did it people were just like okay it's mustache time and i was just like 02:20:04.220 |
okay it feels like it's like a lifestyle decision right it's like this is the fun times and so all 02:20:09.260 |
sudden it was just like exciting to have a mustache and i shaved it off and i was like oh okay but then 02:20:14.140 |
you know part of me is like you know there's this weird energy that comes from just having a mustache so 02:20:18.780 |
i was like i'm going back told my wife forgive her uh she was very uh not as thrilled about my decisions 02:20:25.420 |
to have a mustache long term but i just decided to have it back and it just is it's just like it was the 02:20:31.500 |
right thing it's like part it's always been the energy that i had with the mustache it was always 02:20:36.540 |
been there it just never was visible until later on it feels like yeah we're chatting offline how uh 02:20:42.060 |
one of the components of a successful relationship is sacrifice and your wife was willing to take the 02:20:46.540 |
sacrifice of allowing you to have a mustache i clearly was not willing to sacrifice not having one so 02:20:51.340 |
you uh do this incredible incredible thing where you try a bunch of different programming languages when 02:20:58.700 |
you stream you uh you have like you go all out on certain programming languages like rust and then go 02:21:06.940 |
and then try to pick a new one but also are like experimenting constantly so um maybe one question 02:21:14.060 |
i can ask is uh about learning what's your approach to learning a new programming language and maybe what's 02:21:20.780 |
your advice on learning a new programming language when you uh begin that journey so i've kind of done a bunch of 02:21:27.740 |
different ways to go through this learning process and i've tried a lot of different ones 02:21:32.220 |
something that is obviously successful is just start building something just put your hands on the 02:21:39.020 |
keyboard you know like especially if you already know how to program you're like okay i'm now using zig 02:21:45.500 |
how do i do a main function so i can just run the program okay now know how to build okay how do i do an 02:21:49.340 |
if statement what does it look like okay how do i do declare my own functions how do i do modules right you just kind of like google your way through it if you will 02:21:55.740 |
get to get to the end product and build something it's a good it's a great way to do things because i 02:22:01.340 |
find that repetition like rote learning is obviously the best way to do this uh you have to kind of go 02:22:05.820 |
over it a bunch and you can you can definitely get out and build a lot of stuff with that i like that 02:22:10.220 |
initial kind of get used to things but on top of it i find that by doing that you also fall into like traps 02:22:17.340 |
you kind of google and you try to solve a problem in the language based on all of your previous 02:22:23.820 |
experience and so you you don't have what makes that language special you kind of have what all the 02:22:29.580 |
other languages make special and so you end up kind of not really being able to use it very effectively 02:22:34.460 |
but you can certainly kind of learn it and get kind of good at it and so the second approach i've 02:22:38.460 |
been doing lately and this has been inspired by the creator of ghosty uh mitchell hashimoto is to just 02:22:42.620 |
start by reading the language reference the whole thing and so lately i've been just kind of going 02:22:46.940 |
through and just reading the entire uh manual for these languages like zig i'm almost done with that 02:22:51.740 |
one you know it's like eight to ten hours of just sitting down reading and i'll whip out my computer and 02:22:56.220 |
kind of practice a couple of the things from the actual docs and that way i can learn all the things 02:23:01.180 |
so then when i start building again i remember okay i know there's a thing over here let me go reread 02:23:06.140 |
about it because now i have it indexed in my brain somewhere that will kind of remember and so i don't 02:23:10.940 |
think there's like a right or wrong way i mean at the end of the day the right way is always that you 02:23:15.340 |
have to build something eventually you cannot just read about it you have to put your hands on the 02:23:19.180 |
keyboard you have to build something out and then once you do that that's where you really discover 02:23:22.940 |
what makes it painful or what makes it great and if you don't have the breadth of what the language 02:23:27.420 |
offers you just may make it painful by simply being bad at it what exactly you're reading like this 02:23:33.020 |
like language reference the language reference so it just goes through like every feature top to 02:23:38.140 |
bottom right yeah every way it's described all the different things like i think ziggs is you know 02:23:43.260 |
it's a it's a decent size but it's not just simply read the words you want to internalize each concept 02:23:48.620 |
as well so it takes a long time so i'm a slow reader so you're like building uh in ai terms like a 02:23:54.380 |
background model like i'll just because because i don't think you can just start building once you're 02:24:00.300 |
done reading because you probably forgot yeah you know how to do a for loop like you you kind of 02:24:07.020 |
forget the specifics you just are building up the the design choices the set of features available what 02:24:13.100 |
are the strengths and weaknesses all that kind of stuff and then you start building that's really 02:24:17.260 |
interesting probably not the thing you would recommend to uh a junior developer somebody who's 02:24:22.540 |
just starting out at first if you don't know what an if statement is that's not a good way to learn 02:24:27.180 |
like to me the best way to learn that is really hands on the keyboard and building extremely simple 02:24:31.260 |
things and slowly growing in complexity because understanding what a class and methods and 02:24:35.420 |
instances versus the blueprint which is the class versus functions versus modules versus all that stuff 02:24:39.980 |
right like that's that just takes time to learn and so that's a completely different style of learning 02:24:45.900 |
i wonder because for me learning right now uh ai is is a huge help but i already have a lot of 02:24:52.540 |
experience i wonder if you're starting from scratch whether that's a good idea but i still think it's 02:24:57.500 |
probably a really good idea but basically generate some code using ai and figure out what it's doing 02:25:05.660 |
by playing with different parts um maybe can you comment on that aspect like the use of ai 02:25:11.820 |
as part of the learning process this is where i have both the hopeful and the doomer take at the 02:25:17.340 |
exact same time yeah uh and it's the same thing with google or stack overflow like this it's it's all the 02:25:24.700 |
same kind of take which is it's just making things more democratized in some sense i get to ask questions 02:25:31.740 |
in probably the most personal possible way with my own voice in my own words and it's able to produce out 02:25:37.420 |
answers and kind of hopefully help guide me now regardless of just say the errors and the 02:25:42.060 |
incorrectnesses of it like ultimately just using it as a learning you know tool and being able to just 02:25:47.980 |
you know formulate and read answers in your own voice i think is super powerful and i think it's it's super 02:25:52.700 |
amazing but the part that i think is going to be really difficult is that we don't value remembering 02:26:03.100 |
things anymore as a society like since the internet came about i can just look that up i can just look 02:26:08.860 |
that up no need to like you don't need to memorize your times tables right you can just use a calculator 02:26:13.580 |
you can just do all that i i remember i just was sitting on the airplane and i watched someone do the 02:26:17.820 |
world's most simple addition and subtraction like 10 times on their phone and like why are you not just 02:26:23.260 |
like you should already know these that you should be able to do these things and i realized that 02:26:27.900 |
we kind of offload our brains right oh i don't need to know these things because i can look them up and 02:26:32.460 |
that's not a bad answer in some sense i can understand that like i don't need to remember 02:26:36.860 |
every last thing but then it also makes me realize that you kind of develop this learned helplessness 02:26:41.660 |
that a new error comes up i'll just ask the ai ai says oh okay i gotta fix this line i fixed the line 02:26:48.380 |
you didn't actually learn anything you kind of just used it as a quick means to get something out and 02:26:51.820 |
move on and so you sacrifice knowledge for speed which is a great thing in some like you we have to make 02:26:58.460 |
those trade-offs all the time in engineering sometimes you have to move fast at the sacrifice 02:27:03.020 |
of knowledge and i'm totally on board for that but i worry that what we'll create is a um is an entire 02:27:09.900 |
generation of incompetent programmers who can do some amount of things well but anything that is unique 02:27:16.300 |
bespoke or require some extra like little elbow grease might become very difficult it might cause a whole 02:27:22.860 |
chasm where juniors remain juniors forever and i don't want to see that i want to see people grow 02:27:28.140 |
i want to see people you know actually be able to take this as a craftsmanship thing and so that's kind 02:27:33.260 |
of what i that's like both my hope and my my worry is is that ai i think can can do both really because 02:27:39.740 |
if you could ask whatever question you want and you don't have to rely on say a book to give you that 02:27:43.260 |
exact answer and if the book just said it wrong and you can't understand it's just like sorry you don't 02:27:47.340 |
get to learn what this is like recursion for me i spent way too much time until someone gave me the 02:27:51.420 |
right problem to understand recursion you could imagine ai could have solved that for me way faster 02:27:55.980 |
because it could have gave me the right problem and walked me through what much better 02:27:58.540 |
but what happened if i just always have recursion solved by them and not actually learn it myself 02:28:03.580 |
so if i ask ai to generate code to do a certain thing some actually large percentage of time 02:28:10.220 |
most of what ai generates is going to be correct for me but some percent of time it's not like 02:28:18.060 |
fundamentally not and for me to recognize the difference between those two i think it takes a 02:28:22.700 |
lot of experience like i think to learn that skill of knowing like no no a different new out of the box 02:28:31.900 |
solution is needed here than the one you're providing you're missing the the point um that's 02:28:38.220 |
a skill and how do you learn that you learn that by building from scratch so both are probably really 02:28:43.180 |
necessary yeah but i think it's the first step of learning how to program it's pretty it's pretty nice 02:28:49.900 |
to generate a function to generate for loops and all that kind of stuff and then just with the different 02:28:55.420 |
lines and like modify them to try to adjust the behavior of the program and from 02:29:01.340 |
the way the the behavior of the program adjusts or bugs are created you learn about the syntax of the 02:29:07.820 |
the the language the behavior of the language all that kind of stuff so i think it's a super powerful 02:29:13.980 |
way to learn but yeah you need to also write from scratch at some point you have to take off the 02:29:19.500 |
training wheels because i think what you're really spotting is the difference between reading and writing 02:29:23.660 |
code like i can read a lot of languages very well i can see what's happening i can understand it but 02:29:29.740 |
like i would not be very good at writing it i can understand a lot of things about c plus plus and i 02:29:33.820 |
can read it but i'm just not that because i just don't i haven't done it in so long i can't remember 02:29:37.820 |
all or all the semicolons and colons and like you know you do public and private and how you should 02:29:42.860 |
you do naming convey like you know all those things kind of add all together and then you're just like 02:29:46.940 |
oh i'm really bad at writing it though i can read it and so there's like this there's a skill gap chasm 02:29:53.500 |
that exists between those two all right well let me talk about the various languages 02:29:58.300 |
the cheesy uh ridiculous question of what's the what's the best programming language 02:30:05.900 |
uh let's say what's the best programming language that everybody should learn maybe uh let's go with 02:30:11.500 |
the top five i'm gonna pull up the stack overflow developer survey because i think we have yeah those 02:30:17.020 |
are you what you don't like no no those aren't that you gotta remember because i mean you're a data guy 02:30:22.460 |
right you you know about biases and data what does what does stack overflow naturally bias towards 02:30:27.500 |
well they have the different slices of professional developers uh junior developers they have different 02:30:33.820 |
slices okay what's what what is the best i hear you but who fills out a stack overflow survey someone who 02:30:39.020 |
participates on stack overflow who's participating on stack overflow largely very very new people and that one 02:30:44.700 |
guy that loves answering questions and so i'm not sure if that like if stack overflow is a great place 02:30:49.020 |
to get data it could be a very biased set of data is it really only uh new people i mean that's who's 02:30:56.540 |
using stack overflow all right most popular technologies on this javascript hml python sql sql sql sql sql sql sql sql is 02:31:06.060 |
the more general kind of i'm sure they're not doing the individual uh sort of flavors of sql uh by the way 02:31:13.980 |
you pronounce sql sql sql sql sql sql you squeal you squeal i think is the correct way squeal i did 02:31:20.700 |
sequel because i didn't you know i didn't know the audience i don't know if they can handle the truth 02:31:24.220 |
okay which is it squeal a squeal of joy squeal squeal light my squeal postgres squeal by the way i had a 02:31:31.420 |
lot of joy from earlier saying pig for some reason it's such a ridiculous i mean can you believe that 02:31:36.700 |
that was a real conversation that i had yeah that was uh typescript bass java c sharp c plus plus it 02:31:45.340 |
largely kind of aligns with the world you'd expect but like assembly why is assembly more popular than 02:31:50.220 |
ruby who is writing just assembly by no one writes assembly by hand other than like maybe that one guy 02:31:55.900 |
that's developing tls 1.3 and hand rolling a cryptography algorithm to be the fastest possible 02:32:01.260 |
algorithm right yeah somebody's a weird one maybe people write it maybe in school but even a school 02:32:08.540 |
now for like a operating systems course or something like that or systems engineering i don't know if they 02:32:14.060 |
write assembly anymore they i don't think so yeah anyway and swift and ruby being less popular than 02:32:20.940 |
assembly seems ridiculous uh but nonetheless okay so you get my ideas behind that but as far as top 02:32:26.620 |
five languages go that's probably too broad because you could just name so many i think you should 02:32:30.460 |
probably archetype it by what do you want to do so if you want to get into game development perhaps c sharp 02:32:37.260 |
c plus plus could be good choices or uh javascript and doing canvas games i could see that also 02:32:43.820 |
working but you know you gotta you're limited by doing javascript obviously because you can't do 02:32:47.900 |
as much because the language is just not fast enough to do as much so it's like a good thing to remember 02:32:52.620 |
if you're going to be doing back-end stuff you know if you want a job if you're looking for a job 02:32:59.420 |
maybe c sharp java or javascript or go would be great choices if you're looking to do embedded you 02:33:06.220 |
probably want to do c c plus plus like that would probably be a good choice and so you kind of have to 02:33:11.420 |
i think you have to first determine what do you really want to get out if you're just curious 02:33:14.940 |
about programming which i talk to a lot of people who are uh yeah you can consider jobs but basically 02:33:19.740 |
their question is okay what's the first language i should learn and maybe what are the several 02:33:26.060 |
languages i should explore can i say something that's gonna make a lot of people angry yeah sure 02:33:30.460 |
i think the first language people should learn if they have no idea about anything is javascript 02:33:35.260 |
yeah why would that make people angry oh because people just i'm first off i'm not supposed to say 02:33:40.220 |
anything nice about javascript yeah usually that's the meme that you hate javascript yeah no javascript 02:33:45.180 |
is a beautiful language and it has a lot of things that are very great for it and one of them is that 02:33:49.260 |
you can express anything with very little effort and so someone that's new i think it's really great to be 02:33:55.660 |
able to draw a box and move a box like that's great you get to see it visually i think that's one thing 02:34:02.140 |
that's really great about javascript is that you can do that then you can go okay i want to learn 02:34:06.220 |
about the back end i'm going to make a request now you can write a quick back end in it now you're 02:34:09.900 |
starting to get familiar with programming a little bit i can save this to a database i can bring it down 02:34:14.380 |
i can put it on a screen and i can animate it all around and i can even put it on a canvas and render it 02:34:18.700 |
in 2d or 3d so it's like there's so much variety of what you can do with javascript it's a great way to 02:34:24.860 |
get introduced into programming but then at some point you have to go okay i now need to learn more 02:34:30.380 |
about this whole thing i mean yeah just like you said you can make games you can do front end back 02:34:35.820 |
end for web development you can even do embedded they actually have job like there's uh wes boss is 02:34:41.100 |
building his rumba or something and programming it with javascript and react which is just the world's 02:34:46.780 |
worst language to choose from bed but you can still do it also we mentioned sort of in terms of applications 02:34:54.460 |
anything that relates to data or machine learning python is uh the sort of the leader there yeah 02:35:00.460 |
that's a great one it seems like python cuda stuff and c plus plus would be a dynamite in that because 02:35:05.740 |
a lot of these python libraries are assumed are just you're just smuggling in c plus plus underneath the 02:35:10.140 |
hood or c okay so javascript i'll say python python's a great one too you can get quite far with it but you 02:35:16.940 |
can't write the front end so what happened if you love the front end right what happened if you really 02:35:21.020 |
just want to design things and you just didn't know that well it's okay so for that javascript 02:35:26.540 |
but python's a good choice because you can't do the ml stuff in javascript nearly as easy 02:35:30.060 |
do we count html and css as programming languages i think there's like some technical definition that 02:35:35.660 |
it is if you put it up if you use this certain amalgamation of css plus html it actually has 02:35:40.940 |
like it can be a turing complete language yeah but i mean for practical purposes no html is not a language 02:35:46.220 |
um you know i for me this yes the turing test is a good one but for those that are just not wanting to 02:35:53.500 |
be as academic if i can't write a function in an if statement i don't feel like that's that i don't if 02:35:58.940 |
i can't loop if and function i don't feel like that's a good that's a programming language although 02:36:03.420 |
modern html has a lot of features it's crazy how much it has but it's more of a specification than 02:36:08.540 |
anything else i specify it to be a pop-up i specify to have this kind of like accessibility this kind of 02:36:15.100 |
look this kind of you know under these conditions look like this transform like this move down here 02:36:20.700 |
i don't know i kind of like these popular programming languages in this list i like javascript 02:36:24.860 |
you like bash oh yeah i like bash a lot yeah why okay bash is kind of one of those ones where it's 02:36:30.860 |
like do you really like to do you really like it i like it up until i need an array oh as a programming 02:36:36.060 |
language just no but i like i like the command line okay yeah do you like that no nobody likes bash 02:36:44.860 |
do you mean someone is so offended right now it means do you use it a lot yes it's good to i mean 02:36:52.380 |
it's good to learn right it's good to it is be comfortable on the command line because it's a bit 02:36:57.820 |
of a superpower it's like i think i follow on twitter ffmpeg great account like there's certain twitter 02:37:05.580 |
accounts that are just like legit yeah and uh you know i think ffmpeg like they have all these sort of 02:37:12.860 |
parameters that you can add on the command line that it's like one of those cryptic languages that only 02:37:19.820 |
very few wizards understand but once you begin to slowly understand and i'm only at the very sort of 02:37:25.420 |
beginning stage of that journey to mastery the powers you gain at every step is like it grows 02:37:32.780 |
exponentially it feels like i mean ffmpeg is just this incredible like what would you call a library system 02:37:38.380 |
there's just the people behind them must be just brilliant masterminds because they have to work 02:37:43.980 |
with all these codecs with all these containers with all this the the the mysteries of the media codec 02:37:50.540 |
universe they're like masters of and they understand compression which is another super fascinating 02:37:57.420 |
technical uh set of problems that i don't know i just ffmpeg just fills me with joy that it exists but 02:38:04.540 |
you need kind of bash type comfort command line comfort to to work with it to really unlock its 02:38:10.700 |
power yeah i think ffmpeg is probably one of the most consequential libraries of our day and 02:38:17.660 |
the twitter account is so unhinged it is it's the most amazing thing to see because i think ffmpeg does 02:38:25.740 |
not get the love it deserves yeah every single application ops probably ffmpeg underneath the 02:38:30.300 |
hood all the perfect everything ffmpeg underneath the hood and then and yet you know they do not get 02:38:37.180 |
the love they deserve i just love it i just think they're the best yeah i would say javascript html css 02:38:41.900 |
python sql i mean that is a sql squeal is is a programming language yeah it's an incredibly sophisticated 02:38:50.380 |
programming language yeah sql is interesting i i would have i believe you can classify it as a 02:38:56.220 |
programming language it does have like if you have case statements and it's pretty crazy what you can 02:39:00.220 |
do with your functions you can do all that yeah it's you should restore procedures that that's how you make 02:39:04.700 |
your life hell um i will say that all the top languages right there are none of them are like strict 02:39:14.540 |
uh static typed languages and so even typescript you can you know i don't like this any and so for 02:39:20.700 |
people that are learning doing something that's much more strict would be great something like go rust 02:39:25.420 |
um even i mean even c sharp c plus plus like anything that kind of changes your perspective of types i think 02:39:32.460 |
is really helpful to kind of go through they're not getting nearly as much love on this most popular 02:39:36.620 |
language list but i think they're very fantastic all right well if i put a gun to your head 02:39:40.620 |
five top five languages let's let's list them out there's a bright-eyed 20 year old asking you what 02:39:47.340 |
are the top languages to five languages to learn um if i were to pick five languages that i think people 02:39:53.660 |
should learn or at least i have a let's restate it this way i'm going to say a couple languages and you 02:39:59.100 |
should at least explore some of them i think you should explore explore a lucy language so uh python 02:40:05.900 |
slash javascript where there is truly only one type which is a boxed value which is a 02:40:10.060 |
multi-variant different types underneath the hood right what would you call it a lucy language a 02:40:14.140 |
lucy goosey language right it's a dynamic language okay um and so i think it's really good to explore 02:40:19.100 |
one of those two so i'd put python or javascript right there even lua throw lua in the bunch i think 02:40:23.420 |
you should explore a strict language uh so i'd do something like rust go um i think those are both 02:40:30.300 |
really really great c plus plus you can do c plus plus you can do some type erasure in c plus plus you 02:40:35.100 |
can do it with go as well but it's for the most part that's it's a great language to do that in 02:40:39.180 |
um it can get a little wild new c plus plus seems great everyone keeps telling me new c plus plus is 02:40:43.260 |
great um it has every feature you've ever wanted and all the features you don't want yeah exactly i 02:40:48.460 |
mean there's smart pointers there's dumb pointers there's all kinds of pointers there's no memory 02:40:53.500 |
leaks that's not an issue face guns soft beds there's everything in there unless you like memory 02:40:58.860 |
leaks that it has that too if you want that kind of thing it's great okay how about this one languages 02:41:03.260 |
that i actually want to really learn that at least sit in my curiosity bank there's three languages 02:41:09.980 |
which is going to be swift elixir o camel and then i'm going to throw odin in there just to 02:41:17.020 |
just because ginger bell is great but elixir and o camel i don't have a strong functional language 02:41:22.700 |
underneath my belt that's something that i just genuinely lack yeah i've heard incredible things 02:41:27.260 |
about elixir about odin about o camel obviously i'm a person as you know who loves lisp i have 02:41:33.740 |
never done list lisp could be in that category too just like learn or closure i think at this point is 02:41:38.140 |
what everyone tells you to use so in the case of lisp i don't want to speak negatively about lisp but 02:41:43.180 |
it's important about like modern community what the community looks like and it seems like there's an 02:41:48.220 |
excited maybe small but an excited community around elixir odin and o camel so that helps yeah so you can post 02:41:55.100 |
shit on twitter that you're like i accomplished this and people get excited and it's nice it's a 02:41:59.900 |
good feeling you can post like something on twitter and you'll get like a thousand likes if you do 02:42:03.900 |
something cool on elixir yeah okay like which is a pretty big that's like a pretty big amount of people 02:42:08.620 |
to like a post for such a niche topic yeah programming is already a pretty small topic then you get into 02:42:13.660 |
functional program that's a small topic in a small topic yeah i don't get that much if i post something 02:42:19.420 |
about emacs i'll get crickets if i post something if i if i proudly use neovim there'd be a lot of 02:42:25.740 |
people like yeah good job because it is the best editor um yeah maybe it's just hype come back to the 02:42:32.060 |
civil war wax yeah sometimes you have to sacrifice and go from the superior editor that is emacs and uh 02:42:39.740 |
choose neovim just to be popular you sacrifice integrity and values and quality for just popularity 02:42:45.340 |
so absolutely i love how you put it okay uh anyway it's what we're talking about i like how you're 02:42:51.420 |
doing this in bunches that's great right now my my kind of side honeys that i'm exploring is that 02:42:57.260 |
honey yeah side honeys right like they're not my mainstay right now goes kind of my favorite one to 02:43:01.900 |
build a web app in like if i'm going to build some sort of back end with a lot of complicated logic 02:43:06.620 |
goes just so convenient but i get really frustrated with its ability to express uh everything that i need 02:43:12.540 |
like if you have a list a heterogeneous list a list that contains two types 02:43:16.060 |
goes just really not that fun to use and so i could see so the ones i'm exploring is jai or j or 02:43:24.700 |
the language as jonathan blow says and zig and both of them have a lot of power to them they're both very 02:43:30.940 |
interesting they definitely have foot guns in them they're definitely more you know um they don't take 02:43:36.220 |
it easy on you zig seems like it's a really amazing language and so does jai they're both very cool 02:43:42.220 |
yeah actually i saw uh dave uh plumbers testing of close to 100 languages for speed and zig came out 02:43:49.500 |
on top yeah that was a mistake i mean when i say mistake i nothing against dave plumber he's an 02:43:54.300 |
extremely talented engineer yeah it's just that zig c c plus plus all those languages that were being 02:44:00.220 |
tested they're all lvm back ends right that's the one that actually turns the thing into the executable 02:44:05.020 |
part and if there's a variation in speed it just means in one language you didn't quite express what 02:44:10.060 |
you're supposed to correctly like uh there's the language ball test that's been bouncing around on 02:44:14.300 |
twitter yeah zig was like sixth or seventh below i forget what language is um i played around with the 02:44:20.460 |
example added the word uh no alias to the argument which means that the p the piece of memory that's 02:44:26.780 |
coming into this function there's no global pointers there's nothing to it and so the compiler can make 02:44:30.700 |
these really cool uh optimizations and i made it faster than the c version so it just means that just 02:44:37.420 |
it's just not correctly specified is all that means yeah but it's still it's still exciting to me the 02:44:42.220 |
competition between uh zig rust and c plus plus is really interesting like part of this for speed part of 02:44:48.620 |
is for how easy it is to write perform a code i'll say something that's the reason why i think zig is so 02:44:53.340 |
interesting comparatively to say c or rust c is like the ultimate language it can do anything you have 02:44:59.260 |
pre-process or macros you can do quite a bit with it but it's also really difficult and it's also 02:45:04.700 |
really simple and you can learn it so it's kind of it's like own unique beast and when you get really 02:45:08.300 |
good at c c is a magical language and people are really great at it um and people speak very highly of 02:45:13.820 |
it rust is like this ultra safe language what you can do and see you just can't even express in rust 02:45:18.380 |
rust is going to be that safe the safe man that holds you at night keeping you warm right it's 02:45:22.140 |
going to be just the greatest but somewhere in the middle lies zig zig has optionals if you're not 02:45:26.780 |
familiar with optionals that just simply means there's a value here or there's not but you first have to 02:45:31.420 |
check that before you can use it so it prevents that whole null pointer d referencing seg fault problem 02:45:36.780 |
and that's not that's not available in c just by default you have to kind of build that thing in 02:45:40.780 |
it is the only option in rust but zig says hey if you have a pointer you can't express it as null 02:45:46.700 |
unless if you mark it that it can be null there's ways around it there's like other types of pointers 02:45:50.380 |
and stuff like that that can do that but for the most part zig like will give you safety for the most part 02:45:55.980 |
right so it's like a little bit of safety but more like c so it kind of gives you like everything you 02:45:59.900 |
kind of want in that region where it's where you can express safe code and unsafe code it's very easy to 02:46:05.100 |
write so it's very it's very pretty or at least the idea behind it is very pretty the language 02:46:10.300 |
itself is bland but wow there's beauty in everything yeah prime uh you've uh programmed 02:46:16.220 |
in rust a lot what do you uh what do you love about rust what are the strengths what are the weaknesses 02:46:21.100 |
maybe you can speak about memory management that you already mentioned yeah the challenge of memory 02:46:25.980 |
management that uh several of these languages address but yeah what do you love about rust what i love 02:46:31.580 |
about rust i i love that it's that uh the ability to free the memory that you're using is directly tied to the 02:46:38.540 |
stack so whenever you create something there's a stack variable or there's some amount of stack 02:46:44.140 |
memory whether it's a pointer off to the heap a pointer and a length so you know some amount of 02:46:49.020 |
memory on the stack and then some memory on the heap because like a string is not all on the stack it's 02:46:54.300 |
some on the heap some on the stack and when that stack variable goes out of scope and gets cleaned up 02:46:59.900 |
it also cleans up what's on the heap so it kind of simplifies this whole idea of whoops i forgot to 02:47:05.340 |
free my memory it just does it for you so it's not a garbage collector which we'll do it sometime later 02:47:10.380 |
it's not like c where you have to call it yourself it's somewhere in between now there's a lot of 02:47:15.500 |
strategies people use arenas and all that that make that c part much easier i'm just not even mentioning 02:47:20.780 |
it but it just makes it a lot easier but rust does that really beautifully and it's just like a really 02:47:25.740 |
cool idea about it and i really like that and the second thing that i think rust does really like is 02:47:31.260 |
such a good thing is that mutability of something is you have to specify it so you don't just create a 02:47:40.220 |
variable and then mutate it you have to say this is not only a variable it's a mutable variable i think 02:47:45.180 |
that just makes code really readable and really understandable because anything that does not have 02:47:49.580 |
the word mute next to it you know for a fact it cannot change so there's some rules around that but 02:47:55.980 |
you get the general idea unlike most programming languages you have to explicitly state that this 02:48:00.060 |
is going to be change this is going to be changed yeah yeah that's really interesting i mean it's safe 02:48:05.500 |
it's it's trying to be and and the safety might be it's uh create limitations let us consult the ai 02:48:13.980 |
overlords rust is a blazing fast memory efficient systems programming language that emphasizes 02:48:19.020 |
performance type safety and concurrency uh the language enforces memory safety without using a 02:48:27.340 |
garbage collector as you said instead utilizing the unique quote borrow checker that tracks object 02:48:33.740 |
lifetimes at compile time this prevents common programming errors like non-pointer dereferencing and 02:48:40.220 |
memory leaks and so on yeah so you've also spoken about meta programming um which of these languages 02:48:47.260 |
do you like for the meta programming i love meta programming in c plus plus but it's a giant mess at 02:48:52.700 |
least when i program c plus c plus plus c plus plus 17 standard i believe it's just it's just a mess 02:48:58.060 |
especially a mess to debug yeah i i would consider myself kind of a meta programming newbie i have only solved 02:49:04.460 |
some amount of problems with it i love i'm that's kind of like what this year is for is for me to really 02:49:09.740 |
i want to see where the ends can go in that so i don't have a strong opinion on this one 02:49:13.500 |
zig one thing i really like about zig is that the meta programming is also the language itself 02:49:19.180 |
so you don't have to like there's not there's not an alternative so with rust there's an alternative 02:49:24.460 |
when you create a macro you have to do the macro syntax with zig it's just it is the thing you just 02:49:29.340 |
program it you add the word comp time if you want it to be a compile time only so you can do like 02:49:34.140 |
you can create the list of prime numbers at compile time and zig which is kind of an interesting 02:49:39.820 |
unique thing so you have code that executes that compile time and then you can take advantage of the 02:49:44.540 |
result of it at runtime so neat right like that's how i'd look at it uh but again i haven't i haven't 02:49:51.500 |
used it to the point where i feel like i can super authoritatively talk about it you have been undecided 02:49:57.100 |
what language are you going for this year uh i'm going to keep go as my mainstay yeah my two side 02:50:02.300 |
honeys uh giant zig i'm going to explore and try to build out a service in them that can do a bunch 02:50:08.380 |
of talking to say chad jippity and 11 labs and send stuff down to client and work with web sockets 02:50:13.900 |
and i want to make sure that i just want to see kind of how do they perform in this realm and you know 02:50:18.540 |
i may be using the language incorrectly like j i'm not exactly it's not really been designed for the 02:50:22.780 |
web world i just got done writing the ability to read twitch chat and it required me to do berkeley 02:50:28.380 |
sockets so if you're unfamiliar with berkeley sockets it's like the old way of doing it's how 02:50:32.780 |
you do it in c so you have to kind of go through the whole nine yards of uh creating your own connection 02:50:38.140 |
i have to create my own connection i have to read from the socket then i have to parse out all the irc 02:50:42.460 |
right like you have to kind of build it from scratch there's not like a new tcp connection to this 02:50:46.860 |
server you have to be like i'm creating a socket you're gonna be of the ipv4 family and tcp and 02:50:52.220 |
you're gonna do you know i'm gonna now have to take your address and go look up your address with dns 02:50:56.940 |
get that address back and then connect to a tcp so it's a lot more manual still it's a lot more raw in 02:51:02.060 |
that area but it's fun what are some epic projects you've built on stream that uh jump to memory my most 02:51:09.420 |
favorite sorry for interrupting you so i'm getting i'm really jazzed right now let's go okay so jazz jazz hands 02:51:16.460 |
uh my most favorite project uh was the one i did last year there someone built a doom ascii port so 02:51:23.980 |
you could play doom with ascii so that means you could play it in your uh terminal very very fun very 02:51:29.660 |
excite yeah so i made a go program that could spawn out the doom ascii then i took that doom ascii and i 02:51:36.140 |
sent it to the browser so that people could play doom ascii in the browser but then i made it so that 02:51:41.500 |
twitch chat could control that instance of doom uh ascii by piping in twitch chat taking the average 02:51:47.660 |
of the movements over so much time and replaying it as if it was a controller and i had a twitch chat 02:51:53.100 |
beat level one by spamming it but the fun part was i used a bunch of fun encoding techniques so i used 02:51:58.700 |
like quad trees to be able to take smaller amounts to use run length and coding tried to create my own 02:52:03.980 |
compression algorithm because if you're sending out a bunch of ascii stuff it's still pretty expensive 02:52:09.180 |
because you have to represent color color is not cheap on top of you have to represent what does it 02:52:13.740 |
look like what does the ascii look like well i realized you know there's all these fun techniques 02:52:17.660 |
you can do for compression like the shape of the ascii you send down is in a lot of these engines are 02:52:24.540 |
actually just proportional to the lumosity of that pixel so like you'd use an eight to represent or a 02:52:30.220 |
pound sign to represent like white but black you're going to want to do like a period or a comma or a bar you 02:52:35.900 |
know something smaller so it's like i then developed all these different compression algorithms to turn 02:52:40.380 |
a bunch of data which would take you know i forget how much it would take it take gigabytes upon 02:52:45.100 |
gigabytes to be able to send out to thousands of people to all see the same image at the same time 02:52:48.860 |
to all be able to interact with doom at the same time i turned it from gigabytes into kilobytes by just 02:52:54.300 |
trying to figure out how to like make it as small as possible and send it all out it was super fun 02:52:58.220 |
absolutely had a great time so you're actually sending it to all the people in chat so where's 02:53:03.580 |
the that that pipe word that pipeline how chat is able to control the doom thing twitch chat yeah so 02:53:10.860 |
they would go people would span w and if you said w it would hold down w for 150 milliseconds if the 02:53:18.300 |
majority of people during that time period said w nice okay so and then how are they getting the input 02:53:24.700 |
of where you are on screen so originally i was going to send that through twitch but twitch is 02:53:29.420 |
like five seconds behind so that's why i piped it out to a website so everybody could see from my 02:53:34.860 |
computer to the website in typical uh leg was right around 70 milliseconds so it's like they could mostly 02:53:41.100 |
see what was happening in that short period of time it was it was pretty exciting so we had a thousand 02:53:45.980 |
people or i had somewhere between a thousand to fourteen hundred people smashing w's and pressing f to 02:53:51.500 |
fire and turning and we killed some zombies yeah we blew up the barrel at the very end of level one to 02:53:56.300 |
kill the imp how are you getting the w's from the twitch chat is there an api is irc i was using irc so 02:54:02.620 |
just a little tcp socket and then you just parse out irc okay and there's very little lag there okay yeah i 02:54:08.860 |
think it's it's a couple hundred milliseconds though it's enough that it actually made it a little bit 02:54:11.980 |
difficult because people would often overturn and then go forward and like miss the door and then they had to go 02:54:16.940 |
back and that's awesome it was awesome so that was my favorite i think project of all time just 02:54:23.180 |
because it i never got to do like a lot of encoding encoding is kind of like you know you what do you 02:54:28.300 |
normally do okay i need to send something down i don't know gzip it server will just do it server 02:54:32.220 |
just does the right thing i don't need to think about it so instead it's like i think about it 02:54:35.580 |
i'm the right thing yeah you have to think about the compression yeah and there you go that's some more 02:54:41.180 |
love towards ffmpeg yeah they have to think about that a lot ultimately inspired by ffmpeg and their 02:54:46.460 |
awesomeness everything uh so can you speak to just the chat community in general like a big part of 02:54:55.980 |
what you do in terms of streaming is the humans that are communicating with you live can you uh can you 02:55:02.780 |
talk to the uh the different chat communities first of all which is the best chat community uh youtube twitch 02:55:09.980 |
or x this is where i feel bad for youtube because i do think it's technically the worst but it's not 02:55:16.220 |
youtube's fault and let me kind of explain why and then i will explain why you're wrong but go ahead 02:55:21.100 |
yeah i know you love i know you love youtube but let me let me explain why is that when you go on twitch 02:55:26.460 |
you go to anyone's channel they have this like cultural human centipede thing that's happening where 02:55:35.100 |
as the memes flow in all of twitch kind of reacts and and morphs to all those memes so every channel 02:55:40.780 |
you go to has this like same culture everyone there's a lot of similar emotes and everything so 02:55:45.900 |
it's very tight knit so when i stream i get all the same jokes that you would pretty much see if you 02:55:52.220 |
saw i don't know soda poppin or some big streamer asmongold whoever portate software streaming all the 02:55:58.220 |
same memes would all flow through the exact same kind of pipe and so it's a very holistic kind of 02:56:03.500 |
community so every time you're making jokes you're making jokes that are like in the ether 02:56:07.580 |
twitter kind of has that too tech twitter kind of has like a set of jokes and so you can kind 02:56:12.380 |
of see it if the problem with twitter chat is that there's just nobody there right now you know typically 02:56:17.500 |
like just put it into perspective i have somewhere between uh somewhere between like 1500 to 3000 02:56:25.260 |
people on twitch somewhere between 800 to 2000 on youtube and like 50 people on twitter so it's 02:56:32.300 |
like the the difference is is massive but they all kind of twitter has that same thing that's developing 02:56:37.740 |
where there's like memes that are constantly flowing through it and so they're very highly connected 02:56:42.700 |
youtube just doesn't seem to have that they're just a bunch of people and people go to youtube 02:56:47.260 |
for various reasons i'm going to youtube to learn so they come in they want to learn so they're not 02:56:51.820 |
like on the meme train they're not in this like cultural zeitgeist train they're just like but why 02:56:56.380 |
would you use this if statement when a switch statement in this one particular case and you're 02:56:59.420 |
just like well that's not what i'm trying to do here yeah you want to captain the meme train 02:57:04.620 |
or you want to ride on the meme train yeah or you just want to be able to like create a culture on 02:57:10.940 |
your chat because your chats can be some variation of the of that kind of zeitgeist that's flowing 02:57:14.940 |
through twitch and it kind of is very contiguous between x and twitch it just feels really out of 02:57:20.460 |
sync with youtube and then youtube particularly does a bad job and some people would argue a good job 02:57:25.820 |
because you can swim swim being you can actually change what time stamp you're at so all sudden 02:57:30.540 |
you'll be like oh yeah you know i you know something about like driving to soccer in my minivan and 02:57:36.780 |
then 20 minutes later you'll be talking about zig and someone's like i personally use uh whatever to 02:57:41.980 |
drive to soccer and you're like what are we talking about like so youtube is a very disjointed chat as 02:57:46.860 |
well because it depends on where they're at within the video swim comes from netflix by the way 02:57:51.020 |
called swim swim the term yeah that's that's that we people said swim oh so you're you're okay swimming 02:57:59.500 |
through the yeah so you're not just making up the term thank you wow yeah but it's probably made up and 02:58:03.660 |
probably only 10 people said at netflix and so no one's gonna know it and they're gonna be like yeah 02:58:06.940 |
all right that thought happens on netflix uh so guys going back to projects what uh what projects on 02:58:13.100 |
stream or in general no you need to answer why youtube chat's the best chat well you kind of convinced 02:58:18.860 |
me okay why youtube is the best chat um well i think i'm just a hater uh that's that's basically what 02:58:26.220 |
it boils down to and i'm just talking and i'm probably just like from the outside shooting you know 02:58:31.740 |
you know shooting in because twitch is such a fun culture you know of memes and so it's just fun to 02:58:38.860 |
shoot from the outside to like i throw it to like egg the house of twitch and then i just sit back on my 02:58:46.300 |
lawn chair and uh with the small youtube community just talking no you're absolutely right there is a 02:58:52.860 |
there's a real sort of sense of community that twitch can conform but i just like the openness of youtube it's 02:58:58.780 |
just better at opening to the world it's more accessible it's easier to share it's just a more 02:59:07.260 |
established platform that's all fully on for for the non uh for the open world like i can send it to 02:59:15.740 |
people that don't usually watch video game streaming or that kind of stuff yeah if you send a twitch link 02:59:20.620 |
they're like i don't like video games you're like well actually it's not video like there's that talk 02:59:26.140 |
happens every single time you mention twitch because twitch does have a perspective about it that youtube 02:59:31.180 |
does not i was just on uh uh joe rogan's podcast and i i think it came up he asked something like is 02:59:39.820 |
twitch still a thing so that just gives you an example uh and then and then jamie uh said yeah yeah it's 02:59:47.260 |
definitely still a thing it's still like growing and so on and so yeah there's just a big slice of 02:59:52.940 |
humans that don't dissipate in the twitch uh twitch sphere yeah i just like talking so yeah that's a 03:00:00.540 |
beautiful answer but it's cool that you sort of make it accessible on all these different platforms 03:00:06.540 |
and i have high hopes for x but yeah it's feature wise it still has a lot of growing up to do and and just 03:00:12.380 |
like why do people use x you typically are going there for like a text-based interaction you want to 03:00:17.580 |
look through so i also think they just have like a user expectation change that needs to happen and 03:00:23.180 |
that that just takes a while you know that's going to take a little bit before people get to it i think 03:00:26.860 |
their idea of audio first is a great first step where people can kind of listen to it and have the 03:00:31.420 |
phone away maybe there's a lot of like changes that have to happen before x can be successful man i mean x is 03:00:37.900 |
this incredible comment section just like reddit right so it's like no no you said incredible that's 03:00:43.900 |
not reddit uh comment section correct comment yeah incredibly dynamic and vibrant even if it's uh 03:00:51.660 |
yeah what is the what is the technological platform like how does the the interface and the technology 03:01:01.900 |
shape shape the discourse it's fascinating because x is a different style than reddit different style 03:01:11.660 |
than like facebook different style than instagram it's interesting and all those comment sections are 03:01:17.260 |
different technologically like how the sorting is done how easy it is to sort of uh uh build a community 03:01:26.540 |
around it you know because youtube is not really a community every single video on youtube has its own 03:01:32.860 |
mini community you're like all talking on just that one video yeah like you're not you can't jump across 03:01:39.980 |
there's no like hey bill hey george there's no cross talk that happens in multiple videos yeah but 03:01:45.740 |
community is awesome i love community i love the feeling of community and i guess that's what twitch really 03:01:50.940 |
provides youtube also does have it though like they have an aggregate community you know there's a lot 03:01:56.220 |
of fun comments and all that on the videos and yeah a lot of thumbs up and then you see that fun 03:02:00.780 |
discourse that happens and it's like that's the community it's just only a certain slice sees it 03:02:05.420 |
i think that's even more so on youtube for live streaming though all the same folks show up 03:02:12.460 |
and they talk they celebrate they all like the the meme train arise yeah okay so now what projects 03:02:19.580 |
shape you as a programmer uh what are the ones you've streamed or uh offline for me i don't know 03:02:27.980 |
if there's like a one project i can point to but i can i can point to a specific spot where i think 03:02:32.940 |
it happens and where i think you can learn a lot from um any small program you write will be somewhere 03:02:38.540 |
between like a thousand to five thousand lines of code i consider like a pretty dang small project 03:02:42.140 |
you can kind of correlate this to any feature within a larger system as well you know a specific 03:02:48.140 |
feature on a website could be a thousand lines a couple thousand lines there's a point in which 03:02:53.420 |
all of your choices add up and that's i typically find that right around five to ten thousand lines of 03:02:58.300 |
code the choices you've made either weigh you down or kind of free you up and so it's right in that 03:03:04.540 |
that i feel like i learn the most is because i love getting to that point in a project or in some 03:03:09.980 |
small part of the code base because at that point i get a test a how good were my initial gut decisions 03:03:15.500 |
about how i design software but b now i need to go back and think about like how am i going to do 03:03:20.300 |
testing across this in a more effective way how can i scale this out to twenty thousand lines of code 03:03:24.380 |
how can i do all these things with what i've got or do i need to kind of rethink it and i find that 03:03:29.740 |
that's really where the best learning happens is that everybody has probably a different number 03:03:34.700 |
that exists and as you go to each one of these numbers or how well or holistic you want your 03:03:41.020 |
project to be i think that you'll come up with different numbers and i think that number should 03:03:45.340 |
just get bigger as you get more experienced because you know there's like there's projects 03:03:48.780 |
that are a million lines of code but they're most certainly not holistic right like every part of the 03:03:53.340 |
the code base is some age at some capsule of time with some sort of programming style some is more 03:03:58.700 |
functional more class based more god help your soul for its pre-processor macros and c plus plus right 03:04:04.940 |
like there's like all these different kind of things you'll find throughout time and so that's why i kind of 03:04:10.380 |
try to think about it as like the feature or the thing you're working on it's usually about 5 000 lines 03:04:16.060 |
is where i find that things get kind of did i make good or bad decisions and that's where i do all my 03:04:20.460 |
learning is right on that phase i'm trying to get it to the point where i should be able to shoot from 03:04:23.820 |
the hip and do 20 000 lines and not be upset about it so first of all on the just enjoying the thing you 03:04:29.340 |
create part yeah about there you can sit back and see all the parts dancing together for me also debugging 03:04:38.620 |
you get to see the choices you make materializes like how easy it is to debug like i'm a big proponent i 03:04:46.620 |
think you've mentioned this in the past um i put uh asserts everywhere no you're the reason why i do that 03:04:53.580 |
yeah you're like the first one keep on going sorry really okay uh so for me one of the joys whether it's 03:05:01.900 |
uh try catch box whether it's assert whether it's with the testing i uh i get to see the payoff of all the 03:05:11.100 |
the the mine field of asserts i've laid out before me in my kingdom by how quickly i can debug a system 03:05:19.660 |
as it grows larger and i can first of all discover errors before they become real bugs and also how 03:05:27.580 |
quickly i can solve those errors and that that brings me joy for me a lot of the joys of programming is 03:05:33.340 |
creating powerful systems that don't break down that work correctly they work correctly in majority of 03:05:41.660 |
the cases and they're sort of the stress testing the system and getting all the signals from that 03:05:49.340 |
system that everything is working correctly is uh is something that fills me with joy and makes 03:05:54.860 |
sure that the system actually works so yeah that i don't know if it's five ten thousand lines of code 03:06:00.780 |
if it's java or c plus plus it's millions lines of code but yeah um in python yeah i would say ten 03:06:07.020 |
thousand lines of code that's when you first get to see the magic but anyway you were saying okay so you 03:06:12.140 |
and john carmack had a conversation about asserts yes you talked about this idea of putting asserts 03:06:16.220 |
everywhere that effectively crashed the program when you you have some state in your program that should 03:06:23.340 |
not be represented and you have made this choice actively and so i've never done that before and i know 03:06:28.700 |
this is like an old technique and i obviously must be too young or too dumb to know that this was a 03:06:33.340 |
thing people did i grew up in java and i think that's probably why i didn't run into this so i saw 03:06:39.020 |
that i was like i'm curious about how to use asserts more and then i ran into a person named yoran he's 03:06:43.340 |
the ceo and creator of tiger beetle it's like the world's fastest greatest financial database and it was 03:06:49.900 |
spawned out of a company that needed to do a bunch of financial transactions and it's written in zig 03:06:53.980 |
and what they do is they do deterministic simulation testing and they just uh use nasa's 03:07:00.540 |
kind of guarantee for creating really great software so like don't use u size specify your exact size of 03:07:05.980 |
into you expect everywhere all these kind of like things they do to be very uh specific and one of 03:07:10.940 |
them is that every function should contain two asserts whether it's positive space like uh you know 03:07:17.900 |
these things should happen or negative space like you should this pointer should never be null you're 03:07:23.260 |
programming into things that should never happen normally you just never specify that you'd never 03:07:27.420 |
think about that so every single function everywhere has all these asserts and these asserts run both in 03:07:32.460 |
production and in testing they're always on and then they take determination simulation test 03:07:38.220 |
deterministic simulation testing and run like 200 years of just random data just complete slop going through 03:07:45.260 |
the system and seeing how far it goes and when an assert happens they're like here's the input that 03:07:49.420 |
caused it here's every last little bit that happened and now you can identify where this went wrong and 03:07:54.780 |
it was so cool so between you john carmack and you're on that's where i like okay i got a real and nasa 03:08:00.860 |
i'll throw nasa bone as well nasa can join in on that one uh i was like okay i want to try this and 03:08:05.900 |
i did try it i built uh kind of like this big reverse proxy for me trying to do some game development stuff 03:08:10.940 |
and i just went ham on the asserts and then i built the whole simulation testing thing that could 03:08:16.060 |
do everything deterministically so you know even the result of requests would all come in specific 03:08:20.700 |
orders and i found a bunch of bugs that i just would never have found and then i did it for a game i was 03:08:24.540 |
making i found some bugs where my cursor went off screen it would cause all these different problems 03:08:28.220 |
because i just never tested them and it's super fun and it's like a really great way to program yeah i think 03:08:33.820 |
it's a skill set you go over time it's not just that you have to specify the preconditions like every 03:08:39.420 |
everything that has to be true it's also adding things that are like you might not even think 03:08:47.660 |
about you have to sort of anticipate really weird things and if you add asserts especially in 03:08:54.780 |
complicated functions or in in complicated classes that uh are able to catch really weird things that's 03:09:03.180 |
going to save you so many headaches and it's going to help you learn about your own code this is one 03:09:10.620 |
of the things i think it was uh jonathan blow that either in conversation with you or was it uh in 03:09:18.860 |
presentation he said that when he's starting in a project he usually doesn't know what like how to 03:09:26.380 |
implement it like what how it's going to work uh and i think he was saying that he wants a programming 03:09:34.380 |
language this might have been a criticism of c plus plus i'm not sure where he wants to program a language 03:09:39.660 |
that makes it um as painless as possible for him to not know what he's doing how he's going to implement 03:09:46.620 |
it and to quickly get to a place where he figures it out i think there's a fundamental like part of 03:09:53.820 |
programming is building stuff while not really knowing what the next thing you're doing is 03:10:01.820 |
you kind of have a loose design maybe a strict design but really you're solving puzzles that are not 03:10:06.780 |
it is a dark room in a in a fundamental sense and there you have to anticipate the kind of weirdnesses 03:10:13.980 |
that might emerge while not really knowing everything just this this full like fog fog of war 03:10:21.820 |
and there that's a real skill to anticipate the kind of uh issues that might arise and put a search on top of 03:10:30.060 |
them and it's also like spiritually for me uh been a really nice way of programming of building of living 03:10:38.300 |
life is having like very strict asserts that say like you're gonna fix this problem if it ever arises 03:10:47.980 |
you can't just look the other way like this idea of treating warnings as errors like make sure your 03:10:53.100 |
code compiles without any warnings that was a big leap for me it's like but there's so many of them 03:10:58.700 |
and i it's not really that important yeah it's like no no no warnings like make sure you treat every 03:11:05.980 |
single problem uh even like fuzzy problems seriously because that's actually long term 03:11:12.140 |
is going to create code that's much easier to work with much more fun to work with much more robust 03:11:18.300 |
resilient to all kinds of weirdnesses all that kind of stuff so it's a different way of approaching coding 03:11:23.820 |
probably more nasa like versus like web programming style but yeah it has made programming for me 03:11:32.700 |
personally much more fun because one of the most painful things about programming is creating when 03:11:38.380 |
you get past 10 000 20 000 lines of code and you have to find a bug and that bug can take hours it could 03:11:48.140 |
take days to find and that's torture yeah when your system gets sufficiently large some of these bugs are 03:11:53.660 |
just they're very difficult i you know bless anyone's soul that's working on million line code bases 03:11:59.820 |
because it does it just i can't tell you how many times i've spent multiple days just trying to figure 03:12:04.460 |
out the root cause of the bug not even the fix just like why does this happen and that's hard so i love 03:12:10.300 |
that i just love the asserts because i'm not good at them i can see it's definitely a skill that i don't 03:12:14.860 |
i don't put into practice constantly which means it's just not like a muscle memory type thing and so 03:12:20.860 |
it's just one of those things i just love it's just it's such a fascinating way to approach a problem 03:12:25.420 |
because i would have never thought you know what i'm going to do if i'm wrong i'm going to crash this 03:12:29.980 |
thing i'm going to crash it right here because i should never be wrong but instead you're like oh 03:12:34.540 |
actually that makes perfect sense i should crash this thing i've done something terribly wrong here why 03:12:38.540 |
would this ever exist and then you're like this is going to solve a whole class of problems yeah 03:12:42.860 |
and especially if it's in production it's like well users are going to see this crash it's like yeah 03:12:47.900 |
well you should minimize the number of times any user ever sees the crash not by like having a nice 03:12:55.740 |
blue screen or whatever the but like actually stopping everything and that's going to be uh and 03:13:02.780 |
that's going to create an incentive for you to never have that happen you're actually going to put in 03:13:07.580 |
the time to make sure it never happens and the nice part is like with the web and all that you can 03:13:11.740 |
always pop up something and say hey things have gone very very wrong we're unable to recover you can like 03:13:16.380 |
give them a nice message and then log it off so you can see it yeah and then measure how often are you 03:13:20.540 |
doing it you know i understand that there's a bit of interestingness to a um to a web project like do you 03:13:26.220 |
want to always crash a server there's a bit of a gamble if you release a bad version and you crash all your 03:13:32.620 |
servers constantly you know like that's a that's a pain you're gonna have to accept i think this is 03:13:36.860 |
more applicable for uh single systems like robots and so on you uh have struggled with adhd i think a 03:13:45.820 |
lot of people are really inspired by the fact that you're able to be productive and flourish uh while 03:13:53.980 |
having adhd how'd you overcome it well there's a lot of things that adhd affects and so uh 03:14:00.860 |
i'll start with some of the easiest things because there's like directly applicable then 03:14:06.940 |
like these kind of collateral damage applicable things that happen so one thing that has really 03:14:12.220 |
helped me with adhd is maturity i think that's just like just a thing that everyone needs more of 03:14:19.020 |
meaning that i found myself getting so wiggly and so out of control when i would try to sit down and 03:14:24.220 |
read and i just i just couldn't handle it i just felt like i'd read a page and didn't read anything 03:14:28.380 |
uh the part of me that just went oh my gosh i just can't even do this i had to just simply quit 03:14:33.900 |
listening to it and said nope i'm rereading this page i'm re i remember reading some pages in college 03:14:38.460 |
like 18 times in a row just like i'm going to force myself to just do this the correct way and so 03:14:43.500 |
there's an aspect of maturity that really helps no matter what i will do the thing i'm going to 03:14:48.620 |
do and i'm going to do it well and maybe it takes me a lot longer and that's okay that's not the point 03:14:54.300 |
of it it's that i'm doing it and that's the point and so that's kind of like one thing i think just 03:14:58.460 |
generally helps and then adhd no adhd you know the resilience emotional resilience is just like a 03:15:05.500 |
really important aspect that just helps and so i think that has been a large part that really helps me 03:15:10.860 |
there's things that i still obviously struggle with like it's clear where i'm really bad at stuff and 03:15:18.460 |
just trying to like think through all the different things that i'm bad at there's more things i'm bad 03:15:28.220 |
at than i'm good at and so programming obviously has something that just allows me to remain focused and 03:15:33.340 |
it's like a strength of mine and so i started off where i could just do it for a little bit and then just 03:15:38.700 |
through kind of that emotional resilience i was able to start doing it more and more and so now 03:15:41.900 |
i can just do it for like 10 12 15 hours at a time and i absolutely love it and so it's it's become 03:15:48.060 |
kind of like a joy it's like playing a musical instrument i'm really into it but then if it came 03:15:53.260 |
down to hey you need to go schedule your own you know dentistry and go do all these other things or 03:15:59.100 |
make sure the kids have this type of stuff ready for you know the meals you need to pack throughout the 03:16:03.500 |
week i'm historically very bad at that and will probably uh continue to be very bad at that and so 03:16:10.860 |
i must say that one of the reasons why i excel so much is because i also have a wife who is so good to 03:16:18.220 |
me and she helps clear out a lot of the things in my life that cause a lot of like me kind of getting 03:16:24.700 |
snowballed into a weird spot where i'm just like distracted getting nothing done and so she's really 03:16:29.580 |
helped me so it'd be foolish of me to claim that i've defeated the adhd by myself but instead i find 03:16:36.060 |
that the places that i can really control i've done a very good job at and the things that i obviously 03:16:41.180 |
need to do much better at my wife has helped me a whole bunch and so i've kind of cheated maybe i found 03:16:46.140 |
a cheat code uh loving wife but that has been the thing that has really helped you you said a lot of 03:16:51.500 |
interesting things so on the on the reading and the for me it's also audiobook side i do uh the same 03:16:56.940 |
thing and i've gotten much better at it which is like you know i tune out mentally and i you know 03:17:03.500 |
i'll yeah there's you know read a page and you don't understand anything on the page you you didn't 03:17:08.940 |
actually read it and yeah you i i forced myself to just uh reread it or re-listen to an audiobook which 03:17:15.580 |
is much more common problem for me now uh and forcing myself to really pay attention because i i listen to 03:17:22.140 |
audiobooks often when i run and it's so easy to just tune out yeah it's a skill like i didn't 03:17:27.340 |
realize how much of a skill listening to an audiobook is especially when there's other sensory inputs like 03:17:33.260 |
when you run so i have to force myself to like really pay attention to every single word and if i don't 03:17:40.380 |
like tune out and don't remember what i just listened to in the past 30 seconds i forced myself to re-listen to 03:17:45.740 |
it and uh sometimes that means like five times until i like it's like punishing myself to like 03:17:51.500 |
you're gonna listen to this boring over and over until you you get good at that little skill of like 03:17:55.900 |
zoom in and you're like yeah there's people they're like doing stuff there's nature doesn't matter you're 03:18:03.660 |
listening to every single word and loading it in and trying to stay focused even there's just so many 03:18:09.020 |
distractions all around you yeah it's definitely a learned skill and it takes a lot of time and when 03:18:13.580 |
i say you know oh i was able to do from here to here i'm speaking over the course of like five years 03:18:17.900 |
of doing this every day like it's not some small there's no you could the nice part about that decision 03:18:24.140 |
though is you can make that decision today you can make it right now you're gonna be like from here on 03:18:28.780 |
out i'll never make that mistake again i will say i'm going to read 50 pages i will sit down and read 03:18:33.340 |
50 pages and when i get distracted i'll go back to the last place i remember and i'll start again 03:18:37.420 |
and like that's a decision you can make that's a mature you know non-emotional decision to make 03:18:42.220 |
and you can do that it just may be really painful for the first couple years of making said decisions 03:18:48.300 |
and then it gets easier and then it gets easier and then it just it becomes more natural to change 03:18:52.780 |
yourself yeah and with every medium with every platform i think it's like a new skill uh for me like 03:19:00.300 |
using social media has been that just like i end up like doom scrolling yeah too easily on platforms 03:19:07.740 |
so and one solution is not to look at all which is kind of what i lean on mostly these days but i 03:19:14.460 |
feel like i should be able to check just read okay feel a thing learn a thing and then put it down yeah 03:19:21.580 |
versus like you have this glazed look over your eye and you're not really paying attention anymore and 03:19:27.980 |
you're dead inside and you feel horrible afterwards i don't understand um the horrible afterwards is real 03:19:34.300 |
serious i've i've definitely i can 100 notice that i am a more anxious person the more time i spend 03:19:40.060 |
scrolling yeah yeah i can just feel it it's like something inside of me that's kind of i don't know 03:19:45.820 |
how to say it other than it like wants to get out but i don't really know what that is it's 03:19:49.260 |
it's not anger but it's not you know it's very anxious it's like the opposite of the feeling i 03:19:54.540 |
have when i wake up in the morning and i'm feeling good and i look out in nature and like look at the 03:20:00.140 |
sun and just and it's like a bird chirping and this kind of thing like scrolling through social media even 03:20:07.340 |
if it's like super positive stuff or whatever it's still not the same feeling as the bird chirping bird 03:20:12.300 |
chirping on instagram is a different bird chirping than in real life like because bird chirping on 03:20:17.420 |
instagram i'll start swiping until like there's like demons of different types fighting inside my 03:20:22.940 |
head and then i you know yeah different anxiety insecurity whatever the hell just the mixture of 03:20:29.100 |
chaos versus the bird chirping in real life that's beautiful but again that's the same thing as with the 03:20:36.300 |
audiobook it boils down to like man these people that talk about meditation i think that's probably 03:20:41.980 |
they're onto something it's like the that's what that's what it is is be able to like focus 03:20:46.540 |
uh calmly and deliberately on a thing whether it's reading or audio book or existence 03:20:56.780 |
when they sort of observe the breath you're able to silent out everything else remove everything else 03:21:03.820 |
from focus yeah that's a skill i heard it put really beautifully which is that uh we in america 03:21:09.500 |
really have misunderstood liberty because we typically have liberty as just the freedom to do whatever 03:21:14.060 |
you want and the argument was that it's not the freedom to do whatever you want it's the freedom to 03:21:18.780 |
be able to do what you will and how often is what you you actually want to do you don't do because 03:21:24.780 |
you get trapped doing something that you've convinced yourself in this quick moment you want to do 03:21:29.020 |
and so it's like i want liberty i want the ability to control my energy and to be able to like do the 03:21:35.340 |
thing i want to do not to get distracted and destroyed in all the millions of distractions 03:21:40.460 |
and some of us get you know handed a worse deck of cards some of us get a better deck of cards but i 03:21:44.620 |
don't think there's anybody that doesn't struggle with it in the technological age yeah and that's the 03:21:48.780 |
skill what what can you say to the the the skill of achieving focus and programming like do you have a 03:21:54.940 |
process of how you sit down and try to sort of approach a problem so all the different uh not just 03:22:03.340 |
distractions but the challenges of starting a project of thinking through like the design how to maintain 03:22:10.060 |
like real focus because it's really difficult intellectual endeavor i guess at this point i'm 03:22:15.900 |
lucky uh but when i first started i can remember that every last part of programming i had to go look 03:22:23.580 |
up i had to go read i had side quests at all time like every step was a side quest why is my screen 03:22:29.500 |
blinking when i'm trying to render this thing out oh i didn't know about double buffering why is this 03:22:32.940 |
happening how do i even write to the screen how do you know like everything was a question i had more 03:22:37.420 |
questions than answers and so i constantly had this like the problem of side quests and i find that to 03:22:42.140 |
be a very exhausting thing but as i learned my instrument very very well i don't have as many side 03:22:49.100 |
quests i become more and more able to just focus on the thing i want to do and i find that to be 03:22:55.180 |
something that is just super super useful so when i say i'm kind of lucky meaning that i've spent so 03:23:00.220 |
much of my life preparing for this moment that now when i have the opportunity to do something i can 03:23:06.620 |
just do that thing and i don't like i can be just on an airplane and i can just program for hours i 03:23:10.380 |
don't have to look up a single thing i don't have to do anything i don't even have to test the code 03:23:13.580 |
i can write a thousand lines of code on an airplane and i'm very confident that it's going to be 98 03:23:18.860 |
pretty dang good and i'm very happy about that because that allows me just to be in the moment 03:23:23.660 |
solving the problem i'm trying to solve then i have 100 of my brain power solving a problem and 03:23:29.900 |
this is why i also it's the same reason why i recommend learning how to type and learning your editor so 03:23:33.820 |
well you don't even have to think about the action because the people that have to even if you just 03:23:38.060 |
look down that's still mental processing power you have to spend looking at a keyboard in which you 03:23:43.500 |
already know where the key is like you do you know at this point if you've been typing for thousands of 03:23:47.900 |
hours you know where the key is just stop looking down you'll learn really quickly and so it's like 03:23:51.740 |
this thing where it's like i'm not going to spend all that time and all that mental effort 03:23:56.380 |
like looking up the thing i'm going to just memorize you know i'm just going to get it in me and then i can 03:24:01.580 |
go fast and it feels good and so that's how i kind of defeat that is because now i get to do something 03:24:08.060 |
where it's like there's no more questions it's now me just expressing myself into this medium and it feels 03:24:14.300 |
really good i'm sure there's still like things that pull at you like curiosities yeah distractions 03:24:19.580 |
like oh i wonder how you know uh anytime i guess you have access to the internet you're gonna like 03:24:25.740 |
twitter's a big one on that one yeah you're gonna get curious about stuff including i guess you're 03:24:31.820 |
speaking about everything in the editor is optimized but you're okay you can always improve stuff you can 03:24:36.460 |
always find better sort of plugins and macros and oh let me you know what this thing that took uh this 03:24:43.340 |
pain point i just found this tiny pain point let me spend the next five days creating a plugin for my 03:24:49.820 |
editor or whatever the uh to uh remove that one pain point when you should have just kept going uh as 03:24:57.180 |
opposed to taking the side quest so i have a rule yeah which is i do not edit my rc other than some kind 03:25:04.220 |
of cataclysmic thing like someone updates the plug and i didn't know they updated it now there's like 03:25:07.500 |
a hard error in my editor and i have to like move forward um but i have a rule where i will edit my rc 03:25:13.660 |
my neo vim rc or anything once a year something that bothers me i'll write it down i'll remember it i'll 03:25:21.580 |
be like okay i want to change that but i will just not go back to it now every now and then i i'll break 03:25:25.980 |
that rule if i know it's like oh i want a new remap to be able to do this one command and that takes like 03:25:30.460 |
literally 13 seconds like copy paste do this done okay i have this new remap it made perfect sense in 03:25:35.260 |
this situation but i don't go plug and exploring i don't try to solve every problem i don't want a 03:25:40.060 |
perfect editor because that is a pursuit that will never stop i just go this is good good break point 03:25:46.620 |
i won't do it again so i spent last month i probably spent a hundred hours just like editing every possible 03:25:52.860 |
thing i could about how i start up my system and make i can have a computer from zero to 60 in almost 03:26:00.060 |
no time now everything the way i exactly want it neovim everything all perfectly set up happy enough 03:26:05.820 |
i'm not going to touch that system again maybe i'll touch the next year maybe i'll take a year off 03:26:09.660 |
you know it's just i'm fine with that i'm fine with not being perfect all right zero to 60 let's talk 03:26:14.620 |
about the perfect setup uh what's your uh perfect programming setup keyboard operating system how many 03:26:22.460 |
screens chair all right i like all these ide let's go so keyboard you're using my favorite keyboard right 03:26:31.180 |
there the kinesis advantage uh saved my career beautiful keyboard uh concavity and thumb clusters 03:26:37.580 |
are just so important because if you really think about it especially if you're using qwerty when you're 03:26:42.540 |
pressing the symbols like on a standard you're just doing this the whole time backspace enter symbols 03:26:48.060 |
like you're just doing this and just screws up your wrist constantly doing this and this one you're 03:26:51.420 |
constantly doing like control and shift it's just is like messing you up so it's just like right here 03:26:56.140 |
that's so much nicer in life so keyboard most important i'd say get that one done for people who don't 03:27:02.220 |
know kinesis keyboard i think the the thing that you experience the most is exactly the thing you just said 03:27:08.700 |
now which is the backspace is really easy to press yeah versus what it is on normal keyboards so 03:27:15.340 |
backspace in general symbolizes like you're deleting a thing it symbolizes a mistake it 03:27:22.300 |
not symbolizes it usually means a mistake yeah and so uh not only did you just make a mistake in what 03:27:29.100 |
you were typing you also have to take a physically painful action annoying action yeah to to to fix that 03:27:35.820 |
mistake and for most of us we make a lot of mistakes so uh kinesis just makes it pleasant and fast and 03:27:42.140 |
easy physically to correct the mistake that's probably for me the number one reason of kinesis 03:27:48.540 |
everything else yeah super plus with the mackerels and the position the concavity like you mentioned but 03:27:53.660 |
their mistakes are pleasant yeah i'm on that team that's why so that's why i love that so that's 03:28:01.500 |
i would say that's one of the most important things the next thing that i find to be very 03:28:04.620 |
very important is that one monitor i'm a one monitor kind of what really so when i program when i do 03:28:11.180 |
anything now when i stream i obviously have a second computer that runs the stream because you know i 03:28:14.940 |
sometimes crash my computer at the restart or whatever so i do have a second screen there that 03:28:18.780 |
that i put stuff up but most of the time you'll notice that even when i'm streaming uh you've been 03:28:23.020 |
there i have to physically switch to the streaming chat channel for me to read it and that's because i'm 03:28:28.700 |
operating off of one screen and so i have this whole style in which i like to navigate inspired 03:28:36.380 |
by starcraft is that i believe in the press one key go where you want to be mentality and so everything 03:28:42.780 |
about my setup is press one key so when i want to go to twitch chat alt 2 twitch chat when i go on 03:28:48.540 |
to go to my browser alt 1 that's my browser alt 3 that's where i go to my programming that's power 03:28:52.620 |
finger obviously a big middle finger right there just smash it down uh alt 6 is going to be gimp 03:28:58.300 |
so my uh gnu image manipulation program so if i want to draw i go there when i used to have slack 03:29:03.420 |
it was all five if i have a spare terminal where i need to run some extra things that's all four 03:29:08.140 |
i had all these kind of everything is perfectly mapped out to single key and then when it comes 03:29:13.260 |
down to using say tmux i have all my terminals into one single terminal and now i'm able to kind of 03:29:19.260 |
switch between their uh prefix one goes to my vim editor whatever project i'm in it's always the first tmux 03:29:26.220 |
tab a tab if you will i'm not sure they call it a session but i'm not sure how to describe it if 03:29:30.620 |
you're not familiar with tmux a tab second one is like my spare terminal third one is my long running 03:29:36.540 |
process terminal my fourth one is a long running process terminal so i have it all set up so every 03:29:40.300 |
project i go to automatically spawns session one vim session two spare terminal session three 03:29:45.660 |
will also open it so it's like everything's just ready to rock everything has been optimized to where i do 03:29:51.100 |
that if i want to go to a project it's ctrl f and any terminal will bring up a fuzzy find list 03:29:56.700 |
of every one of my folders on my operating system in which i can go to with just a couple keystrokes 03:30:01.260 |
and boom i'm in that one now and so it's like very oriented to find where i need to be as quickly as 03:30:06.140 |
possible via keyboard via keyboard then in vim i develop a plugin called harpoon which is i press 03:30:11.820 |
one button and i can uh pin one of the files to like a temporary buffer i think a projectile 03:30:19.260 |
is potentially close to this in emacs i can't remember project i think projectile is closer to 03:30:24.140 |
my sessionizing script anyways so now i can i have four pinned files in which i can go to any of those 03:30:31.500 |
pinned files with just a single keystroke and so now it's just like because every time you develop a 03:30:36.380 |
feature usually you have like three files you're kind of primarily working in and i can fuzzy find 03:30:40.460 |
for the other files and that's that but usually i just have like these three power files and i'm 03:30:45.020 |
always swapping in between and so it's like now everything is just i want to go to the browser that's 03:30:49.420 |
one press i want to go to my workstation that's one press i want to go to a specific folder i need 03:30:53.180 |
to change folders sometimes you work between two different um projects so in tmux that's prefix 03:30:59.900 |
capital l will swap between your last two so i have alternate projects so i can even swap between 03:31:04.300 |
projects and pretty much one key so it's just like dude dude just trying to optimize it so i don't 03:31:09.500 |
think as much because i think search fatigue is a massive fail where you have to look for like when 03:31:14.860 |
i see people on a mac do this and then explode all the different ones that gives me anxiety i'm like why 03:31:21.340 |
are you using your eyeballs to search for what you want to do like make it into a key press and never 03:31:25.900 |
think about it again ever you're making me think a lot whether i can live with your system whether it's 03:31:31.980 |
better because it feels better it at least intellectually feels better it may not be 03:31:35.660 |
great for some people there's a few profound things you said which is like really what you're 03:31:39.980 |
the the number of windows or tasks you're switching between whether it's programming the number of files 03:31:46.380 |
you're working on is small yeah any one time at any one like space of like 20 minutes or something like 03:31:52.860 |
that so okay that's that's a profound truth sometimes we think like oh i need the full freedom to 03:31:59.100 |
search but you don't you usually work on a very small slice but i guess the trade-off there like i 03:32:05.340 |
always have three monitors not not when i'm traveling but my happy place is three monitors 03:32:11.340 |
it's like do you really need all of them to be present there so you're turning your head 03:32:16.780 |
now the the monitors i have is two vertical ones okay which is just better for 03:32:22.620 |
certain kinds of content i mean they're positioned vertically so you can read you can use your eyes 03:32:28.220 |
to scan quickly interesting so i don't even do that i even have it so zoomed in that i probably only have 03:32:32.700 |
like maybe 25 lines of code at any one time on my 27 inch monitor yeah i think that's okay i think i 03:32:41.420 |
feel fundamentally constrained when i can't see more because your your eyes are just good at 03:32:48.700 |
jumping like okay like you could like why not search why not press a couple keystrokes 03:32:54.300 |
control u control d jump down by up and up and down by half page because the ape visual system was 03:33:00.540 |
designed to like you're loading a lot of information like what if every time you had to investigate this 03:33:07.980 |
table what's on this table you had to press a keystroke you you could develop the skill set that 03:33:15.340 |
integrates that information but like it's really there is an effective thing where if you have a 03:33:20.780 |
sheet of paper like this and i'm looking at it my eyes will be able to uh load in the structure of 03:33:32.060 |
the information the the topics of the information like you just can do it faster i think there's a 03:33:38.780 |
big cost because you you know it's an extra monitor but there is some stuff that's vertical when vertically 03:33:45.020 |
positioned code see code is an if you want because it code you really you get 25 lines at a time i think 03:33:51.740 |
you can do a lot this is more for like articles and especially with visual information in them or 03:34:00.220 |
documentation you can just jump faster but i'm trying to as you were speaking uh so eloquently 03:34:05.660 |
i was like wondering am i just like deceiving myself that i need that can i just keyboard shortcutify 03:34:15.340 |
everything and just have everything on one monitor that's something i should probably try because i'm a 03:34:20.300 |
big proponent of just automating everything with the keyboard because you could just move really really 03:34:24.780 |
fast so you don't have to think uh one of my you know because i also do um creative stuff like uh 03:34:32.060 |
whether it's recording music or um video editing it's it's hard you know some of these programs don't 03:34:39.020 |
make it super easy for you on windows with auto hockey you can do quite a lot but still there's limitations 03:34:45.180 |
on how much you could do with the keyboard so that's it really is a pain he has to have to use the mouse 03:34:50.300 |
but man you're really making me think it's you know the even the text one with the reading one i 03:34:55.900 |
like fundamentally i think i agree with you that you can you can see a lot more and you can kind of 03:35:00.220 |
look up and down and see those two things and probably in articles or things like that i could 03:35:04.700 |
you know if there's like a graph down here that's really big that take up your whole screen plus text 03:35:08.620 |
i could see why that would be very beneficial to zoom out to be able to have all that information but 03:35:12.940 |
for me i can only look at like a square inch like really that's all my eyes can actually focus on so 03:35:17.580 |
when i'm reading i'm right here then i have to like structurally try to pattern match what i think the 03:35:22.220 |
information looks like then i have to start reading it so i'm not exactly sure if i actually get any real 03:35:26.860 |
benefit of having a lot of stuff on screen as opposed to i can relax my eyes so much i don't even have 03:35:32.700 |
to focus the words are so big like i actually program pretty zoomed in um my text is bigger than this 03:35:38.300 |
when i when i program and so it's it's just that it's so comfortable i don't even have to exert any 03:35:44.460 |
effort to read the code but you have to kind of train your brain to know that you can navigate 03:35:49.180 |
in the like spatially using keys yeah yeah neovim by the way oh maybe it has everything to do with 03:35:58.060 |
neovim okay all right and then neovim is obviously the next big one i love neovim uh reason being is that 03:36:02.860 |
i think you can make all the arguments you want about which editor is the best i do not think you can 03:36:07.580 |
make an argument that vim motions aren't superior here we go can you explain vim motions okay what 03:36:12.620 |
is this so neo vim vim is a old school editor neo vim it's a modern take on an old school editor yeah 03:36:19.740 |
and um what's e-l-i-5 what like what does it take to work with neo vim okay i thought you're talking about 03:36:30.700 |
a vim motion there that's how you know that you know that i know but you know that meme that's just like 03:36:35.260 |
hey jarvis can i tell you about vim motions because they can't fit anything else in their 03:36:38.860 |
head because they only have vim motions you said el5 like explain it like a five yeah but in my head 03:36:43.020 |
it's like okay e's jumped to the end of the word l's one more right like dude i'm so like broken i'm 03:36:47.740 |
like okay vim motions when i hear letters um yeah so you can think of it like this is that vim has a 03:36:55.260 |
language to describe movements in text because its primary mode of operation is manipulating or editing 03:37:02.540 |
text so it is a well thought through set of movements deleting yanking pasting copying all 03:37:09.500 |
that kind of stuff that goes in motions that are optimized for working with pretty much code good 03:37:15.500 |
example say you have three lines of code you want to delete if you're in vs code take your little 03:37:20.540 |
beautiful mouse highlight those things press the backspace that's lovely your hand left the keyboard 03:37:25.660 |
very simple to do though it's very beginner friendly i was a huge vim hater by the way so i just want 03:37:30.220 |
you to know that before we go into this i was probably the biggest vim hater if there isn't a like 03:37:35.500 |
sol to apostle paul i am like the sol to apostle paul of vim so you see how big the gap was yeah 03:37:42.460 |
or you can do something that's like i don't know what the vs code shortcut is but i'm sure there's 03:37:46.300 |
some keys you can press to delete the current line you're on delete delete delete right you can just do 03:37:51.020 |
that in vim i can go dap delete around paragraph all contiguous code in that thing i'm going to delete 03:37:56.620 |
so d then i can choose my motion i want to take ap around paragraph or maybe i want to d f mean jump 03:38:04.220 |
up to the next character that matches the next character i'm going to press so d f opening 03:38:08.140 |
parenthesis will delete everything from your cursor up to the first opening parenthesis so you get to 03:38:12.700 |
describe your motion in these little keystrokes and as you get really good you know you've seen people 03:38:17.660 |
that can master fortnite it's the same thing with mastering vim motions when you get so good you no 03:38:21.980 |
longer think about each individual movement instead you're just like get rid of the paragraph jump here 03:38:26.220 |
jump this highlight this yank this do this you know it becomes so fast that you can superiorly edit text 03:38:31.980 |
at a very fast rate and there comes a point where you when you know your language really well 03:38:36.060 |
you know the problem you're really working on really well where editing text and getting code out 03:38:41.100 |
actually becomes one of the many bottlenecks people always talk about well most of the time i think most 03:38:45.660 |
the time i'm not thinking i'm programming i know what i want to do i want to go as fast as possible 03:38:49.500 |
because i've been just doing it for so long and i'm so familiar with kind of the general space that it 03:38:54.060 |
becomes a huge problem for me i cannot tell you how many times that i've been purely bottlenecked by the fact 03:38:59.260 |
that i just can't type fast enough i just need to get the i just need to get it out of my head onto 03:39:03.260 |
the you know onto the text editor and so that's why i think vim motions are superior in all aspects 03:39:09.420 |
keep your hands on the keyboard on the home row and you can manipulate text in very wide and fast ways 03:39:14.380 |
so this is not just about writing text this is about modifying text it's primarily about modifying text 03:39:18.940 |
yes and i'm sure that most editors including emacs including vs code can do all those same things 03:39:24.940 |
but there is something they just don't encourage you to discover those things yeah that's like an 03:39:31.500 |
important thing about a lot of technologies that and programming languages that a lot of them can do 03:39:38.620 |
a lot of the stuff yeah but it's something about whether it's the community or the style of the language or 03:39:44.860 |
anything like this that encourages you to not be lazy in the beginning and learn the fast way to uh 03:39:52.220 |
to edit text in this particular example yeah how to use the keyboard that that's a fascinating sort of 03:39:58.060 |
just reality of how technology is used you want to be encouraged to find the fast thing as quickly as 03:40:04.140 |
possible so that long term it's efficient and fun yeah to use it takes a long time for dividends 03:40:11.260 |
like a long time but on top of that notice i didn't say vim i'm not saying go use vim i'm saying vim motions 03:40:17.100 |
um let me give you one more example okay i'm a big fan okay let's say you have a line that can that 03:40:23.100 |
contains some some variable some function you're calling something that takes in a string and you need 03:40:28.460 |
to do that again so you you you would typically copy that line you'd paste that line below you'd go 03:40:35.260 |
into the string and you change the string let's say it's calling some sort of configuration you need to 03:40:39.180 |
call it three times with three different configuring strings in vim i can i like to do shift v to 03:40:44.540 |
highlight the whole line then y some people do yy but i don't like to do double ones i like to be able 03:40:48.620 |
to do two different fingers because you can do that way faster than one finger twice just a little 03:40:53.500 |
optimization for me because you can't press that as fast so anyways very optimized in my approach so i 03:40:59.900 |
yank the line paste the line ci double quotes will delete everything inside the first occurring string 03:41:05.660 |
then i can type the string escape save and so it's like so optimized that i can just jump so fast in 03:41:11.660 |
between that whereas the copying and pasting line is probably the same speed but the navigating to the 03:41:16.860 |
string deleting what's currently in the string and then you know like that's such a fast motion in vim 03:41:22.220 |
and i just do that all the time to backtrack really dumb question uh ci what's the difference between 03:41:28.460 |
typing the letters and using the letters to navigate and edit how do you switch between the two modes okay 03:41:34.220 |
so insert mode means that you're just putting in text yeah and then uh normal mode means that you're 03:41:39.100 |
moving your cursor and how do you switch between the two uh escape escape goes from insert mode into 03:41:45.100 |
normal mode and uh to go into insert mode press i to take your current cursor and go to the beginning a 03:41:50.540 |
to go to the end of the year cursor capital a to go to the end of the line capital i to go to the beginning 03:41:54.220 |
line o to put a new line below and then put your cursor at the proper intended for the language shift o to shift 03:41:59.820 |
your current line down and then put a new line in like you can see yeah there's like a blessing 03:42:04.380 |
escape a lot yeah i mapped mine i do control c control c does the same thing except for in one edge 03:42:09.820 |
case people hate that i got used to it just due to the fact that i was using intellij and i really 03:42:14.380 |
hate pressing the escape key so i just got used to pressing it so that seems like an essential thing 03:42:18.700 |
to do if you're using neo vim to map escape to something cap lock would be like your standard go 03:42:23.980 |
to oh yeah i map it too cool i got you yeah so then it's just really easy to press it and boom boom boom 03:42:30.060 |
not a big deal at all uh but yeah i think that if you're willing to learn it the emotions are superior 03:42:35.180 |
but if you're not willing to learn it then they're not superior you should just not do it right if you're 03:42:39.740 |
willing to endure pain it's good if you're not it's it's actually way worse it's 100 times worse 03:42:44.620 |
right so if you like pain you use neo vim totally yeah you're totally 100 now you get it if you like 03:42:51.020 |
joy you use emac so oh sorry sorry did emacs ever get a good text editor i know they're a great operating 03:42:57.500 |
system but i never caught up if they got a good text editor operating system i i think you've been 03:43:02.700 |
miseducated my friend so at least 30 minutes on emacs versus neo vim is what reddit um requested 03:43:09.980 |
have you actually used emacs in order to be able to talk some of shit or no i used it for a year you 03:43:15.260 |
used it for a year yeah yeah do max space max and regular emacs but you don't know lisp so you did you 03:43:20.780 |
really use it i i kind of hacked my way through kind of like okay so this is how the configure you know 03:43:25.820 |
like you can kind of get your way through and do all that so you recommend to sort of mastering 03:43:30.940 |
u of m and really learn the depths of it but emacs is okay to just kind of use before making a judgment 03:43:37.100 |
i think i think everybody you got me on that one yeah no uh and what's new of them written it's lua 03:43:43.260 |
yeah so lua would be the configuration language but you have uh it's written in c but you have lua for 03:43:48.220 |
and lua is just a dead simple language anyone can program lua i actually don't know why i think it's 03:43:53.500 |
because my love for lisp that i went with emacs i think you just choose a path and you walk down that path 03:43:59.180 |
mm-hmm and uh because there's just such a vibrant intense battle between the two communities you 03:44:07.580 |
just start fighting just because everybody else is fighting and then one day you're like an old 03:44:13.260 |
warrior like on a horse and you're wondering what what was this all for and uh i mean it's it's quite 03:44:21.260 |
sad in all seriousness that i haven't to this day tried neo vim it's uh i think because there is a 03:44:28.700 |
learning curve there's a learning curve to a lot of these editors yeah to really like to really learn 03:44:33.660 |
to really learn it and i think there this is some of the criticism of maybe vs code or sublime or adam 03:44:41.660 |
that it's so easy to not learn it to just kind of half-ass use it and there is a big benefit to 03:44:49.740 |
having editors that like force you to have some learning curve where you like take the art the the 03:44:56.780 |
science the procedure of editing seriously because like you spend so much time in it you might as well 03:45:02.220 |
like learn like how to use the the thing my big takeaway really like what i'm trying to say with all these 03:45:07.580 |
words is that i honestly don't actually think that the editor obviously does not make the programmer 03:45:13.100 |
but i think it says a lot about your character as a programmer if you don't know how to use your editor 03:45:19.580 |
well there's something about a person who's willing to commit their life to programming and spending 03:45:26.060 |
literally 50 000 hours doing an activity over the course of their lifetime and never take the time to 03:45:33.580 |
learn their editor through and through it just seems strange like right you'd never 03:45:37.500 |
see that in another world where people would be able to build something or do something and just 03:45:42.220 |
completely forget how these things work and only just focus on one part of like their craft and so 03:45:47.740 |
to me it's just like it doesn't matter how you use it i want to see the person that just knows how 03:45:53.980 |
to use it and they know how to use it well when there's a problem they can say why the problem exists 03:45:57.900 |
and then go and fix the problem to me that's like there you go you've done it you now know your tool 03:46:01.980 |
go forth and conquer with said tool especially for tools you use a lot you have to look at like your 03:46:08.540 |
whole life your life whatever if you're a developer or anything like what is the thing you do a lot 03:46:15.660 |
meetings yeah yeah i mean sorry keep going ask a question like how can this be done a lot better because 03:46:25.500 |
every single day you do this for hours a day how many hours did you spend on thinking how to do this 03:46:33.500 |
better or whether to do it at all in the case of meetings that's the people surprisingly just don't 03:46:40.860 |
do this enough i see this just go back to jiu-jitsu there's a lot of people that show up and do jiu-jitsu 03:46:46.780 |
or martial arts and they do it the same way over and over and over and they invest tremendous amount 03:46:51.820 |
of energy and they don't ask like how do i do it differently to improve faster in the case of jiu-jitsu 03:46:58.300 |
or any kind of sport same with practicing the piano or the guitar they they just religiously put in a lot of 03:47:05.980 |
time and derive a lot of joy from getting better they don't enough ask the meta question of like how can 03:47:13.260 |
i do this better and with editors it's surprisingly how often people do just that yeah with typing 03:47:21.340 |
it's surprising how many people do just that like you said they they're like they're pecking or looking 03:47:27.340 |
down it's like the the quality of life improvement you can have by learning to touch type by just like 03:47:35.180 |
typing without looking it's like it's it's it's like immeasurable you're bringing a lot of joy to your 03:47:40.380 |
life because all of us are typing a lot yeah and uh yeah i mean uh the the reason by the way i i was 03:47:47.340 |
extremely efficient with emacs i'm sure you know all jokes aside it feels like neo vim has more room 03:47:56.460 |
for the kind of efficiency i've had with emacs to be able to move really fast as you described me to 03:48:02.460 |
edit there is a real joy it's not just efficiency it's a it's like um yeah it's a freedom that you can 03:48:09.340 |
get when you get really good with an editor uh the reason i chose to go with vs code is it it felt like 03:48:15.260 |
there's going to be uh an acceleration of features to which neo vim or emacs will not be able to catch 03:48:24.940 |
up in the and i don't mean the next five years i mean the next 30 years like yeah and it felt like i 03:48:30.940 |
almost wanted to take the pain of learning new editors constantly and just switching and learning that 03:48:36.300 |
because i was getting so comfortable in emacs you know this kinesis keyboard everything all the 03:48:41.100 |
shortcuts i know how to program and it felt like this is not you know neo vim will not be here in 50 03:48:47.020 |
years possibly might be i don't know but it felt like you want to learn these constant sort of different 03:48:53.660 |
technologies now cursor is example a great example that i've primarily i'm using cursor now i'll go back to 03:49:00.460 |
vs code and cursor the just the skill of using ai is a real skill like you know with from the shortcuts 03:49:09.980 |
to the the timing to the layout of the windows to how i think about where when and how to use the ai that 03:49:16.620 |
doesn't distract me that it empowers me not just for the fuck of it or for the fun of it for the actual 03:49:23.100 |
measure of productivity it's a skill and i feel like i would be stuck in local maximal of comfort 03:49:31.020 |
if i stayed with emacs and maybe the same should be true for for me with new of him i should i should 03:49:36.860 |
try it seriously i'm sure there's a plug-in like a copilot type of situation that you could set up with 03:49:41.900 |
new of them i should possibly consider that but like cursor is doing a lot of really fascinating stuff on the 03:49:48.060 |
id side not just sort of generate code and uh like edit that code manually it's like continuously be able 03:49:59.020 |
to rewrite code it's like the idea of tap tap tap tab move the cursor around but also modify parts of 03:50:05.980 |
code and do the diff really nicely that whether it's cursor or vs code that wins that battle out with with 03:50:12.140 |
copilot i don't know but like that feels like a fun with a different experience then the really 03:50:17.740 |
efficient joyful experience that you just described and you're selling me on this is neovim that doesn't 03:50:24.380 |
have an ai in the picture obviously immediately but you can yeah absolutely i would 100 agree that 03:50:31.180 |
cursor seems like such a cool product like i actually think there's like a lot of really neat 03:50:38.140 |
things coming down with all that and i could you know i could change from neovim i don't use neovim 03:50:43.420 |
because i love neovim i use neovim because i love the instrument i play and 03:50:47.420 |
so it's like if cursor can meet those needs i i could see myself moving over i don't have a 03:50:51.660 |
some sort of obsessed attachment with it i am curious though that you know every time i use 03:50:58.060 |
a i think i just have skill issues i think i'm just so riddled with skill issues when it comes to 03:51:02.380 |
using ai yeah i've yet to be able to use it in a way that i really love it uh we'll talk about it 03:51:07.340 |
before then oh ball to sit on i forgot to say that ball to sit on yeah desk needs to be properly 03:51:12.620 |
hiding one monitor i should be two-thirds way up the screen uh i don't like to turn my head i prefer 03:51:19.020 |
my uh my hands in kind of like a pistol neutral position and there you go a ball to sit on yoga 03:51:26.060 |
ball yoga ball what's that about i just helps just maintain good posture because when i have something 03:51:30.860 |
to lean against i do this so you're for hours sitting without wait what are you doing i sit on 03:51:37.660 |
the ball and then i bounce is your back leaning on a thing no what the well how else do you like 03:51:43.980 |
you're the only person in the world sitting on a yoga ball as you program for hours you do realize 03:51:52.300 |
that's right it feels great i mean okay i i the problem is is whenever i get a back um i just 03:51:57.820 |
slouch and i find myself just getting uncomfortable and i'm like why am i i'm uncomfortable like my 03:52:03.180 |
my shoulders are kind of getting goofed up i just like i'm chicken necking like constantly like you 03:52:09.180 |
know it's just like but you're able to keep your posture for hours on the yoga ball yeah and so i can 03:52:13.660 |
just do that and then i find myself if i slouch i'm like okay nope gotta get back you know like 03:52:17.420 |
incredible back muscles or no i i'm well i i don't think it takes incredible back muscles to keep 03:52:23.580 |
posture remain upright yeah i think that's a pretty basic human function i would not consider myself a 03:52:28.380 |
strong person yeah basic human function i don't know facts and logic okay cool with uh one screen 03:52:37.900 |
neo vim with operating system linux uh just because i i want a good window manager 03:52:47.020 |
that's the whole press one button bring up chrome i just use i3 i'm sure i could uh use something 03:52:52.380 |
better than i3 people always tell me all these window managers are really great but i just want 03:52:56.300 |
i just have like those three screens i switched between so it doesn't really i don't really care 03:53:00.060 |
what i use as long as i can press one button and go yeah i'm the same so half and half so half linux 03:53:05.420 |
the other half windows with with linux meaning uh wsl what's that windows subsystem for linux weasel weasel 03:53:15.420 |
see no there's got to be a better one that's more positive weasel just sounds seems right up microsoft's 03:53:20.780 |
alley that seems perfect uh so people often accuse me of being a shill for somebody uh sometimes 03:53:28.460 |
dictators if i'm a shell for anybody it's for windows there you go i get paychecks every every week 03:53:34.780 |
from uh bought by bill gates well he's not microsoft anymore a ball developers developers developers 03:53:41.180 |
no i'm just joking i think uh man i need to try mac i need to i need to try i'm surrounded i'm 03:53:48.300 |
surrounded by people with iphones i use android i use android yeah there you go see oh we're losers 03:53:56.060 |
losers together losers on a sinking ship um okay so uh just to to stay a new event for a sec and uh to 03:54:06.460 |
give love and a shout out to your friend tij he streams by the way he's a streamer and i'm i subscribed 03:54:13.820 |
and i've been enjoying it my allegiance is slowly shifting from you to him it's um the quality is far 03:54:20.060 |
superior with him uh the the looks the intelligence the skill set everything just far superior no okay so 03:54:28.460 |
he uh you know you're making his day all right so uh he mentioned that he loves neo vim because it gives 03:54:38.460 |
him the ability to eliminate having to do things he doesn't like it's just a nice way to to frame 03:54:46.060 |
sort of what this the automation process that you described of automating away assigning shortcuts 03:54:53.660 |
to things that are painful so that that that procedure i mean i wonder if you agree with that 03:55:00.780 |
fully agree we have very similar mentalities when it comes to usage of neo vim why people should use it 03:55:05.820 |
all that kind of stuff and how to even use it well he definitely takes it probably to a further degree he 03:55:10.860 |
spends more time automating and all that um i don't necessarily derive a lot of joy from getting the 03:55:16.380 |
perfect setup and so but a lot to learn from he's he's very very good at what he does he is by far 03:55:22.380 |
probably one of these he's 30 years old been programming for not too many years and he is one 03:55:27.660 |
of the most talented developers for sure it's very shocking to see how smart someone can be so uh people 03:55:33.260 |
should check him out at t-e-e-j underscore d-v yep teach dv his name his last name is devries devrise 03:55:40.780 |
oh it's not a developer okay cool yeah yeah so it's just tj that's just his name just all right spelt 03:55:46.300 |
kind of fun what do you love about him well how much did he pay you to ask these questions thousands of 03:55:51.900 |
dollars just so thousands um i can't even count that many dollars uh he is uh trust obviously trust is 03:56:00.620 |
the biggest thing especially in the quote unquote streaming youtube kind of world if you will it's 03:56:07.260 |
very easy to find people that will want to like be a part of stuff people tend to latch onto things and 03:56:13.420 |
it's very hard to find someone that you can really really trust and so he's just somebody whom i can 03:56:18.140 |
genuinely trust he'll always tell the truth he's all he's all the right things for a good friend in 03:56:23.660 |
this kind of endeavor so as a good friend he told me um questions i could backstab you with okay i hate 03:56:30.940 |
him i forgot i forgot how much i don't trust him uh so speaking of harpoon you mentioned it um he said 03:56:38.060 |
you know to to ask you about uh whether basically how many years or decades it's going to take to 03:56:45.980 |
transition to harpoon two to actually release it develop it so on can you describe what harpoon is 03:56:51.500 |
and why you seem to be incapable of finishing a single project okay that was a lovely framed question 03:56:59.900 |
so harpoon two is actually done this is what i did to avoid the swirl and the thousands of questions i 03:57:05.180 |
will inevitably get i kept the master branch as harpoon one and i've kept harpoon two as harpoon two branch 03:57:11.260 |
and people that don't read the read me to say that i just use harpoon two now that's that's their fault 03:57:16.620 |
uh that's it i just don't want i i really don't like answering hundreds of questions about open source 03:57:22.540 |
stuff i used to love doing open source and all that but i kind of got my soul crushed during the falcor 03:57:27.260 |
years and so i i guess i'm just kind of allergic to being a really active maintainer um i build everything 03:57:34.060 |
just for me like harpoon's just literally just built for me it's just what i i spent like three 03:57:39.260 |
months trying to figure out the most optimal navigation for files and that's what i came up 03:57:43.420 |
with so harpoon um it's a take on alternate file if you're familiar with alternate file uh typically 03:57:48.220 |
you'll have this in all editors where you can go back to the file you were just in and so that means 03:57:53.260 |
you can have effectively two files you swap back and forth and you probably used it a bunch really fast 03:57:57.340 |
way to navigate pretty nice thing to do um i want something with i want alternate file but like 03:58:02.140 |
three of them or four of them and so that's all harpoon is is just being able to pin a file 03:58:07.340 |
and so i have one button to press to go to a file another for another another for another and so i can 03:58:11.100 |
have up to four so i just had my four power fingers uh for dvorak what is that that's htns so if i go 03:58:16.940 |
control htn or s it goes to one of the four files and that's it that's all it is and you could technically 03:58:22.380 |
make it so you can add in functions and be able to execute things externally so you can open up uh 03:58:26.540 |
terminals you can send requests off to servers you can do anything you want with it i just have it 03:58:31.340 |
primarily designed for opening files since you mentioned what keyboard layout do you use use work 03:58:36.540 |
i use the vorak but i used a custom version of devorak the reason why i used it is in 2017 we were 03:58:42.780 |
just having my second kid it was christmas and i'm having so much pain in my arm and i'm sitting 03:58:48.140 |
there freaking out like oh my gosh is this the end of my career am i done programming 03:58:52.300 |
is this all over and so i decided that i was going to create my own keyboard layout optimized 03:58:56.940 |
to prevent the pain that i'm experiencing so i used to devorak as the base and then laid out the symbols 03:59:02.620 |
in a symmetrical reasonable way so that it's opening closing opening closing opening closing right and 03:59:09.260 |
so it's and they all are right here i actually have to hold shift to press a number so symbols are 03:59:14.940 |
actually my first thing i get the press and so it's very optimized for a laptop keyboard layout so i can 03:59:21.580 |
use my laptop in a very efficient nice way that's how i got started on devorak and all that i wouldn't 03:59:27.260 |
actually recommend it if you because i didn't have a kinesis at the time i didn't even know kinesis 03:59:31.100 |
existed at that time and so when i discovered kinesis and also 2017 that's when i was like oh okay 03:59:37.580 |
would you recommend kinesis to people i am technically sponsored by kinesis so uh people you know it's hard 03:59:45.420 |
for someone to believe someone that's sponsored by it but i did use it before i ever became sponsored they're 03:59:48.940 |
the only sponsor that i reached out to and said i need a sponsorship from you you are the key i'm 03:59:53.260 |
gonna use you either way you know you can say no but i really love it and for the first three years of 03:59:58.460 |
using kinesis they gave me free kinesises kinesi as my sponsorship kinesi yeah i'm always torn i tried 04:00:07.260 |
to leave so many times you can't it's too good but see i have this absurd situation of like traveling with 04:00:14.380 |
it i i relate yeah i mean i'm literally you know going to war zone in ukraine i have a kinesis keyboard 04:00:26.060 |
a laptop and like just a few other small things and that's it and it's like is kinesis keyboard 04:00:31.900 |
really going to be 30 percent of volume that you're bringing to a war zone you know looks like the answer 04:00:38.140 |
is yes yeah like do you really derive that much value um i think it's probably spiritual or psychological 04:00:45.340 |
for me it feels like home it's just comfort associated with it yeah i try to leave and i love 04:00:51.020 |
this experience you just are it it's like a relationship you have with the thing it is it's 04:00:56.780 |
uh is it but i'm trying to figure out if it's a toxic relationship um i think it's mostly love i think 04:01:02.140 |
it's love like all relationship there's some you know push and pull complications but they say that 04:01:07.020 |
distance makes the heart grow fonder so maybe sometimes the kinesis keyboard needs to stay at home 04:01:11.740 |
and the laptop keyboard can be the one so that your heart grows even more fond and that connection grows 04:01:17.180 |
even deeper i already miss it as you said so i don't know i think it's coming coming along to 04:01:22.300 |
all the trips if it breaks down though you know i was worried that kinesis was shut down as a company 04:01:27.100 |
i'm like what's the business model here who actually uses these keyboards right but apparently it's still 04:01:32.700 |
going strong yeah uh who uses these keyboards as you use the keyboard like i have to take it with me 04:01:39.020 |
everywhere i wonder who uses these keyboards yep i should mention that one of the things when i first 04:01:47.500 |
became a fan of yours i heard you talk about coffee and terminal i still don't by the way understand what 04:01:54.140 |
you've been talking about i need to actually use it but you are you run amongst many things a coffee company 04:02:02.780 |
uh man this smells so good uh so this one is dark mode dark roast called coffee beans there is uh seg origin 04:02:10.540 |
dash dash location there's a bunch of stuff on there stuff on there that's very devy shop server web can 04:02:21.500 |
you legit ss order coffee v ssh so as of right now it's the only way you can get the coffee is by ssh 04:02:29.900 |
that was kind of okay so can i just origin origin story you yeah yeah uh yeah right i was gonna do 04:02:35.500 |
some kind of um command line command to request or like dash dash help or something or like man 04:02:41.100 |
yeah man man man man coffee okay so tj and i again same teach teach tv about by the way very 04:02:50.300 |
amazing designs done by david hill they're very very good yeah um so let me kind of give the basic 04:02:55.100 |
ideas like it must have been about a year a year and a half ago tj and i were talking like hey you 04:03:01.260 |
know every one of these people that have like some sort of following some sort of online presence they're 04:03:05.340 |
always like selling a thing i got nothing to sell i don't really want to do merch i've never really 04:03:10.460 |
enjoyed doing merch i just find that i don't know it's just not as much fun for me don't want to have 04:03:15.020 |
a tequila i don't i don't want a tequila i want something that and i also want something that i really 04:03:20.860 |
don't feel bad about selling you know there's like a lot of people that will go on the internet 04:03:25.260 |
and they'll show for a whole bunch of products like oh okay try this try this and this is why i've 04:03:29.180 |
only ever really done kinesis is because it's like well i can point to something that was really 04:03:33.260 |
bad in my life i was very scared and now it's not bad anymore so it's like okay that one made sense 04:03:37.820 |
but everything else always has been you know it's harder for me and so we just talked for so long 04:03:43.340 |
and and we love neovim so we're just like oh why don't we could do something from neovim and we're kind 04:03:47.580 |
of like laughing about that like ordering from neovim is just so ridiculous and then 04:03:52.060 |
at some point we're just like well what wait a second and maybe we could do like coffee like 04:03:57.820 |
every developer loves coffee maybe we could figure out this coffee business and so i have a good friend 04:04:03.020 |
named dax uh t-h-d-x-r dax yeah dax uh he the most sanciest man alive sassiest oh yeah he has a lot of sass 04:04:12.940 |
beard yep he has a beard very uh very he does uh sst he does a lot of stuff very very talented uh 04:04:20.540 |
we'll call him devops engineer he's more than that but um very talented guy him and another person 04:04:26.620 |
named adam.dev vegan by the way great guy we make we take him to korean barbecue all the time he eats 04:04:32.140 |
nothing um and liz she has been super important to the terminal coffee company i think without her we 04:04:39.980 |
would not have been able to do what we have done and then also david hill designer he does uh laravel 04:04:45.340 |
he designs for laravel very talented designer and so we all kind of came together and we were just 04:04:50.940 |
laughing about how can we like could we do something that's just ridiculous and that's kind of what we 04:04:56.780 |
came up with yeah you like there you go you just opened the website you actually you literally cannot 04:05:00.700 |
order we we actually do not allow you to order the website is something that kind of looks like the 04:05:08.620 |
terminal use command below to order your delicious cold coffee bean ssh terminal dot shop yeah so you 04:05:14.620 |
can only ssh into it so you have to copy that command and throw it in there if you want to add in the 04:05:19.260 |
little terminal shop for your known host you could do that how do you handle payment uh through stripe 04:05:24.540 |
and so one of the things we'll be adding a mobile checkout to where i'll show a qr code in the 04:05:29.260 |
terminal and you can just like check out on your phone but right now you enter in your credentials 04:05:33.820 |
it goes to stripe via all terminal like yeah yeah ssh is obviously it stands for secure shell it uses 04:05:39.420 |
elliptical you know uh quantum safe algorithms to ensure that your data is not being intercepted 04:05:45.180 |
yeah but does he use ai i'm i'm pretty sure dax uses ai so that you said quantum so i don't know 04:05:52.300 |
quantum ai can this fusion quantum ai can this even be a a company if it's not using ai we have some 04:05:59.500 |
crypto chains with some quantum ai that's great you know powered by fusion so it's pretty it's pretty 04:06:03.980 |
wild anyway so yeah we just kind of came together where we thought what is the that was from the mike 04:06:08.620 |
tyson fight all right mike it was literally that night mike tyson kissed the reporter and then walked out 04:06:13.980 |
yeah without any uh clothes we did an ad for somebody but nice we decided to make a coffee 04:06:19.500 |
shop and then we thought instead of just making it neo vim what if we made it from ssh because 04:06:25.900 |
everybody has ssh you have vs code launch vs code you can order coffee from within vs code right because 04:06:32.060 |
your little bottom terminal that has access to ssh bada bing bada boom it's kind of fun and so we kind of 04:06:37.420 |
really i love we just wanted to do something where there's no level and there's no world that makes me 04:06:44.380 |
feel bad about selling this and people buying it it's good ethical coffee we we developed the entire 04:06:50.300 |
supply chain and everything it's all packaged it's all boutique it's all really like it's pretty high-end 04:06:55.420 |
coffee it tastes really really good at this point i don't like drinking other coffee i get kind of upset 04:07:00.380 |
about it because it's not as good and so it's kind of funny that i've i've fallen for my own stuff 04:07:04.620 |
i'm high on my own supply pretty hard right now uh i just got done ordering 16 bags and gave it out to 04:07:09.420 |
my family to try to convince them but it's just something where it's like i didn't sell you a 04:07:15.100 |
software product that's going to influence your startup that could potentially lead to disaster 04:07:19.660 |
i didn't convince you to do a bunch of stuff that's going to change your career i just said hey here's 04:07:24.780 |
some coffee and it just like it's it's like a fun experience yeah it's fun everything the humor on is 04:07:29.500 |
great yeah uh people should go to terminal.shop ssh terminal.shop i'm speaking to people that don't 04:07:35.740 |
know what ssh is and there you can read the command and then figure out how to use ssh in order to i 04:07:43.500 |
mean it's the kind of documentation right on the website if you can't use ssh you probably should 04:07:49.500 |
just not worry about buying your coffee like that's the way you can learn you can learn you if you are 04:07:53.980 |
active and you're a computer person you'd like to launch the terminal and feel like a hacker go for it 04:07:57.740 |
we even have subscriptions uh what i what i would love to see this this is how it came up i think on 04:08:02.780 |
the uh on the cursor conversation is that uh i would love it if an ai agent you know did this like uh 04:08:10.620 |
anthropos computer use or something like that would actually took the action of ordering the coffee while 04:08:16.460 |
it was programming yeah like hey order me some coffee and it'd actually go off give me dark roast order 04:08:21.020 |
coffee that could actually go through the whole flow of order yeah the whole flow but even better if you 04:08:26.220 |
didn't ask it to order coffee you asked it to do something and as a tangent as a side quest it did 04:08:33.420 |
that which is computer use does that right they showed off that it's able to go to i think uh uh like 04:08:40.700 |
google for some images take a pause and then continue doing you know doing other stuff anyway yeah super 04:08:45.660 |
cool idea love it speaking of which let's talk about ai all right you've been both sort of positive and 04:08:52.940 |
negative on uh on the role of ai in the whole programming software engineering experience as 04:08:58.380 |
it stands today what do you think uh what's your general view about ai uh what is it effective at what 04:09:04.300 |
is it not so good at okay so my general view is it comes down to something that's pretty simple which is that 04:09:13.340 |
if you're doing something in which is very predictable ai is really nice when you're doing 04:09:21.260 |
something that is just not predictable ai is not very nice to use if you're using anything that's more 04:09:27.900 |
cutting edge ai will not be using it our ai won't be very good at doing stuff with it like it's it's not 04:09:33.980 |
great at zig because zig is just like say less documented it's really great at typescript i think 04:09:39.580 |
there's a lot of there's a lot of interesting things that are going to come down through ai 04:09:44.860 |
that i think a lot of people aren't really prepared for or thinking through uh tj is kind of the genesis of 04:09:50.300 |
this idea but the idea that i think there's going to be a lot of kind of market manipulation if you will 04:09:56.220 |
through ai meaning like hey you want to research say best woodworking tools someone's going to be 04:10:03.580 |
buying an ad spot someone's going to be buying premium trade training data right they're the ones 04:10:08.140 |
that get the uh the big boosts in the llms but llms don't really have the market as an advertisement 04:10:12.300 |
because it's not really directly an advertisement they just had a more premium spot per se in the 04:10:18.300 |
training data a little bit extra learning to it you know it's like there's a lot of things about ai 04:10:22.540 |
that i fear upcoming yeah a lot of it just comes down to people not uh learning or making the trade 04:10:29.340 |
off where productivity is the only thing that matters and i don't think productivity is the 04:10:33.580 |
only thing that matters if you want to build something complex and difficult productivity is 04:10:37.260 |
not the only thing you actually are going to have to do deep learning and kind of pursue it beyond the 04:10:41.580 |
basics and so i see ai as kind of like this really cool thing it feels like a magic trick i remember the 04:10:49.660 |
first time i used it i got early access to github copilot now in fact nat friedman saw my twitch clip 04:10:55.100 |
of me asking github for it and he sent me early access himself it was awesome and when i used it 04:11:01.260 |
it predicted an if statement correct and my mind was just absolutely blown because i had nothing before 04:11:07.100 |
then and now it's just like first time ever and i just remember thinking man this is going to change 04:11:10.940 |
programming so much and then the more i used it the more i just for me personally i kept introducing bugs 04:11:18.780 |
and i couldn't figure out why and what i realized is that i kind of developed i wasn't co-piloting 04:11:23.740 |
well i was auto-piloting much better and my ability to read code versus my ability to critically think and 04:11:29.180 |
write code they're definitely different sets of skill levels i don't consider as well when i just read code 04:11:35.020 |
as opposed to when i write code and so i i struggled there i do think that's the skill set yeah skill issue for 04:11:41.260 |
skill issue for people who are not aware that's like a hashtag thing sometimes used mockingly in this case 04:11:48.300 |
there's like uh several layers mockingly but also seriously yeah meaning like the criticism is grounded 04:11:54.540 |
in the fact that you lack the skill versus of some kind of fundamental truth yes i think that uh that's 04:12:01.900 |
the reason i use actually copilot cursor a lot is for developing the skill of editing ai 04:12:10.540 |
so i can just learn how to do that better and better because i think as i do that better and better i 04:12:16.700 |
start to utilize ai better at this time it is a bit of a boilerplate code thing 04:12:27.500 |
but you can do out of the box kind of novel design decisions or tricky design decisions from scratch 04:12:34.300 |
but fill out stuff uh using uh ai and then just learn the skill of modifying i personally just 04:12:44.620 |
it's more fun to program with ai even when i delete a lot of the code it's more fun it's uh less lonely 04:12:55.100 |
it's more it's a what i imagine like pair programming to be but i've never done it but the it just feels 04:13:03.740 |
like that uh friction that you get when you're like staring at an empty thing is not there like empty 04:13:10.780 |
function empty uh empty class it's just more fun less lonely and i do think that a lot of the easier type of 04:13:22.940 |
coding it really helps with like interacting with apis um basic things that i would usually have to 04:13:31.500 |
look up to stack overflow for uh it's just really fast at that like yeah as example just interacting 04:13:39.340 |
with the youtube api uh the youtube api documentation is not very good and you can just load it all in there 04:13:47.740 |
and ask it to generate a set of functions that access the api did all kinds of read and write 04:13:56.380 |
operations and it figures it all out and then you could just well you do have to read you have to read 04:14:02.140 |
and check everything and you start to develop the skill of understanding where it misinterpreted the task 04:14:10.940 |
so you're what is that skill i don't even know you have to kind of be empathic about what the ai is what its 04:14:20.780 |
limitations are a lot of the times that has to do with um uh prompt engineering you have to like at the same 04:14:30.380 |
time uh understand what the ai is aware of like what did you actually give it as data to be able to 04:14:43.180 |
generate the code a lot of times we don't realize that we're not giving it enough information yeah so 04:14:48.300 |
you have to like actually okay okay all right you have to like be empathic be like okay these are the 04:14:54.380 |
code the files it's aware of this is the specifics of the question you asked it like you have to like 04:15:03.020 |
imagine you're an intern that doesn't know anything else like oftentimes we want the ai to 04:15:10.380 |
like figure out the things that's left unspoken but you can't know those things you have to like specify 04:15:16.460 |
those things and so you have to actually be much more deliberate and rigorous in the things you specify 04:15:23.020 |
is to spell it out and so i just have this like sea of prompts that i have saved up and i'm building 04:15:30.300 |
these like library of different templates for prompts and it's a mess and i'm sure there's a lot 04:15:35.900 |
of developers that have this similar kind of mess so a lot of it has to do long term with the tooling 04:15:40.940 |
that's going to improve that one the systems are going to get much more intelligent well you don't need 04:15:45.180 |
the nuance and two there's going to be the tooling that allows you to specify those things and load it 04:15:51.340 |
in correctly and give all the context that the system needs in order to make the good decisions 04:15:56.380 |
and maybe the system asks you follow-up questions wait here's things you didn't make clear all that 04:16:01.660 |
kind of stuff a lot of that has to do with the interface with the actual design of the tools like 04:16:06.220 |
we said with cursor it's going to keep getting better and better and better so my sense is like 04:16:11.820 |
uh developers in general should be learning this to see uh to not be left behind to see what how that 04:16:19.580 |
can be used uh to super as a superpower to to boost their productivity their effectiveness their joy of 04:16:27.900 |
programming versus like uh be seen as a competitor to them or something like that so but i you know 04:16:35.260 |
i is for me already uh it's been it's it's been a big boost of productivity like actual like if you 04:16:44.700 |
measure the actual how quickly you're able to get a thing done it's been a big and measured not across 04:16:52.780 |
minutes and hours but days also like sometimes there's things i have to do that are not that important 04:16:58.540 |
that i'll just like out of procrastination will push off and ai helps me actually get it done like 04:17:05.100 |
actually because like that thing the empty page like i mentioned before it helps me write the thing get 04:17:11.580 |
it done get it tested like ship the thing uh maybe it's just because it's just less lonely to work with 04:17:17.820 |
an air i don't know i i don't know if any of that made sense but it all made perfect sense i really do 04:17:23.900 |
like that phrase it makes it less lonely i think there's something to that that's kind of interesting 04:17:27.740 |
having just some level of interaction that's not just like an lsp autocomplete yeah like having 04:17:32.060 |
something that's actually a little bit more than just that where it actually is kind of thinking 04:17:36.220 |
through and you can see a different thought and you're like oh wow that's like that's a way different 04:17:40.060 |
approach than i would have taken hey that's kind of cool i like these kind of things and the thing 04:17:44.140 |
is i'm not like a ai negative person i i can see why people really really like it um i just haven't 04:17:51.580 |
like i just every time i i used copilot for from when nat gave me the uh access all the 04:17:57.580 |
way up until about six months ago like that's how i used it for quite some time and i really i really 04:18:01.340 |
did enjoy the things i used out of it it just never it kind of did the opposite for me i felt like i was 04:18:06.940 |
more reviewing than writing and i felt like i was more kind of just letting things slide where i just 04:18:13.180 |
didn't really think too heavily about stuff and it just i wasn't as engaged and so i'm like okay so 04:18:19.260 |
something's kind of wrong here and that's just like a me personal thing so i i recognize that is not how 04:18:23.260 |
someone should approach these things that's not a good reason for why you should or should not use ai 04:18:27.900 |
like i just don't think that that's right because i could probably correct that and figure out a 04:18:30.780 |
better way to do it i've been meaning to have another ai round and so i've been thinking about 04:18:35.660 |
like maybe i just need to spend like two weeks in cursor and just like fully embrace what does it 04:18:40.460 |
mean to be somebody like this and and what can i do with this like these new powers have they improved 04:18:46.540 |
to the point where they're actually good and i mean for me because like a lot of the decisions 04:18:50.860 |
i make a lot of the little functions i'm writing it's not because i'm trying to write this function 04:18:54.300 |
to solve this problem it's because i'm writing these functions or this set not just to solve this problem 04:18:59.100 |
but because i know in about another 2 000 lines of code of building all these other things i'm going 04:19:03.420 |
to need to start doing this next activity so it's like i'm trying to like really try to chess move 04:19:08.060 |
myself into the exact things that as i let things go faster i kind of fall apart on that chess move 04:19:14.300 |
and again skill issues for on my behalf and i mean in the truest sense of the word where it's like i'm 04:19:19.420 |
making your critique because i don't use it well enough the better you are programming i don't know 04:19:24.620 |
if this is a general rule this is my anecdote data the better you are programming the less you want to 04:19:28.540 |
use the ai the more gets in the way like the good programmers fair enough as far as i can tell so like 04:19:34.380 |
the more sort of beginner programmers are much more happy to use ai you know i when i use ais for basic like 04:19:43.100 |
for just like i don't know if there's a better term it's not boilerplate but it's like pretty easy 04:19:47.900 |
programming and that kind of programming is much easier to do like the sort of the 10x not to use 04:19:53.660 |
the meme sort of programmers that i know that are ultra productive and brilliant people they just they 04:19:59.980 |
hate ai they're like this is not nowhere close to what's needed so that there's something to that i 04:20:05.260 |
still think they should be using ai just for the learning yeah because it's going to get smarter 04:20:11.740 |
it's going to get better and it's the same thing it's like when you when you super optimize neovim or 04:20:18.540 |
super optimize emacs you may not discover the new things that are in the pipeline so it's always good 04:20:24.860 |
to be sort of training in that way let me ask you a question here just kind of from my understanding you 04:20:28.860 |
talked about this idea that you have all these kind of llm kind of prompts all like this big backlog of 04:20:33.820 |
messy yellow prompts that you kind of have these templates for that you can do various actions you 04:20:38.460 |
probably you have these strategies of making it self-explain itself and then do the right thing 04:20:41.980 |
right like you have as far as i can tell that's that's really built into a lot of people well then 04:20:47.180 |
you make this phrase where like but then at some point the interface is going to get better and maybe 04:20:50.700 |
it can do a lot of these things better where i won't need that then my question is well is anyone 04:20:56.860 |
actually falling behind for not using ai then because if the interface is going to change so 04:21:02.060 |
greatly that all of your habits need to fundamentally change and it will be able to clarify and make all 04:21:06.380 |
those statements have i actually fallen behind at all or will the next gen like actually just be so 04:21:11.420 |
different from the current one that it's kind of like yeah you're you're over there like actually 04:21:16.060 |
doing punch card ai right now i'm gonna come in at compiler time ai so different that it's like what's 04:21:21.260 |
a what's a punch card uh so obviously open question it's a fascinating one i personally think yes 04:21:27.820 |
you're you're falling behind not you but it could be me if you're not playing with it you're falling 04:21:34.140 |
behind because the thing i'm doing with the prompts is you're learning you're building up like 04:21:43.020 |
this intuition about how ai works you you're understanding like what is its strengths and 04:21:50.380 |
weaknesses not even the current version but the next version and so on like what uh what does it mean 04:21:57.340 |
to teach an ai system about the world like what kind of uh information does it need to make effective 04:22:05.100 |
decisions i think that does transfer to smarter and smarter models you'll need to make 04:22:11.660 |
uh less rigorous and specific and detailed instructions over time but you still have to 04:22:17.980 |
have that kind of thing yeah i think it's a skill of almost empathy with an ai system because it doesn't 04:22:24.460 |
know the the uh you know what it's missing it's missing like common sense it's missing long-term memory 04:22:31.020 |
a lot of things when we talk to other humans they have a basic common sense about reality like and ai systems 04:22:39.420 |
often lack that kind of common sense and they also don't remember things so you have to like realize 04:22:47.020 |
there's a constant blank uh blank slate happening so it's almost like a just a skill of talking to an ai 04:22:55.100 |
system that uh that i'm training and by having to write all those prompts and communicating back and 04:23:02.380 |
forth to understand what kind of problems work better or not you build up that intuition and also just raw the 04:23:08.780 |
skill of reading somebody else's code maybe for people who work on large teams that's a skill that's 04:23:13.740 |
already developed for me not so much so learning how to modify the code that somebody else written 04:23:19.980 |
is uh is a real skill and also the other thing you mentioned which is like considering another 04:23:28.860 |
perspective on a piece of code is really nice but it is also a skill to understand okay this is what you did 04:23:36.380 |
that there's a skill to ask a question about that code that's been generated uh such that you can 04:23:43.980 |
have a conversation about the approach that was taken i think there's just a lot of subtle little skills 04:23:50.620 |
involved in a cooperative endeavor to code um kind of like if there was a real skill issue between you 04:23:59.020 |
and teach when you guys did the video of 280s one keyboard right uh people should go watch that video 04:24:04.380 |
where like you guys obviously sucked at it yeah co-using that was pretty cool which you guys did which is 04:24:10.540 |
controlling one new vm interface from two different keyboards yeah and then we each get an allowance of 04:24:16.700 |
certain characters or emotions we could perform yeah and so you both had to like communicate together 04:24:21.580 |
that that's a real skill i'm sure you can get super like super efficient with that yeah but it takes you 04:24:26.700 |
it just takes time to learn that kind of thing so yeah i think uh there's some value to it but i 04:24:31.820 |
think there's a learning curve so i have so i i wanted i do want one thing to be pretty clear 04:24:37.900 |
is that i actually use ai quite a bit i just don't use it for programming and so one thing i've 04:24:41.900 |
been trying to get it to is to be able to have like a long interview or understand what twitch chat is saying 04:24:46.940 |
and become twitch chat and be able to speak as if it is twitch chat try to like learn how to prompt it 04:24:51.900 |
in different ways and so i think those things for me are just really fun i tried to get it to learn how 04:24:57.260 |
to play tower defense i made a tower defense game in zig and then made it play tower defense and then 04:25:01.020 |
played a uh claude 3.5 against open ai claude 3.5 would do better during the day times and open ai 04:25:07.660 |
did better during the night times i don't know why i don't i have no idea what was going on there but just 04:25:11.580 |
one would just start winning and the other one would start losing it was just very strange 04:25:15.660 |
and so it's just this you know i'm learning to prompt well but i'm learning to prompt in a very 04:25:20.460 |
different axi i just don't find it very useful yet in programming programming and i should also say that 04:25:25.420 |
i'm using it uh in yeah in every walk of life in every context i use that same kind of exploration 04:25:34.780 |
about prompts and so on i'm i'm using and learning i think it legit is a whole field in itself yeah prompt 04:25:42.220 |
engineering and how to interact with ai systems i think it's worth the investment can you actually 04:25:47.340 |
speak to that because you i saw you're you're basically pulling from twitch chat 04:25:53.180 |
and having an llm speak i didn't realize i thought you're so you're not reading the exact 04:26:01.820 |
chat messages yeah you're you're doing kind of some kind of summarization yeah so what i i try to go 04:26:08.380 |
through like a i end up making like eight queries off to open ai where it's just like 04:26:12.860 |
the first thing is like i have it have it like a default personality hey you're randall the manager 04:26:17.980 |
you're a software engineering manager kind of explain their position what they like what they don't like 04:26:22.700 |
and then be like these are the list of thoughts you have in your head yeah and you need to talk to 04:26:26.380 |
this person and ask them a question this is amazing give me 10 of these responses that you think are 04:26:31.420 |
probably thoughts that you have and you want to ask yeah you know like make it kind of give you a list 04:26:36.540 |
and then be like okay then re-prompt to be like hey you're randall you're this this this this this 04:26:40.380 |
this you have these 10 questions before you and now you need to select one of them and reword it in 04:26:46.140 |
a way that sounds more like you the engineering manager you know and so you're like you know i'm 04:26:50.940 |
constantly trying to make it like iterate on itself as opposed to just like one shotting it and i found 04:26:56.140 |
if i iterate too much it becomes like it loses the value it like loses what it was originally trying to 04:27:00.700 |
ask if i don't do it enough and it's just too degenerate from twitch chat and so it's like i i have 04:27:05.900 |
a lot of improvement to do with this idea just to clarify you're feeding in twitch chat these are the 04:27:12.780 |
thoughts you're you're a manager these are the thoughts you have in your head pick out some of 04:27:18.060 |
the most profound thoughts effectively it's like depending on what i wanted to do i i'm trying to 04:27:23.180 |
work on a better system still kind of brilliant and so it's like how can i give voice to twitch chat can 04:27:27.420 |
i make it so that i can get create adversarial characters against twitch chat or for twitch chat 04:27:32.700 |
can i incorporate youtube all that kind of stuff and like how do you describe to an llm to role play 04:27:37.340 |
into its position and so you know just thinking through those kind of things you know so maybe i am 04:27:42.540 |
having some prompt skills but just you know it's just not in the coding world yet sure one day one 04:27:47.740 |
day i'll get there i saw that you were having like playing with different voices there was like a 04:27:52.540 |
sexy that started off as a french voice and then it turns out 11 labs just cannot do a french lady 04:27:59.980 |
and when you do multilingual french lady she starts yeah yeah i was like what i tuned into one of your 04:28:09.180 |
streams and there's this lady like like in a in a sexualized way it became too funny and so we call 04:28:18.380 |
her not french stormy daniels oh nice yeah but hold on i want to go back to the ai and and and and some 04:28:24.060 |
of the aspects sure and so like my big gripe with ai has nothing to do with its capabilities it's exactly 04:28:29.420 |
capable as it should be capable because that's what people programmed it as the things that i really dislike 04:28:34.140 |
is a there's a whole group of people that are just like the end is nigh ai is here you just need to 04:28:38.540 |
stop programming like i i cannot see i cannot tell you even on like uh you mentioned peter levels earlier 04:28:44.060 |
he made some sort of tweet and one of the person's responses was yeah no one in this like in 2025 or 04:28:50.860 |
whatever should be acquiring hard skills you should rely on everything for the ai effectively and it's just 04:28:56.780 |
like these are really damning pieces of advice for young people like young people are being told that 04:29:01.420 |
you should never become an expert in anything you should always offload and the problem is is that 04:29:05.420 |
anyone worth any of their salt will tell you that ai though can produce code is going to get it wrong in 04:29:11.340 |
a huge number of cases and as the code becomes bigger or more complex or more input it's going to just start 04:29:16.940 |
kind of sloshing back and forth between bugs and so if you don't have those hard skills and you're not 04:29:23.740 |
ultimately the driver at the end of the day like you're going to really find some hard times and your 04:29:28.060 |
ability to progress will be directly bound to how good the llms are so if you believe that the llms will 04:29:33.980 |
be vastly superior to humans in the next year maybe that's a good bet but if they aren't then your skill 04:29:40.140 |
ceiling is bound to whatever they are and even beyond that there's just as like a whole there's just like a 04:29:46.540 |
level of information problem which is like can the thing actually navigate larger like do we even have 04:29:51.500 |
enough compute power to be able to solve things at this real scale and even if we did if everybody 04:29:56.860 |
started using it right now do we even have the compute power for everybody to use it right now 04:30:00.620 |
there's like a lot of kind of bounding questions there's privacy concerns and i just don't want people 04:30:05.980 |
to make the immediate or what appears to be the obvious choice where you don't need hard skills you 04:30:10.940 |
don't need these things our life is already going to be we just need to only think creatively it's like no 04:30:15.260 |
i don't think so i think these hard skills are going to be around for quite some time even with a 04:30:20.060 |
massive improvement in the ai like you're going to really be needed to step in regularly for quite some 04:30:25.580 |
time as far as i can tell but i also think even on top of that just even acquiring the hard skills or 04:30:31.180 |
whether that means programming from scratch for example in the context of programming 04:30:37.580 |
that's going to make you better at steering the ai not just correcting the ai but steering the ai i think 04:30:44.780 |
there is some kind of if you know how a computer works you can program python better it's maybe 04:30:51.820 |
counterintuitive but you can if you know the low level abstractions like some intuition around that 04:30:58.140 |
uh you can steer the high level abstractions better yeah that just seems to be the case unless of course 04:31:03.820 |
ai becomes like truly super intelligent like many levels above but it's very unlikely in the short term 04:31:10.700 |
and in the long term it's still good as it gets better and better and better yeah to be able to steer 04:31:17.260 |
to ride the wave of the improvement yeah i'm on that team very much so a lot of people have written 04:31:22.300 |
to me i think a lot of developers programmers are really concerned about the future of their profession 04:31:28.940 |
in in the context of quickly improving ai systems so do you think ai will eventually replace programmers 04:31:36.220 |
the hard part about that phrase is use the term eventually yeah i mean do i think in five years 10 04:31:42.940 |
years a hundred years like what is that what does that term actually mean i think at some point if we 04:31:47.740 |
were able to scale if all things continue at the current rate of improvement there does come a point 04:31:53.020 |
where programming as a hard skill does become unnecessary right there at some eventual point way way down the 04:31:59.820 |
road yes i don't know what that point looks like i don't know when it's going to happen i don't even 04:32:04.300 |
attempt to make predictions about that but there are still some like leaps and bounds we need to make just 04:32:11.580 |
i mean even just like societally like there's plenty of companies that don't even allow you to use ai 04:32:16.540 |
right like that i mean there's just practical problems that exist so that's like a question 04:32:20.620 |
i just try not to answer in the direct sense there will come a day if humanity continues and all things 04:32:27.580 |
continue in a good positive direction where a lot of skills will go out the window due to immense computing 04:32:33.500 |
systems so yeah i'll give you that one but it's just like if i don't think it has anything in the near 04:32:39.660 |
term there's been no computer improvement up to this date that did not result in more jobs yeah absolutely 04:32:46.780 |
i should say that i think it depends how you define programming also because um you know when uh the 04:32:54.380 |
community uh moves from assembly to c from c to i don't know uh python and javascript like that's 04:33:08.060 |
evolution that's really painful for a lot of people who are used to programming that lower level 04:33:14.380 |
language uh so there's going to be a continuous evolution and maybe that means with with ai there's 04:33:19.980 |
going to be more and more evolution towards natural language as part of the tool chain like being able 04:33:25.420 |
to learn how to write proper prompts uh yeah that might you know because natural language is still a language 04:33:34.220 |
and in the long term it's possible that a large percentage of programming is natural language 04:33:39.260 |
they're probably still going to be some percentage just not that's going to be extremely structured 04:33:44.700 |
language right now i don't think we are anywhere near natural language being possible because it's 04:33:49.500 |
ambiguous and i think what we'll end up seeing as people push really hard into this 04:33:53.740 |
you're going to see some sort of like pseudo lang which is going to be a language for ais in which you 04:33:59.260 |
prompt which is going to be less ambiguous right people keep striving towards the less ambiguous 04:34:04.060 |
state and that at that point you're just programming you're just programming yet another evolution into 04:34:08.860 |
a higher order language and perhaps that is a future in which people have a more terse language i'm just not 04:34:15.260 |
sure how much more terse it can get um yeah i mean i all i see is that if you say natural language can be used in the pipeline 04:34:23.260 |
pipeline you've just made that many more people can become programmers which means that much more software 04:34:28.460 |
will eventually be created which means there's that much more software that will need to be maintained 04:34:33.420 |
and just becomes a a real big snowballing effect but you know there's just people who are programmers 04:34:40.140 |
who are worried about their jobs yeah not a complete replacement but maybe a rapid evolution of what it means 04:34:45.260 |
to be a programmer like you mentioned if natural language becomes a way that you can communicate 04:34:51.420 |
you can program that means uh the pool of people who can get programming jobs changes rapidly so they're 04:35:00.540 |
really concerned and to some extent right um because no matter how much no matter how much we want to say 04:35:07.020 |
how good ai is there comes a point where there exists a bug there exists a large piece of software in which 04:35:13.420 |
to describe the change requires just like pages and pages of description to the point where it is 04:35:20.220 |
significantly just faster or easier for someone to just whip something out like there's definitely 04:35:24.540 |
a balance there it's not like a perfect trade-off and so i i still don't i think people need to quit 04:35:31.100 |
worrying and think about how they can integrate it and try like prove it to themselves do they actually 04:35:36.620 |
make themselves irrelevant and if you truly make yourself irrelevant i would challenge you that you're already 04:35:41.980 |
like you're just doing something that was just slightly too complicated to automate 04:35:46.460 |
like if you're only writing just straight up crud apps from back end to front end and like simple table 04:35:52.060 |
displays like yeah maybe we just couldn't quite automate that away and now we just have something 04:35:58.300 |
that can just do that a little bit better so now that's automated the way but that's not really 04:36:02.300 |
programming that's almost like building legos at that point where the design's already set you just 04:36:07.500 |
simply have to move piece from bag into correct position yeah uh is there something you recommend 04:36:13.820 |
how uh a developer programmer could avoid the situation where ai can automate them away i think that the 04:36:23.740 |
bigger the project you can manage the bigger the thing you can build the more understanding both down 04:36:29.740 |
and up the stack you can go the more value valuable you become because if you understand 04:36:35.260 |
how to build something in the front end okay well now you kick off some llm task of some sort that's 04:36:41.020 |
going to go off and make a change to the front end okay while it's doing that you can go and kick off 04:36:44.700 |
something in the cli tool you can go and you can go kick off something somewhere else and as these things 04:36:48.860 |
come back with results you can review the results make sure it's the way you want it change it commit 04:36:53.020 |
it go to the next like you only become more you know as you said in the end more productive if we 04:36:57.340 |
reach this state where it's truly able to do that i think there is like a skill to working together with 04:37:03.820 |
ai which is why i'm kind of excited to watch you keep trying to do it yeah it's like we don't know how 04:37:10.060 |
it fits exactly but it feels like ai should be a boost to productivity and i i definitely think 04:37:19.500 |
it's a boost to just the joy of programming i think there's a lot of people yeah it's a job but it's also 04:37:25.820 |
a source of meaning a source of joy like programming is fun you're creating something cool and also 04:37:32.300 |
potentially that a lot of people use there's this one thing that just really frustrates me and this is 04:37:36.220 |
kind of going into the devin category which is that i want an intern that cares yeah you you don't get 04:37:43.100 |
that out of an lm it does not care meaning that i don't want to just to make a ui for me that displays 04:37:49.340 |
these icons like i asked i want it to care i want to think about it i want it to present to me and me 04:37:54.700 |
be like oh yeah yeah that's great and then me to make changes and then later on it's like actually 04:37:58.460 |
you know what i really rethought about this and actually it'd be way better if we change you know 04:38:01.660 |
like it doesn't actually care about the craft you know but when you work with an intern 04:38:05.980 |
or you work with somebody else they care when they factor something they actually go over and 04:38:09.820 |
go ah yeah this is actually kind of bad i'm going to come back to that they finish this they go back 04:38:13.500 |
over and they make this even better right they like actually care about the thing itself it's a 04:38:17.740 |
completely different experience i just want something that also cares that wants to make the 04:38:22.460 |
thing better not just simply accomplish the task and i know i'm asking way too much that's not 04:38:27.260 |
you know now we're getting into like blade runners level ai i just want something that's 04:38:32.060 |
it just feels like i'm missing that where it's just like it will complete the task 04:38:35.900 |
to whatever level it understood what i was prompting but it just doesn't it doesn't actually care about 04:38:41.660 |
it i mean there's so many aspects to caring but sort of the trivial version of that is a kind of 04:38:50.620 |
restlessness where you want to keep improving and i think that is very much ai could do yeah we're 04:38:58.060 |
constantly just ask yourself can i make this better and if it keeps doing that it probably is going to 04:39:04.220 |
take it to some ridiculous place so actually it's it's also knowing when to stop yeah uh i think 04:39:11.900 |
developing um something you can call it taste which is like trying working extremely hard constantly 04:39:19.580 |
improving until it just feels right this is it and i think that is a thing that ai is not good at it was 04:39:26.220 |
just like yes this is it i've iterated three times and three was the that's it we're now there and that 04:39:33.180 |
i think ultimately that is what humans are amazing at which is like knowing when something is right 04:39:41.580 |
like this yeah this is especially as you understand as you develop taste in the particular industry in 04:39:47.820 |
the particular context application knowing like this is it yeah this the rounded corners on this button 04:39:54.620 |
that's exactly that that's beautiful so it's just a sense of beauty a sense of function and and efficiency 04:40:01.740 |
and so on yeah that but that you know humans could do almost like supervision of ai systems in that 04:40:07.820 |
context yeah yeah you've uh ranted about devon um just full of rage uh i mean first off the people that 04:40:16.620 |
run devon are extremely nice i want that to be understood i don't have some sort of upsetness against 04:40:20.860 |
them or anything like that um second devon is just it's it's kind of like the full it's like the full package 04:40:28.300 |
when it comes to programming so it's going to have you're going to give it a task and a repo and it's going to go 04:40:33.820 |
through it's going to try to understand the repo and the task make the change to the repo by exploring 04:40:38.940 |
it then actually make a commit to github and explain what it did so that you can have like you know so 04:40:45.340 |
hopefully you have this whole offline thing which is the other part of um this ai part that i actually 04:40:49.820 |
really like or it's just like go fix this thing then i can just go and unbroken fix this one thing and 04:40:55.420 |
come back and go okay good enough merge boom you know like i want that kind of running being able to 04:40:59.580 |
complete things i think the ideal solution is that you can start giving it small bugs and it goes and 04:41:04.460 |
fixes these bugs and you can just come back to these backlog tickets that no one ever does and it actually 04:41:09.020 |
starts going through these backlog tickets and it's actually a really amazing experience so i love the 04:41:13.100 |
idea right i think we can all agree that that sounds great yeah but every time i've done it and and i've 04:41:19.580 |
asked it for many and i try to keep narrowing down the problems the more narrow the problem the better it 04:41:24.060 |
does so if i'm like just add one singular icon and when it gets clicked i want you to do this just 04:41:29.660 |
just console click me like just at least create me an svg and place it so it's nicely placed the more 04:41:35.660 |
narrow the task the more likely it's to be successful um there's like a certain level of specifying where 04:41:41.020 |
you specify too much it just like can't do it if you specify too little it just does weird things so 04:41:45.900 |
it's kind of like this very kind of fun unique way you have to play the balance game but so far every 04:41:51.260 |
time i do these things i always end up going gosh you know what i should just get better at tailwind 04:41:55.660 |
and write it myself because i always go back and i just rewrite it and then it's just like dang it what 04:41:59.820 |
what am i saving at the end i feel like i'm not saving anything yet and you know it's just like this 04:42:04.780 |
i want it so bad like i actually want ai to be great because then i can really go fast i mean i can go 04:42:10.060 |
amazing fast but then i always just go gosh i should just learn tailwind myself to the like the nth degree 04:42:15.340 |
and just go fast yeah we should also mention that debugging this might be intuitive or counterintuitive 04:42:22.780 |
is the ai is really bad at yeah like that is one of the hardest it actually makes you realize how 04:42:30.540 |
special humans are and how difficult the task of debugging is obviously for trivial debugging maybe you 04:42:37.420 |
can find yeah bugs but like that is the real art of programming is the bug is finding bugs logical bugs 04:42:46.060 |
like um extremely complicated rare bugs edge cases mm-hmm ai can assist but man the hard ones are really 04:42:56.140 |
require so much context so much experience so much intuition from uh again operating in a fog full of 04:43:04.860 |
uncertainty it's hard yeah uh of course the ai could maybe create like logs and do traces and do some 04:43:15.420 |
kind of loading a huge amount of data that humans can't yeah but ultimately that just means it could be a 04:43:22.380 |
better assistant in debugging versus the actual lead debugger yeah i mean it'd be great if they could i mean 04:43:28.940 |
the more it can do that the better right because as far as i can tell i mean correct me where i'm wrong on this 04:43:35.340 |
current state debugging is really it looks at the code it looks at the bug problem it just kind 04:43:40.380 |
of tries to text predict where it's most likely accurate and then just tries to fix that spot and 04:43:44.860 |
so it's like it's likely this spot you said admin panel it's slightly off this this this it's probably 04:43:49.660 |
this location which could actually be a really great way to do search right let me do semantic 04:43:54.140 |
searching point to me where this is because maybe that is a really great way to navigate large code bases 04:43:59.180 |
is like smart intelligent search as opposed to trying to make it do the thing ask it to just 04:44:03.740 |
help you do the thing in like pinpointing problems and i'd love to see more of that because that's for 04:44:09.900 |
me it's like the exciting part and there's this really great article by creator or maintainer of curl 04:44:14.860 |
it's the i and llm stands for intelligence and he writes curl and maintains curl curl has been inundated 04:44:22.620 |
with security problems and all this and it's all from llms being like oh i found a security flaw 04:44:27.340 |
uh here's the security flaw details it out in the code and he's just like okay how did you reproduce 04:44:32.140 |
that show me because if you look at the code right here that's actually an impossible situation you're 04:44:36.380 |
speaking of and it's just like going in these circles and security right now is being inundated these 04:44:41.580 |
bug bounty programs are being inundated by llm submitted responses because they can't actually 04:44:46.940 |
you know analyze the code beyond just like basic text prediction oh this is a stir copy stir copy is 04:44:53.420 |
commonly referred you know blah blah blah blah boom there you go here's the bug and it's just like no 04:44:57.260 |
that's actually impossible because the if statement right beforehand leaves the function if the string is 04:45:02.300 |
too long so it's like we don't even run into this case it's impossible what you're saying 04:45:06.620 |
so the bugging is very interesting yeah i mean that for me would be the big if it can solve that 04:45:11.820 |
not solve that but improve that that would be huge whether it's asians or just llms integrated into um 04:45:17.820 |
into ides i think there's this whole idea i call a denial of attention i think there's an entire attack 04:45:24.140 |
vector that's going to be happening we're using llms to generate fake bug reports fake all these things to 04:45:28.940 |
just actually uh effectively to demotivate and um hurt open source maintainers polykill was the first bug 04:45:39.500 |
that kind of had this experience is this denial of attention where a active malicious maintainer just 04:45:46.220 |
hounded the owner and then a white knight came out and offered to buy this you know buy some stuff from 04:45:51.900 |
under them and when they bought it they actually replaced it with a malicious piece of code and then 04:45:55.980 |
used it so there's like this whole security world that's developing around using these in a very 04:46:01.340 |
aggressive format i mean it's a fascinating world we're entering into but i do agree with you that 04:46:08.220 |
humans human developers will be a huge part of that world yeah this is not the job might evolve but it's 04:46:14.700 |
going to be there if i can i didn't really look at this page i thought it would be cool to go over with 04:46:20.140 |
you this is uh again stack overflow my favorite stack overflow developer survey talking about their 04:46:26.940 |
sentiment and usage of ai systems the general sentiment of yes uh 61 say yes they use it and 04:46:36.860 |
25 say no don't plan to so majority use it majority have a favorable sentiment over it favorable or very 04:46:46.780 |
favorable or indifferent that's like it looks like over 90 percent that's really surprising that that 04:46:53.420 |
many people just have no plan in looking into ai like as much as i don't like using it for coding i 04:46:58.460 |
hope one day i can use it more right and so it's like i to me i'm always looking for the next thing 04:47:04.300 |
i'm just surprised that people are that i guess obstinate for it obviously the second one the ai tool 04:47:09.500 |
sentiment it must be only the users who responded uh yes to the top two of that first one just 04:47:16.220 |
given the amount of respondents i wonder if no and don't plan to are people who have tried it and 04:47:22.380 |
quickly built up the intuition like this really sucks yeah so you know we could be like experienced 04:47:30.060 |
programmers they're like no this is not making me more productive 81 agree that increasing productivity is the 04:47:36.700 |
biggest benefit that developers identify for ai tools okay so this is what are the benefits 04:47:42.540 |
increase productivity speed up learning greater efficiency improve accuracy and coding make workload 04:47:47.820 |
more manageable improve collaborate where's the fund increased fun i would say that's that's like number one 04:47:54.780 |
for me maybe speed up learning is like a subcategory of fun right if you're able to learn more and be able to 04:48:00.780 |
become better and to me that that sounds that sounds good yeah i don't know it's different 04:48:06.300 |
because like productivity is part of fun too i there is just the lightness um i mean maybe improve 04:48:12.380 |
collaboration all of these elements for sure there's i my time using copilot there was certainly a 04:48:18.460 |
level of wonder that would happen for quite some time where it's just like it's just amazing what it can do 04:48:23.500 |
yeah i'm just super impressed by what it can do even though i don't use it like 04:48:27.420 |
it's amazing to me that we have something that can even get that close uh in terms of accuracy of ai 04:48:33.420 |
tools only 2.7 highly trust i would say that you have to be very green to think that you should 04:48:40.220 |
highly trust an ai output yeah you should be very skeptical yeah i don't know where i stand probably 04:48:44.700 |
somewhat distrust highly distrust seems aggressive it does seem a little true like you should definitely 04:48:49.900 |
be in the somewhat like you should always assume that there's something wrong and then from there you can go 04:48:55.100 |
and and challenge it and then uh estimation of whether ai can handle complex tasks most people 04:49:01.740 |
don't think it can handle complex tasks i mean it seems like people have a good sense of what it's 04:49:06.460 |
able to handle or not i would argue that people don't have a good grasp of what complex is in programming 04:49:11.500 |
sure yeah if you say right to me you know write me quicksort some people think quicksort's super complex 04:49:16.060 |
but i would argue that that's actually probably the simplest thing you could ask an ai to do 04:49:20.940 |
right things that are so well documented it's going to do a great job at that yeah probably 04:49:27.020 |
high level design decisions which people don't even use ai for right now i guess agents are supposed to be 04:49:32.380 |
doing that kind of stuff that's probably the most difficult thing or uh the most impactful thing 04:49:38.060 |
well the most difficult thing is finding bugs yeah ai tools next year writing code and so on 04:49:46.940 |
now this one the ethics part i'm actually super curious your take yeah on the ethics will we see 04:49:52.780 |
europe laying down some new regulations oh boy what about artists right what about people that are 04:49:59.900 |
really because the difference between coding and artists is very very simple if you gave me a sheet 04:50:04.700 |
of paper i could draw you a crab you go that's a crab yeah but you can't do that with coding it's like 04:50:10.860 |
it's right or it's wrong there's not a variation of interpretation for what a crab is it's like no 04:50:15.260 |
that statement's just you cannot make that statement you know it's very bounded in what it 04:50:19.900 |
can express and i could see why artists like that's a very frustrating point and then who gets rewarded for 04:50:26.060 |
all that you know obviously and then there's like the whole thing with coding and licenses how much 04:50:30.860 |
of it is gpl licenses do you think they have scraped and used as training data gpl forces open source 04:50:36.060 |
yeah what are you gonna do with that one like that means your model might need to be open source like 04:50:40.780 |
open ai may have to get forced open yeah all their previous stuff if there's any hint of gpl yeah that's 04:50:48.460 |
a weird one that's a really weird one because most of these models i think are training on data they don't 04:50:53.500 |
technically have rights to be training on yeah there's there's a lot of questions there's an unspoken 04:50:58.780 |
it's a it's a real wild west because like you could imagine that what happened if you know i always use 04:51:04.060 |
europe because they tend to have like maybe the most consumer protection uh laws out there you could 04:51:09.100 |
imagine what happened if a law came down that said that if you used a model that produced gpl potential 04:51:15.500 |
code you have to open source like how many companies are going to be like oh my gosh right like you have 04:51:20.220 |
one year to get rid of all code that was generated that's potentially gpl source from a model like that 04:51:24.060 |
could you could imagine just the sheer panic that's going to happen it'd be a fire sale of code 04:51:30.460 |
so given all that what can you give advice to young programmers uh like this is another question from 04:51:38.620 |
reddit the infinite wisdom of reddit what should a person in their early 20s do to move forward in the 04:51:45.900 |
tech industry and uh this is an interesting addition to the question and by doing it will this be walking 04:51:54.620 |
on someone else's path i am going to try to answer that question i guess the best i can 04:52:03.820 |
which i think that if you're entering into the tech world one of the hardest pieces of advice that i took a 04:52:13.660 |
long time to learn was i became enamored and addicted obviously we talked about that program 04:52:19.260 |
for way too many hours um forgetting to uh spend the time i needed with my wife with my friends 04:52:26.780 |
all that stuff like totally wrapping myself up into one activity i think though it made me who i am 04:52:32.940 |
was probably an unhealthy activity and probably not a wise activity and so the best advice i can give is 04:52:38.060 |
that you've got to develop the love the skill the desire for whether that's just only using ai agents 04:52:43.340 |
programming yourself using zig or programming javascript whatever you know that flavor is 04:52:47.820 |
that's going to get you coming back every single day getting the reps in the gym if you will for 04:52:52.380 |
programming but also knowing how to value what is valuable and not getting lost in the sauce where 04:52:58.220 |
you're just so stuck on trying to make the next greatest startup that you sacrifice your health you 04:53:03.740 |
sacrifice your relationships or even worse you sacrifice your own morals to take certain shortcuts that you 04:53:09.180 |
probably shouldn't be taking uh in life to be able to achieve these things because you know i'm sure 04:53:14.460 |
there's hundreds of horror stories you could hear where people definitely shortcutted their morals for 04:53:19.500 |
you know monetary success yeah i mean the golden handcuffs uh comfort can destroy the soul in some sense 04:53:28.220 |
yeah so that's uh yeah i mean that's really important to remember but would you 04:53:32.940 |
you know there's young people kind of thinking do i even want to be a programmer now 04:53:37.580 |
it seems like ai is getting better and better and better at these uh programming uh if they were 04:53:45.580 |
trying to make that decision would you still say yeah if this is something that fills you with joy 04:53:51.260 |
i still want my kids to learn how to program if i can answer that if that can if that's a good enough 04:53:56.300 |
answer yeah in the sense that my kids are are decade younger than a young person trying to learn how to 04:54:01.660 |
program right now and so if i want you know i'm hoping that my kid can run and build whatever he 04:54:06.380 |
want in roblox i'm showing him chat jippity and be like all right let's ask questions how do we do this 04:54:10.940 |
it's still extremely confusing for him to do all these things and so it's like let's do this i want him to 04:54:16.460 |
learn and be effective and maybe one day he has to throw away all those skills in 20 years but i bet 04:54:20.940 |
you that whatever skills he threw away or whatever hard skills he had to throw away an entirely new 04:54:27.260 |
field that none of us have thought about just like if you would have asked somebody in the 70s 04:54:30.940 |
you know about social networks they'd be like what the heck are you even talking about like yeah things 04:54:36.380 |
will exist in the future that are going to be massively different and crazy and exciting maybe in virtual 04:54:41.100 |
reality there you go maybe all of us actually down the line would just be building video games 04:54:45.980 |
just entertainment for all the uh brave new world of our world well i think i think uh entertainment 04:54:53.260 |
is a kind of trivialized version of what a video game could be it's like what what is the purpose of 04:55:01.660 |
life anyway i mean it could be it could be a deeply fulfilling video game it doesn't have to be just like 04:55:07.340 |
dopamine rush it could be educational it could be scary it could be uh challenging forcing an evolution 04:55:17.260 |
the leap into adventure that it makes up a um a fulfilling life that could be video games who knows 04:55:24.780 |
especially in virtual reality i tend to uh uh say other thing i i play a lot of video games i think i think i 04:55:34.380 |
think there's a lot of room to make video games deeply fulfilling like there's a lot of space where 04:55:41.020 |
that can go i didn't know you played a lot of video games because when i asked you specifically should i 04:55:45.500 |
play world of warcraft or do advent of code you're like advent of code advent of code oh well that that 04:55:51.500 |
might mean i've never played world of warcraft because there's certain games i avoid fortnite by the 04:55:56.460 |
way i think was one of them because i was worried to become too addicted yeah yeah so there's certain 04:56:02.300 |
certain games i just know i won't get super addicted to like for example i'm terrified of civilization 04:56:07.100 |
like i have never played a civs game because i'm worried i'm worried uh the dark path in my lead 04:56:15.660 |
because there's some games just really pull you in i'm much better with uh that's why i play skyrim 04:56:21.100 |
i can play these games uh or baldur's gate and moderate my how much i play and they could be 04:56:28.380 |
like a lifelong companion versus an addiction where i'm like it's like sunrise and you're like what's 04:56:34.140 |
happening with my life and i find myself naked behind a dumpster somewhere just wondering what happened 04:56:39.660 |
um yeah so that's how i choose my video you're not the first person who has specifically called out 04:56:47.180 |
civilization yeah i've had more than one person also very high up in the tech world be like civilization 04:56:52.940 |
is my downfall if i get near that game i'm done yep so i've never even played the game now it makes me 04:56:59.100 |
be like dude i gotta give this a try that sounds crazy yeah and the new one is actually supposed to be 04:57:03.900 |
really really good what were we talking about yes for that same young developer is there a trajectory 04:57:08.700 |
through jobs that you could give a device on so you started out with schedulicity yeah that was my 04:57:17.500 |
first uh full-time when i had the government contracting one before that that wasn't quite 04:57:22.060 |
full-time it was in c it was a lot of fun and then building my own startup for quite some time so 04:57:26.780 |
if you count either those as full-time then those would be the full-time but schedulicity was 04:57:30.940 |
the official on the docs so is there some value to jumping around like working in one company and 04:57:37.500 |
another to try to figure out like what brings you joy i think there's a lot to that because um not 04:57:44.300 |
every job you're going to get is gonna it's going to be great now your first job you could get could 04:57:48.860 |
make you think you hate programming it happened i did an internship at a place i know i keep on like 04:57:55.100 |
surprising you with more kind of things i did in the past did an internship at a at you just so many 04:58:00.860 |
things it's incredible at a place called like uh total information management system remember when 04:58:04.700 |
i talked about that hours ago about health care and that and industrial shipping and all that it was a 04:58:09.980 |
c-sharp shop it was so bad that after i did that i went and changed my major to mechanical engineering 04:58:15.180 |
for a semester in college i thought i okay actually i like computer science i hate programming i so you 04:58:21.820 |
know just because you've had a job doesn't mean it's the it's gonna be the one and the thing is the 04:58:26.140 |
here's the best part though if you get a job and you like it and you want to do it and it's 04:58:30.700 |
exciting you don't need to change right i think a lot of people are like oh i got to find the next 04:58:35.660 |
thing i've been here for two years like there's kind of this like you got to move around mindset 04:58:40.140 |
i don't think you have to move around i don't think it hurts your career because if anything you'll gain 04:58:44.540 |
more responsibility and you'll be able to talk with way more authority and the next time you interview 04:58:47.820 |
you're going to be way more into like oh yeah i had to get these x people and these x people to be 04:58:52.380 |
able to do all this stuff and it's like you can talk with much more authority if you stay at a place longer 04:58:56.700 |
and that's nothing but benefits in my book it's only if you stay at a place because you're afraid 04:59:01.100 |
or you don't want to you know you already have something that works for you and just never want 04:59:05.180 |
to change and you're just like i get to go in and just be completely mindless i think if you go 04:59:09.340 |
mindless for a couple years you'll find yourself that's like the only real danger you just come out 04:59:14.140 |
with nothing at all yeah especially when you're younger that's the whole point take the risk take the 04:59:19.100 |
leap out to the next thing to the next thing and not for money but for just personal like joy joy and money could get at the end 04:59:25.820 |
that's the best part is when you don't strive for the money sometimes the money just shows up anyways 04:59:29.340 |
yep and some of the what makes life worth living is the people you work with like a good team 04:59:35.660 |
some of it's like not to be generic but you know culture matters it's whatever makes you 04:59:41.340 |
um happy like for example i just had won't call out places but you know there's certain companies where 04:59:49.260 |
everybody is very nine to five and it's very even if the work is exciting they're not they don't work hard 04:59:54.940 |
enough i would say i'm one of those people that likes to go all out like likes to be surrounded 04:59:59.980 |
by people who are like super passionate now to be fair a lot of them don't have families or don't 05:00:06.540 |
yeah it's a fascinating choice i really don't want to talk down on any choice like work-life balance 05:00:11.820 |
or not i think both are beautiful paths and like if you really derive a lot of value from 05:00:20.540 |
joy from your work going all in at least for some stretch of your life is a beautiful thing to do 05:00:29.260 |
full-on passion sacrifice a lot of social life all that kind of stuff i don't know that could also be 05:00:38.140 |
beautiful there can be something very very exciting about that in some sense especially if you're building 05:00:42.460 |
your own thing uh i can imagine that would be very exciting like if i was amazon jeff bezos building amazon 05:00:48.220 |
one could imagine that those early years were probably very rough and the amount of hours he 05:00:52.620 |
probably put in were very very rough uh but i will say that there's this kind of unique aspect in our 05:00:57.340 |
culture where we kind of make this as an equal trade-off between family or work uh like oh you 05:01:03.500 |
don't you do or you don't have to have kids and my only kind of real notion with that one is that 05:01:09.420 |
you will never know your capacity for love until you have kids like you you just don't know and some 05:01:17.180 |
people are like oh yeah but i'd like love my dog it's just like i loved my dogs too and then i had 05:01:23.340 |
kids and now my dogs are they're all right like i like them yeah i could come home and i pet indy and 05:01:27.900 |
i'm like indy and then i'm just like okay bye indy right like it's just i can't even describe the 05:01:32.060 |
difference between the two yeah because they're not it's not even the same and so it's very that trade-off 05:01:37.020 |
you're making is no one can tell you what it's like because there's a real reality that's right 05:01:43.100 |
now and i'm sure i'm 100 positive this is with my wife as well where if right now we got news that said 05:01:49.340 |
you have some medical procedure where if we do this you will die but your kid will live there's not a 05:01:55.100 |
question in my soul that i wouldn't do that right if i was given if i could look into the future and if 05:01:59.420 |
i had to die right now knowing that my kids would have a better life they would be happier they'd be more 05:02:03.180 |
fulfilled and all those things i guarantee you either my wife or i would take that every single 05:02:07.740 |
time it's just like you will never be able to say that about most things people will jokingly say that 05:02:12.060 |
until it's actually on the line but it's like with with that you just have this ferociousness i can 05:02:17.580 |
break out and sweat thinking about somebody fictionally pushing my kid to the ground like 05:02:22.220 |
actually get you know real adrenal responses flowing through my body so it's just like such a different 05:02:28.220 |
world and it's hard to explain and you could never have convinced me when i was young that it'd be this 05:02:31.740 |
big yeah yeah yeah i thought i knew i didn't know but to add on top of that some some of the most 05:02:38.540 |
successful people i know some of the most productive people i know have kids so like i don't know if it's 05:02:44.220 |
even a trade-off like that love you feel it seems to be a catalyst for like to make sure you have less 05:02:52.380 |
time but you're going to use that time better to be productive i would argue that i'm it definitely 05:02:58.620 |
changed a lot of my life and my and how i approach problems and everything in a very different way 05:03:02.860 |
let me ask some uh random questions from reddit on a scale of one to ten how much do you hate 05:03:10.300 |
every product microsoft has ever created and why is it a ten okay i think we covered that we haven't 05:03:16.300 |
technically covered it uh there you go all right go ahead go ahead okay the only thing i'll say is 05:03:21.580 |
that i don't like that microsoft pretends to be the good guy yeah when what they really wanted to get 05:03:27.100 |
you addicted to their products to get you to use their products as much as possible so they can extract 05:03:30.780 |
as much money out of you well in this world are there really good guys that's a great point i would 05:03:36.540 |
argue neovim is a great guy they there's no way they can make money um justin keys is the benevolent 05:03:41.820 |
dictator and he thinks deeply about the product and tries to make it the best as possible whereas 05:03:46.300 |
something like microsoft they they made vs code as a loss leader copilot's probably operating on a loss 05:03:53.100 |
leader these things are all getting you so tied into github remote workspaces ci copilot like you've 05:04:00.060 |
become this trapped in permanent person and if that price rises the switching cost is so great at some 05:04:05.740 |
point that you'll never be able to switch that's my only fear is that microsoft was once accused of ee 05:04:10.540 |
and it feels like they're ee again yeah i'm nervous about criticizing a good thing because you could 05:04:17.340 |
see an incentive to do that good thing like google creating all these services that don't make money 05:04:22.540 |
like gmail for example you can sort of sort of cynically say like they're only doing that to tie 05:04:29.100 |
you into an ecosystem so they can like uh basically keep you for life but also it's awesome that they created 05:04:35.900 |
gmail like yeah and they create incredible product right so i can side with you on that one it is a 05:04:42.060 |
good product vs code is a good product yeah don't put that on this but it is fine you know they did a 05:04:49.180 |
great job yeah so like it you know there is going to be financial incentives behind some of these companies 05:04:54.220 |
and by the way me defending not defending but saying positive things about microsoft is just so i could talk 05:04:59.580 |
shit to prime but that's i love that by the way yeah linux is my first and last love it definitely 05:05:06.700 |
the spirit of linux and open source is a beautiful thing so i i do think that when you have these large 05:05:13.660 |
corporations even when they try to do good oftentimes the the profit imperative just takes over and they 05:05:22.380 |
can they can corrupt themselves and microsoft has a long history of doing just that to themselves 05:05:27.340 |
that said they've done you know they have you could say for cynical reasons because they want to see 05:05:33.020 |
seem like the good guy amongst developers but they've done a lot to support open source it's just like 05:05:39.340 |
same with meta they've meta has done like insane amount yeah to support open source you can say 05:05:46.780 |
actually for that one i don't even i don't know if i can even make a financial or cynical case for 05:05:52.140 |
why meta is open sourcing llama and like these yeah that one's confusing it just seems great maybe for 05:05:57.260 |
hiring but no i i think that's legit just an ethical really powerful decision and sometimes these companies 05:06:05.820 |
because they have a lot of cash can make the right do the right thing yeah it's a really positive way to 05:06:15.020 |
look at it and i think that's that's really nice but we should always be skeptical yeah i mean because 05:06:19.500 |
at the end of the day companies they're not good they're not bad right they're mortally neutral it's 05:06:23.500 |
the people that are running them the decisions those people make that are really where the bad or the 05:06:26.620 |
good comes from another question asking if he knows how to milk a cow i've already asked that 05:06:32.380 |
the answer is no no you don't know i've never milked a cow never milked the cow almost been killed by 05:06:38.460 |
cow but never milked a cow do you ever write a bull no all right uh why male models okay so i can 05:06:47.180 |
explain that one i will say something like i really dislike the color purple because the color purple 05:06:54.860 |
makes me upset i don't know just something very benign but then someone right afterwards will be like 05:06:59.660 |
but why don't you like the color purple right and it's just be like it's just like derek zoolander it's 05:07:05.340 |
just like i get done on a five minute talk about it and then the next question is like but seriously 05:07:09.660 |
why though it's just like why male models yeah so that's the zoolander reference when there's a long 05:07:14.860 |
explanation why male models and uh he he agrees and then forgets yeah uh uh what is ligma 05:07:26.140 |
you know i've died by ligma quite a few times ligma so do you know the origin story of ligma no so ninja 05:07:32.060 |
famous streamer someone got him with ligma said like oh something like have you heard about ligma and 05:07:37.020 |
he was like no and he's like oh ligma balls right and then after that ninja got like so hurt by getting 05:07:43.900 |
had by that that he started banning anyone in chat who said the word ligma or something like that and so 05:07:48.460 |
then it'd be you know if you don't embrace the meme yep you get destroyed now of course gets destroyed and 05:07:53.500 |
so then the whole goal is that can people get me with ligma tj did i ladies he's like oh did you hear 05:07:58.860 |
that e-girls got renamed to i ladies and i just didn't even see it coming and i was just like what 05:08:03.180 |
and he's like i ladies nuts on your face and then it's just like oh my gosh and then a pirate software 05:08:07.980 |
has also got me like oh have you heard about google sema which sema is a real product by google and i'm 05:08:12.460 |
like oh yeah i've heard about this what is this again he's like sema balls right it's just like dang it 05:08:16.700 |
how do i so i've just had it happen live on stream many many times i've died by ligma the most please 05:08:24.780 |
ask him about the size of his dict okay so this is so that's d-i-c-t that's dictionary in python who 05:08:32.380 |
doesn't love dicts yeah that's a great question just a dict party when you use a python i love dicts 05:08:39.500 |
that should be a t-shirt uh that's actually a hilarious teaser but so on stack overflow you can 05:08:46.460 |
ask any question you want and i decided to craft a question one day on stack overflow that says 05:08:52.220 |
how to measure your dict in bytes and then i proceeded to really go to town and like explain 05:08:58.460 |
all the different things like well what about the cost of the strings and the references and you know 05:09:02.380 |
like when you really get both hands on your dict and really go after it's like very hard done like 05:09:06.780 |
really threw in some innuendos the stack overflow team deleted the question and then someone hand 05:09:12.860 |
wrote me a uh an email explaining why they deleted the question and complimented me on how 05:09:19.260 |
thoroughly and thoughtful the question was just to wait just to weave in innuendos and that the entire 05:09:24.860 |
team was impressed but it's inappropriate and it had to be deleted and don't do it again or we're 05:09:29.580 |
gonna ban your account and so it's like very funny moment and so i was like oh that's funny you know 05:09:34.060 |
that happened uh two that was about six years ago last year i was at a conference and there's a guy 05:09:41.420 |
wearing a stack overflow uh name tag and i was like oh you work at stack overflow he's like oh yeah i do 05:09:46.860 |
i'm like do i got a story for you and he goes no wait a second are you the guy yeah like that was his 05:09:52.540 |
only question was that i was just like let's go i didn't even say anything about me and he already knew 05:09:58.380 |
immediately i was the dict guy uh i should say in all seriousness i think i've had a bunch of 05:10:02.940 |
conversations sort of in the python world where i would have to mention the name of this data structure 05:10:07.980 |
and it makes me uncomfortable every time you know it's a very unfortunate shortening of a word dict 05:10:13.420 |
it's just like when i go to the hardware store and ask for caulk yeah and there's always a nice old lady 05:10:21.500 |
and i ask her where to find and it's very uncomfortable i try to pronounce it as hard 05:10:27.020 |
as i really get that l in there like call call just to be clear and try to avoid eye contact the whole 05:10:34.220 |
time you said you said that god was a big part was a big part of your life can you speak to that a little 05:10:41.420 |
bit more who is god and what effect what role do you play in your life so i you know i did talk about 05:10:49.100 |
about that one important evening where i for whatever reason gained my my conscious that moment 05:10:55.580 |
um so obviously for me that i grew up with a life where i would probably argue myself as a 05:11:02.220 |
functional atheist i went to church a handful of times i can't quite really remember actually 05:11:06.860 |
going to church as a family in any sort of sense so there wasn't like some super strong tie or anything 05:11:12.060 |
like that to it like pretty much anyone else growing up in america in the 90s you had some sort of 05:11:17.180 |
impact or intersection with church at some point in your life that was just a very normal thing i i 05:11:23.180 |
would probably say and so when that happened it was a it was a fairly big surprise for me i was you know 05:11:29.900 |
i wasn't necessarily going that direction or deciding to do any of those things and so for me it's it's 05:11:35.100 |
obviously the the turning point of my entire life uh i would have i i cannot speak to who i would be 05:11:41.980 |
now without that i can just tell you that i wouldn't have had the drive i probably would not 05:11:46.700 |
have completed college i would not have found my wife or had my kids i wouldn't know how to value 05:11:51.020 |
people i don't think without that whole thing my value for people would have been very very small 05:11:57.420 |
because i would have continued to just objectifying in the way i was and then probably the biggest thing 05:12:03.420 |
is there's this one verse i don't even know where it's at it effectively says that we love because 05:12:10.860 |
i don't think i would have ever lived a life that was happy without this and i just didn't even know 05:12:19.740 |
that that was a an option for me and i never really you know it was a very tough set of years for me and i 05:12:26.300 |
i was very very sad and just always kind of just constantly looking for something to fulfill me 05:12:31.900 |
and so it's like i didn't have any confidence i didn't have any joy i was i felt very sad and so 05:12:40.220 |
that was kind of this moment where for the first time ever i didn't all of a sudden i just felt like 05:12:47.900 |
i didn't have to live up to a standard all right like my the standards have already been paid for 05:12:52.700 |
like everything's already like that that's the free gift that's the that's the exchange and so 05:12:57.180 |
it's just like for the first time i didn't have to be the cool guy i didn't have to have all the 05:13:00.940 |
right words i didn't have to feel you know i didn't have to go on the conquest the sexual conquest to 05:13:05.820 |
find validation like i didn't have to do any of those things and it was exceptionally liberating 05:13:11.100 |
and so who is god that's more of like a catechism question perhaps uh what is man who is god 05:13:17.580 |
right like those are those are much much harder questions um i believe that anytime you tried to 05:13:22.620 |
get too deep into describing who god is you typically fall into christian heresy but for you 05:13:27.900 |
he gave you a chance to be happy yeah he gave me a chance not just to be happy but also 05:13:33.420 |
uh made it so that like the first time i can i can actually feel forgiven i guess in some sense 05:13:40.940 |
and able to forgive people that hurt me like for a long time i i had this like weight i'd carry 05:13:47.500 |
around from like the things i hated about high school and all that kind of stuff and through 05:13:53.020 |
that experience i just wrote down every last person's name and actually held them with me for 05:13:56.860 |
quite some time and this was the list of people i i forgave and i read it a few times because like 05:14:01.900 |
i couldn't let myself be angry or consumed by that kind of stuff because like hate is so sticky 05:14:08.380 |
right it's it sticks for a lifetime and there really is only one cure for hate 05:14:12.940 |
which is forgiveness like i just don't think you can get rid of it without that and so i just had 05:14:18.460 |
choose to forgive these people and to move on and it really kind of freed me and i would never have 05:14:23.100 |
thought forgiveness as a means for that change if i didn't first experience it myself what's the role of 05:14:31.340 |
love in the human condition to go to the philosophical and what's been the role of love in your life 05:14:38.380 |
it's very obvious that every person wants or desires love my wife has recently convinced me 05:14:48.780 |
to watch love is blind with her one time and you watch the show and if you're not familiar with it it's just 05:14:55.980 |
feels like it's just a disaster of an experiment to just cause crazy filming but anyways the idea is 05:15:01.020 |
that if you just don't see somebody you can fall in love with somebody and want to marry them after 05:15:04.380 |
like 10 days or some very small period of time and what you really end up seeing is all these people who 05:15:12.220 |
are just desperate for actually love and there's like some part of it i always i told my wife it's 05:15:17.100 |
like love gladiators we're watching people battle it out for drama and really what they want is love 05:15:21.900 |
and it's like they're fighting to the the death and love if you will and it's this almost kind of sad 05:15:26.860 |
aspect to watch and so i think that it's it's it's hard to call like what is its role in the human 05:15:33.980 |
experience because i don't think i think it's just something that we all naturally not just want but need 05:15:41.660 |
and i don't think that you can really progress and when i say the word love i would like to kind of 05:15:48.300 |
narrow it down maybe a bit more and i don't mean like eros the greek word like sexy love 05:15:53.660 |
i think that paternal and friendship love are extremely important and i think agape like god 05:15:59.580 |
love is also very important agape love is the one that is superior to them all but obviously different 05:16:04.860 |
and also you know co-needed with the parental ones and all that and so you kind of need this mixture of 05:16:10.300 |
them all and each one is different for each reason and where it's applied and so i don't think 05:16:21.820 |
is good of any kind without that as like a very foundational piece 05:16:28.220 |
right because you know again not you know i didn't i didn't come here trying to quote any sort of 05:16:33.900 |
scripture but it says that it's not the nails that hung on there it's love that's the reason why 05:16:38.460 |
these things happen and so it's if forgiveness is the requirement to kind of pay off hate in some sense 05:16:44.940 |
then love has to be the motivation for forgiveness yeah that's uh the tragic aspect of life i think 05:16:51.580 |
we're all there's like a deep loneliness in all of us and a longing longing to be a part of this of this 05:17:00.220 |
bigger thing and uh that longing is is is a love and it has many names but yeah that the love aspect of 05:17:09.260 |
it is the beautiful aspect of life the tragedies the loneliness and the unfortunate suffering that is a 05:17:17.580 |
fundamental part of life and uh the beautiful aspect is the love yeah uh which i think is a good time to 05:17:25.580 |
mention more reddit the the the place for everlasting positivity and love uh somebody wrote uh please 05:17:34.620 |
thank him you uh for his everlasting positivity and give him a big hug for me 05:17:43.100 |
so uh i won't give you a big hug on camera because i'm afraid i'll get a boner and that will be very 05:17:50.220 |
unfortunate hey let's not bring dicks into this again okay it's my favorite data structure like i 05:17:55.820 |
said i love dicks uh all kinds of dicks ordered dicks unordered unordered dicks i don't discriminate 05:18:03.180 |
and yeah uh but just that to say like big thank you uh for me like i listen to you a lot just and i just 05:18:15.100 |
really enjoy i've been going through a lot of myself and just the positivity even when you're 05:18:22.060 |
building the stupidest it's just the positivity radiates from you and it you inspire me to be a 05:18:29.820 |
good person you inspire me to build stuff so thank you and i'm sure there's many many others who listen 05:18:35.340 |
to you for the same reason so thank you for your positivity thank you for uh being the light in many 05:18:41.020 |
people's lives and thank you for talking there brother dang that was very very kind i really do 05:18:45.820 |
appreciate all those extremely nice words even from reddit that's very surprising but yeah thank you 05:18:50.620 |
i mean i mean i know you know that there's many people's lives and i'm sure you've received the 05:18:58.700 |
letters that have been changed from from actions and things you've said and things you've done and so 05:19:04.860 |
it's one of the best parts about doing this side is that you get a chance to potentially improve 05:19:11.580 |
somebody's life you know and you getting to interview a lot of people like there's a lot of 05:19:15.980 |
people that listened to chris latner and saw his excitement for swift and probably went and learned 05:19:22.300 |
swift and then got really amazing jobs and it can be all origin back to you and that interview and so 05:19:27.100 |
it's you know those are amazing things and so same goes back to you you've done a lot of a lot of good 05:19:33.580 |
stuff uh right back at you brother thank you for talking today thanks for listening to this conversation 05:19:39.820 |
with michael paulson aka the primogen to support this podcast please check out our sponsors in the 05:19:45.660 |
description and now let me leave you with some words from paulo coelho 05:19:52.060 |
when we strive to become better than we are everything around us becomes better too thank 05:19:58.860 |
you for listening and hope to see you next time