Lex Fridman Podcast - #461 – ThePrimeagen: Programming, AI, ADHD, Productivity, Addiction, and God
Episode Date: March 22, 2025ThePrimeagen (aka Michael Paulson) is a programmer who has educated, entertained, and inspired millions of people to build software and have fun doing it. Thank you for listening ❤ Check out our spo...nsors: https://lexfridman.com/sponsors/ep461-sc See below for timestamps, and to give feedback, submit questions, contact Lex, etc. CONTACT LEX: Feedback - give feedback to Lex: https://lexfridman.com/survey AMA - submit questions, videos or call-in: https://lexfridman.com/ama Hiring - join our team: https://lexfridman.com/hiring Other - other ways to get in touch: https://lexfridman.com/contact EPISODE LINKS: ThePrimeagen's X: https://twitter.com/ThePrimeagen ThePrimeagen's YouTube: https://youtube.com/ThePrimeTimeagen ThePrimeagen's Twitch: https://twitch.tv/ThePrimeagen ThePrimeagen's GitHub: https://github.com/theprimeagen ThePrimeagen's TikTok: https://tiktok.com/@theprimeagen ThePrimeagen's Coffee: https://www.terminal.shop/ SPONSORS: To support this podcast, check out our sponsors & get discounts: Invideo AI: AI video generator. Go to https://invideo.io/i/lexpod Shopify: Sell stuff online. Go to https://shopify.com/lex NetSuite: Business management software. Go to http://netsuite.com/lex BetterHelp: Online therapy and counseling. Go to https://betterhelp.com/lex AG1: All-in-one daily nutrition drinks. Go to https://drinkag1.com/lex OUTLINE: (00:00) - Introduction (10:27) - Love for programming (20:00) - Hardest part of programming (22:16) - Types of programming (29:54) - Life story (39:58) - Hardship (41:29) - High school (47:15) - Porn addiction (57:01) - God (1:12:44) - Perseverance (1:22:40) - Netflix (1:35:08) - Groovy (1:40:13) - Printf() debugging (1:46:35) - Falcor (1:56:05) - Breaking production (1:58:49) - Pieter Levels (2:03:19) - Netflix, Twitch, and YouTube infrastructure (2:15:22) - ThePrimeagen origin story (2:30:37) - Learning programming languages (2:39:40) - Best programming languages in 2025 (2:44:35) - Python (2:45:15) - HTML & CSS (2:46:05) - Bash (2:46:45) - FFmpeg (2:53:28) - Performance (2:56:00) - Rust (3:00:48) - Epic projects (3:14:12) - Asserts (3:23:26) - ADHD (3:31:34) - Productivity (3:35:58) - Programming setup (4:11:28) - Coffee (4:18:32) - Programming with AI (5:01:16) - Advice for young programmers (5:12:48) - Reddit questions (5:20:20) - God PODCAST LINKS: - Podcast Website: https://lexfridman.com/podcast - Apple Podcasts: https://apple.co/2lwqZIr - Spotify: https://spoti.fi/2nEwCF8 - RSS: https://lexfridman.com/feed/podcast/ - Podcast Playlist: https://www.youtube.com/playlist?list=PLrAXtmErZgOdP_8GztsuKi9nrraNbKKp4 - Clips Channel: https://www.youtube.com/lexclips
Transcript
Discussion (0)
The following is a conversation with Michael Paulson,
better known online as ThePrimogen.
He is a programmer who has entertained
and inspired millions of people
to have fun building stuff with software,
whether you're a newbie or a seasoned developer
who has been battling it out
in the software engineering trenches for decades.
In short, TheP Primogen is a legendary programmer
and a great human being with an inspiring rollercoaster
of a life story.
And now a quick few second mention of each sponsor.
Check them out in the description.
It is in fact the best way to support this podcast.
We got NVIDIA AI for video generation,
Shopify for selling stuff online,
NetSuite for your business,
BetterHelp for your health,
and AG1 for delicious nutrition.
Choose wisely, my friends.
Also, if you want to work with our amazing team
or get in touch with me for whatever reason,
go to lexfreeman.com slash contact.
And now, onto the full ad reads.
As always, no ads in the middle. I try to make this interesting, but if you must skip them,
please still check out the sponsors. I enjoy their stuff. Maybe you will too.
This episode is brought to you by InVideo AI, a video generating app that allows you to create
full length videos using just text
prompts.
I have been using it more and more myself and trying to figure out how can I integrate
it into the visual presentation of the podcast or some of the other videos so that we can
kind of add the experience of what the person is talking about. And it's a real challenge because when you generate even a simple overlay image,
you don't want to interfere with the imagination of the listener.
Me as a fan of a bunch of podcasts and obviously a fan of film,
I think part of the experience is the Hitchhawk thing.
part of the experience is the Hitchhawk thing. Say less, show less, and allow the viewer, the listener, to fill in the gaps with their imagination. For me, I think imagination is
such a limitless world that somehow has deep roots in the subconscious of the individual person
that I think you don't want to rob them of the chance to use their imagination. And so the
challenge with AI and the possibility with AI is to be a catalyst for the
imagination, to add material for the imagination to flourish versus a thing
that adds constraints and reduces it down to where it's an interference to the
imagination.
Anyway, you can try NVIDIO AI for free, saving you lots of time and money you'd otherwise
spend on editing, animating, and other production costs.
Go to nvido.io slash i slash lexpod.
That's nvido.io slash i slash lexpod.
This episode is also brought to you by Shopify, a platform designed for anyone to sell anywhere
with a great looking online store.
I think of the digital marketplace that Shopify creates as a kind of cognitive interface between
the seller and the buyer, economic interface too.
It's a mind meld, a network plugged in into the collective intelligence of our species.
The wants and desires fueling the network.
In theoretical computer science,
it's a multi-commodity optimization problem.
So sometimes I like to visualize that network
lighting up people selling, buying,
thinking of what they want, looking
for things they want and finding it.
In fact, the process of searching discovery in itself is fascinating.
It's a technical problem, it's a psychological problem, it's a social problem.
It can be abused, it can be used and with the right tools, it can significantly increase
the quality of life of an individual.
That's why ads can be abusive
or ads can make a person's life better.
When ads are done well, they legitimately connect you
with a thing that will spark your life full of joy.
Anyway, I set up a store on there, I think.
Lexfreemate.com slash store.
It has a couple of t-shirts.
Nothing fancy, it was super easy to do.
Sign up for a $1 per month trial period
at Shopify.com slash Lex.
That's all lowercase.
Go to Shopify.com slash Lex to take your business
to the next level today.
This episode is brought to you by NetSuite,
an all-in-one cloud business management system.
That was one of the fascinating things that Jeff Bezos said, that all businesses eventually
die.
And it's true, of course.
All empires eventually fall.
So the task of a business, I think it's the day one thinking that he's referring to is to delay the
inevitable death of a company for as long as possible. Much like the heat death
of the universe, there's a heat death of a business and that's the point we're
trying to do in your life, in your business, is to delay the inevitable and have fun doing it.
So yeah, NetSuite is a good tool for that,
for all kinds of messy things that you need to do
to make a business run.
That kind of sounds like I'm talking about the mob,
but it's not the mob.
Everything's legal.
That's the point.
Download the CFO's guide to AI and machine learning
at netsuite.com slash Lex.
That's netsuite.com slash Lex.
This episode is brought to you by BetterHelp,
spelled H-E-L-P, help.
Boy, have I been going through a mental rollercoaster
over the past few months and certainly
over the past few weeks.
This may not be the right place to talk about that, but the point is, talking helps.
It's the paradox that in order to fortify the castle of your mind, you have to first be vulnerable enough to reveal the fears, the anxieties, the weaknesses of the castle.
Although referring to the mind as a castle seems like a very douchey thing to say.
Which by the way, the whole castle world was my favorite Lego world.
I think there's a bunch of worlds, this is how I knew I wasn't a sci-fi Lego person.
I didn't care
about the spaceships and all that kind of stuff. I wanted knights and I wanted dragons
and I wanted castles and pirates and boats with cannons and just war when face-to-face
combat was the way that war was conducted.
Technology made military conflict less personal,
less human, cold, and somehow in doing so makes it too easy
to slide in the deeply immoral.
Anyway, talking helps, and better help
makes it easy and accessible to get a licensed therapist
that you can talk to.
Check them out at betterhelp.com slash Lex and save on your first month.
That's betterhelp.com slash Lex.
This episode is brought to you by AG1 and all in one daily drink to support better health
and peak performance.
I need to get back to jiu-jitsu.
I tweaked my knee ACL, not torn, just sprained,
white belt going crazy on me.
Oh, life, life is full of adventure,
of surprises, of turns and twists.
And all of a sudden, an excited white belt
takes you on a detour because of a minor injury.
Anyway, it takes time to heal, you know,
and I'm very cautious with things that prevent me
from moving about this world,
and actually prevent me from exercising
because, you know, I have fun running,
and by fun I mean it's torture, but I enjoy it.
But, you know
running is part of my regular daily life is yeah it overall makes me feel good I
can push my body limit I can push my mind to the limit. It's an escape from the
intellectual world into the natural world I run outside I really enjoy the
fresh air and all that and so if I get injured in Jiu Jitsu, it affects that.
But then of course I love the chest, the puzzle,
the complexity of Jiu Jitsu
and all the combat sports, Judo, boxing.
And so yeah, I need to get back to Jiu Jitsu
because I think I'm getting close to that 100%.
And I need to also talk to John Donahar soon.
We've talked 17 times, so this is going to be the 18th time.
No, I don't know.
I don't know how many times we've talked, but it's never enough.
The man is brilliant.
And there's the Craig Jones CGI 2 coming up where there's going to be a lot of athletes
clashing, a lot of ridiculous humor from Craig.
I can't wait to see the spectacle of it all.
And of course, I think John is participating.
That'd be a good super fight.
Craig Jones versus John Donahue.
But not Jiu Jitsu, it would be slap fighting.
Anyway, I can't wait to talk to John.
It's been a while and there's a lot of interesting
philosophical things to discuss.
This all somehow has to do with AG1 because of health and let's see jujitsu health equals AG1.
Let's go. They'll give you one month supply of fish oil when you sign up at drinkag1.com slash
Lex. This is the Lex Freeman podcast. To support it, please check out our sponsors in the description.
And now, dear friends, here's the Primogen. What do you love most about programming?
What brings you joy when you program?
I can tell you the first time that I ever felt love in programming or felt that joy
or that excitement, which was in college.
It was the second class data structures and the teacher that was, Ray Babcock, he was talking about linked lists.
Now, you have to learn Java
at Montana State University when I went.
And so he's off there kind of explaining
this whole linked list thing and all that.
And then he shows code.
And in the code, it's like abstract class node
or whatever it was, I can't remember what it was.
And then it had a private member
and that private member was of type node.
And I've never seen that before.
It is a class that is called node
with a member that is of itself.
And for the first time ever, I was like,
oh my gosh, like there's no end, there's no way to iterate.
This is not like a set of 10 items.
This is a set of infinite items.
And so like my mind kind of like exploded in that moment.
Like there's actually, like what you can express is huge.
I can see what memory looks like.
Like I can see this kind of hopping through space.
And I just remember being just so blown away
because up until that point, everything was just,
all right, I have a list of 10 items.
I have a list of 20 items, right?
It was very rigid and small.
And the things I built were really small and trivial.
And all of a sudden
I felt like I could build like anything in that one moment. And it was so amazing. I just remember
sitting in class for what I don't even remember how long those classes were anything, but I just
remember being just completely like profoundly impacted by this notion. And so I just sat there
and I watched I had the exact same experience in Heaven's Forbidden by a software engineering class
when we talked about the decorator pattern,
where you can keep on constructing these objects
in this recursive way.
Not that I think that's actually a good idea to do,
but just watching that and realizing
there's so many weird and unique ways you can solve problems.
And you can just, anything your mind can think of,
you can just create that.
And I just remember getting just so excited
about the possibility that anything
is possible.
Yeah, let's wax philosophical about a linked list. It is pretty profound for people who
don't know a node in a linked list doesn't know anything about the world it's in. It
only knows about the thing it's linked to its neighbor. Maybe that's symbolic. It's
a metaphor for all of us humans.
There's billions of us on this planet,
and we only know about our local little network.
And it's kind of beautiful.
And you realize, like, in that little simple data structure,
you can construct arbitrarily large systems,
and they're like roots that go through memory.
And then, of course, that's where you get
all the programming languages that allow you
to dump junk into memory and have memory leaks
and therefore create infinite pain
as you try to figure out where that unfreed memory is.
For me, yeah, probably, it's so beautiful
the way you put that.
Link lists are indeed beautiful.
Recursion, also for me, when I finally wrap my brain around
what it means to write a recursive function.
What was the thing?
What was the one that taught you?
Because I think we all probably,
you probably did factorial, where you like,
just do like a quick factorial of it,
it just doesn't hit home.
What was the thing that kind of made it hit home?
I don't remember the first.
I remember my first.
How do you not remember your first?
It was magic.
I've had so many that just.
I mean, you are a Lisp guy.
You're probably pretty used to the recursion.
Yeah, all I remember is just surrounded by C of parentheses.
I mean, that's really probably when I,
in high school, I think it was either Java or C++.
Wow, how do I not remember that?
It must have been C++.
And then college, it was,
the generic bullshit software engineering classes were Java,
but then the Renegades, the cool kids, were all using Lisp.
That's when you're doing the AI, the quote unquote AI at that time, that was Lisp.
If you want to write a chess engine, you would use Lisp.
For me, probably the moment I really fell in love with programming was was Lisp and writing like Othello programs and
chess engines all kinds of engines that play a game and then I could
Play against that thing and that thing would beat me the joy of being destroyed by the thing you've created and all
Game of life to sell your automata. That's when I
game of life to cellular automata. That's when I built that, you know, all kinds of programming languages. That's less about programming languages and more about the
system you create. And that just filled me with infinite joy. Having, now similar
to the link list situation, creating a system where each individual cell only
knows about its neighbors and operates in a very simple rules.
But when you take that system as a whole and allow it to evolve over time, you can create
infinite complexity.
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.
That filled me with just infinite joy for sure.
But yeah, all I remember is parentheses.
So my first, memories of my first are drowned
in a sea of parentheses.
Oh man, mine is, I have, well first off, mine was in Java.
So my first was a little bit more rigid,
kind of a corporate, you know, a corporate experience, but cold, meaningless. Yeah. I was in a lab. Everyone was using CentOS
at that or CentOS or however you say, I always call that CentOS, the fresh maker. And so
it's just like, I'm in this very cold. That's nice. Thank you. I've been like this cold,
rigid environment with my Microsoft keyboard programming away in Java and I still I have just
such this memory of despair because I love programming. This was after the linked list and
I cannot figure out recursion 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 so I open it up and I start
reading it and it just doesn't hit home.
And I'm like, I'm spiraling into this,
like kind of maybe I'm not a programmer.
Maybe I'm not worthy enough to enter into this circle
of people who can figure out what the heck recursion means.
And so die tell and die tells, like, I still remember this.
Their phrase, their exact phrase was every young
budding developer solves this recursion program.
And it was the tower of Hanoi.
And guess what?
I don't know if I can solve the Tower of Hanoi to this day.
It's like a very hard recursive problem.
And I just sat there and thought,
oh my gosh, I'm not gonna make it.
And I sat there in the lab for eight hours,
10 hours doing these things.
So worried, it's the week of recursion,
we have to do a lab assignment.
I'm not gonna be able to do it.
And I just remember being like genuinely worried about that.
And then, because I always, my big problem was,
is like, okay, do factorial.
Why not just use a for loop?
Okay, what about Fibonacci sequence?
Why not use a for loop?
Or like, I don't understand,
what's the purpose of recursion?
I don't understand it yet.
It's so powerful, why? It looks like a really really complicated for loop and so I just could not understand it and then lab came that day and it was
I'm gonna give you a 2d array. You have to read from a file
This is what a starting position looks like. This is what an ending position looks like. This is what a wall looks like
I want you to find to me a path through the maze." And so I just sat there like, okay, well, I guess I can just go up and I can create like a visited
grid that so I know not to visit these places anymore. And all of a sudden just started
clicking. I'm like, well, wait a second, I don't know the maze. But if I just go up, right, down
and left, and hop back every time I've been to that square, don't visit it, like I can just,
it will just go forever. And I realized in that moment, I'm like,
I actually understand, I've understood recursion
this whole time, I just never had a problem
in which it actually made sense to use.
And that was like my big downfall is that I was measuring
my understanding with the problems that I had available,
which were just, you know, list traversal,
which is not a good use of recursion.
And so I just, I just remember that freeing, oh man,
recursion, it was a great moment in my life.
I mean, it does require, to be fair, a leap of faith.
Like, because people will tell you
those conformist dogmatic Java instructors
will tell you that this is, you know,
that's important to understand recursion, but it takes a leap of faith that this is important to understand recursion,
but it takes a leap of faith that this is something,
this is a different way of looking at the world,
and it's a powerful way of looking at the world.
Actually remembered when I think I first,
I think I remember my first now.
All right.
I think it was a first search for one of the games.
Maybe Othello, something like that.
And for that, implementing recursion.
Understand that you can search trajectories through the space of states
and do that recursively.
That was mind-blowing.
Just imagining like the possibilities.
Yeah, just like numbers flying,
it was like the beautiful mind.
And then, and that's when I also discovered
conspiracy theories.
And I just saw, I saw the truth.
Okay, yeah, so what were we talking about?
Oh, what was the most painful aspect of programming for you?
Like what memories do you have of deep, profound suffering
in terms of programming in the early days?
I would say the biggest one that I can really hold onto
had to be one of two experiences.
The first experience was when I was at a place
called Schedulisty.
And am I not allowed to say the place? The first experience was when I was at a place called Schedulicity and
Am I not allowed to say the place?
I'm not sure if they're even operating still at this point, but they're in both something funny about the name. I'm sorry Oh schedule list. Yeah, they actually
The name was so bad that when you looked at they're like paid for
Google ad terms that they would make sure that they're at the top of the list
The spellings were just insane because no one knew how to spell the word schedule-icity.
And so it was just like the Google optimizing for that is just hilarious.
But okay, go back to the thing.
And the thing that kills me the most about programming, what I actually considered the
worst aspect of programming is when you know everything.
And so when I was at this job, it's just every single day I'd come in,
there were no surprises, there was no questions.
I didn't understand the code base, sure, that's fair.
I didn't understand all the things about the code base,
but I knew I was gonna go in.
I was gonna generate some sort of object from the database.
I was gonna take that object from the database
and I was just gonna map it over
and just display it on the webpage.
There's no creativity, there's nothing to it.
It's very like almost factory line kind of work.
And that was a very kind of difficult moment for me,
which is I didn't enjoy programming
because I knew everything about it.
I already knew exactly what I was gonna do that day.
I knew all the hurdles I was gonna have to go over.
There was no unknown unknowns, if you will.
It was just knowns at all times and it's just that is
for me that is the worst part about programming is when you already know the
solution and it's just a matter of how fast you can type and get it out from
your head to your hands. So the absence of uncertainty, the absence of challenge
was the pain. Yeah. That's pretty profound Prime. I'm more than just good looks, I want you to know that.
It's a low bar.
What do you identify as?
I'm enjoying asking the general question.
38 male.
Male?
Husband of beautiful wife.
Okay.
You stream about all kinds of programming, but what kind of programmer are you?
Are you full stack developer, web programming?
And maybe can you lay out all the different kinds
of programming and then place yourself in that
in terms of your identity, sexual identity as well?
Yeah, I can get it.
We can put it all in there.
Okay.
Plus, I mean, obviously those two are very,
very tightly coupled.
I have seen you like on the border of sexually aroused
by certain languages.
I think you got real excited about OCaml or.
OCaml, let's go.
Thank you, Dylan Mulroy.
Okay, wow.
Yeah.
I did not expect that.
That escalated quickly.
Anyway, what do you identify as?
Okay, so first let's do the previous
or the in-between question first,
which is the different kind of archetypes.
I think that's a really interesting kind of question
because if you go on Twitter or you're new,
your thoughts are probably that there is just web programming
and maybe there's some other stuff,
yeah, like game programming,
but you'd like game programming in JavaScript
and on the web.
You know, like there's this very kind of very myopic view
of the programming world.
And I bet if you ask a lot of people these days,
like what is the most popular form of programming?
They'd probably say web.
If you said what contains the most amount of repos,
how many percentage of repos on GitHub are web-based?
They'd probably say 90% or some huge number.
But the reality is that there's
an entire embedded robotics world.
You know, you're familiar with the ML side of things.
There's networking. There's to be just like performance operating
systems, compilers, there's just huge amounts of variation of all these
different types of programming verticals that you can be.
And so we often talk about programming in perspective of web or
something that's pretty narrow.
And I think that's just a social construct of Twitter more than anything
else that it's actually, I don't believe it's that that representative of of the entire kind of programming world out there. And I think a lot of programming is really, really fun. There's some really great stuff building your own language is just a very fun experience to do. Every programmer should just do that once just to have a completely different, you know, perspective on how things work in life. But as far as what do I do, I've always looked at myself as a tools engineer.
So at my time at my jobs, typically, I would start off on the UI and then they'd be like,
okay, well, hey, we need a library for this thing.
So then I'd be the one writing like the library.
So in 2012, 2013, I was writing a UI library for the web that can behave just like an iPad
so you can pinch and zoom on it, but it's still a web page because we didn't have any of that stuff back then it was
a canvas had to do all the like matrices operations and all that stuff to kind of
you know it felt like you're on an iPad but it actually wasn't on an iPad and
this was iPad 2 by the way so this is a long time ago and so every single time I
got into a job it's like okay hey we need to do a library hey can you work on
a build system so back then there was no grunt, there was no gulp, there was no any of those things.
So I had to hand roll my own JavaScript build system.
And so I always fell into these positions of building tools for developers to be
successful and I've always really enjoyed that region.
So as I went on to say Netflix, I spent 10 years there.
I'd say the majority of my 10 years were building things for developers to use
that they could be successful at their job.
And so I've always really enjoyed that aspect
because your stakeholders
and the people that use your program understand programming
and they're gonna say like, hey, I need this.
And typically the thing that they need, they actually want.
Whereas with people, people want stuff but what they actually need need, they actually want. Whereas with people, people want stuff,
but what they actually need versus what they actually want
often are kind of like this weird separation.
People, you know, that's like the old Henry Ford quote,
"'I just want a faster horse.'"
And he's like,
"'No, what you actually want is a car.'"
And so it's like this, like,
you have to play this game of trying to really figure it out
whereas developers, it's like,
"'I know, you know what I'm doing.
"'I know what you want.
"'Let's figure it out together.'" That's actually that gives you a really nice
big picture view of programming in general so I love the idea of just kind
of starting at the interface like you need to pinch and all that kind of stuff
and then figure out the entire thing that requires to make that happen
including maybe the side quest tooling how to make it more productive and
efficient all that kind of stuff.
So the entirety, the entirety of the thing,
that's really cool.
Okay, so that would be full stack.
By the general definition of full stack,
meaning like versus like systems,
like starting at the bottom and trying to optimize
a certain kind of specific thing
without seeing the big picture of like
what the resulting interface
would look like.
And a lot of people in web programming, they never go beyond the front end of how the thing
looks.
They kind of always assume there'll be some grunt in the shadows in the darkness of the
basement that will implement the backend.
Some Guilfoyle out there will be doing the back end. Yeah, like I like to call myself a generalist
just to kind of give some ideas is,
at one point at Netflix, I built the WebSocket connection.
So for TVs, how WebSocket works is code I just wrote.
And so I built the framing thing.
And before that, I was doing stuff with memory.
And before that, I built the UI for a tool.
It's just like, I can just do the thing.
You just tell me the thing to do
and I'll just go do the thing.
I don't worry too, I don't try to get super good
at one specific activity.
Like I don't wanna be a Kubernetes engineer
who's the world's greatest deployer.
But if I had to go learn Kubernetes,
I'd go learn it and learn how to deploy some things
and then hopefully move on to like the next thing,
if that makes sense.
I posted about the fact that I'm talking to you on Reddit and there's a lot of wonderful
questions.
Somebody mentioned that I should ask you about DevOps.
Can you explain what DevOps is?
Is it a kind of special ops of programmers?
Is it CoTM6 of developers?
What's DevOps?
Can you define what, are you a DevOps engineer?
Well people keep telling me DevOps isn't real.
There's actually, you want platform engineers, cloud engineers, infer engineers. I just often think I think the easiest way if we're doing like just kind of like
some basic nomenclature, it's just DevOps are the people that make sure that when you launch a
service and all that, it doesn't just disappear, right? It's all the kind of backbone of being
able to operate something at scale. Like you really don't if you think about if you're just
writing a mom and pa like website,
people that do PHP, that are doing WordPress and all that,
they're gonna build something, they're gonna hand it off to,
I don't know, Leno, DigitalOcean, some company,
they don't really need a really complicated build,
deployment, all this, it's just someone with a simple website
so they can sell their goods.
And so they don't really need that.
And so that's kind of how I think of a DevOps
is when things need to scale,
that's kind of the person you hire.
Yeah, those people are actually amazing.
Yeah.
Of the time I spent at Google, it's like,
oh yeah, yeah, there's all these
fancy machine learning people,
but the folks that are running the compute,
the infrastructure, basically that make sure
the shit doesn't go down.
They're like wizards and they're essential.
Very incredible, like vertical of job.
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.
You could also say that's like an SRE, right?
Site Reliability Engineer, whatever, you know,
the ones that wear the bomber jackets at Google.
And so when we say DevOps, I think people get very particular about terms
specifically in this category.
They're like, well, actually you're mentioning infrastructure engineer versus,
you know, versus site reliability engineers.
Just like, okay, yes, I hear you.
But generally when someone thinks DevOps, they think somebody that
manages the servers and their life cycles and the reliability.
There's DevOps.
Is it real?
I'm not sure.
Okay.
Did Vercell kill DevOps?
Question mark?
Question mark.
Wow, that's, you're almost a journalist. That's a headline.
Let's go back to the beginning.
All right.
Baby Prime. So you mentioned Netflix. You've...
I worked at Netflix, by the way.
For people who don't know who the Primogen is,
he mentions the fact that he has been very successful
and has worked at Netflix,
and basically every other sentence.
Correct.
Almost as much as I mentioned Neovim.
Oh, great.
Tell me more about Neovim.
No, please don't.
So, Baby Prime, at the very beginning, you've
had one hell of a life and I think it's inspiring to a lot of people. You've
you've gone through a lot of painful low points including meth addiction, loss 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
to get into programming and just to find success in life.
So maybe I would love it if you laid out
just your whole life journey from the beginning.
So I guess if we're gonna start with this whole journey,
I think it's probably best to start
when I was about four or five years old.
That was the first time I was ever exposed to pornography
and it's kind of just earwormed me for a large portion of my life.
And so I don't think 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. And so it's
just like every single day, even at that young. And so it's just a very mind consuming, time consuming, thought consuming thing
that kind of plagued me from a starting at a very young age.
When I was seven years old, my dad died.
Um, that was kind of a really tough period of life.
I, I still think about this time that I went over to China and there's kind of some rules
that we were given and one of the rules was just like,
hey, don't talk about God.
And if you do use the word dad instead.
And I was just like, okay, dad.
It was like the first time I said that word
in like 17 years or some long time.
It was like so weird to say that phrase.
And I was just like, oh, that was just the strangest thing I've ever said in my entire lifetime. It just felt so weird to say that phrase. And I was just like, oh, that was just the strangest thing
I've ever said in my entire lifetime.
It just felt so weird.
So kind of rewind as I got older,
obviously was very good at computers,
good at accessing porn, of course,
played video games on the internet.
Fun, fun kind of like side quest story.
I think the guy's name is Lord Talk on twitch I can't quite remember his name, but he built this game called grail
graal and grail online 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 and that's how I discovered how to
Program is I looked at these symbols and figured out what they meant and And then I was able to make things happen in the game.
And that was like a, that's my introduction into programming.
So thank you, that guy, whatever your Twitch name was, but.
All right, so keep on going.
As I got older, I was super bad socially.
I was not a very great social person.
High school was brutal.
Got made fun of a lot.
I wouldn't say I had a great time during high school.
Definitely felt very out of place or offset
or maybe misplaced, if you will.
I'm not sure what the right word is.
And so of course, at that point,
I just always wanted to be accepted to fit in and all that.
I did forget to say one side story after my dad died.
My brother, older brother, he got in, I started getting into drugs and along with that he exposed me to
pot so at eight years old I was smoking some marijuana for a while there until like maybe
11 or 12 and took a break and then again did a lot of that as I got a little bit older
but so I kind of got a lot of these exposures fairly young.
16, 15 through 18, a lot of drinking and all that.
When I graduated or as I was graduating high school, it's just like, I had such
sadness, if you will, I was very sad about how everything went.
Tried to commit suicide.
Um, obviously it was a very poor attempt and I'm still here today. I'm very happy about that aspect.
I'm glad that I didn't follow through with anything.
Had to go to the hospital and all that.
And when I was done, I just still remember kind of coming out of the hospital.
And at like that moment, it's kind of like something broken you.
Have you ever read the book, uh, wheel of time?
It's 14,000 pages or something like that, but right around page 12,000, Rand
has to intentionally kill a girl,
the main character, and that's like the moment he breaks and he gets into like hard Rand,
Quindalaur Rand, if you will, for those that know Wheel of Time will appreciate all that.
For those that don't, very confusing, I understand, not the Amazon movie show, not that,
not that Wheel of Time. So now that we kind of go back onto it, at that point, it's just like
something kind of broken me, and it's just like, I just didn't care anymore.
So all the kind of social awkwardness, if you will, all that kind of just died away with me,
but also, so did everything else. And so I started using a bunch of drugs, LSD, mushrooms,
math, did a bunch of math, did a bunch of that stuff, and then went off to college
and continued to do a bunch of stuff.
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.
And so it's just like that whole period of life
was just kind of marked by just poor decisions.
And then sometime when I was about 19 years old, marked by just poor decisions.
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.
And it's just like, I kind of had this choice,
like Frodo on a razor where it's like,
if I go either way, I'm gonna fall off
and I need to change my life.
You just, you get to make the choice now.
Do you want to do that or not?
And so I remember going, okay, I do want to change my life.
Like I don't like this experience.
I don't like what I'm living.
I am still very sad.
I still feel very desperate.
I still feel all those things.
I'm just like pretending to be this other person.
And then I just went to sleep that night.
Nothing changed in my life.
Everything was still the way it was.
I woke up the next day, the same person,
and I was just like,
oh, that's just like such a strange, weird kind of experience.
And I just went and bought my date.
And then I remember, I think that evening,
I looked at porn, and all of a sudden I just had a conscious.
I just like this deep, profound like shame.
And I was like, I've never felt shame in my life.
Right, like I have no idea what's happening now.
And then all of a sudden when I smoked pot,
I just felt deep shame.
And when I hurt somebody or did something wrong,
also it's just like I got a conscious from that evening.
That's what kind of my gift was, if you will.
And it's just like at that point,
I didn't even have a choice.
I had to change my
life because for whatever reason, I've kind of been changed in a moment. And so from there,
I started actually trying in school. I always kind of joke around that I got 2.14 in high school.
I had a teacher hand write me a note saying I was the worst student she's ever had,
all that kind of stuff. I was not a really great student.
And then in that moment, it's just like,
okay, now life's changed and I start trying to learn.
And I try to become a good student.
And it turns out it's really hard.
Like I was really bad.
I still got Cs.
I went and took pre-calculus and failed pre-calculus.
And I'm like, oh my gosh, I used to be the smart math guy.
And now I'm kind of the idiot failing.
And so it's like, I'm just questioning myself and all that and I spend hours upon hours in
In like a studying math learning center, and then just at some point years into this journey
I'm like a year and a half into this journey at this point
It's just like something clicks and I go from being the worst person to just immediately becoming the best everything after that
It's just I don't know what happened all of a sudden
I was the best person at math. I started going into my computer science classes. I just really got everything
It's just like everything at just years after trying just all of a sudden became easier
And I'm not sure if it happened over the course of weeks or when the easier started
But it was just first predicated by just a huge amount of difficulty.
And then this is kind of where I started really desiring
and loving the process of learning,
was when things started getting easier
after all those years.
Because I just was motivated by this desire
to do something, not thinking it was gonna get any easier.
And then all of a sudden it just started getting easier
and it was great.
And that's kind of really where I guess I started having the biggest parts of my life change.
At that point I started really, really, really wanting to never look at porn again
because every single time there was such shame and I really wanted to stop.
And that was by far the hardest addiction to quit.
Like smoking cigarettes was also a really hard addiction to quit.
Shockingly hard addiction to quit.
But porn by far was just the worst of them all.
And then I think about 22, I was finally done with all kind of addictions, if you will.
And then for a year, I just I just worked in all that. And I think right around maybe
as 21 and three quarters, somewhere in that range, I'm not really sure where I stopped
all the addictions part, but or at least the outwardly addictions.
And then at some point, six months later, a year later,
met my beautiful wife,
things just started falling more and more into place.
I loved more and more work.
I loved programming.
I started programming like 12 hours a day.
I watched the social network movie,
and after that I was just like, I'm doing a startup.
And so like that night I started my first startup
and I was just like, so, it was in PHP by the way.
PHP 5.2 or something like that.
It was great, great times.
And I was just so motivated to do that.
And I would just program for,
sometimes I program for 24, 36 hours straight.
And I just like nonstop, just that's all I wanted to do
at all points.
I think my wife got a little sick of me.
I wouldn't, she was be like, can you drop me off at school? And I'd be like, no, I'm
programming. I was not a very nice, you know, I didn't think through things that
well. And I was just so into it and I just did it nonstop. And that's kind of
like how I became me is that story, if that makes sense.
Let's try to reverse engineer some of the pain and some of the triumph. You made
it sound easy at times. Let's try to understand it better.
Maybe when you were seven years old,
what do you think about the pain you've experienced there,
losing your dad?
What do you think, what kind of impact did it have on you?
What kind of memories do you have of that time?
The best way I can kind of put it is that
I just never knew what a dad was.
I was young enough that I could kind of maybe repress or just even have the capability of remembering things long term because I
know most people don't remember a lot from when they're young. And so I'm not exactly
sure 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.
That's what my brother was and he fell into drug addiction and never got back out.
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.
What impact did that have on your evolution on your life?
Sort of having that longing.
I think that's why I was so bad socially in the sense that I was
looking for approval, right? Like something I needed approval. I think a
lot of people kind of desire that approval or that loving figure and I
just didn't have that. And so I think I just looked for it in everything else.
Right? Like if I had to psychoanalyze my actions during the time, it's not like
I was actively thinking that. But yeah, I just always wanted something to fill in whatever that was I felt.
I think a lot of people listening to this will resonate with your experience in high school.
Like being the outsider, being picked on, struggling through a lot of different complexities at home.
What advice would you give to them? The worst part about high school is that you're surrounded by a bunch of people your age and it feels eternal
Yeah, 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
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 gonna be some of the least consequential
people in your life.
Which is very shocking to kind of think about,
especially if you're in it right now.
Right now, they are the, everything that you're experiencing
is your whole reality.
And then one day, it all stops.
And then real life starts to begin.
And it's just, that's such a shocking thing.
And if I could just tell myself that,
maybe I would have been a bunch of different person.
That's so beautifully put.
I mean, it's like a trial run.
You know, like at the beginning of video games,
there's a little tutorial, that's what that is.
And actually that should be a chance to try shit out,
to take risks because real life will begin
where there is more consequences after that.
Here you can, if you like a girl, ask her out, try, try shit.
If you get picked on, hit that guy back, try shit out.
I'm not gonna condone punching another person.
I will, beat the shit out of him.
And take some jujitsu and learn how to take him down.
And then and then that
girl that rejected you will be like maybe i'll give that guy a second chance be a bad motherfucker
it's a chance to try stuff out this is a very motivational speech for kicking ass it is true
there 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 high school would be like. But as a guy, there's definitely a lot of like physical requirements in high school.
There's a lot of physical measurement, at least where I grew up.
I think that might not be true in all high schools, but if they're filled with boys,
it's probably true.
And so 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.
But just remembering that this is such a short,
tiny moment in your life, it's just like a huge help.
I mean, the way you phrased it is exactly right.
That's what it feels like, that these are the people
that will be with you for the rest of your life
And this is the whole world 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
And that that carries a tremendous amount of weight.
It's just why psychologically it's extremely difficult.
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. It's very, very difficult.
Yeah. I think it's even, I, you know, people always say back in my day, you know, blah,
blah, blah. 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. I mean, this is a cool guy. This
is not a cool guy. Today, there's a quantification of people. You have 32,514 people following you, you have 12.
People can visually, they can inspect your exact social value on whatever platform you're
on and that has to be just so much harder.
I can imagine that there's a lot of just so much weight to put on that, that it feels
probably way worse and way more damning
to be uncool because you have an exact number
of how uncool you are.
Yeah, the challenge there.
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.
And you need to 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.
That's a great way to put it.
I think if anything, high school is really bad
at picking out the cool people.
That like, whatever the system, the hierarchy that forms,
it is such a basic bitch hierarchy.
Like you're good at very generic shit.
That's how you rise.
Your parents bought you an expensive car.
Expensive car, right.
Materialistic shit, yeah, exactly.
It's a greedy search.
See, they didn't have a proper search
So they're just hitting that local optima, but the heurist
I mean even the objective function for that greedy search is just a really shitty one
Yeah
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, so do epic shit and
win the much more exciting, beautiful game of life. So do epic shit and try stuff out.
The weirdos are the ones that are gonna succeed.
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.
Because if you're winning in high school,
you're not being challenged.
You're not self-reflecting, you're not trying shit out.
So there is some degree to being tormented
as long as it doesn't break you.
The porn addiction, that's another powerful one
that I think will probably resonate with a lot of people.
And it's interesting that you say
that's one of the hardest addictions to overcome.
Let me say it this way.
Some addictions have a much bigger societal look
and porn is just not one of them,
which makes it super hard.
None of your friends are gonna cheer you on.
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?
No one's gonna be like, well, not everyone has to quit meth, okay? It's actually a fine, but not everybody, you know, not every, you know, no one makes that argument with meth, right? No one's going to be like, well,
not everyone has to quit meth. Okay. It's actually a fine industry and people who,
you know, are the ones producing it. They're good also, right?
Like no one's going to make that kind of argument. 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. It's like,
you have a, it's a much more difficult one in, in just like that.
So it feels accepted and I think it's also an addiction you can practice
Participating privately and hide it from the world. There's certain addictions
They're harder to hide from the world for prolonged periods of time. Yeah important addiction is probably one
You can just have for many years and then it can deepen that's probably like a serious issue
Boy, am I glad I go out before the internet?
can deepen. That's probably like a serious issue. Boy am I glad I grew up before the internet because this porn is so accessible, so easy to go deep into that addiction. I
mean, what can you speak about what impact it had on your life? Maybe some of the low
points but also how to overcome it.
I'd say as far as impact goes is that you will have such a long and broken look at women
by the very like I can again I'm only speaking from a male's perspective that porn in it's
just like most basic thing is that you use another person for your own desire or your
own want.
It's not something that is deeply needed.
There's no need for porn.
It's purely a want-based activity or a lust,
however you want, whatever word you can fill in there.
And it is purely an objectifying activity.
Like someone else is on display for your own enjoyment.
And so I think you carry this around.
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.
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.
It really devalues humanity just in general
is my perspective of it.
And then it makes people into commodities.
And I don't think people are commodities.
I think everyone has value.
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 maybe you could ask, argue gone wild.
And it's extremely hard to quit, just like you said,
because I can look at porn and then I can go out to lunch.
No one's gonna know, no one's gonna have any ideas. It's a very private, it can be very short session.
It doesn't have to be something that takes,
you can't take acid and go out to lunch, right?
You're gonna be, your whole day
is gonna be a very different day.
And so there's, it's very quick, easy, accessible.
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.
There's the whole dopamine effect.
That's just like you're constantly need
more and more dopamine.
That's why people typically don't just watch
five minutes of porn and call it a day.
That's like, you know, the hundred tab joke
that's always made on the internet.
It's because you, it's just this constant dopamine cycle
you're constantly doing.
And all that stuff is great to say.
And I'm sure statistics and science and all that stuff
is really great arguments for some amount of people.
But for me, it just comes down to like,
is it really a good thing to do?
Like, is it really actually something we want
is to value people in such a profane
or kind of just
like disregarding way. Like I just really think it's just bad for the soul even if
all the stats said it was great for you. I still say it's actually bad. Yeah you
have to look at the long-term big-picture psychological impact it has on your
relationships with human beings in general. That's my, more generally than just porn,
my problem with the quote unquote sort of manosphere is I think sleeping with a bunch of women is great.
Wonderful.
But the problem is making that the primary objective
of your life, similar with porn,
is you devalue one of the most
awesome things, which is intimacy.
That's true for deep friendship,
that's true for relationships.
And I think porn does that in its purest, darkest form,
which is like the thing that matters is the sex,
not the deep connection with another human being.
And I think, again, going back to high school
and the manosphere, the objective function,
if it's to get laid, which helps with status
and confidence and all that is wonderful, 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 romantic partner.
Like that's also fucking awesome.
And both of those are great.
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
who've been together for 15 years.
We have a very, like I can depend on her
in all circumstances.
Whereas if you live that other life,
it sure, it could feel great,
but there's no meaning to it.
There's no actual real value to it.
That's absolutely correct.
I do think that getting laid
can have a tremendous positive impact
on the confidence of a young man.
I think just there's a certain number of sexual partners from which you can collect a tremendous positive impact on the confidence of a young man. 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,
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
with whom you can be deeply intimate with.
Sometimes the nervousness around
this societally constructed value in getting laid
can cloud your judgment.
And if you just release that by getting laid
a bunch of times, then you could see the world clearly
that getting laid is not nearly as important,
as you said, as finding the right human.
Including, I should put in that pile,
not just a romantic partner, but friendships,
deep lasting friendships.
I mean, I think you're right that our society
puts a lot of emphasis on getting laid,
and I'm sure that's true among any group of males
throughout any point in history. I'm sure that's a very common joke that's never actually like never stopped at any point 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 Jim Carrey I hope that everyone can get rich so they realize that
money solves none of your problems. Yeah like the realization that this thing that society told you is hyper important is actually not the
important part. Like it is a very important, it's a great sign that your relationship is healthy.
Like if me and my wife were to have no sex at all for months on end, like something's gone wrong,
which means what, you know, we are no longer like on the same plane, some, you know, but it's not
also a good identifier. Just because you're having a lot of sex doesn't mean you're having a good relationship
and so it's kind of like a unique kind of
Forget the the right term here
But it's a unique way at looking at the problems and our society puts so much emphasis and maybe that's why porn was so hard
To quit but I my guess is just all the dopamine effect that it is
porn was so hard to quit, but my guess is just all the dopamine effect that it is. But for me, the most important part and the thing that actually has real reward is having
just my wife.
I do not look at, I desperately try not to look at any other woman.
I'm hopefully not going to get caught Mark Zuckerberged at the White House like that.
I don't look at porn.
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. And that builds a much more deeply, I would argue it a very deep relationship because the
trust is that much bigger. I think the deepness of the relationship is probably proportional to
the trust you have in each other. It's very hard to have a deep relationship with no trust. Yeah, and 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.
And that vulnerability when reciprocated
builds this really strong trust
and it's a beautiful thing.
Yeah. I personally just given my position, that's even more challenging, you know, being
vulnerable with the world and there's a bunch of people out there that want to hurt you
for it. And, um, but I think it's worth, well anyway, to be vulnerable.
It's always worth it. The risk is always worth it in some sense, like obviously everyone has a different
kind of life they have to filter through their actions
with, right, 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.
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.
Or second most, I'd argue that one night with God
would probably be the most impactful thing
that led to everything else, but then the wife
would be the next most impactful.
I mean, I'm cleaning up after myself and stuff now.
Changed man, I'm a changed man.
Can we try to reverse engineer that moment
of you finding God?
What is it, at 19?
Because it feels like that was a big leap for you
to escape the pain, to escape the addiction,
or the beginning of that journey.
What do you think happened there?
I think it just felt like I just,
there was no line that I wasn't willing to cross. Like everything was fine and just like it
just all sudden just in that moment it's just like I had a I guess some sort of
deep fear and understanding like I am going down a path. Is this really the
path you want to go down? And I don't know what the result of that path would
be or anything like that. I don't tend to go down. And I don't know what the result of that path would be
or anything like that.
I don't tend to speculate on things I don't understand.
I just know that in that moment, I had the option
and I just chose, I didn't want it anymore, right?
It's kind of mixed in this whole thing
where it's just like, I had no value.
I wrapped up all my meaning or value
in having sex or getting laid.
I had, you know, all that stuff,
all the things we just talked about,
like that was where all my worth was.
And that is just such a, like a terrible place
to have your worth.
And it's just, I kind of all came to a point
and I can't tell you the day of the week.
I can't tell you anything other than it was nighttime.
And I was in South Hedges
in Montana State University, go Bobcats.
Rew! That's about, yeah, that's the sign that we do at football games. Don't worry about it. and I was in South Hedges in Montana State University, go Bobcats, rarrow.
That's about, yeah, that's the sign that we do at football games, don't worry about it.
But like, that's all I can really,
that's all I can really tell you.
Cause the night, that night was no more
or less special than some other night.
It's just the specialness was,
I got at least a chance to make a choice.
Cause you find in that advice that you can give to others
who are probably, there's probably just an endless
amount of people that are struggling with porn addiction,
not young people.
What advice could you give to them?
How to overcome it?
For me to overcome it, I had to realize
that I was taking something away from my future wife.
Some people would be like, oh, well, you just, you know, once you get a girlfriend, then you can stop.
And it's just like, no, because you never stopped the problem.
You don't stop a problem by replacing it.
And so I didn't have a girlfriend, didn't have all that.
I just realized that I was truly taking away from something from my future wife.
And I didn't even know my current wife at that time.
I didn't, she was not in the picture. I'm not even sure if't even know my current wife at that time. She was not in the picture.
I'm not even sure if she was at Montana State University
at that point.
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.
I finally like got it.
And that's really where things change.
So if the ability to say like,
what's gonna help you change and all that,
I don't know if there's,
I don't think there's silver bullets, right?
If someone could offer you a drug,
I forget who says this phrase,
but there's this really interesting phrase
that goes something like,
he was a very depressed man
and he was struggling with suicide
and he kind of writes about this in this memoir.
And he goes to these doctors
and the doctors effectively say,
well, here's antidepressants, it's gonna help you.
And he says that, well, the problem was,
is that scientists told me that I could just touch my brain
and make myself happy.
And that's it, like they could reach in,
they could configure some stuff and I'll be happy.
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.
I could look out, see the rain.
It would fall down.
It'd be silvery.
It'd be beautiful, but all the crop would still die.
Cause there's not actually any rain.
I had to discover how to be happy myself.
And so for me, it's like the reason why I looked at porn is because I was unhappy.
I was trying to find meaning.
I was trying to find value in something, right?
Something that was supposed to finally give me this ultimate satisfaction.
And it just does not, no matter how hard and no matter how much you think it will, there
is no escapade. There is no pornography that will ever give you that satisfaction you're
looking for. That's the reason why it's addicting. That's kind of like my call to why you shouldn't
do it, but how to get out of it. I only got out of it by realizing.
I think that's really brilliantly described.
You knew that this thing you're doing
is preventing you from finding your future wife.
And future wife could mean more, even broadly,
this path to a flourishing, to a beautiful life.
I think there's a lot of choices we make
that are just preventing us from opening the door
to whatever future they think.
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.
And you need to construct your life in a way
where you have the chance to travel down those paths.
And there's a bunch of addictions,
there's a bunch of choices that prevent us
from traveling down those paths.
So just believe that you're gonna 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.
It's a leap of faith that if you let go of porn,
that a better life is waiting for you on the other end.
Yeah.
I definitely can't say how long it will take a better life,
but for me, there's no way in the universe
I could have had the relationship that I have
without first making those steps.
Cause I couldn't value,
like I couldn't value my wife in the way that
was proper for who she was.
I would have valued her through the index
or the lens that I currently was looking through.
Gotta ask.
So I've never done math. I've never
done math. That was a great segue by the way. Oh man I don't know what the fuck I'm
doing honestly with this interviewing thing. But yeah, math and LSD. You know I
did ayahuasca. I did shrooms a bunch of times. Oh and this topic I should say
that like there's a lot of on. Oh, and this topic, I should say that like,
there's a lot of, on Twitter and in the tech community
in general, sort of people speaking negatively
about Ayahuasca, and some positively.
I don't, I think it's such a roll of the dice.
Like, I had incredible experiences,
but I don't think I wanna recommend it to anyone.
It's a risk, it's a serious risk. It really is a roll of the dice. You could meet your demons and
they could destroy you or you can meet your demons and let go of them or you
could have experiences like I did which is like never apparently I don't have
demons. I'm pretty sure there's somewhere in the basement but I've never met them
on drugs. I'm always really happy. I'm a happy drunk.
I'm a super happy ayahuasca just full of love. I don't understand. I don't understand where the
demons are, but that's my biochemistry, whatever that is. And for some others,
you know, one trip could be amazing and the next one could just completely destroy you and wreck
your life. So I don't know what the recommendation from that is. Maybe avoid it, but then all of us die and life, you know, I tend to lean
into adventure. But drugs is a, it's, if you fuck with the biochemistry of your brain,
you can really destroy yourself in a way that it's gonna torment you. So I would generally recommend that people avoid drugs altogether,
probably, unless you're crazy motherfucker.
Hunter S. Thompson.
What an intro to this topic.
I'm sorry, what's meth like?
That's a great intro.
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.
And there is no guarantee.
There's no, you know, just because you buy the product
doesn't mean you're gonna have a good time, right?
There's a lot of, personally, I find that stuff
to be very, I believe in the spiritual realm, right?
Like I believe demons and angels exist.
I believe God exists.
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.
Now, some people will be like, oh, it's just a bunch of chemicals in your brain.
They all get mixed up.
LSD just takes all of your pathways and they all go, you know, they all get
kind of scrambled up in your brain.
It's just like, yeah, the experiences are profound.
I had some really bizarre, very cool, very awful.
I've had all the experiences in them all.
I can just tell you that I, like,
I personally always say the same thing.
It's like choices that I made, I can never take back.
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.
But if you have not had that experience,
I'm on your team, or at least partially on your team,
maybe more severely,
I don't think you need those experiences.
I don't think they're gonna,
you don't have to put yourself through that
to make good decisions or to realize that
people have value, right?
You can, you don't have to do that.
So as far as like, what is meth like?
Meth is like, if you've ever done cocaine,
cocaine starts off with like a 15 minute dance party, just so intense.
It's like so great.
And then it just followed up on like, like a five hour, like just feeling wiggly.
Right.
I don't know how else to describe it.
A 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.
Yeah.
So did a lot of skateboarding, did a lot of, you know, running around.
Would you say it's a pleasant feeling or is it more like an escape from the
loneliness of life?
Well, is it pleasant or negative in the actual moment?
Not the consequences, but in the moment.
So, I mean, this is just like a very interesting kind of area,
which is that not, universally you can't say that.
Often you'll find that there's kind of these two groups
of drug addicts.
There's those that like the opioids
and those that like the uppers.
They typically don't, like there's very few people in the drug world that do both
They're really just kind of like find their side and they go for it
So will is meth a thing that everybody's gonna enjoy wolf categorically as you can see and just like how people experience drug addiction
No
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. You're kind of like always in the moment. So 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 kind of high energy, you're kind of like always in the moment. So it's just
like, you're in the moment, but it's just like, oh, I'm in the moment. You know, like, it's like,
everything's just so intense, you know, like, you just want to really be in the moment. And so it's
just experiencing that constantly. And so was that great? 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.
I forget the exact way.
She's probably super disappointed that I messed this up,
but it's like, you could perceive those two experiences
in very different lights.
Some people get in front of a crowd,
it's like thrilling.
Some people get in front of it
and it's just like the worst experience of their lifetime.
They would actually literally rather die, which is a crazy thing to think about,
than stand up and speak. And so for me, meth was that kind of thrilling side.
But at the same time, it still didn't like quite give me that thing I wanted.
Whatever I was looking for, I'd use it to help try to get that thing I want, but it was never giving me that thing I wanted, whatever I was looking for. I'd use it to help try to get that thing I want,
but it was never giving me that thing I wanted.
Yeah, for me, I've had all really wonderful experiences.
Do not recommend them, but like with Shroom-
That's like a YouTube policy, by the way,
that you have to say, by the way,
don't whatever you do, do not do illegal activity.
But I had great experiences,
but don't have whatever you do, don't do it.
Mr. The Primogen, I have no master.
I don't have YouTube or whatever.
I'll say whatever the fuck I want.
I'm just...
But seriously, YouTube.
No, I don't give a shit about YouTube or anybody, 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.
I think the much more powerful message is that life is awesome even without that.
That's something I definitely experiment with on the alcohol side.
So for me, you know, I'm an introvert.
I'm afraid of the world.
Social interaction fills me with anxiety.
Alcohol is definitely a thing that helps with that sometimes.
But I think honestly, like it's not even the alcohol.
It's like having to do something while a person is talking to me.
I could just like drink a liquid.
Yeah.
There's like a social thing with a beer.
It's like, yeah, uh-huh.
Yeah, we're having fun.
And I think it's, it worked, for me, it works the same as,
if the liquid actually looks like alcohol,
it does the same purpose often, because like alcohol,
like if you have a whiskey or a beer looking thing,
it kinda sends a signal that we should be having fun.
So we're socializing, right?
We're fucking getting crazy.
And then that means you don't actually need the alcohol.
You can get fucking crazy without the alcohol substance.
But there is some kind of like social signaling
that happens when you have a drink in your hand.
So I've been to get togettogethers where I'm not drinking but just doing like a fake drink
situation and I can also have fun. So I've been, but that said you know
traveling across the world there are times when you have to be able to don a
bottle of vodka that's very essential for the for my line of work but but
that's that's sort of that's almost like a cultural experience versus a necessary component of a successful
social interaction and one that brings you happiness.
So not drinking, I think you can have fun
and not drink too.
So all of this, man, I'm so careful saying drugs
have had a good effect on my life
because I think for most people,
no, for majority of people,
they will in the long term have a negative effect.
So I think if you were to choose one or the other,
just no drugs and no drinking
means one day you can be the president
of the United States, kids.
And I should say oh man
Die coke is great. That's his funniest line, which is you would hate me if I drank Which I just like it took me that tickles me like to no end just like oh my gosh
That is such a funny line self-awareness and humor is wonderful there
But yeah
I am on your team like all of the reasons why I used drugs and all that was a form, it's some level of escape ism.
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.
It's like trying to find a meaning in your job.
You can find satisfaction in what you do.
Like that is a very good thing.
You can find satisfaction and be happy with what you've created.
You can be, you know, thrilled by the experience, but you cannot find, I doubt you can find purpose.
Maybe some people in specific jobs, like this obviously have very broad strokes I'm painting
with.
Like if you're an EMT and you save someone's life, maybe there can be purpose in that whole
experience, right?
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, like you cannot find
that thing you're looking for,
but they are a very great distraction.
And then at some point,
that distraction comes with a heavy cost.
I think Dr. Faust would probably know the best
about the heavy costs,
but it's just you're making one trade for another.
And at some point the bill comes due
and that bill can be very, very large.
The other moment you mentioned
that I think is really inspiring is that,
you failed pre-calculus, you really struggled in school.
Like you realized that school was really hard.
And then eventually you're able to sort of persevere.
And I don't know, break through that wall of struggle.
Can you, by way of advice, figure out what happened
and what kind of advice you can give
to people who are struggling?
Yeah, I'll paint it in kind of more clear picture,
a very fast speed run of it,
is that I took pre-calculus, failed.
I took pre-calculus again, failed.
Took pre-calculus again and got a C.
So I took it three times.
Then I took calc over the summer. So calc one. In that one,
at the end, the final, the final was a two hour final. I finished it in 30 minutes and that's the
highest score in all of the school. And I proceeded to be the highest score in all calculus and
Diffie Q. I was the only person out of 400 people to finish the Diffie Q final. And I got the highest
grade. And so I was like, I got really good.
So I somehow went from really bad to really good.
And so my only, the thing that I did is that I had to win.
It was not a option.
It was not like, oh, you know, this would be really great.
It's like, I will not graduate.
I will not finish my stuff if I cannot do this.
And so every single day I got up,
I went to my, what, however many hour
class it was, right after that, I went straight to the math learning center, did those problems.
When I got home, I just got the book and it had the odd answers in the back. And I would
try to walk through the problems over and over and over and over again until I absolutely
got it. And it just became this thing where I was just, I just simple rote memory took
over and the ability to just effectively have the times table, but for calculus all stuck And it just became this thing where it's just, I just simple rote memory took over
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-McClaren series,
like all those things kind of just over and over
and over and over again.
Eventually they became easy.
They became very easy.
It's just that I had to cram it in there.
And some people, you know, you hear these stories where they barely show up to class and they get A's.
I've never been that person.
I've always been the person that has to sit down, read through everything.
And I'm bad at abstract concepts.
I like the concrete into the abstract, not the abstract into the concrete.
Very bad at talking about things theoretically then trying to apply them.
But if I can do it once literally,
then it's really easy for me to go into the abstract. And so it's just like for me, it just, I had, there's no substitute for the hours.
So if you, if I were to give advice, it's just that you have to have time in the saddle. Hour
after hour will make you slowly better. And at first it's crushing, it's defeating, and it's not
fun because you were bad at it.
But then at some point, you're just not bad at it if you can just do it long enough.
And you'll start getting okay at it.
And then at some point you might even get good at it.
And when you get good at something, it feels amazing.
There's like an exploratory thing.
Like if you've ever played a musical instrument, you stop having to think about all the little
teeny things you have to do to be able to play something
correctly and you start thinking about how you can explore that space. It's like a completely
different problem. Same with programming. Programming has an identical kind of feel to it.
It's just like you'll cross that barrier and it becomes magical as opposed to a chore.
Yeah, once you cross that barrier, somehow other things become easier.
But then if you want to have a truly successful life, then you cross that barrier, somehow other things become easier.
But then if you wanna have a truly successful life, then you find the next barrier.
Yeah.
The next barrier.
Yeah, I've always been the same.
Everything has come really hard.
Yeah, I do not, I've had no free lunches.
Everything's just been a lot of pain and struggle.
I think somebody said that on this topic
that you think work smarter not harder is a phrase that you dislike
Yeah, but he on reddit told me that I don't just dislike it. I hate that phrase. Okay, tell me tell me tell me about your hatred
How do you feel?
The reason why I dislike that is that there is a kind of a hidden suggestion there,
which is that you already know what smarter is. So just do that. That actually things should be easy.
You should just not have to like try that hard. You should just do the quick, easy, obvious path.
And boom, it's done. It's like, I've never experienced that in anything I've done.
Everything is actually really hard. And most of the time, I don't even know what I'm done. Everything is actually really hard and most of the time I don't even know what I'm doing. So therefore I don't even know what smart looks like. And so
for me the only way I can learn how to work smart is by working very very hard
and knowing that there's no shortcuts. And then when I finally figure out what
smart is, when I work smart and work hard, it is that much better. I think
there's a deep profound truth to that.
There's a lot of these phrases
that just drive me nuts in our society.
But that one is, sorry, that one is really accepted.
If we can just linger on it,
because it really bothers me as well.
So one, which is a really nice thing you said,
the presumption there is things should be easy,
and you're a failure if you don't see the easy path.
That's kind of the implied thing.
Just work smart, dog.
Why are you putting in all those hours?
And so it makes a lot of people that struggle
feel like they're a failure.
Because I don't see it.
And then the choice to have, well, I'll just go with the,
I'll just be lazy, and then maybe the profound truth
will come to me somehow.
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.
The annoying thing about those great engineers
is then looking back, they forget the hard work
because they remember all the joy they now are experiencing
from all the efficient smart work
they've figured out how to do.
They forget, so when they give advice,
they give the stupid fucking advice of,
well, just do it like, you know, the easy way.
And here's the easy way, but no, no, no, no, no, no, no.
You have to put in the hours.
Like, you know, musical instrument is a beautiful example.
Guitar and piano I've put in
I don't know how many thousands of hours.
And now when I'm explaining stuff, jiu-jitsu as well,
I sound like one of those people like,
just relax in jiu-jitsu.
By the way, just relax is a really wonderful thing for physical endeavors like piano and so on.
But to learn how to relax your hand, how to relax your mind, your body, and use the biomechanics of your body to apply the correct kind of leverage and the timing and all that, that takes thousands of hours of learning.
Just to learn how to relax takes a lot of really hard work.
In jiu-jitsu, that takes many months
of getting your ass beat over and over
until you ride the bus home crying,
your ego completely shattered and destroyed,
and then a little element
is figured out late that night or next morning and from the depression there's
this little plant that grows this flower of insight and you use that insight to
then get your ass kicked again all next fucking month and year, and then you grow and grow and grow.
And from that you discover how beautifully simple jujitsu is or judo is
just speaking for myself or piano or guitar. And then yes,
the profound truth or the mastery of a
skill feels simple when you finally arrive to it.
But the path is for most people is going to be a hard one.
I think I should make an addendum to the phrase.
I think the phrase should be work hard, get smart.
Nice, that's a T-shirt.
That's what it should be.
Yeah, agreed.
Okay, that was a tangent of a tangent.
Can I say one more phrase,
cultural phrase that I absolutely hate?
Yes. The journey is better than the destination. Agreed, okay, that was a tangent of a tangent. Can I say one more phrase, cultural phrase that I absolutely hate?
Yes.
The journey is better than the destination.
Right, everyone's heard this, right?
Just take one second to apply what that means.
That means forever, starting from now,
you are only going towards a place that's worse.
Yeah.
Right, like that literally is what it means.
Right, enjoy the journey, celebrate the destination. That's like, that should is what it means. Enjoy the journey, celebrate the destination.
That should be what it would be, but no. People say these phrases are everywhere. There's
these very shallow phrases that have no logical bounds to them. You're just like, why would
the journey ever be better than the destination? Because you're always, I think this might
even be a C.S. Lewis quote, is that C. that CS Lewis was like, no, this is terrible.
The journey is not in fact better than the destination.
I love the demotivational posters.
Progress, moving forward is better than moving backwards,
even if you're still going nowhere.
There's a lot.
I feel that one so much,
being in California for a few years.
That is painful.
Positivity, if it doesn't break you today,
don't worry, it will try again tomorrow.
It's just a lot of really great posters.
I didn't even know this was a thing.
This is a thing.
Oh my gosh, I want that.
Yeah.
Hey, hi, this is the Primogen.
One thing that I forgot to mention in this podcast,
which feels just so foolish to me for forgetting, is just what a big role my mom played in my life.
She had to work 18 hours a day after my dad died.
She really made our house be able to survive.
I always looked up to her and I always thought her amazing.
And she really was the reason why when I decided to get my butt kicked back in gear, she's
just someone who I looked to as like an internal kind of inspiration for me to
continue to keep on going because I really wanted to make her proud and all those years of just high
energy effort I really wanted to make sure that she knew that I was just so dang appreciative for
it. So hey, I just wanted to say thank you, love you mom. For people who don't know, you worked in Netflix. By the way.
By the way.
No, how did you go from there, from the hardship that we mentioned, from the struggle, from
the addictions and so on, to a place where you were working at this incredible engineering
company and building cool shit there?
So tell the Netflix story.
Yeah, so, you know, I kind of alluded to it earlier
that I wanted to do my own startup.
So for, I forget how long it was,
one or two years or two and a half years,
built a startup, PHP, jQuery,
everyone's favorite languages all put together.
You can solve math stuff with jQuery.
So I just was like totally into just nonstop doing that.
This is like the height of Stack Overflow.
I was asking really dumb questions on Stack Overflow, like what is more Pythonic?
And you get a bunch of upvotes and try to steal a bunch of karma away, like all the
fun stuff to do.
Good times and I was just like, so into it breathing and I just breathe it in, breathe
it out.
And that's what I do all day every day.
And so it's just like nonstop building of a startup.
Ultimately that startup failed.
And so I had to go get a real job.
Can you say what the startup was?
It is so wild thinking about it in the past.
Before I tell you what it is,
I wanna tell one quick thing about my dad.
My dad in the early 90s, like 91, 92,
was building kind of like a phone card company where
you'd be able to pre-purchase long-distance minutes. Now if you
remember the 90s and about like what 97, 98, 99, 10, 10, 220, all those different
things down the center, right, like all those companies where you can
pre-purchase long-distance minutes kind of came out and were very very big and
so my dad was like six years early to that notion.
And ultimately his startup failed, but he was just really early to something
that would catch on really, really big specifically in the telecommunication
space, me, as I grew up and did my own startup, I did a startup where
it was text message marketing.
This was in 2010 where you could receive say texts about various
deals, all that kind of stuff.
And of course, 10 years later,
now you don't stop receiving texts
and text message marketing is all the rage.
And so I also, much like my father,
had a startup in the telemarketing space
in which was just like a half decade too early.
So is it fair to say you're almost always ahead of your time
at your visionary of sorts? No, in fact, I am not ahead of my time. I just got, some would say I got unlucky
on that situation, but I did see it was, it seemed so obvious to me at that time when
I was doing it, 80% of phones were dumb phones. Most people had flip phones. When I went and
sold via text is what the name was of that specific product. It was and we had the short code via text too.
So it's pretty, you know, pretty clever.
Right.
Six digits.
When I went out and sold it, I only had a flip phone during that time.
I didn't even have a smartphone, right?
Cause that was, they were kind of untenable for a lot of people.
So it's, you know, it's kind of just wild times to think about.
But then after that, obviously had to get a real job.
We were living in an apartment in, uh, right next to campus, Bozeman, Montana, and the guy below
us must have been on some amount of drugs. He threatened to kill us several times with
just like scream and just loses marbles all the time. Very unhinged man, angry downstairs
man is what we call them. One time my wife had dropped a battery, AA. Okay, so not like a big we're not talking like a B battery or D battery
We're just talking about a double-a drop it pop land on the gun. I'm gonna kill you like crazy, right?
Absolutely unhinged behavior down there. So I had to go get a real job. We need to move out of there
We're gonna start our life
And so I worked at a small place schedule ISTE which I kind of talked about the boredom there
Got to go to a place called Web Filings
where I'm working just tons and tons of hours
during all that time.
I'm still trying to figure out startups.
Did one where you could pre-wish your friend's birthday
messages and then it would automatically send it
via Facebook beforehand.
We called it Greet Feed.
It was pretty clever.
Nonetheless, that story, say all that story,
because everything that I was doing was exploring,
building, finishing things, working,
learning about corporate life,
learning how to communicate in corporate life,
being able to be successful at a job,
learning about a bunch of kind of technologies
that we're about.
And one of the big technologies during that day,
specifically 2013, was RXJS.
If you remember that one, RXJS,
that's a link
from C sharp kind of ported over to JavaScript and for people don't know I
guess C sharp what is its closest neighbor Java Java like they obviously
just took Java and ripped it off at one point yeah but now it's such a dynamic
interesting language that it seems like it could be a really cool like bounds of
practical versus not practical it's just I'm not really into wearing pleated pants and
programming at a Microsoft house so this pleated pants a requirement I think so
okay we'll get back to this can we just get back all right web filings was
that's where I had to do like all the matrix matrices stuff and build systems
and just kind of all that.
And it really pushed me because they also wanted me
to do like 60 hours a week.
It was not very healthy work-life balance.
It was very hard work and kind of like that really hard work
going to cutting edge stuff, really understanding the world,
really made it so that I was able to just be able
to talk about stuff very commandingly,
because you know, we had to build really complex
state machines
for the UI for what we're building.
And so when I went and started getting a LinkedIn
and all that, inevitably just due to the fact
that I've touched all these technologies
and I had some sort of paper trail saying
I've touched these technologies, Microsoft or Microsoft.
Dang it, Lex.
Bleated pants.
Bleated pants reached out.
No, Netflix reached out and said, hey,
like I see you've done RXJS. You know, we do a lot of it. You want to come and interview
with us. And you know, I was always told that you should never reject a kind of like a handwritten
personal invitation to interview. This was way before bots and even the bots were pretty
obvious to tell that were bots. This was a manager at Netflix, Jeff Wagner,
first manager ever.
And he just wrote a really nice note and just like,
hey, I see you're doing a lot of these things.
We really need help with JavaScript.
I would love for you to come interview.
We even using a lot of RxJS if you're interested in that.
And so I was like, all right, you know,
I can come and I'll interview.
And lo and behold, interview went on.
And I called my wife, I think halfway through the interview,
and I was just like, defeated, absolutely crushed.
Because I said, she might remember this, but I said,
we now have to make a decision.
Are we actually gonna move to California or not?
Because I already knew I had the job at that point.
I got just was just knocking them out 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 that point. I got just was just knocking them out 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. I you know all the things there's this thing that people always get
so freaked out about when it comes to interviews and all that. And I luckily
somehow avoided this. I don't get test anxiety. I don't get any of that because
when I go into these situations, my only goal is to show the things I already
know. And so it's like I walked into the situation.
I had been preparing for this 80 hours a week for the last like five years.
So I just walk in and I'm just showing the things I know.
And it was perfectly fitting for Netflix at that time period in the 2013 early JavaScript days on television.
And so it's just awesome.
Just worked out perfectly.
Got hired there.
So where in California
with Netflix this is San Francisco Los Gatos so if you're familiar so classic
symbol people do which is this is San Francisco yeah Oakland San Jose Los
Gatos is just like a little bit yeah kind of little bit below a little bit
south of San Jose same make a contiguous city. Yellowstone's on Montana, Yellowstone's the show.
Yeah, yeah.
Yeah, so is it basically like that,
Kevin Costner riding on a horse?
No.
Were you riding on a horse to campus?
No, no, but I mean, I love those stereotypes.
Actually, I mean, to be completely fair,
when I was 15 years old, I was driving around
on what is now a very busy populated street,
shooting gophers out the window of our car with a 22.
So it's like Montana was a different place at one point
than it is today.
And there's plenty of parts of Montana
that's still very rural,
still kind of more of that old world.
So yeah, a little bit, you know,
you can kind of get whatever you want from Montana.
As far as like culturally goes,
I'm not really sure the best way to put the difference between California and Montana. It's just different expectations. Like one thing
I can really appreciate about California, or at least when I say California, I mean the Silicon
Valley, because obviously LA and the Silicon Valley, very different attitudes, very different
mindsets. You can't really compare one to the other. One thing I can say that's really positive about the Valley is that everybody
is operating on this idea of like trying to build or create something and there's an energy to it
that's like very exciting. Like you meet somebody and they have a startup and they're working on
the startup and it's very exciting and you know there's a lot of negative aspects to that and we
can all agree that our entire life being commercialized has probably not been that great.
But the kind of the experience of being there and everyone's excited to build something,
it's a really cool experience.
Yeah, it's great.
It's really great.
The excitement, the energy.
Yeah.
Montana doesn't have that.
I have an admiration, a romantic admiration for like for the shows like Yellowstone being
out in nature.
It's beautiful.
I like writing.
Somebody also said, Reddit is full of wisdom about you. Some of it could be
fake news, but something about horses and this kind of thing? Like you like
horses? You like riding horses? We have horses on our up. Our neighbor had much
more hilly land and one of their horses broke its legs so they had to put it
down. And so we just said, hey we're on much flatter land. Like you can just have
your horses in our property. And so we just have horses that run around on our
What about milking cows somebody asked about cattle and and cow and so I've only had open
Open cows. So if you don't know how it means girl open means that hey
They've tried to get the cow pregnant the cow did not get pregnant first try. And so they're calling that gene.
They're getting rid of that gene, the cow's gonna now,
or the open cow's gonna now go out to pasture,
pasture for the year,
and then get turned into delicious T-bone steaks
and various things.
And so we would house open cows on our property.
So no, there's no milking of open cows.
Okay, I'm learning.
They'd be very upset if you tried to milk an open cow.
Cause they're not, they're not milking cows, right? You have to get like that cow pregnant.
And then once you get a pregnant, you have to kind of put it into this permanent
state of milking and all that.
And it's a little bit more complicated than say what we did, which was just
cows on eating grass and I didn't have to touch them.
Okay.
Well, that's wonderful.
Reddit is not a great place for wisdom about me.
They're going to give you the craziest answers.
We will return to Reddit time and time again, my friend.
So yeah, you took the leap into Netflix.
So what was that like?
It was, you know, this is one of those things
where when you talk about it,
people love to trivialize this
because it's like, oh, you're taking a leap of faith
by going into a fang company in like 2013 sounds super risky.
My wife was 36 weeks pregnant.
We had to travel to a place where we knew not a soul.
We were about to have our first kid.
We didn't even have a doctor.
If you don't know, having a baby does like kind of, you kind of want a relationship with
a doctor.
There's like a whole thing that goes on there.
So it was kind of, it was a really hard and great experience. So I went to a job in which their culture
deck. So during this time, this is where Netflix still had like kind of that old generation
X feel to it. Their culture deck was higher, fast, fire, fast. You know, it was very in
your face about like, Hey, this is how we operate. You don't meet the standards. We
kick you 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 to a job that's bold in its claims about firing everybody with
a wife that's just about to have a baby.
And so it's like, and I'm from Montana and every Montanans born with a natural dislike
of California.
So there's like all these things kind of flowing into it, it's just gonna be like, wow, this is gonna be,
this is a very intense experience.
And it was hard for sure.
Like it wasn't just some easy, simple experience
that we were just like, oh, I work now at Fang, you know?
We had to kind of work through that.
Having a kid was very difficult.
Our first kid was very difficult.
You know, not having any family around to ever help you
like, you know, took a much larger toll
on my wife than me, for sure.
What was the technical learning curve for you?
You showed up in your plaid pants, like, dressed up.
Yeah.
And what was it, what did you have to learn about the stack?
Because Netflix, I imagine,
is this incredible infrastructure
that has to deliver just a huge amount of data.
I'm just blown away by Netflix, but also like YouTube.
These companies that have to deliver,
like serve a huge amount of like bits.
Netflix has the easiest out of all the companies
Netflix buy, even though we have, you could say,
maybe we have, maybe we beat YouTube in view hours. I'm not sure if we do, but let's just pretend Netflix has the easiest out of all the companies Netflix by even though we have you could say maybe we have maybe we beat YouTube
And view hours, I'm not sure if we do but let's just pretend Netflix has 5x more view hours than then
YouTube whatever it is Netflix has a fundamentally easier problem than all other companies and let's get back to that
I'm first tell you about the stack, but I'll tell you why that has a fundamentally easier problem
All right, so when I first got there
They gave me my PlayStation 3,
my boss said, go learn some code,
come back to me in a couple days
and tell me what you've learned
and then I'm gonna start giving you bugs to fix.
Wait, wait, PlayStation 3, what are you talking about?
Well, I was on the TV team.
I had to go plug in a PlayStation
and start launching programs onto the PlayStation 3
and figure out how to work Netflix on a television device.
Oh, so like you have different kinds of device. Why PlayStation 3?
It's just 2013. That's what you have.
Any device that plug into the TV. Okay, cool.
Not as many TVs had Netflix, let alone what they called their Darwin app,
which is their new application. So if you bought a Vizio earlier that year,
you'd get their older one there. It's called Plus UI. You get their older version.
And so not many had the newer
version. We no longer supported plus, or we never actively developed on plus. We only did stuff on
Darwin. And so I had to learn that whole stack, I the back end or the middle end, the middle layer
between the actual back end and the front end was written in Groovy. And as I went around Groovy is
if you're not familiar with Jenkins, then you've probably never interacted with Groovy. But Groovy is, if you're not familiar with Jenkins, then you've probably never interacted with Groovy. But Groovy is a JVM language. It's a very interesting
language, but here's how it got started at Netflix. Oh, it's Apache. Apache Groovy is a
powerful object-oriented programming language that runs on the Java virtual
machine released in 2007. It has evolved to become a versatile language
that combines both static and dynamic typing capabilities.
All right, so the AI is kind of lying to you.
Groovy is not a powerful, great language.
That statement makes it seem way cooler than it actually is.
You will meet one out of 100 people that have touched Groovy
that said, oh yeah, Groovy's great.
The other 99 will be like,
heavens forbid you ever have to touch that language. Yeah. So, uh, when I got there, nobody, not a single soul at Netflix, there's 40 some engineers
had any idea how Groovy pretty much worked. Somehow people just hacked together these scripts
and put them all on there and it worked. And it was all, this was before there was a Groovy RX
port. We wrote our own version called WX.
It was a nightmare.
Observables, all these things.
I remember one time they told me that,
oh yeah, you know, with RX it's really easy.
You just say what you need to do,
it maps out and boom, boom, boom, boom.
Everything will run multi-thread and all that.
And I was like, oh wow, really?
So all I did was go like observable.sleep1,
because I just wanted to see it sleep and then do the next thing.
And it turns out when a thread sleeps itself, no thread can wake it up. And I just turned off all
of staging because I ran it like 10 times like, oh, it's not responding. Oh, it's not responding.
Oh, now it's not even coming back. Broke all of staging for everybody. So no developer could work
for the rest of the afternoon because I locked up all the instances because it turns out no,
it was in fact not multi-threaded.
Every assumption we've been told is a lie.
No one had any idea what they were doing.
It was a wild time.
And so I just simply naturally gravitated towards that because I'm good at print-def
debugging.
I'm good at doing those things.
So I was like, here, I'll just figure this out here.
I will do this.
So I had to rewrite how we do the data structure on the front end for the TV from what is called
a LoloMo, list of list of movies, into LoloRomo, which is a list of list of recommendation
objects for movie.
Why would we need to do that?
Think about this.
You have two lists.
One has live free, die hard Bruce Willis because you love Bruce Willis.
The other one has live free, die hard because you want tough men doing tough jobs.
Well during those days, we'd only have one way we could show evidence
why you wanted it.
So we couldn't say,
oh, because you liked this other movie,
you'd go to that one and say the same thing.
So we had to kind of add one level of indirection
where we could decorate the video
with the recommendation information.
Okay, so you can abstract away
into the space of recommendation
versus the space of movie direction.
Yeah, so you can't hang it off the video
because obviously then it would be the same for everything
That shows that same video. So 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 were like
How did you how did you write this in groovy?
It was just like well, I read the language reference for a day and then programmed it. Well, what do you mean?
It was a very radical language
Shall we say and so I just simply became the person that knew these things.
They just give me more and more jobs at that.
And so that's kind of how I excelled,
being the person that was willing to do the thing
that no one else was.
Yeah, can you actually speak to the printout debugging?
Like you walk into a system,
and there's a lot of systems in the world like this.
Like Twitter was like this,
when then you went out, when Elon acquired Twitter
and then rolls in and there's this old janky code base
that's just like a giant mess
and you have to basically do print after bugging.
What's the process of going into a code base
and figuring out what the fuck, how does this work,
what are the flaws, what are the assumptions?
You have to reverse engineer what all these other engineers
did in the past and the mess across the space of months and years.
And you have to figure out how all that works
in order to make improvements.
The reason why I've always just been good
at printf debugging,
because one of my first kind of side quest jobs
that I got was writing robots for the government
when I was still at school.
And so I'd kind of do this contractually
for so many hours, so many hours a week.
And my boss, Hunter Lloyd, great professor, by the 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 the code.
Can you write the flash driver, the ethernet driver?
Can you write the planetary pancake motor?
Here's some manuals.
I'm missing some, just figure it out, I'll be back.
So that was government work for me.
So I was like, okay, I'll figure all these things out.
And I figured them all out. And the only way to really get anything out of the machine was to print. And so it's like I had to become really good at printing my way through problems. And so that kind of became this like skill I guess I adopted is that I can just kind of print F to bug my way through a lot of these problems. Obviously, I'm not a game developer, probably a different world, probably should use. I think John Carmack was on here
and talked to how great the debugger is.
Different world.
Cause when I was at Netflix,
there's machines that exist somewhere on AWS.
I'm not logged into them.
I don't even know how to log into them.
I'm not even sure if I have credentials to log into them.
They run once somewhere and I have to figure out
what happened and why it's happening.
So it's like, I'm gonna become,
this is like, this is what I've trained for.
I'm a print FW bugging champion. So it's just, I'm going to become, this is like, this is what I've trained for. I'm a print FW bugging champion.
So it's just like, I could just run through these things really quickly and
figure out why they're happening the way they're happening.
You're a special human.
I think that's an incredible skill set to have to be able to drop in into any
code base, to drop into any situation and do print FW debugging, meaning like,
you know, you're in a dark room and you're feeling around that room to try
to figure out what the room is.
Well, I had the code, so it's's like I can kind of blueprint what's happening. Like I don't understand the services or anything
that's happening, but like you can start guessing pretty quick as to what's going
wrong. Right, but then the print side of that helps you confirm your intuitions,
test your intuitions, and build up more and more information and then you start
to accumulate like this bigger picture
from that, what the edge cases are
that break the system and not.
I mean, I think that just, that kind of space,
that kind of situation is intimidating
for a lot of engineers.
They break down at that point.
I think this really is a powerful thing
to be able to come into a code base.
That's generally a skill set of like, very few of us start from scratch.
Yeah.
And actually, this is the fundamental problem of web development and in general,
where they're like, I don't know what's going on.
I'm going to write my own thing from scratch, right?
As opposed to like, actually doing printout debugging on the
space of languages, on the space of problems, because there's a lot of wisdom and solved
problems already in this code base. It's a much more important skill set to understand,
to learn from the mistakes and the wisdom of the past of the ancestors that came before,
and build on them as opposed to throw it all out and start from scratch.
This is something obviously you see a lot with a JavaScript framework that
comes out and you want every single day.
So I have a very great story about that.
That this is what like, I think has shaped me the most about
my perspective of other devs.
There's this dev and he always just wrote things in just what I thought
was such a bizarre and weird way.
And this had to do with Falcor,
so our data fetching library for Netflix.
This would run on mobile, so I had to write in Objective-C,
it had to run on television and it had to also run on web.
So it ran on everything.
And it was me and one other person who were responsible
for this thing working.
And the request side where we'd had to de-dupe
the information that we already have,
the requests that were pending, and the new data.
So I had to figure all that out
based on what someone's requesting,
and then just only optimally request
the stuff that we don't have.
He wrote it in such a goofy way,
and I'm thinking, man, this guy is just,
what a goofball.
So I delete it all, and I start writing,
and I'm like, look at how much nice of this is. It what a goofball. So I delete it all and I start writing and I'm like,
look at how much nice of this is, it's looking so good.
I'm like, ooh, there's that one edge case.
Okay, I can see why he wrote it this 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,
I literally almost line for line just reproduced
what he already wrote.
It's like slightly different towards my style,
but I just wrote the same code.
I'm like, I'm an idiot
I am the idiot in this situation because it was already a solved problem
I just didn't take the time to learn what he did instead. I relearned what he did by rewriting the entire thing
I think that's the skill set that is extremely important for people to learn. I see that in myself
That's a constant struggle for myself. I
Facing a code base, for example,
but this applies generally in life,
where somebody did a lot of work to do a thing,
you should invest a huge amount of time
and get really good at figuring out what they did,
why they did it, do a lot of printout debugging
to understand what they did.
It's a much more efficient way to understand a problem
deeply than to start from scratch,
even though there's a constant temptation
to start from scratch.
Because starting from scratch is fun,
you do get the puzzle solving, all that kind of stuff.
It's just not going to be the right thing to do.
Usually pain is the right thing to do,
and it is for most people painful
to understand other people's code bases.
I highly recommend starting from scratch if you want to understand a concept.
You don't know how an HTTP server works? Create a TCP socket? Learn how to parse HTTP.
It'll become very easy, and you'll go, this is the reason why whenever I get a request, I have to await the text.
I now understand why the text is, for whatever reason, not there. await the text. I now understand why the text is,
for whatever reason, not there.
I get it, I now understand it.
And so you kind of gain these new perspectives
just by simply parsing something out.
All right, back to the wisdom of Reddit.
Apparently there are memes and legends
about your programming arc in Netflix.
This Falcor system you mentioned, somebody I think it
was Teage, how do you pronounce his name by the way?
Teage.
Teage, okay Teage.
It's TJ would be his name, but we call it Teage or Telescopic Johnson.
Oh wow, so many names.
You know DDoS, Distributed Denial of Service attacks, you apparently were able to accomplish
the simplified version of that of just DOS.
That's a legend.
So you basically broke down the system somehow.
Yeah, yeah, so-
Can you tell the story of that?
I'd be glad to.
So there's this FALCOR.
So there's this FALCOR business, right?
And I kind of,
I did discover the bug before anybody else
and I did report it to security and it was so bad.
It actually got its own name, Repulsive Grizzly Attack, and they even give examples of how
to do it.
Effectively what it means is that there is a request that targets both memory and CPU
and will destroy it.
There you go.
Look at how Netflix, the next one down was the article that was actually written.
I don't get mentioned, which is a little bit upsetting considering I was the one that discovered
it and told everybody how bad it was. Anyways, and had
to write the fix for it, or the first fix. So this is how it works, is that you can
do something pretty similar, I believe, with GraphQL as well. It has the same
kind of danger. Any of these kind of RPC requests as much or as little of the data
as you would like frameworks are vulnerable to this kind of RPC requests as much or as little of the data as you would like frameworks
are vulnerable to this kind of attack. So with FALCOR what you do is you could you give it an array. This an array is called a path and that's the path to the data. But sometimes you don't want
just like you don't want to have to write out I want movie, I want row zero or list zero or row zero
column zero title. I want you know row zero column, description. You don't wanna have to write out all that.
So instead you could just be like,
I want rows zero through 10, columns zero through 10,
titles and descriptions.
So you can write in a very compact, nice little format
and it'll give you all that data.
It'll go to the server, the server will fill that all in
and give it to you.
Oh, dang it.
List three, it only had three videos in it.
So what happens when I try to re-request the data?
Well, I need a way to be able to tell my system
that you'd have requested the data
and there's nothing there.
So this is called like a, call this like a boxed value.
So it's gonna be like type something,
value, there's nothing there.
We've already requested it and there's nothing there.
They call it, you know, it's like a sentinel value,
if you will, a boxed value.
And we have this little special flay we'd pass
called materialize, meaning that when you ask for a path,
we will make sure we fill it out
so we don't actually erase anything.
And at the very end, we'll say, okay,
the thing does, the request you've made
has already been made and there's nothing there.
Well, what happens if I request rows zero through 10,000,
columns through 10,000, one more item through 10,000,
and then a whole bunch of properties,
and then ask it to materialize?
Well, I'm about to go create billions of objects in the JVM
and what happens to the machine?
It stops running.
And then if we try to JSON, even if it could create them all,
we then ask it that JSON serialize, it's not gonna do it.
Or like it's impossible.
And so that was the attack vector is a simple while loop
would have taken down and held down Netflix
for a very long time.
Cause one request would kill one machine on AWS.
And so that means it would just turn it all off.
And this was on the website.
This was on TV.
This was on mobile.
Like this was profound.
And here's the worst part.
It was in production for years.
So we couldn't even roll it back.
There was no like, oh crap,
let's just roll back to two weeks ago
and we'll kind of fix forward and figure out.
No, it's like we could roll back to 2011.
Like that's our option is 2011 and that's it.
So we had to figure out a way forward and all that.
And so it was like,
the amount of problems that would have happened
if someone would have discovered this is unstatable.
Just to be clear, the infrastructure that's
serving the videos would shut down.
Yeah, the UI.
You couldn't perform any actions on the UI.
You surprisingly could still stream video, but you would never be able to get to a video
to stream because every action you would take would be completely shut down.
And so it wasn't a DDoS because you didn't need a bunch of computers to try to overwhelm
the system by making a bunch of requests.
One request, one machine.
If we had 50 machines serving the millions
of requests, it'd only take 50 requests to shut down the entire UI.
Isn't it possible to do DOS or DDoS on basically any software system? Like defending against
all the, you know, closing all those attack vectors is probably really difficult. If you
take any soft, sufficiently complicated software system, there's probably so many ways to overwhelm it.
Yeah, it's, I mean, this is why people use CloudFlare.
I think DHH said it best, which is like,
we have our website and we have a strong bodyguard
on the outside.
So CloudFlare has a bunch of utilities all built in,
because you know, obviously this is why everyone hates
all these Bluetooth devices that connect to the internet, because they just turn into attack vectors where people use those to DOS or DDoS
other sites.
And so you don't need something sophisticated, you just need a bunch of requests to come
in.
And you can take down websites.
And so that's why these fronts are really good at kind of discovering where these problems
are.
But DOS is a bit different, because it doesn't have to be overwhelming by using resources
with a whole bunch of requests.
It really just means simply that there's a denial of service attack. One of them could be there's a regex attack that existed where Cloudflare actually did it to itself and shut itself down,
which is there's a regex expansion attack. Or given the right kind of regex, if you know
someone's running a specific regex, you can actually provide input that is maximally bad.
And that thing goes to like super processing.
It takes 10 seconds to process a single request.
Then you only need to make hundreds of requests
and you shut down the whole service.
It's not like you need some giant machinery
to make one trillion requests.
You only need just some small amount
to completely destroy a service.
And so there's,
the web is an extremely difficult place to do it correct.
This is super fascinating.
I do also wonder how many ultra competent,
what is it, black hat hackers there are
versus sort of the good guys versus the bad guys,
how many bad guys there are and what is the average,
what is the distribution of skill set on the bad guy side that are constantly trying to attack?
I assume there's probably a huge number
of just really simple ones, script kiddies, right?
Just people trying to just do things.
And then there's a huge amount of like social engineering
that just goes in where hacking is done,
not with a computer, but just by, you know,
one of the classic ones,
Kevin Mitnick had this one in his book,
which was you'd call up somebody pretending to be like Charlene we're doing some auditing and
I think your pins out of date on file. Is it two three two three still and they're like no
It's four seven four seven. You're like, oh, thanks Sharon, you know, boom you just hacked them, right? Like the classic people love
Correcting bad information. This is like a standard. So like there's all these ways people hack.
And so my assumption is that there are really great
white hat hackers, there's really great black hat hackers.
But the vulnerability space, the thing is,
is that discovering a vulnerability
and you don't let anyone know,
the white hat hacker still has to make that same discovery.
And that's where I think the real thing is
is that black hat hacking in some sense
has a fundamentally easier job,
or at least a job in which they can take advantage of
for much longer periods of time.
One's the process of discovering who's breaking the system.
The other one's trying to figure out how to break the system.
And it seems like most software is held together
by toothpicks and glue.
And there is a lot of dangers in every piece and also the social engineering aspect
That's a real attack vector. I think that's the attack vector that will do in the long term the most damage in the world
Especially as AI tooling becomes easier and easier to convince people at scale
So do that kind of Graham email grandma?
I think that's a really serious attack vector,
like human psychology and all that.
I kind of assume whenever there's a girl that approaches me
and it's some kind of social engineering project,
some attack vector, some intelligence agency.
In fact, I'm pretty sure.
We're back to a beautiful mind, aren't we?
Beautiful mind, yeah.
I have a whiteboard upstairs that I calculate everything,
everybody's trajectory and move
You're not wrong though with the attack vector
Especially in the day of AI like one thing that I don't think a lot of people are talking about as we integrate more and more
AI is that?
Prompt injection is like an extremely hard
Thing to defend against because it's not really clear how you defend against it
If it's just a you know at the at the end of the day, word calculator make word come out.
If you can figure out the proper word calculator input,
it might just break its bounds
and start doing something it's not supposed to do.
And there's a whole future where there's all these products
that are gonna be vulnerable
to things they never thought about.
Like you, it's one thing where you forget an edge case
while you're programming.
Now you have to guess what people might be able to think
of making something that has access to a system be able to do,
right?
And you don't have a way to reason about it.
Its reasoning came from Reddit and other words that it's read and how to put things together.
Like this is a very, it's a massive space that's going to be happening.
That's why I'm personally thinking, don't give too many powers yet.
Like we don't know the attacks that are about to happen.
Yeah, the more power are about to happen.
Yeah, the more power we give to software systems, the more damage they can do.
That certainly is the case,
but the more awesome they could do.
And that's the knife's edge that we all walk along
as a human civilization together, hand in hand.
Will we flourish or destroy ourselves?
Question mark.
Folks on Reddit, the good folks on Reddit,
demanded that I ask you about the time you broke production.
Is this related to Falcor?
Did you break production?
Is this fake news? I broke production quite a few times.
I've broken productions for so many stupid reasons.
One time I broke production because I came up in the PHP
and PHP static means static for the lifetime of the PHP
and PHP was the lifetime of every request, right?
That's why PHP was so inefficient was that every request was its own like instance and therefore static memory was for 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 need this for the lifetime of the request and lo and behold those weren't lifetime
whole bunch of bad data got all over the place. People were showing up saying they were from all these
different countries and everything was all wrong because I just whoopsie-daisies
I just made a whole conundrum with that so that was one time I did it. Another
time is I took down if you were on the home page on the website waiting for
Lady Gaga's video to come out and you are watching the countdown go down if it
reached zero the billboard would freeze and it wouldn't work.
If you refreshed it would work, but the reveal, the big reveal, I screwed that
up and my boss got real upset.
And so did other people in Hollywood got upset about that one.
That was like a, my bad.
Sorry, Jeff Wagner again.
I remember that one.
I remember that one specifically one time I I released a bug where, again, on the billboard,
if you pressed add to my list,
I accidentally programmed in an infinite loop.
And it just, your whole web page would just freeze.
Are some of these bugs difficult to discover
until you start running?
That one seems really easy looking back on it.
Infinite loop, yeah.
And there was, we actually, during those days,
we had manual QA that are supposed to go through everything.
So I didn't feel as bad because my manual QA counterpart
also missed it, like we all missed it,
but it was just so simple to just press that button, boom,
it just completely freezes the website.
Polluting the code with sort of global variables
that are holding values as PHP, I think allows you to do,
that's a tricky one to discover.
Because you rely on it,
but then there could be somebody else's signs of value to it.
It could be a generalist.
Yeah, data races everywhere.
And I just didn't understand,
in my head, static was like, oh, this is for the life.
I was just so locked into the PHP world at that time
that I just made a just such a,
looking back on it, it's so obvious. But during the time it was, it's hard.
So in general, pushing to production, I talked to Peter levels about this. He I
mean, obviously, he's operating as a mostly a solo developer. But he often on
the website said, 1000s, not hundreds of 1000s people use, he often ships to production, pushes to production,
meaning like just no testing, just like push to fix.
What are the pros and cons of that approach in general
to you, what do you think?
It's obviously much easier the smaller your organization is.
I think everyone, I think no one would argue that sentiment.
If it's just you working on a singular project
It is obviously much easier for you to push directly to production because you are the only one working
You know all the ins and outs and if something were to break you would discover it
So to me that makes sense like I think the way he operates is perfect for what he does
You couldn't take what he does and move it to say Microsoft or Netflix or Google, because that would obviously, it would just be a disaster, just due to the amount of people all pushing to production.
And so I personally love that.
I think that you have to gauge both the application
you're building and its complexity and what you're pushing
and how many people are working on it.
I think those all go into how you can kind of do that.
Because not all applications are created equal either.
Like that application I was making was zooming
and scrolling where we had all of our own everything.
It was a very deep, like heavy logic app.
And that was regardless of what was happening
on the website.
Most the code was library code.
And that becomes way harder
if you don't have a good test suite and stuff
to kind of run before you push it out.
Because when you squeeze that ball,
different things come popping out in different areas.
And that's a very harder problem
than say if you're doing more of like a heavy visual one,
because a heavy visual one,
you're affecting just this one area's visual stuff
and you can test it.
And that's normally the end of it.
Whereas, so it depends on like the coupling
and everything.
So I mean, I love his approach, by the way.
I have such mad respect for anyone that operates that way
because I think it's a great way.
It just is so good because it kind of breaks this notion
that tech Twitter has that,
oh, we got to use all these expensive services.
You need to use all these kinds of things
because if you don't use all this kind of stuff,
if you're not using the latest version of React,
if you're not using the latest version of this, if you're not using the latest version of this,
you're going to simply, you know, you're simply not going to make it as a startup. It's impossible.
And it's just like, no, no, that's not software. Like most of software isn't the new stuff.
Most of software is old crappy software that someone has to maintain. And it actually is
really, really great and has lots of really hard problems. And if you look at it differently,
it's actually fantastic. For people who don't know his tech stack in terms of web development
is PHP, jQuery and SQLite. Yeah all great stuff. I'm just surprised he still uses
jQuery just given the fact that at this point on the modern web everything is I
mean you have document query selector and add event listener click right it
pretty much has everything you already need it had Dom content load like all
the reasons I used jQuery back in the day
was adding a click on a button was like hard.
You had to deal with IE7, IE8, IE9.
All right, like those are hard differences.
Whereas now it's just so easy.
I'm just surprised it's even that.
I mean, that's definitely a trade off.
I have, I still use the exact same stack,
PHP, jQuery and different flavors of SQL.
But the question there is, you know,
you keep using jQuery because you can get the job done
really fast and there's no significant performance hit
that you detect.
So like why switch to something else?
But it's always probably, as we'll talk about,
good to explore and to learn.
Not all tools are great at solving all problems.
And so what you think is really,
the problem is you run into this kind of trade-off,
which is you have some tool belt
that you're very adept with.
You know, all the ins and outs.
There's no unknown unknowns,
but there's no surprises in this.
You know what you're building,
you know what you're getting into,
you will go through and you'll be able to solve the problem.
But if you ever use a different language
or a different experience,
you can find that some things are able to represent states
way easier and a way more efficient way.
And you can solve problems really efficiently
in some versus the other.
And so it's like, if you don't take the time to explore as well, you could be
missing out on something that makes you twice as good on this one specific
problem, like 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 thing, though I see why people do, which
is for the efficiency sake.
Let's just return to the infrastructure, the platform of Netflix and speak more
generally Netflix, Twitch, YouTube.
Like, anytime I use any of these services,
I'm just blown away by the infrastructure it takes
to deliver this service.
YouTube and Twitch are unique versus Netflix,
where the creators can roll in themselves and upload stuff.
So on the consumption side,
YouTube has over 100 billion views a day, over one billion hours watch time,
but on the sort of creator side, one million hours
of videos are uploaded every day, one million hours.
It's like you have to service both,
and you have to deliver everything.
It's incredible to me.
Can you maybe speak to your own intuition,
just zooming out on it,
what it takes to deliver that kind of infrastructure?
For me, the thing that I find vastly complicated,
and I can't imagine the engineering hours,
is how do you even create an edge in that situation?
And what I mean by an edge,
I mean like when people say this phrase,
if you're unexperienced,
an edge is where you deliver data to be, you want that edge to be as close to the customer
as possible because that's where the data lives.
And then the communication between the customer and what you're doing is really, really small.
Obviously, the speed of light adds up, the amount of hops adds up, the amount of services
that you have to remotely call adds up.
They all add up and they all add inefficiencies to the system.
So something like YouTube, they want to be able to serve that data
as quick as possible,
but their data changes constantly
and relevance is almost directly tied
with the newness of the item.
So it's like, how do you even cash these things out?
How are you doing this?
So they must have such an incredible caching network
that I can't even fathom what it takes to do that.
That just to me, me is just so impressive.
A million view hours in how many different resolutions
with how much data, what is a million view hours?
Is it 4K million view hours along with 1080p,
along with 720p, along with 1440p?
Like that number is an insane number.
Actually, it is brilliant what you said,
which is for YouTube, often the new thing
is extremely
important to show to everybody.
And so you can't rely on caching or trivial kind of caching.
You have to like deliver the new thing as quickly as possible.
Yeah.
I mean, it's incredible.
So there's the entire system, the recommendation system that knows each individual human watching YouTube,
and it has to integrate into that the new thing
while also caching this incredible cluster
of possible videos that you're potentially interested in.
So, and integrate into that ads, right?
In the case of YouTube and Twitch and so on.
It's a really tough problem because you have to think like,
what is the cash hit rate on this?
Because there's so much,
because the problem now actually comes down to space.
Like space actually becomes a real problem.
Like how many hundreds of petabytes do they have
that they have to like, okay, what do we cash
and where do we cash this, right?
Like the number, I mean, I think in the terms
of like gigabytes or maybe megabytes,
like they have to think in probably versions of bytes
I don't even know the name for, right?
Like it's like such a different problem.
And that's why I said Netflix,
Netflix has a much easier job when it comes to caching.
So if you've never looked it up, it's called OCA.
And that we know what videos we're releasing.
We know what videos are hot in specific areas.
It's a very limited set.
We're not gonna all of a sudden get,
oopsies, we got a million new view hours, right?
We don't even have to worry about that as a problem.
And so it's like, okay, we know Stranger Things
season five is about to drop.
We're gonna pre-cash Stranger Things season five
in every single OCA across the world
because that thing's about to get hammered, right?
And so it's like, it's able to do such a different
kind of decision making than what you have to do
with something like YouTube.
And then Twitch is even more wild
because now you're actually ingesting video
and trying to make it go out all at the exact same time
for all video.
And you have to transform that video from whatever format
and whatever the bit rate is into something
that's more efficient in a system like that. Hats off to Twitch like that, hats off to Twitch Engineering, because that's some serious work.
And here's some asshole Lex coming out and tweeting about YouTube features.
Listen.
You're not wrong on the features you're asked for though.
I think this is an engineering problem of how do you allow fast iteration and addition of features that shouldn't have to be
integrated or impact the whole code base. So at the edges of the code base sort of
improve on certain features without like having to consult the mothership of the
code. It's the large team, right?
That's the fundamental problem.
When you get into YouTube size,
there is the team slash organization
that deals with data warehousing.
There's the team slash organization
that deals with delivery.
There's a team slash organization
that's like the middle layer, how you even,
they're gonna be like the little microservices
to talk to these places.
Then you have this front-end engineer So like for two for a small feature
You have to get middle team you have to get back-end team. You have to get all these things quick example Netflix
Are you familiar with?
The dystopian black mirror. Yeah, okay season one episode one
Do you know season one episode one everyone who watches black mirror typically knows this episode? Okay? Yeah, I don't remember what it is
Forgive my language. Yeah, they call it the pig fuck this episode. Okay, yeah, I don't remember what it is, but... Forgive my language, but they call it the Pigfucker episode.
Oh yeah, of course.
Right.
Once you've seen the episode, you will then know this episode.
Well, when Netflix adopted it, I got pulled into a room.
There's like a VP, a VP, a product designer, a VP, and they said, hey, we're about to
release our own version of Black Mirror, season three, I think, at that time.
We need episode one, season one, I think at that time we need
Episode one season one to not be the first thing people see
So let's just reverse the season order
That required me I had like 20 engineers I had to gather together to be able to have this happen and that's just the problem of big companies is that eventually
Every little thing has to become its own team. And so even small, there's no such thing as a small feature.
Reversing the order of the drop down that selects the seasons is a meeting
with a bunch of VPs and engineers.
That's really interesting.
I, there's gotta be a way to accelerate that.
The natural scaling of a company and the bureaucracy that grows.
Yes.
Slows that down, but just having seen Elon work a lot, his teams are able to still keep it very fast,
even as the company grows.
There's gotta be a process to doing that,
especially for, yeah, for the Pigfucker episode.
I don't know where that's in the priority list,
but for important things like that, you should be able to do that quickly. I don't know where that's in the priority list, but for important things like that,
you should be able to do that quickly.
I don't know.
Can you speak to how would you do that?
Well, I can tell first how it was done.
Remember, so at a place like Netflix,
there would be, I think that at that point,
it was called a product called Dexter.
I can't remember.
There's our actual movie metadata warehouse
that's gonna be highly integrated with Hollywood.
That's gonna be where that side is able to manage all that. So I'm integrated with Hollywood, that's gonna be, you know,
where that side is able to manage all that.
So I'm like, hey, you need the ability to mark things
that need to be reversed,
because we're gonna run into this a bunch.
And we did, we ran into quite a few topical shows
that all need to be reversed and all that.
And so it's like, we need to be able to reverse
episode numbers, season numbers.
We need to be able to hide season or episode numbers.
Like in the case of the Chelsea Handler show,
it was like a daily show.
So it's like, you don't need episode numbers.
You just need the latest one.
And so like, there's this whole problem that exists.
And so it's like, okay, you need to work on that
for your UI over there.
Then you need to be able to store that data.
Then we need to be able to go to the, like,
the people that can actually get the video data out of that
and provide it to our service layer.
I need to go talk to them and convince them
they need to be able to give me the new methods
and everything to do that.
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 make that accessible.
Now I need to go to a website people,
I need to go to mobile people,
I need to go to the TV people.
And so it's like, you can see this thing like snowballing.
And for us, the big thing that Netflix did that was so well
is after I met with these people that were high level,
I was the captain.
I'm the captain now.
So I went to all these teams and said,
hey manager, I need an engineer.
We need to get this done within the next couple of months
because we got Black Mirror coming out.
So she would go, okay, here you go.
The map team, I need someone to help me
with being able to get data out of the LoloMo for this.
And so it's like, all right,
you're working with this engineer.
I'd go to the VMS team. Okay, I with this engineer. I'd go to the VMS team.
Okay, I need this engineer.
I'd go to the billboard team.
I need this engineer.
Go to all of these little places
to get all these little pieces of data.
And then I was the captain.
So I was like, you're working on this, you're doing this,
you're doing this, you're doing this, I'm doing this.
Let's go.
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 required like 20 engineers
to do such a simple task. We were able to do it like, gosh, I'd say about like three
weeks worth of effort, but that was still, I thought that was amazing
comparatively to how many people move.
Well, because you have the freedom of the agency to do it. You said the captain of
the ship. That's really powerful for big companies. That's a risk because you can
fuck it up. You might not see the bigger context, uh, legally or any, and just sort of the
bigger context of the impact on the industry or 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 taking.
And then if, when you fuck up, you fix and then maybe pay the cost legally for
that and whatever, but the longterm that risk pays off because you're going to
keep creating
a better and better product,
evolving where the industry is going,
constantly innovating ahead of where the industry is going
and so on, yeah.
And not only that,
I think one thing that is just so important
is that yes, the product will get better,
but the people that you hire
and the people that you keep around are better
because they're the ones that show maturity.'re the ones that can just you give them
something and they can rally the troops and make something happen like that's a
very great group of people to hire and so you also naturally select out great
engineers that aren't just simply good at coding they're good at coding and
they're good at explaining and they're good at convincing and they're good you
know like you have to you have to create a very lean audience that can move fast.
And I think for great engineers, having to wait
for like, okay, let's schedule a meeting for next Wednesday
with the VPs, and that destroys their soul,
and they either don't wanna contribute anymore,
they leave the companies, or they just kinda tune out
and take the golden handcuffs and just, you know,
buy a nice house and focus on family.
And I feel like I would die under that.
Like honestly, like that is my death sentence
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 there,
like effectively zombie through my day and call it,
like I don't wanna live like that.
I want to feel like I'm trying to do something I should also mention on top of that so
you've brilliantly laid out how incredible the challenge that Netflix
has to solve on top of that with YouTube you know the metadata thing because
users are able to upload video and there's an API where they can upload
automatically and change all this kind of stuff automatically.
Every one of those things is an attack vector, as we mentioned.
That's something they have to consider seriously on the engineering side and on the sort of
the legal side, they can get into trouble all kinds of ways.
So they have to consider all of that.
That's what is just fascinating.
The legal side is obvious, but it's not really like,
I would never have initially thought someone would say,
upload images that you're not allowed to own or have,
but that guarantee you that happens.
Then you have the whole kid side, right?
I think about when you mark something as kid friendly,
how many times have they snuck porn
into a Taylor Swift video or whatever?
That was like a few years back,
there was that whole Taylor Swift or whatever.
I forget what it was. I thought it was Taylor Swift,
but there'd be these mock videos that'd come up
and then boom, it's like that is such an awful problem.
And I'm so happy that is not a problem
I have to try to figure out.
Yep.
Okay, so yes, YouTube and Twitch and Netflix
are doing an incredible job.
You eventually chose the madman you are to leave Netflix
and to start on a new journey of being a wolf pack of one,
start streaming.
What was that?
What was the story of that?
So I was streaming for almost seven years now.
It started actually at Netflix.
We did a charity, Extra Life.
Shout out to Extra Life for starting my streaming career.
Effectively is just you stream and whatever money you raise,
it goes to kids with cancer research.
They are a great charity in the sense that they take no overhead and they
raise their own donations for their website and everything.
And so it's like a very great, straightforward charity.
Really love like what they've done.
Um, it was super cool because I live in South Dakota now,
but I actually could choose a hospital
directly where the money goes to.
So there's like a direct impact from A to B.
So it's a pretty cool organization.
And so my friend, Guy Serino,
nice try Guy is what I like to call him.
He was probably the single greatest engineer
I've ever met in my lifetime.
And he was just like, hey, come do this.
We're gonna all do this. And so I played Fortnite. And so before I did that, I was like, oh, I better ever met in my lifetime. And he was just like, hey, come do this. We're gonna all do this.
And so I played Fortnite.
And so before I did that, I was like,
oh, I better learn how to stream first.
I better get affiliated so I can take subscriptions.
And then if anyone gives me a subscription,
I'll also pay that forward.
And so June, 2018 or something like that,
I start streaming and I start streaming some Fortnite,
end up getting affiliated, end up doing the whole extra life thing.
I end up really enjoying it. I'm like, this is a lot of fun. I'm playing Fortnite at that point.
Okay, so mind you, I'm a Fortnite streamer at that point.
And I start really enjoying it and I keep doing it. And then one day I decide I'm going to do some programming because I really love Vim.
And I think I'm kind of fast at Vim. And maybe people think programming is kind of cool because there was no really programming section at that point
and I did it and I
Had like 30 people show up which was just like and it felt like incredible numbers at that point
So I was like, oh my gosh, there's like 30 people watching me program
And so it just kept on going and it kept on happening and it just kept on growing and I did it for a year after year
I would do my job. I would
come home. I'd eat dinner with the kiddos. I would read them Lord of the Rings and the Hobbit during
that time. I'd read to them for a half an hour. Then I'd set that down and then three nights a
week I would program until like two in the morning or play video games until two in the morning
streaming and building up this like whole side thing. And I did this for a long long time. And
then eventually it just kept working out
so well. And I started making YouTube videos, and then that started getting better. And it was just
like a long, long grind until April of last year. I went to the streamer awards and I got to like
announce the programming category and pirate software one. It was awesome. It was a great time.
And during that time, he gave me a challenge coin and just said like you just got to go for it
Just go full-time and so I just sat there and my wife can attest to it. It was kind of like an emotional
turmoil thing and it just took a lot of
It was it was pretty awful, you know, cuz I didn't
Netflix is very safe option. It was both very fun. It was challenging
I liked a lot of the people I worked with it was overall a really great thing. It was both very fun, it was challenging.
I liked a lot of the people I worked with.
It was overall a really great thing.
I had a really great boss, really appreciated him.
I still ever text him now and then, he's a really great guy.
So it's just like, I'm leaving all these things
for something that's unsure.
And the reality is that streaming and all these things,
you know, people love you one day,
they could hate you the next day. There's like all this stuff that goes into
being on the public side.
And I had Netflix as the backing.
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, now I'm gonna do this as a job.
And so there was like a whole huge turmoil
to this whole thing that kind of went through it.
And eventually I just said, okay,
I'm gonna make this, it kind of,
it resonated with me when I first made the decision
to join Netflix.
I'm getting older.
There's not a lot of chances to do something unusual.
Like that, those chances go down constantly
as you get older.
This might 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 I haven't looked back. So in April, I went full time. And I have I guess
I haven't looked back. I'm only not even a year into doing this as a full time gig. And
it's just been a lot of fun. And the biggest thing is just being, you know, just being
able to really explore and do these things on stream where people really enjoy watching
and engaging has just been it's been a great hard fun amazing difficult experience.
I mean it's a really inspiring leap it's a really hard one to yeah to take for many reasons like
you outlined but also like the loneliness of it I think I think it's a pretty lonely pursuit
just you and the camera and the audience and the ups and downs of that. And there's not really a team.
I do have one lucky thing I'd say that my editor Flip,
shout out Flip, he was, he said it would mean the world
to him if I said shout out Flip.
I love you Flip.
I love you Flip.
We all love you.
Oh man, he had, you know, as he would say,
he had nothing going for him.
He had a really hard growing up,
a lot of rough life decisions have gone into his life 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 said alright like 50-50 whatever I make on YouTube you get we're gonna do this together
And we did that for years making zero dollars a month pretty much
You know and so it's just like that was an incredible jump and now like we get to work together. So that I do get that one team aspect
that I think is really nice,
but it's not like it was at Netflix
where I could hear about stuff people are building.
I don't have a team.
I don't have like product or cycles.
I don't have a manager 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 realize
how lonely it actually can be.
Yeah, so combine that loneliness with,
in my case, I don't know how many people attack you.
I have a shockingly low amount of attack rate, I feel like.
Yeah, people generally, I mean, it's sometimes fun
sort of teasing that kind of thing,
but it's mostly just really,
I mean, you give so much love to the world
and inspire so many people,
even when you're like making fun of stuff, yeah.
But with me, sort of taking the loneliness of it
combined with just really intense attacks,
it's tough, it can be rough.
Psychologically, really a tough journey.
You miss working with a team?
Just from even a software engineering side,
like where you can share code or talk over
code or yeah, the collaborative aspect of it.
Yeah.
Um, multiple things there.
Uh, one, Hey, we love you Lex.
So don't let the things get you down.
Um, thank you.
But thank you.
I love you too.
Thank you.
Hey, well, a little bonding moment here going on, but, uh, you know,
what I, one thing I really mean
Not in a sexual way just to be clear the tension is a little yes. I'm getting uncomfortable
but anyway team
it's just the
One thing I really miss is just even when I hated how people did it just seeing how other people solved things
right like it's really amazing just just like the raw creative power so many people have and
Just being like oh wow, like I would have never done it this way.
Crazy, right?
Like, wow, I just, this is awesome.
And then you kind of internally process this
and you're like, oh, I now have a new little tool
in my tool belt.
You know, because at some point,
it's really hard to find a mentor.
When you're first young
and you're just starting out programming,
I mean, anyone with a couple years of experience will be not just a little bit better than
you, but like infinitely better than you. It's like, it feels like crazy how much better
people are. And so you have to like get mentors and you learn from people. And then as you
get better, that amount of availability gets really small. And so it's something that I
really do miss is the kind of like forced hard problem solving together.
I think there's also a skill to sort of mining the wisdom
from other people.
Like I generally try to approach even like junior people,
young folks, just mentally, at least for me,
it works as a hack to assume they're like
the smartest person in the world, like way smarter than me.
And so like I take every single word they say
as potential wisdom.
And that helps me as sort of mind
for potential wisdom there.
Because it's so easy once you get older
to sort of judge, to be like, oh yeah, okay, okay.
I've been through that, I remember feeling like that,
I remember thinking that, that's incorrect, whatever.
But just kind of assume that you don't know,
that I don't know what the fuck I'm doing,
and the other person is this like sage.
And from that, in that kind of interaction,
I think you could actually learn a lot.
And my favorite interactions is when we both think that way.
And so we're that, from there, I think that's,
that's a catalyst for a great,
great collaboration and interaction.
It just also makes everything much nicer.
You know, it really stinks to work with someone that's combative and negative.
I don't mind combativeness if it's like, I'm trying to figure out what's best to do right
now versus combativeness just because you're a negative person and things have to be this
one particular way because if they're not this one particular way, it's the end of the
world.
And that's actually really hard for me to work with
What's the origin story of the primogen name the origin story of the primogen name was?
Are you familiar with the video game called Turok?
Nintendo 64 so Turok had Turok one and then Turok 2. Turok 2 was a brutally hard game.
This is back when first-person shooters,
they would only give you a certain amount of health and you had to go discover health and
get that health and you had to beat the whole game without effectively dying. That's an old, that's like the first version right there.
That's like Turok 1 and Turok 2.
Turok is a renowned first-person shooter video game series featuring dinosaurs, action, and sci-fi elements.
The franchise has evolved significantly since its inception in 1997.
Yep, there you go. So in 1998, there you can see it right there.
Turok 2, Seed of Evil, followed in 1998, featuring larger levels, more challenging puzzles, and deadlier enemies.
The notable difficulty, it was very, very, very difficult.
Okay.
And so I spent, when I got it, it came in a black cartridge,
not like your standard gray Nintendo 64,
the black cartridge. Oh nice.
Bad ass game.
Yeah.
Right, and I got it and I put it in and I played
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 incredible, great experience.
And the last leader of Turok 2 is called the Primogen.
And so when I was a kid, when you're in like fifth grade,
that's like super cool, like named after the bad guy.
And so like for a long time on any internet thing,
like Grail Online that I mentioned earlier,
the name was the Primogen, it was great.
And then, you know, I became an adult eventually,
and it's just like, okay, I'm an adult, my name is Michael Paulson, then, you know, I became an adult eventually, and it's just like, okay, my name is Michael
Paulson underscore, you know, that's what I was on the internet for a long time was
that.
And I remember it was like 2017, 2018, somewhere in there.
I remember just how bad the tech world had kind of become.
It was just like this super pretentious place, tons of dick measuring, just everything that
just was the worst.
Ken Wheeler got canceled over playing the circle game.
It was just like, it's so hard to describe to people that weren't there, but it was just
the worst place to be.
Tech was extremely unfun.
It was extremely awful.
Everything was just so,
it wasn't academic because it was research.
It was like, we're building the most sophisticated things
and this is for the smart people
and everyone else is the dumb people.
Don't worry, we'll design for you dummy.
We'll show you how to make the perfect architecture.
And I remember changing my Twitter handle
because I got so upset
and just went back
to my video game name because I was like,
I want things to be fun.
I want this to stop.
And so while I started, when I started streaming tech,
my goal became to destroy whatever that tech mentality was
because it includes nobody.
Everyone thinks that they're the smart people
and they design for the dummies.
And it's just like, no, like I want tech to be this place where people feel like they
can be creative and excited and actually build something.
And if you're new, like it's okay to be dumb and ask dumb questions, like learn from your
dumbness.
No one's expecting you to be smart.
Pick whatever you want, like actually do something and have fun and build like your crazy ideas.
Oh, you're going to reinvent the wheel, reinvent the wheel, understand what you're doing, learn it really good and like interact and build like your crazy ideas. Oh, you're gonna reinvent the wheel? Reinvent the wheel, understand what you're doing,
learn it really good and like interact and stuff.
And it's just so different than what was out there.
And that the name,
Arnold Schwarzenegger talks about this thing
where when he first started acting,
his name was like the thing that people hated.
As he once said, you have a strange voice,
you have a strange body and your name,
your name's unpronounceable.
No one's gonna, Schneidsinfinitzl,
no one's gonna remember that.
And he said, but now the name is the strong part.
And for me, I just, I've always felt akin to that,
though my name's not nearly as cool,
nor am I as popular as Arnold,
nor am I as tough or good looking or successful,
but nonetheless, it's just the name represented
this like counterculture like movement within myself
in which I just
hated what was there and I wanted to defeat it. And so this is like been the thing.
And now people remember me so well because of how weird my name is. And so it's just like I,
for whatever reason, it became its own thing. And so that's kind of the,
now I would never change it. And back then I would never change it because it was
my rage against the machine moment if you will.
Yeah, I love that as a symbol of rage against the machine and the rage being fun.
Yeah, I just want people to like be creative and have fun again. It's okay.
What about the mustache? It's an epic mustache. It's an epic stash. It has a life of its own.
Is there an origin story or did you guys discover each other at some point or did it emerge
from the darkness of the struggle that is your life or where does it come from?
Well the original mustache is that it was no-shave November back before it became Movember.
It was no-shave November back in the day.
And after no-shave November, you had all this hair.
And so what's the natural thing you gotta do?
You gotta sport a mustache for a day, right?
So whenever I'd forget to, you know,
not shave for a long time,
and then I'd let it start growing out really big,
I'd just 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 those times I just didn't shave,
and then I started just letting it go,
and then I got kind of a beard,
and 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, okay
It feels like it's like a lifestyle decision
It's like this is the fun times and so also it is just like exciting to have a mustache and I shaved it off
And I was like, okay
But then you know part of me is like, you know, there's this weird energy that comes from having a mustache
So I was like I'm'm going back, told my wife, forgive her.
She was very not as thrilled about my decisions 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 right thing.
It's like part of it's always been the energy that I had with the mustache.
It was always been there.
It just never was visible until later on, it feels like.
Yeah, we're chatting offline how one of the components of a successful relationship is
sacrifice and your wife was willing to take the sacrifice of allowing you to have a mustache.
I clearly was not willing to sacrifice not having one.
You do this incredible thing where you tried a bunch of different programming languages when you stream. You have like you go all out on certain programming languages like
Rust and then go and then try to pick a new one but also are like experimenting
constantly. So maybe one question I can ask is about learning. What's your
approach to learning a new programming language? And
maybe what's your advice on learning a new programming language when you begin
that journey? So I've kind of done a bunch of different ways to go through
this learning process and I've tried a lot of different ones. Something that is
obviously successful is just start building something. Just put your hands
on the keyboard. You know,
like, especially if you already know how to program, you're like, okay, I'm now using
Zig. 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 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, to get to the end product and build something. It's a good, it's a great way to do things because I find that repetition,
like rote learning is obviously the best way to do this.
Uh, you have to kind of go over it a bunch and you can, you can definitely
get out and build a lot of stuff with that.
And I like that initial kind of get used to things, but on top of it, I
find that by doing that, you also fall into like traps, you kind of Google
and you try to solve a problem
in the language based on all of your previous experience. And so you don't have what makes
that language special. You kind of have what all the other languages make special. And so you end
up kind of not really being able to use it very effectively, but you can certainly kind of learn
it and get kind of good at it. And so the second approach I've been doing lately, and this has been
inspired by the creator of Ghosty,
Mitchell Hashimoto,
is to just start by reading the language reference,
the whole thing.
And so lately I've been just kind of going through
and just reading the entire manual for these languages,
like Zig, I'm almost done with that one.
You know, it's like eight to 10 hours
of just sitting down reading,
and I'll whip out my computer
and kind of practice a couple of the things
from the actual docs,
and that way I can learn all the things.
So then when I start building again, I remember, okay, I know there's a thing over here.
Let me go reread about it because now I have it indexed in my brain somewhere that will
kind of remember.
And so I don't think there's like a right or wrong way.
I mean, at the end of the day, the right way is always that you have to build something
eventually.
You cannot just read about it.
You have to put your hands on the keyboard. You have to build something out.
And then once you do that,
that's where you really discover what makes it painful
or what makes it great.
And if you don't have the breadth of what the language offers,
you just may make it painful by simply being bad at it.
What exactly are you reading?
Like the language reference.
The language reference.
So it just goes through like every feature
top to bottom, right?
Yeah.
Every way it's described, all the different things.
I think Ziggs is, it's a decent size,
but it's not just simply read the words.
You want to internalize each concept as well.
So it takes a long time.
So I'm a slow reader.
So you're building in AI terms a background model.
Because I don't think you can just start building once you're done
reading cause you probably forgot, you know, how to do a for loop.
Like you, you kind of forget the specifics.
You just are building up the, the design choices, the set of features available.
What are the strengths and weaknesses, all that kind of stuff.
And then you start building.
That's really interesting.
Probably not the thing you would recommend to a junior developer, somebody who's just starting out at first.
If you don't know what an if statement is, that's not a good way to learn. To me,
the best way to learn that is really hands on the keyboard and building extremely simple things
and slowly growing in complexity. Because understanding what a class and methods and
instances versus the blueprint, which is the class versus functions versus modules versus
all that stuff.
I like that's that just takes time to learn.
And so that's a completely different style of learning.
I wonder because for me learning right now, AI is a huge help, but I already have a lot
of experience.
I wonder if you're starting from scratch, whether that's a good idea, but I still think
it's probably a really good idea, but basically generate some code using AI
and figure out what it's doing
by playing with different parts.
Maybe can you comment on that aspect,
like the use of AI as part of the learning process?
This is where I have both the hopeful
and the doomer take at the exact same time.
Yeah.
And it's the same thing with Google or Stack Overflow.
Like this, it's all the same kind of take, which is it's just making things more democratized in some sense.
I get to ask questions in probably the most personal possible way with my own voice and my own words,
and it's able to produce out answers and kind of hopefully help guide me.
Now, regardless of just say the errors and the incorrectness of it, like ultimately just
using it as a learning tool and being able to just formulate and read answers in your
own voice, I think is super powerful.
I think it's super amazing.
But the part that I think is going to be really difficult is that we don't value remembering things anymore
as a society.
Like since the internet came about,
I can just look that up.
I can just look that up.
No need to like,
you don't need to memorize your times tables, right?
You can just use your calculator.
You can just do all that.
I remember I just was sitting on the airplane
and I watched someone do the world's most simple addition
and subtraction like 10 times on their phone.
And like, why are you not just,
like you should already know these,
you should be able to do these things.
And I realized that we kind of offload our brains, right?
Oh, I don't need to know these things
because I can look them up.
And that's not a bad answer in some sense.
I can understand that.
Like I don't need to remember every last thing.
But then it also makes me realize
that you kind of develop this learned helplessness, that a new error comes up. I'll
just ask the AI. AI says, oh, okay, I got to fix this line. I fixed the line. You didn't actually
learn anything. You've kind of just used it as a quick means to get something out and move on.
And so you sacrifice knowledge for speed, which is a great thing in some like you,
we have to make those trade offs all the time time in engineering sometimes you have to move fast at the sacrifice of
knowledge and I'm totally on board for that but I worry that what we'll create
is a is an entire generation of incompetent programmers who can do some
amount of things well but anything that is unique bespoke or require some extra
like little elbow grease might become very difficult.
It might cause a whole chasm where juniors remain juniors forever.
And I don't want to see that. I want to see people grow. I want to see people, you know, actually be able to take this as a craftsmanship thing.
And so that's kind of what I, that's like both my hope and my worry is that AI I think can do both, really. Because if you could ask whatever question you want, and you don't have to rely on, say, a book to give you that exact answer,
and if the book just said it wrong and you can't understand it, it's just like,
sorry, you don't get to learn what this is, like recursion for me.
I spent way too much time until someone gave me the right problem to understand recursion.
You could imagine AI could have solved that for me way faster.
Because it could have gave me the right problem and walked me through it much better.
But what happens if I just always have recursion solved by
them and not actually learn it myself? So if I ask AI to generate code to do a
certain thing, some actually large percentage of time most of what AI
generates is going to be correct for me. But some percent of time it's not, like
fundamentally not.
And for me to recognize the difference between those two,
I think it takes a lot of experience.
Like I think to learn that skill of knowing like,
no, no, no, a different new out of the box solution
is needed here than the one you're providing,
you're missing the point, that's a skill.
And how do you learn that? You learn that by building from
scratch. So both are probably really necessary. But I think as a first step of learning how
to program, it's pretty nice to generate a function, to generate for loops and all that
kind of stuff. And then just fuck with the different lines and modify them to try to adjust the behavior of the program.
And from the way the behavior of the program adjusts or bugs are created, you learn about
the syntax of the language, the behavior of the language, all that kind of stuff. So I think it's
a super powerful way to learn. But yeah, you need to also write from scratch.
Yeah. At some point you have to take off the training wheels.
Because I think what you're really spotting is the difference between reading and writing
code.
Like I can read a lot of languages very well.
I can see what's happening.
I can understand it.
But like I would not be very good at writing it.
I can understand a lot of things about C++ and I 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 all or all the the semi-colons and colons
and like, you know, you do public and private
and how you should do naming conve...
Like, you know, all those things kind of add all together
and then you're just like, 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
that exists between those two.
All right, well, let me talk about the various languages.
The cheesy cheesy ridiculous question of what's the best programming language.
Let's say what's the best programming language that everybody should learn.
Maybe let's go with the top five.
I'm going to pull up the Stack Overflow developer survey because I think you don't like them. Those are, you got to remember because I mean we have a... Yeah, those are... Well, you don't like them? No, no, those aren't...
You gotta remember, because, I mean, you're a data guy.
You know about biases in data.
What does Stack Overflow naturally bias towards?
Well, they have the different slices of professional developers,
junior developers, they have different slices.
Okay, what is the bias?
I hear you, but who fills out a Stack Overflow survey?
Someone who participates on Stack Overflow.
Who's participating on Stack Overflow?
Largely very, very new people
and that one guy that loves answering questions.
And so I'm not sure if Stack Overflow's
a great place to get data.
It could be a very biased set of data.
Is it really only new people?
I mean, who's using Stack Overflow?
All right, most popular technologies on this.
JavaScript, HTML, Python, SQL.
SQL is the more general kind of, I'm sure they're not doing the individual sort of flavors of SQL.
By the way, pronounce SQL versus SQL.
It's squeal.
Squeal?
You squeal.
Squeal.
Squeal.
I think is the correct way.
Squeal. I did SQL thing, is the correct way.
Squeal.
I did sequel because I didn't know the audience.
I don't know if they can handle the truth.
Okay.
Which is it's squeal.
Squeal of joy, squeal.
Squeal light, my squeal, postgresqueal.
By the way, I had a lot of joy from earlier saying
pig fucker for some reasons.
It's such a ridiculous, I mean,
can you believe that that was a real conversation
that I had?
Yeah, that was.
That's such a ridiculous, I mean, can you believe that that was a real conversation that I had? Yeah, that was.
TypeScript, BAS, Java, C Sharp, C++, C, PHP, and so on.
It largely kind of aligns with the world you'd expect, but like, assembly.
Why is assembly more popular than Ruby?
Who is writing just assembly by, no one writes assembly by hand other than like,
maybe that one guy that's developing TLS 1.3 and hand rolling a cryptography algorithm
to be the fastest possible algorithm.
Right?
Yeah, assembly is a weird one.
Maybe people write it as maybe in school,
but even in school now for like a operating systems course
or something like that, or systems engineering.
I don't know if they write assembly anymore.
I don't think so.
Yeah, but in Swift and Ruby being less popular than
assembly seems ridiculous. But nonetheless, okay, so you get my ideas
behind that, but as far as top five languages go, that's probably too broad
because you could just name so many. I think you should probably archetype it by
what do you want to do. So if you want to get into game development, perhaps C-sharp,
C++ could be good choices
or JavaScript and doing canvas games.
I could see that also working,
but you're limited by doing JavaScript obviously,
because you can't do as much
because the language is just not fast enough to do as much.
So it's like a good thing to remember.
If you're gonna be doing backend stuff,
if you want a job, if you're looking for a job,
maybe C-sh sharp slash Java or JavaScript or go would be great choices.
If you're looking to do embedded, you probably want to do C C plus plus like that would probably
be a good choice.
And so you kind of have to, I think you have to first determine what do you really want
to get out?
If you're just curious about programming, which I talked to a lot of people who are,
uh, yeah, you can consider jobs, but basically their question
is, okay, what's the first language I should learn?
And maybe what are the several languages I should explore?
Can I say something that's gonna make a lot of people angry?
Yeah, sure.
I think the first language people should learn
if they have no idea about anything is JavaScript.
Yeah, why would that make people angry?
Oh, because people just, first off, I'm not supposed to say anything nice about JavaScript.
Yeah, usually that's the meme that you hate JavaScript.
Yeah, no, JavaScript's a beautiful language
and it has a lot of things that are very great for it.
And one of them is that you can express anything
with very little effort.
And so someone that's new, I think it's really great
to be 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 that's really great about JavaScript 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 that's really great
about JavaScript is that you can do that.
Then you can go, okay, I want to learn about the backend.
I'm going to make a request now.
You can write a quick backend in it.
Now you're starting to get familiar
with programming a little bit.
I can save this to a database.
I can bring it down.
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 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 get introduced into programming.
But then at some point you have to go,
okay, I now need to learn more about this whole thing.
I mean, yeah, just like you said, you can make games,
you can do front-end, back-end for web development.
You can even do embedded. They actually have JavaScript. Like there's, uh, West Boss is building his Roomba or something and programming it
with JavaScript and React, which is just the world's worst language to choose for
embed, but you can still do it.
Also, we mentioned sort of in terms of applications, anything that relates to
data or machine learning, Python is the sort of the leader there.
Yeah. That's a great one. Seems like Python, CUDA stuff and C++ would be a
dynamite in that because a lot of these Python libraries are assumed are just
you're just smuggling in C++ underneath the hood or C. Okay so JavaScript, I
would say Python. Python's a great one too. You can get quite far with it but you
can't write the front end so why happens if you love the front end?
Right, what happens if you really just want to design things
and you just didn't know that?
Well, it's okay.
So for that JavaScript.
But Python's a good choice
because you can't do the ML stuff in JavaScript now.
It's easy.
Do we call an HTML and CSS as programming languages?
I think there's like some technical definition
that it is if you put it up.
If you use this certain amalgamation of CSS plus HTML it actually has like it can be a touring complete language yeah
but I mean for practical purposes no HTML is not a language you know I for me
less yes the touring test is a good one but for those that are just not wanting
to 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 I can't an if statement, I don't feel like that's a, I don't, if I can't loop if and function, I don't feel like that's a good, that's a programming language.
Although modern HTML has a lot of features.
It is crazy how much it has, but it's more of a specification than anything else.
I specify it to be a pop-up.
I specify it to have this kind of like accessibility, this kind of look, this kind of, you know,
under these conditions, look like this, transform like this, move down here.
I don't know, I kind of like these popular
programming languages in this list.
I like JavaScript.
You like Bash?
Oh yeah, I like Bash a lot, yeah, why?
Okay, Bash is kind of one of those ones
where it's like, do you really like it?
I like it up until I need an array.
Oh, as a programming language, no,
but I like the command line.
Oh, okay. Do you like, no, but I like the command line. Okay. That's what I do like.
But no, nobody likes bash.
Do you mean I'm so offended right now?
Means do you use it a lot?
Yes.
Uh, it's good to, I mean, it's good to learn, right?
It's good to be comfortable on the command line because it's a bit of a superpower.
It's like, I think I follow on Twitter's a bit of a superpower. It's like I
Think I follow on Twitter FFM peg great account
Like there's certain Twitter accounts are just like legit. Yeah, and you know, I think FFM peg
Like they have all these sort of parameters
That you can add on the command line that it's like one of those cryptic languages that only very few wizards understand but once you begin to slowly understand and I'm only at the very sort of beginning stage of that journey to mastery the powers you
gain it every step is like it grows exponentially feels like I mean FFMPEG
is just this incredible like what would you call a library system there's just
the people behind them
must be just brilliant masterminds
because they have to work with all these codecs,
with all these containers, with all this,
they have the mysteries of the media codec universe
they're like masters of and they understand compression,
which is another super fascinating technical
set of problems that I don't know, I just,
FFMPEG just fills me with joy that it exists, but you need kind of bash type
comfort, command line comfort to work with it, to really unlock its power.
Yeah.
I think FFMPEG is probably one of the most consequential libraries of our day.
And the Twitter account is so unhinged
It is it's the most amazing thing to see because I think FFM peg does not get the love it deserves
Yeah, every single application that OBS probably FFM peg underneath the hood all the profile everything FFM peg underneath the hood
And then and yet, you know, they do not get the love they deserve. I just love it
I just think that the best yeah Yeah, I would say JavaScript, HTML, CSS, Python, SQL.
I mean, that is SQL squeal is a programming language.
Yeah.
It's an incredibly sophisticated programming language, yeah?
SQL is interesting.
I believe you can classify it as a programming language.
It does have like if, you have case statements,
and it's pretty crazy what you can do with it.
You could have functions, you can do all that stuff.
You shouldn't.
Stored procedures, that's how you make your life hell.
I will say that all the top languages right there
are none of them are like strict static typed languages.
And so even TypeScript, you can, you know,
I don't like this any. And so for people that are learning doing something
That's much more strict would be great something like go rust
Even I mean even C sharp C plus plus like anything that kind of changes your perspective of types
I think is really helpful to kind of go through they're not getting nearly as much love on this most popular language list
But I think they're very fantastic. All right. Well if I put a a gun to your head, five top five languages, let's list them all.
There's a bright eyed 20 year old asking you what are the top languages, five languages
to learn.
If I were to pick five languages that I think people should learn, or at least, let's restate
it this way.
I'm going to say a couple of languages and you should at least explore some of them.
I think you should explore a Lucy language.
So Python slash JavaScript,
where there is truly only one type,
which is a boxed value,
which is a multivariate different types
underneath the hood, right?
What'd you call it?
A Lucy language?
A Lucy-goosy language, right?
It's a dynamic language.
Okay.
And so I think it's really good to explore one of those two. So I'd put Python or JavaScript right there, even
Lua. Throw Lua in the bunch. I think you should explore a strict language. So I'd
do something like Rust, Go. I think those are both really, really great. C++?
You can do C++. You can do some type erasure in C++. You can do it with Go as
well, but it's for the most part, it's a great language to do that in. in It can get a little wild new C++ seems great. Everyone keeps telling me new C++ is great
Mm-hmm. It has every feature you've ever wanted and all the features you don't want. Yeah exactly
I mean, there's smart pointers that dump pointers. There's all kinds of pointers. There's no memory leaks. That's not an issue face guns
Soft beds, there's everything in there unless you like memory leaks, it has that too.
If you want that kind of thing, it's great.
Okay, how about this one?
Languages that I actually want to really learn,
that at least sit in my curiosity bank.
There's three languages, which is going to be
Swift, Elixir, OCaml, and then I'm going to throw Odin in there,
just because Gingerbale is great.
But Elixir and OCaml, I don't have a strong functional language underneath my belt
that's something that just genuinely lack yeah I've heard incredible things
about elixir about Odin about OCaml obviously I'm a person as you know who
loves Lisp I have never done Lisp Lisp could be in that category to just like
learn or closure I think at this point is what everyone tells you to use. So in the case of Lisp,
I don't wanna speak negatively about Lisp,
but it's important about like modern community,
what the community looks like.
And it seems like there's an excited,
maybe small but an excited community around Elixir,
oh, no, no, Camo, so that helps.
Yeah.
So you can post shit on Twitter that you're like,
I accomplished this, and people get excited,
and it's nice, it's a good feeling.
You can post something on Twitter
and you'll get a thousand likes
if you do something cool on Elixir.
Yeah.
Okay, which is a pretty big,
that's a pretty big amount of people to like a post
for such a niche topic.
Yeah.
Programming's already a pretty small topic.
Then you get into functional programming.
That's a small topic in a small topic.
Yeah, I don't get that much.
If I post something about Emacs, I'll get crickets.
If I post something, if I proudly use Neovim,
there'd be a lot of people like, good job.
It's because it is the best editor.
Yeah, maybe it's just hype.
Come back to the Civil War, wax.
Yeah, sometimes you have to sacrifice
and go from the superior editor that is Emacs
and choose Neovim just to be popular.
You sacrifice integrity and values and quality
for just popularity.
So that's the choice you made.
I love how you put it.
Okay, anyway, it's what we were talking about.
I like how you're doing this in bunches.
That's great.
Right now my kind of side honeys that I'm exploring
is- Side honey.
Yeah, side honeys.
Right, like they're not my mainstay.
Right now Go is kind of my favorite one to I'm exploring is side honey. Yeah, side honeys. I like they're not my mainstay.
Right now goes kind of my favorite one to build a web app in.
Like if I'm going to build some sort of backend
with a lot of complicated logic,
goes just so convenient.
But I get really frustrated with its ability
to express everything that I need.
Like if you have a list, a heterogeneous list,
a list that contains two types,
goes just really not that fun to use.
And so I could see,
so the ones I'm exploring is Jai or Jai or the language
as Jonathan Blow says and Zig.
And both of them have a lot of power to them.
They're both very interesting.
They definitely have foot guns in them.
They're definitely more, you know,
they don't take it easy on you.
Zig seems like it's a really amazing language
and so does Jai.
They're both very cool.
Yeah, actually I saw Dave Plummer's testing
of close to 100 languages for speed
and Zig came out on top.
Yeah, that was a mistake.
I mean, when I say mistake, nothing against Dave Plummer.
He's an extremely talented engineer.
It's just that Zig, C, C++,
all those languages that were being tested,
they're all LLVM backends, right? That's the one that actually turns the thing into the
executable part. And if there's a variation in speed, it just means in one language, you
didn't quite express what you're supposed to correctly. Like there's the language ball
test that's been bouncing around on Twitter. Zig was like sixth or seventh below. I forget
what language is. I played around with the example, added the word
no alias to the argument, which means that the piece of memory that's coming into this function, there's no global pointers,
there's nothing to it, and so the compiler can make these really cool
optimizations, and I made it faster than the C version.
So it just means that it's just not correctly specified is all that means.
C version. So it just means that it's just not correctly specified
is all that means.
Yeah, but it's still exciting.
To me, the competition between Zig, Rust, and C++
is really interesting.
Part of this for speed, part of this for how easy it
is to write performant code.
I'll say something that's the reason why I think Zig is so
interesting comparatively to say C or Rust.
C is like the ultimate language.
It can do anything.
You have preprocessor macros. You can do quite a bit with it. C is like the ultimate language. It can do anything. You have preprocessor
macros. You can do quite a bit with it, but it's also really difficult and it's also really
simple and you can learn it. So it's kind of, it's like own unique beast. And when you
get really good at C, C is a magical language and people are really great at it. Um, and
people speak very highly of it. Rust is like this ultra safe language. What you can do
in C, you just can't even express in Rust. Rust is going to be that safe, the safe man that holds you at night keeping you warm,
right, it's gonna be just the greatest.
But somewhere in the middle lies Zig.
Zig has optionals.
If you're not familiar with optionals,
that just simply means there's a value here or there's not,
but you first have to check that before you can use it.
So it prevents that whole null pointer dereferencing
seg fault problem.
And that's not available in C,
just by default, you have to kind of build that thing in.
It is the only option in Rust.
But Zig says, hey, if you have a pointer,
you can't express it as null unless if you mark it
that it can be null.
There's ways around it, there's like other types of pointers
and stuff like that that can do that.
But for the most part, Zig like will give you safety
for the most part, right?
So it's like a little bit of safety, but more like C.
So it kind of gives you like everything you kind of want
in that region where you can express safe code
and unsafe code.
It's very easy to write.
So it's very, it's very pretty,
or at least the idea behind it is very pretty.
The language itself is bland, but.
Wow, there's beauty in everything.
Yeah.
Prime.
You've programmed in Rust a lot.
What do you love about Rust?
What are the strengths? What are the strengths?
What are the weaknesses?
Maybe you can speak about memory management
that you already mentioned.
The challenge of memory management
that several of these languages address.
But yeah, what do you love about Rust?
What I love about Rust,
I love that the ability to free the memory
that you're using is directly tied to the stack.
So whenever you create something,
there's a stack variable
or there's some amount of stack memory,
whether it's a pointer off to the heap,
a pointer and a length.
So, you know, some amount of memory on the stack
and then some memory on the heap,
because like a string is not all on the stack.
It's some on the heap, some on the stack.
And when that stack variable goes out of scope
and gets cleaned up, it also cleans up what's on the heap. So it kind of simplifies this whole idea of,
whoops, I forgot to free my memory. It just does it for you. So it's not a garbage collector,
which will do it sometime later. It's not like C where you have to call it yourself.
It's somewhere in between. Now there's a lot of strategies people use arenas and all that
that make that C part much easier.
I'm just not even mentioning it
but it just makes it a lot easier.
But Rust does that really beautifully
and it's just like a really cool idea about it.
And I really like that.
And the second thing that I think Rust does really
like is such a good thing is that mutability of something
is you have to specify it.
So you don't just create a variable and then
mutate it. You have to say this is not only a variable, it's a mutable variable.
I think that just makes code really readable and really understandable
because anything that does not have the word mute next to it, you know for a
fact it cannot change. So there's some rules around that but you get the general
idea. Unlike most programming languages, you have to explicitly state that this is going to be changed.
Yeah.
Yeah, that's really interesting. I mean, it's safe.
It's trying to be, and the safety might be, it's create limitations.
Let us consult the AI overlords.
Russ is a blazing fast memory efficient systems programming language that emphasizes performance,
type safety, and concurrency.
The language enforces memory safety without using a garbage collector, as you said, instead
utilizing a unique quote borrow checker that tracks object lifetimes at compile time.
This prevents common programming errors like null pointer dereferencing and memory leaks and so on.
Yeah. So you've also spoken about metaprogramming. Which of these languages do you like for the metaprogramming?
I love metaprogramming in C++, but it's a giant mess. At least when I program C++, C++ 17 standard, I believe.
It's just a mess, especially a mess to debug.
Yeah, I would consider myself kind of a meta programming
newbie.
I have only solved some amount of problems with it.
That's kind of like what this year is for, is for me to really,
I want to see where the ends can go in that,
so I don't have a strong opinion on this one.
Zig, one thing I really like about Zig
is that the meta programming is also the language itself. So you don't have to like, there's not, there's not an alternative. So with Rust,
there's an alternative. When you create a macro, you have to do the macro syntax. With Zig,
it's just, it is the thing. You just program it, you add the word comp time, if you want it to be
a compile time only. So you can do like, you can create the list of prime numbers at compile time
in Zig, which is kind of an interesting, unique thing. So you have code that executes at compile time and
then you can take advantage of the result of it at runtime. So neat, right?
Like that's how I'd look at it. But again, I haven't used it to the point
where I feel like I can super authoritatively talk about it.
You have been undecided. What language are you going for this year?
I'm gonna keep Go as my mainstay. My two-side honey's giant zeg. I'm going to explore and try
to build out a service in them that can do a bunch of talking to, say, Chad Jippity and 11 Labs,
and send stuff down to client and work with WebSockets. I just want to see how do they
perform in this realm. I may be using the language incorrectly, like I'm not exactly it's not
really been designed for the web world.
I just got done writing the ability to read Twitch chat and it required me to do Berkeley
sockets.
So if you're unfamiliar with Berkeley sockets, it's like the old way of doing it's how you
do it and see.
So you have to kind of go through the whole nine yards of creating your own connection
and to create my own connection, I have to read from the socket.
Then I have to parse out all the IRC, right?
Like you have to kind of build it from scratch.
There's not like a new TCP connection to this server.
You have to be like, I'm creating a socket.
You're going to be of the IPv4 family and TCP.
And you're going to do, you know,
I'm going to now have to take your address
and go look up your address with DNS,
get that address back and then connect it to a TCP.
So it's a lot more manual still. It's a lot more raw in that area, but it's fun.
What are some epic projects you've built on stream that jumped to memory?
My most favorite, sorry for interrupting you. So I'm getting, I'm really jazzed right now.
Let's go.
Okay. So jazzed.
Jazz hands.
My most favorite project was the one I did last year.
Someone built a Doom ASCII port so you could play Doom with ASCII. So that means you could play it in your terminal. Very, very fun, very exciting. So I made a Go program that could spawn out the
Doom ASCII. Then I took that Doom ASCII and I sent it to the browser so that people could play Doom
ASCII in the browser. But then I made it so that Twitch chat could control that instance of
Doom ASCII by piping in Twitch chat, taking the average of the movements over so much
time and replaying it as if it was a controller. And I had Twitch chat beat level one by spamming
it. But the fun part was I used a bunch of fun encoding techniques. I used like quad
trees to be able to take smaller amounts to use run length and coding, try to create my own
compression algorithm. Because if you're sending out a bunch of ASCII stuff, it's still pretty
expensive because you have to represent color. Color is not cheap. On top of it, you have to
represent what does it look like? What does the ASCII look like? Well, I realized, you know, there's
all these fun techniques you can do for compression. Like the shape of the ASCII you send down is in a lot of these engines are actually
just proportional to the lumosity of that pixel. So like you'd use an eight to represent
or a 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 know, something smaller. So it's like, I then developed all these different
compression algorithms that turn a bunch of data, which would take, you know, something smaller. So it's like, I then developed all these different compression algorithms that turn a bunch of data,
which would take, you know, I forget how much it would take.
It'd take gigabytes upon gigabytes to be able to send out
to thousands of people to all see the same image
at the same time, to all be able to interact
with Doom at the same time.
I turned it from gigabytes into kilobytes
by just trying to figure out how to like make it
as small as possible and send it all out.
It was super fun.
Absolutely had a great time.
So you're actually sending it to all the people in chat. So where's the, that, that pipe where that pipeline, how chat is able to control.
The doom thing, which chat.
Yeah.
So they would go, people would spend W and if you said W it would hold down
W for 150 milliseconds if the majority of people during that time period said W.
Nice, okay.
So, and how are they getting the input
of where you are on screen?
So originally I was gonna send that through Twitch,
but Twitch is like five seconds behind.
So that's why I piped it out to a website.
Nice.
So everybody could see from my computer to the website
and typical lag was right around 70 milliseconds. So it's
like they could mostly see what was happening in that short period of time. It was pretty
exciting. So we had a thousand people or I had somewhere between a thousand to fourteen
hundred people smashing W's and pressing F to fire and turning and we killed some zombies.
We blew up the barrel at the very end of level one to kill the imp.
How are you getting the W's from the Twitch chat? Is there an API? I was using IRC. So just a little TCP socket and then you just
parse out IRC. Okay. And there's very little lag there. Okay. Yeah, I think it's a couple
hundred milliseconds though. It's enough that it actually made it a little bit difficult
because people would often overturn and then go forward and like miss the door and then they had
to go back and. That's awesome.
It was awesome.
So that was my favorite, I think, project of all time,
just cause it, I never got to do like a lot of encoding.
Encoding is kind of like, you know,
what do you normally do?
Ah, okay, I need to send something down.
I don't know, gzip it.
Server will just do it.
Server just does the right thing.
I don't need to think about it.
So instead it's like, I think about it.
I'm gonna set the right thing.
Yeah, you have to think about the compression.
Yeah. And there you go. That's some more love towards F the simple right thing. Yeah, you have to think about the compression. Yeah, and there you go.
That's some more love towards FFMPEG.
Yeah.
Because they have to think about that a lot.
Ultimately inspired by FFMPEG and their awesomeness.
Everything.
Yeah.
So can you speak to just the chat community in general?
Like a big part of what you do in terms of streaming
is the humans
that are communicating with you live.
Can you talk to the different chat communities?
First of all, which is the best chat community?
YouTube, Twitch, or X?
This is where I feel bad for YouTube,
because I do think it's technically the worst,
but it's not YouTube's fault.
And let me kind of explain why.
And then I will explain why you're wrong, but go ahead.
Yeah, I know you love YouTube, but let me explain why.
Is that when you go on Twitch, you go to anyone's channel,
they have this like cultural human centipede thing that's happening where as the memes flow in,
all of Twitch kind of reacts and morphs to all those memes.
So every channel you go to has this like same culture.
Everyone, there's a lot of similar emotes and everything, so it's very tight knit.
So when I stream, I get all the same jokes that you would pretty much see if you saw,
I don't know, Soda Poppin or some big streamer, Asmongold, whoever, Pratata Software streaming,
all the same memes would all flow
through the exact same kind of pipe.
And so it's a very holistic kind of community.
So every time you're making jokes,
you're making jokes that are like in the ether.
Twitter kind of has that too.
Tech Twitter kind of has like a set of jokes.
And so you can kind of see it.
The problem with Twitter chat is that there's just nobody
there right now.
You know, typically like just put it into perspective.
I have somewhere between, uh,
somewhere between like 1500 to 3000 people on Twitch,
somewhere between 800 to 2000 on YouTube,
and like 50 people on Twitter.
So it's like the difference is massive,
but they all kind of...
Twitter has that same thing that's developing
where there's like memes that are constantly flowing through it, and so they're very highly connected.
YouTube just doesn't seem to have that.
They're just a bunch of people, and people go to YouTube for various reasons.
I'm going to YouTube to learn.
So they come in and they want to learn.
So they're not on the meme train.
They're not in this cultural zeitgeist train.
They're just like, but why would you use this if statement when a switch statement in this
one particular case?
And you're just like, well, that's not what I'm trying to do here.
Yeah, you're you want to captain the meme train, or you want to ride on the meme train.
Yeah, or you just want to be able to like create a culture on your chat because your
chat's gonna be some variation of the of that kind of zeitgeist that's flowing through Twitch.
And it kind of is very contiguous between X and Twitch.
It just feels really out of sync with YouTube.
And then YouTube particularly does a bad job.
And some people would argue a good job
because you can swim.
Swim being you can actually change what timestamp you're at.
So all of a sudden you'll be like, oh yeah, you know,
I, you know, something about like driving to soccer
in my minivan.
And then 20 minutes later, you'll be talking about Zig.
And someone's like, I personally up whatever to drive to soccer and
you're like what are we talking about like so YouTube is a very disjointed chat
as well because it depends on where they're at within the video swim comes
from Netflix by the way swim swim the term yeah that's that's that we got
people said swim oh so you're you're okay swimming. Yeah, you're not just making up the term
Thank you. Well, yeah, but it's probably made up and probably only ten people said at Netflix
And so no one's gonna know it and they're gonna be like, yeah, right. Don't thought happens on Netflix
So guys going back to projects what what projects on stream or in general? No
You need to answer why YouTube chats the best chat. Well, you kind of convinced me. Okay, why YouTube is the best chat?
Well, I think I'm just a hater.
That's basically what it boils down to.
And I'm just talking shit.
And I'm probably just like from the outside shooting in
because Twitch is such a fun culture, you know, of memes.
And so it's just fun to shoot from the outside.
To like egg the house of Twitch.
And then I just sit back on my lawn chair with a small YouTube community just talking shit.
No, you're absolutely right. There is a real sense of community that Twitch can form.
But I just like the openness of YouTube. It's just better at opening to the world.
It's more accessible.
It's easier to share.
It's just a more established platform, that's all.
Fully on that theme.
For the non,
for the open world.
Like I can send it to people
that don't usually watch video game streaming
or that kind of stuff.
Yeah. If you send a Twitch link, they're like,
I don't like video games.
And you're like, well, actually it's not video.
Like that talk happens every single time
you mention Twitch, because Twitch does have a perspective
about it that YouTube does not.
I was just on Joe Rogan's podcast,
and I think it came up.
He asked something like, is Twitch still a thing?
So that just gives you an example and then Jamie said yeah it's definitely
still a thing it's still like growing and so on and so yeah there's just a big
slice of humans that don't dissipate in the Twitch sphere. I just like
talking shit so yeah.
That's a beautiful answer.
But it's cool that you sort of make it accessible
on all these different platforms.
And I have high hopes for X, but yeah, it's feature-wise,
it still has a lot of growing up to do.
And just like, why do people use X?
You typically are going there
for like a text-based interaction you wanna look through.
So I also think they just have like a user expectation change that needs to happen,
and that just takes a while.
You know, that's going to take a little bit before people get to it.
I think their idea of audio first is a great first step
where people can kind of listen to it and have the phone away maybe.
There's a lot of like changes that have to happen before X can be successful in that.
I mean, X is this incredible comment section,
just like Reddit, right?
So it's like.
No, no, no, you said incredible.
That's not Reddit.
Comment section, correct.
Comment, yeah.
Incredibly dynamic and vibrant, even if it's,
yeah, what is the technological platform?
Like how does the interface and the technology
shape the discourse?
It's fascinating, because X is a different style
than Reddit, different style than like Facebook,
different style than Instagram.
It's interesting, and all those comment sections
are different technologically.
Like how the sorting is done,
how easy it is to sort of build a community around it.
Because YouTube is not really a community.
Every single video on YouTube has its own mini community.
You're like all talking shit on just that one video.
But you're not, you can't jump across.
There's no like, hey Bill, hey George,
you know what they are.
There's no crosstalk that happens in multiple videos.
Yeah, but community's awesome.
I love community.
I love the feeling of community.
And I guess that's what Twitch really provides.
YouTube also does have it though.
They have an aggregate community.
There's a lot of fun comments and all that on the videos
and a lot of thumbs up.
And then you see the fun discourse that happens. And it's like, that's a lot of fun comments and all that on the videos and yeah Yeah, a lot of thumbs up and then you see the fun discourse that happens and it's like that's the community
It's just only a certain slice sees it. I think that's even more so on YouTube for live streaming
Though all the same folks show up and they talk shit. They celebrate they all like the the meme train arrives. Yeah
Okay. So now what projects shape you as a programmer?
What are the ones you streamed or offline?
For me, I don't know if there's like a one project
I can point to, but I can point to a specific spot
where I think it happens,
and where I think you can learn a lot from.
Any small program you write will be somewhere between
like a thousand to 5,000 lines of code. I consider like a pretty dang small project. You can
kind of correlate this to any feature within a larger system as well. You know,
a specific feature on a website could be a thousand lines, a couple thousand lines.
There's a point in which all of your choices add up and that's... I typically
find that right around five to ten thousand lines of code. The choices
you've made,
either weigh you down or kind of free you up. And so it's right in that, that I feel like I
learned the most is because I love getting to that point in a project or in some small part of the
code base, because at that point I get a test a how good were my initial gut decisions about how
I designed software, but B, now I need to go back and think about like, how am I going to do testing across this in a more effective way? How can I scale this out to
20,000 lines of code? 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 that's really where the best learning happens, is that everybody has
probably a different number that exists. And as you go to each one of these numbers, or how well or holistic you want your project to be, I think that you'll come up with different numbers. And as you go to each one of these numbers or how well or holistic you want your project to be,
I think that you'll come up with different numbers.
And I think that number should just get bigger
as you get more experienced.
Because you know, there's projects
that are a million lines of code,
but they're most certainly not holistic, right?
Like every part of the code base is some age
at some capsule of time with some sort of programming style.
Some is more functional, more class-based, more, God help your soul if it's pre-process
or macros and C++, right?
Like there's like all these different kinds of things you'll find throughout time.
And so that's why I kind of try to think about it as like the feature or the thing you're
working on.
It's usually about 5,000 lines is where I find that things get kind of, did I make good
or bad decisions? And that's where I do all my learning is right on that phase
I'm trying to get it to the point where I should be able to shoot from the hip and do
20,000 lines and not be upset about it. So first of all on the just enjoying the thing you create part. Yeah
About there you can sit back and see all the parts
dancing together for me also
debugging
You get to see the choices you make
materialize as like how easy it is to debug. Like I'm a big proponent, I think
you've mentioned this in the past, I put asserts everywhere.
No, you're the reason why I do that. You're like the first one keep on going, sorry.
Really? Okay. So for me one of of the joys, whether it's try
catch blocks, whether it's assert, whether it's testing, I get to see the payoff of all
the mine field of asserts I've laid out before me in my kingdom by how quickly I can debug a system as it grows larger and
I can first of all discover errors before they become real bugs and also how quickly
I can solve those errors and that brings me joy.
For me a lot of the joys of programming is creating powerful systems that don't break
down that work correctly, that work correctly.
That work correctly in majority of the cases.
And they're sort of the stress testing the system
and getting all the signals from that system
that everything is working correctly
is something that fills me with joy
and makes sure that the system actually works.
So yeah, at that, I don't know if it's five,
10,000 lines of code, if it's Java or C++,
it's millions lines of code, but yeah.
In Python, yeah, I would say 10,000 lines of code,
that's when you first get to see the magic.
But anyway, you were saying.
Okay, so you and John Carmack had a conversation
about asserts. Yes.
You talked about this idea of putting asserts everywhere
that effectively crash the program
when you have some state in your program
that should not be represented
and you have made this choice actively.
And so I've never done that before.
And I know this is like an old technique
and I obviously must be too young or too dumb
to know that this was a thing people did.
I grew up in Java and I think that's probably why
I didn't run into this.
So I saw that and I was like,
I'm curious about how to use a certs more.
And then I ran into a person named Yoron.
He's the CEO and creator of Tiger Beetle.
It's like the world's fastest, greatest financial database.
And it was spawned out of a company
that needed to do a bunch of financial transactions.
And it's written in Zig.
And what they do is they do deterministic simulation testing
and they just use NASA's kind of guarantee
for creating really great software.
So like, don't use U size,
specify your exact size of into you expect everywhere.
All these kinds of like things they do to be very specific.
And one of them is that every function
should contain two asserts,
whether it's positive space,
like, you know, these things should happen,
or negative space, like, you should, these things should happen or negative space like
you should not this pointer should never be null. You're programming into things that should never
happen. Normally, you just never specify that you'd never think about that. So every single
function everywhere has all these asserts and these asserts run both in production and in testing.
They're always on and then they take deterministic simulation testing
and run like 200 years of just random data,
just complete slop going through the system
and seeing how far it goes.
And when an assert happens,
they're like, here's the input that caused it.
Here's every last little bit that happened.
And now you can identify where this went wrong.
And it was so cool.
So between you, John Carmack and your on,
that's where I like, okay, I got a real
and NASA 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 I did try to build a kind of like this big reverse proxy for me, trying to
do some game development stuff.
And I just went ham on the asserts.
And then I built the whole simulation testing thing that could do
everything deterministically.
So, uh, you know, even the result of requests would all come in specific 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 making. I found some bugs
where my cursor went off screen, it would cause all these different problems because
I just never tested them. And it's super fun. And it's like a really great way to program.
Yeah, I think it's a skill set you go over time. It's not just that you have to specify
the preconditions, like everything that has to be true.
It's also adding things that are like,
you might not even think about.
You have to sort of anticipate really weird things.
And if you add asserts, especially in complicated functions
or in complicated classes that
are able to catch really weird things.
That's going to save you so many headaches. And it's going to help you learn about your own code.
This is one of the things, I think it was Jonathan Blow
that either in conversation with you
or was it in presentation,
he said that when he's starting on a project,
he usually doesn't know what, like how to implement it,
like what, how it's going to work.
And I think he was saying that he wants
a programming language, this might have been a criticism
of C++, I'm not sure, where he wants a programming language
that makes it as painless as possible for him to not know what he's
doing, how he's going to implement it, and to quickly get to a place where he
figures it out. I think there's a fundamental like part of programming is
building stuff while not really knowing what the next thing you're doing is.
You kind of have a loose design, maybe a strict design, but really you're
solving puzzles that are not, it is a dark room in a fundamental sense.
And there you have to anticipate the kind of weirdnesses that might emerge while
not really knowing everything, just this full like fog, fog of war.
And there that's a real skill to anticipate the kind of issues that might arise and put asserts
on top of them. And it's also like spiritually for me been a really nice way of programming, a building of living life is having like
very strict asserts that say like, you're going to fix this problem. If it ever arises, you can't just look the other way.
Like this idea of treating warnings as errors, like make sure your
code compiles without any warnings.
That was a big leap for me.
It's like, but there's so many of them.
And I, it's not really that important. It's like but there's so many of them and I it's not really that important
Yeah, it's like no no no warnings. I can make sure you treat every single problem
Even like fuzzy problems seriously because that's actually long term is going to create code
That's much easier to work with much more fun to work much more robust, resilient to all kinds of weirdnesses,
all that kind of stuff.
So it's a different way of approaching coding,
probably more NASA-like versus like web programming style.
But yeah, it has made programming for me personally
much more fun.
Because one of the most painful things about programming
is creating when 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 take days to find.
And that's torture.
Yeah, when your system gets sufficiently large,
some of these bugs are just, they're very difficult.
I, you know, bless anyone's soul
that's working on million line code bases,
because it does. It just, I can't tell you how many times I've spent multiple days just trying
to figure out the root cause of the bug, not even the fix, just like why does this happen?
And that's hard. So I love 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, I don't put into practice constantly, which means it's just
not like a muscle memory type thing. And so it's just one of those things I just love. into practice constantly, which means it's just not like a muscle memory type thing.
And so it's just one of those things I just love.
It's just, it's such a fascinating way
to approach a problem.
Cause I would have never thought,
you know what I'm gonna do?
If I'm wrong, I'm gonna crash this thing.
I'm gonna crash it right here
because I should never be wrong.
But instead you're like,
oh, actually that makes perfect sense.
I should crash this thing.
I've done something terribly wrong here.
Why would this ever exist? And then you're like, this is going to solve a whole class of problems.
Yeah. And especially if it's in productions, like, well, user is going to see this crash.
It's like, yeah, well, you should minimize the number of times any user ever sees the crash,
not by like having a nice blue screen or whatever the fuck, but like actually stopping everything.
And that's going to be,
that's gonna create an incentive for you
to never have that happen.
You're actually going to put in the time
to make sure it never happens.
And the nice part is like with the web and all that,
you can always pop up something and say,
hey, things have gone very, very wrong.
We're unable to recover.
You can like give them a nice message
and then log it off so you can see it
and then measure how often are you doing it. You know, I understand that
there's a bit of interestingness to a web project. Like, do you want to always crash
a server? There's a bit of a gamble if you release a bad version and you crash all your
servers constantly, you know, like that's a pain you're going to have to accept.
I think this is more applicable for single systems like robots and so on.
You have struggled with ADHD. I think a lot of people are really inspired by the fact that you're
able to be productive and flourish. While having ADHD, how'd you overcome it?
Well, there's a lot of things that ADHD affects.
And so I'll start with some of the easiest things because there's like directly applicable
than like these kind of collateral damage applicable things that happen.
So one thing that has really helped me with ADHD is maturity.
I think that's just like just a thing that everyone needs more of meaning that I
Found myself getting so wiggly and so out of control when I would try to sit down and read and I just I just couldn't handle it
I just felt like I'd read a page and didn't read anything
The part of me that just went oh my gosh. I just can't even do this
I had to could just simply quit listening to and said no, I'm rereading this page
I'm I remember reading some pages in college like 18 times in a row,
just like I'm going to force myself
to just do this the correct way.
And so there's an aspect of maturity that really helps.
No matter what, I will do the thing I'm going to 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 of it.
It's that I'm doing it and that's the point.
And so that's kind of like one thing
that I think just generally helps in ADHD, no ADHD,
you know, the resilience, emotional resilience is just like a really important aspect that
just helps.
And so I think that has been a large part that really helps me.
There's things that I still obviously struggle with, like it's clear where I'm really bad at stuff. And just trying to like think through
all the different things that I'm bad at,
there's more things I'm bad at than I'm good at.
And so programming obviously has something
that just allows me to remain focused
and 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 through
kind of that emotional resilience, I was able to start doing it more and more. And so now I can just do it for a little bit. And then just through kind of that emotional resilience,
I was able to start doing it more and more.
And so now I can just do it for like 10, 12, 15 hours at a time.
And I absolutely love it.
And so it's become kind of like a joy.
It's like playing a musical instrument.
I'm really into it.
But then if it came down to,
hey, you need to go schedule your own dentistry
and go do all these other things or make sure the kids have this type of stuff ready
for the meals you need to pack throughout the week.
I'm historically very bad at that
and will probably continue to be very bad at that.
And so 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 me and she helps clear out a lot of the things
in my life that cause a lot of like me kind of getting snowballed into a weird spot where I'm
just like distracted getting nothing done and so she's really helped me so it'd be foolish of me
to claim that I've defeated ADHD by myself but instead I find that the places that I can really
control I've done a very good job at,
and the things that I obviously need to do much better at,
my wife has helped me a whole bunch.
And so I've kind of cheated, maybe I found a cheat code,
a loving wife, but that has been the thing
that has really helped.
You said a lot of interesting things.
So on the reading and the, for me,
it's also audio book side, I do the same thing,
and I've gotten much better at it,
which is like, you know, I do the same thing and I've gotten much better at it, which is like,
you know, I tune out mentally and I, you know, I'll, yeah, there's, you know,
read a page and you don't understand anything on the page.
You, you, you didn't actually read it.
And yeah, you, I, I forced myself to just reread it or re-listen to an
audio book, which is much more common problems for me now.
Uh, and forcing myself to really pay attention.
Because I listen to audio books often when I run,
and it's so easy to just tune out.
Yeah.
It's a skill.
I didn't realize how much of a skill listening
to an audio book is, especially when there's other sensory
inputs, like when you run.
So I have to force myself to really pay attention
to every single word.
And if I don't tune out and don't remember
what I just listened to in the past 30 seconds,
I force myself to re-listen to it.
And sometimes that means like five times
until I like, it's like punishing myself to like,
you're gonna listen to this boring shit over and over
until you get good at that little skill of like,
zoom in and you're like,
yeah, there's people, they're like doing stuff,
there's nature, doesn't matter.
You're listening to every single word and loading it in
and trying to stay focused.
Even there's just so many distractions all around you, yeah.
It's definitely a learned skill and it takes a lot of time.
And when I say, you know,
oh, I was able to do from here to here,
I'm speaking over the course of like five years
of doing this every day.
Like it's not some small, there's no,
you could, the nice part about that decision though,
is you can make that decision today.
You can make it right now.
You're gonna be like from here on out,
I'll never make that mistake again.
I will say I'm gonna read 50 pages.
I will sit down and read 50 pages.
And when I get distracted,
I'll go back to the last place I remember
and I'll start again.
And like, that's a decision you can make.
That's a mature, you know, non-em and like that's a decision you can make that's a mature
You know non emotional decision to make and you can do that It just may be really painful for the first couple years of making said decisions and then it gets easier and then it gets easier
And then it just it becomes more natural to change yourself. Yeah in with every media with every platform
I think it's like a new skill
For me like using social media has been that just, I think it's like a new skill.
For me, like using social media has been that. Just like I end up like doom scrolling too easily
on platforms.
And one solution is not to look at all,
which is kind of what I lean on mostly these days.
But I feel like I should be able to check, just read.
Okay, feel a thing, learn a a thing and then put it down. Yeah versus like
This glaze look over your eye and you're not really paying attention anymore and you're dead inside and you feel horrible afterwards
I don't understand
The horrible afterwards is real serious
I've definitely I can 100% notice that I am a more anxious person the more time I spend scrolling.
Yeah, yeah.
I can just feel it.
It's like something inside of me that's kind of,
I don't know how to say it,
other than it like wants to get out,
but I don't really know what that is.
It's not anger, but it's not, you know, it's very anxious.
It's like the opposite of the feeling I have
when I wake up in the morning and I'm feeling good
and I look out in nature and like look at the sun
and just, and it's like a bird chirping
and this kind of thing.
Like scrolling through social media,
even if it's like super positive stuff or whatever,
it's still not the same feeling as the bird chirping.
Bird chirping on Instagram is a different bird chirping
than real life.
Like, cause bird chirping on Instagram,
I'll start swiping until there's demons
of different types fighting inside my head.
And then I, yeah, different anxiety, insecurity,
whatever the hell, just the mixture of chaos
versus the bird chirping in real life.
That's beautiful.
But again, that's the same thing as with the audio book.
It boils down to, man, these people that talk about meditation,
I think that's probably, they're onto something.
It's like, that's what it is,
is be able to like focus calmly and deliberately on a thing,
whether it's reading or audio book or existence.
When they have sort of observed the breath,
you're able to silent out everything else,
remove everything else from focus, yeah.
That's a skill.
That's a skill.
I heard it put really beautifully,
which is that we in America really have
misunderstood liberty, because we typically have liberty
as just the freedom to do whatever you want.
And the argument was that it's not the freedom
to do whatever you want, it's the freedom
to be able to do what you will.
And how often is what you actually want to do you don't do
because you get trapped doing something that you've convinced yourself in this quick moment you want to do.
And so it's like, I want liberty.
I want the ability to control my energy and to be able to like do the thing I want to do,
not to get distracted and destroyed in all the millions of distractions.
And some of us get, you know, handed a worse deck of cards, some of us get a better deck
of cards, but I don't think there's anybody that doesn't struggle with it in the technological
age.
Yeah, and that's the skill.
What can you say to the skill of achieving focus in programming?
Like, do you have a process of how you sit down and try to sort of approach a problem.
So all the different, not just distractions, but the challenges of starting a project,
of thinking through like the design, how to maintain like real focus, because it's really
difficult intellectual endeavor.
I guess at this point, I'm lucky.
But when I first started, I can remember that every last part of programming,
I had to go look up, I had to go read,
I had side quests at all time.
Like every step was a side quest.
Why is my screen blinking
when I'm trying to render this thing out?
Oh, I didn't know about double buffering.
Why is this happening?
How do I even write to the screen?
How do you know, like everything was a question.
I had more questions than answers.
And so I constantly had this, like the problem of side quests.
And I find that to be a very exhausting thing.
But as I learned my instrument very, very well,
I don't have as many side quests.
I become more and more able to just focus
on the thing I want to do.
And I find that to be something
that is just super, super useful.
So when I say I'm kind of lucky,
meaning that I've spent so much of my life
preparing for this moment,
that now when I have the opportunity to do something,
I can just do that thing and I don't,
like I can be just on an airplane
and I can just program for hours.
I 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.
I can write a thousand lines of code on an airplane
and I'm very confident that it's gonna be
98% pretty dang good.
And I'm very happy about that
because that allows me just to be in the moment
solving the problem I'm trying to solve.
Then I have 100% of my brain power solving a problem.
And this is why I also,
it's the same reason why I recommend learning how to type
and learning your editor so well
you don't even have to think about the action
because the people that have to,
even if you just look down,
that's still mental processing power.
You have to spend looking at a keyboard
in which you already know where the key is.
Like you do, at this point,
if you've been typing for thousands of hours,
you know where the key is, just stop looking down,
you'll learn really quickly.
And so it's like this thing where it's like,
I'm not gonna spend all that time and all that mental effort
like looking up the thing, I'm gonna just memorize, you know,
I'm just gonna get it in me and then I can go fast.
And it feels good.
And so that's how I'd kind of defeat that,
is because now I get to do something where it's like,
there's no more questions.
It's now me just expressing myself into this medium.
And it feels really good.
I'm sure there's still like things that pull at you,
like curiosities, distractions distractions like well wonder how
you know
Anytime I guess you have access to the internet, you know like
Twitter's a big one on that one. Yeah, you're gonna get curious about stuff
Yeah, including I guess you're talking speaking about everything in the editors optimized, but you're okay
You can always improve stuff. You can always find better sort of macros. Oh, you know what, this thing that took
this pain point I just found, this tiny pain point,
let me spend the next five days creating a plugin
for my editor or whatever the fuck
to remove that one pain point.
Well, you should have just kept going
as opposed to taking the side quest.
So I have a rule, which is I do not edit my RC
other than some kind of cataclysmic thing,
like someone updates a plugin, I didn't know they updated it,
now there's like a hard error in my editor
and I have to like move forward.
But I have a rule where I will edit my RC,
my NeoVim RC or anything, once a year.
Something that bothers me, I will write it down.
I'll remember it.
I'll be like, okay, I want to change that, but I will just not go back to it.
And every now and then I, I'll break that rule.
If I know it's like, Oh, I want a new remapped to be able to do this one command.
And that takes like literally 13 seconds.
Like copy paste, do this, pop up, pop done.
Okay.
I have this new remap.
It made perfect sense in this situation, but I don't go plug and exploring.
I don't try to solve every problem.
I don't want a perfect editor because I don't try to solve every problem. I don't want a
perfect editor because that is a pursuit that will never stop. I
just go, this is good, good break point. I won't do it
again. So I spent last month, I probably spent 100 hours just
like editing every possible thing I could about how I start
up my system. And make I can have a computer from zero to 60
in almost no time now
everything the way I exactly want it Neil them everything all perfectly set up
happy enough I'm not gonna touch that system again maybe I'll touch it next
year maybe I'll take a year off you know it's just I'm fine with that I'm fine
with not being perfect all right zero to sixty let's talk about the perfect setup
what's your perfect programming setup?
Keyboard, operating system, how many screens, chair?
All right, I like all these.
IDE, let's go.
So keyboard, you're using my favorite keyboard right there,
the Kinesis Advantage, save my career, beautiful keyboard.
Concavity and thumb clusters are just so important
because if you really think about it, especially if you're using QWERTY, when
you're pressing the symbols, like on a standard keyboard, you're just doing
this the whole time, backspace enter symbols.
Like you're just doing this and just screws up your wrist constantly doing this.
And this one, you're constantly doing like control and shift.
And it's just as like messing you up.
So it's just like right here.
That's so much nicer in life.
So keyboard most important, I'd say, get that one done.
For people who don't know, can use this keyboard.
I think the thing that you experience the most
is exactly the thing you just said now,
which is the backspace is really easy to press.
Yeah.
Versus what it is on normal keyboards.
So backspace in general symbolizes,
like you're deleting a thing it symbolizes a mistake
Not symbolizes usually means a mistake. Yeah, and so
Not only did you just make a mistake and what you were typing you also have to take a physically painful action annoying action
Yeah to to fix that mistake and for most of us would make a lot of mistakes. So
Kinesis just makes it pleasant and fast and easy
physically to correct a mistake.
That's probably for me the number one reason of Kinesis.
Everything else, yeah, super plus with the Mackerels
and the position and the concavity like you mentioned,
but their mistakes are pleasant.
Yeah, I'm on that team.
That's why I love that.
So that's, I would say that's one of the most important
things.
The next thing that I find to be very, very important
is that one monitor.
I'm a one monitor kind of guy.
What, really?
So when I program, when I do anything,
now when I stream, I obviously have a second computer
that runs the stream, because I sometimes crash my computer
at the restart or whatever.
So I do have a second screen there that I put stuff up,
but most of the time you'll notice that
even when I'm streaming, you've been there,
I have to physically switch to the streaming channel
for me to read it.
And that's because I'm operating off of one screen.
And so I have this whole style in which I like to navigate,
inspired by StarCraft, is that I believe in the
press one key, go where you want to be
mentality. And so everything about my setup is press one key. So when I want to go to Twitch chat,
alt two, Twitch chat, when I go on to go to my browser, alt one, that's my browser, alt three,
that's where I go to my programming. That's power finger, obviously, a big middle finger right there,
just smash it down. Alt six is going to be GIMP, so my GNU image manipulation program.
So if I want to draw, I go there. When I used to have Slack, it was Alt 5. If I have a spare
terminal where I need to run some extra things, that's Alt 4. I had all these kind of, everything
is perfectly mapped out to single key. And then when it comes down to using, say, TMUX, I have
all my terminals into one single terminal. And now I'm able to kind of switch between there
Prefix one goes to my Vim editor whatever project I'm in
It's always the first T mux tab a tab if you will not sure they call it a session
But I'm not sure how to describe it if you're not familiar with T mux a tab
Second one is like my spare terminal third one is my long-running process terminal
My fourth one is a long-running process terminal
So I have it all set up so every project I go to
automatically spawns session one, VIM,
session two, spare terminal, session three,
will also open it.
So it's like, brrr, everything's just ready to rock.
Everything has been optimized to where I do that.
If I want to go to a project,
it's control F and any terminal will bring up
a fuzzy find list of every one of my folders
on my operating system in which I can go to with just a couple keystrokes 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 possible.
Via keyboard.
Via keyboard. Then in Vim, I developed a plugin called Harpoon, which is I press one button and I can pin one of the files to like a temporary buffer. I think projectile is potentially close to this in Emacs.
I can't remember projectile.
I think projectile is closer to my sessionizing script.
Anyways, so now I have four pinned files
in which I can go to any of those pinned files
with just a single keystroke.
And so now it's just like,
because every time you develop a feature,
usually you have like three files
you're kind of primarily working in,
and I can fuzzy find for the other files,
and that's that, but usually I just have like
these three power files that I'm always swapping in between.
And so it's like, now everything is just,
I wanna go to the browser, that's one press.
I wanna go to my workstation, that's one press.
I wanna go to a specific folder, I need to change folders.
Sometimes you work between two different projects.
So in TMUX, that's prefix capital L
will swap between your last two.
So I have alternate projects.
I can even swap between projects and pretty much one key.
So it's just like, do, do, do, just trying to optimize it.
So I don't think as much.
Cause I think search fatigue is a massive fail
where you have to look for it.
Like when I see people on a Mac do this
and then explode all the different ones,
that gives me anxiety.
I'm like, why are you using your eyeballs
to search for what you want to do?
Make it into a key press and never think about it again.
Ever.
You're making me think a lot
whether I can live with your system,
whether it's better, because it feels better.
It at least intellectually feels better.
It may not be great for some people.
There's a few profound things you said,
which is really what your,
the number of windows or tasks you're switching between,
whether it's programming,
the number of files you're working on is small.
Yeah.
Any one time, at any one space of like 20 minutes
or something like that.
So okay, that's a profound truth.
Sometimes we think like,
oh, I need the full freedom to search, but
you don't. You usually work on a very small slice. But I guess the trade-off
there, like I always have three monitors, not when I'm traveling, but my happy
place is three monitors. It's like, do you really need all of them to be present
there? So you're turning your head. Now the the monitors I have is two vertical
ones okay which is just better for certain kinds of content. They mean
they're positioned vertically so you can read you can use your eyes to scan
quickly. Interesting so I don't even do that I even have it so zoomed in that I
probably only have like maybe 25 lines of code at any one time on my 27 inch
monitor. Yeah I think that's okay.
I think I feel fundamentally constrained when I can't see more.
Because your eyes are just good at jumping.
Like, okay, like you could like.
Why not search, why not press a couple keystrokes?
Control U, Control D, jump down by up and down
by half page.
Because the APE visual system was designed to,
like you're loading a lot of information.
If every time you have to investigate this table,
what's on this table, you have to press a keystroke,
you could develop the skillset
that integrates that information.
But it's really, there is an effective thing
where if you have a sheet of paper like this
and I'm looking at it, my eyes will be able to load in
the structure of the information,
the topics of the information.
You just can do it faster, I think.
There's a big cost because it's an extra monitor,
but there is some stuff that's vertical,
when vertically positioned.
Code, see code is an iffy one,
because code you really, 25 lines at a time,
I think you can do a lot.
This is more for articles,
and especially with visual information
or documentation, you can just jump faster.
But I'm trying to, as you were speaking so eloquently,
I was like wondering, am I just like
deceiving myself that I need that?
Can I just keyboard shortcutify everything
and just have everything on one monitor?
That's something I should probably try,
because I'm a big proponent of just automating everything
with the keyboard, because you can just move
really, really fast, you don't have to think.
One of my, you know, because I also do creative stuff
like whether it's recording music or video editing.
It's hard, you know, some of these programs
don't make it super easy for you.
On Windows with AutoHotkey, you can do quite a lot,
but still, there's limitations on how much you can do
with the keyboard.
So that's, it really is a pain in the ass
to have to use the mouse.
But man, you're really making me think.
It's, you know, even the text one, the reading one,
like fundamentally, I think I agree with you
that you can see a lot more and you can kind of look up and down
and see those two things.
And probably in articles or things like that,
I could, you know, if there's like a graph down here
that's really big, that take up your whole screen plus text,
I could see why that would be very beneficial to zoom out,
to be able to have all that information.
But for me, I can only look at like a square inch,
like really that's all my eyes can actually focus on.
So when I'm reading, I'm right here.
Then I have to like structurally try to pattern match what I think the information
looks like. Then I had to start reading it. So I'm not exactly sure if I actually get
any real benefit of having a lot of stuff on screen as opposed to I can relax my eyes
so much. I don't even have to focus. The words are so big. Like I actually program pretty
zoomed in. My text is bigger than this when I program. And so it's just that it's so comfortable I don't even have to
exert any effort to read the code. But you have to kind of train your brain to
know that you can navigate in like spatially using keys. Yeah, NeoVim by
the way. Oh maybe it has everything to do with NeoVim. Okay. All right, and then Neo Vim's obviously the next big one.
I love Neo Vim.
Reason being is that I think you can make all the arguments
that you want about which editor is the best.
I do not think you can make an argument
that Vim motions aren't superior.
Here we go, can you explain Vim motions?
Okay, so. What is this?
So Neo Vim, Vim is a old school editor.
Neo Vim.
It's a modern take on an old school editor.
Yeah, and what's E-L-I-5? old-school editor, Neo Vim. It's a modern take on an old-school editor. Yeah. And
what's E-L-I 5? What like what does it take to work with Neo Vim? Okay, I
thought you're talking about a Vim motion there. That's how, you know that, I know,
but you know that meme that's just like, hey Jarvis, can I tell you about Vim
motions? Because they can't fit anything else in their head because they only
have Vim motions.
You said EL five, like explain it like a five.
But in my head it's like, okay, E is jumped
at the end of the word, L is one more.
It's like, I do not so like broken.
I'm like, okay, Vim motion when I hear letters.
Yeah, so you can think of it like this,
is that Vim has a language to describe movements in text
because its primary mode of operation
is manipulating or editing text.
So it is a well-thought through set of movements,
deleting, yanking, pasting, copying,
all that kind of stuff that goes in,
motions that are optimized for working with pretty much code.
Good example, say you have three lines of code
you want to delete.
If you're in VS Code, take your little beautiful mouse,
highlight those things, press the backspace.
That's lovely.
Your hand left the keyboard, very simple to do though.
It's very beginner friendly.
I was a huge Vim hater, by the way.
So I just want you to know that before we go into this,
I was probably the biggest Vim hater.
If there was like Saul to apostle Paul,
I am like the Saul to apostle Paul of Vim. So you see how big the gap was. Or you can do something that's like, Saul to Apostle Paul, I am like the Saul to Apostle Paul of Vim. So you see how big the gap was.
Or you can do something that's like, I don't know what the VS code shortcut is,
but I'm sure there's some keys you can press to delete the current line you're on.
Delete, delete, delete. Right? You can just do that.
In Vim, I can go DAP, delete around paragraph, all contiguous code in that thing,
I'm going to delete. So D, then I can choose my motion I want to take, AP, a round paragraph. Or maybe I want to D, F, mean jump up to the next
character that matches the next character I'm going to press. So D, F,
opening parenthesis, will delete everything from your cursor up to the
first opening parenthesis. So you get to describe your motion in these little key
strokes, and as you get really good, you know, you've seen people that can master
Fortnite, it's the same thing with mastering Vim motions. When you get so good, you know, you've seen people that can master Fortnite, it's the same thing with mastering the emotions.
When you get so good, you no longer think about each individual movement.
Instead, you're just like, get rid of the paragraph, jump here, jump this, highlight
this, yank this, do this, you know, it becomes so fast that you can superiorly edit text
at a very fast rate.
And there comes a point when you know your language really well, you know the problem
you're really working on really well, where editing text and getting code out
actually becomes one of the many bottlenecks.
People always talk about, well, most of the time I think,
most of the time I'm not thinking, I'm programming.
I know what I want to do, I wanna go as fast as possible
because I've been just doing it for so long
and I'm so familiar with kind of the general space
that it becomes a huge problem for me.
I cannot tell you how many times
that I've been purely bottlenecked by the fact
that I just can't type fast enough
and I just need to get it out of my head onto the text editor.
And so that's why I think VimMotions are superior
in all aspects.
Keep your hands on the keyboard, on the home row,
and can manipulate text in very wide and fast ways.
So this is not just about writing text,
this is about modifying text.
It's primarily about modifying text.
And I'm sure that most editors, including Emacs, including VS Code, can do all those
same things, but there is something that just don't encourage you to discover those
things.
Yeah.
That's like an important thing about a lot of technologies that, and programming
languages, that a lot of them can do a lot of the stuff.
But it's something about whether it's the community
or the style of the language or anything like this
that encourages you to not be lazy in the beginning
and learn the fast way to edit text
in this particular example.
How to use the keyboard.
That's a fascinating sort of just reality
of how technology is used.
You wanna be encouraged to find the fastest thing
as quickly as possible so that long-term,
it's efficient and fun to use.
It takes a long time for dividends, 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.
Let me give you one more example, Okay. I'm a big fan.
Okay.
Let's say you have a line that can, that contains some, some variable, some function
you're calling something that takes in a string and you need to do that again.
So you, you, you would typically copy that line.
You'd paste that line below.
You'd go into the string and you'd change the string.
Let's say it's calling some sort of configuration.
You need to call it three times with three different configuring strings.
In Vim, I like to do Shift V to highlight the whole line, then Y.
Some people do YY, but I don't like to do double ones.
I like to be able to do two different fingers because you can do that way faster than one finger twice.
Just a little optimization for me because you can't press that as fast.
So anyways, very optimized in my approach.
So I yank the line, paste the line,
CI double quotes will delete everything
inside the first occurring string.
Then I can type the string, escape, save.
And so it's like so optimized
that I can just jump so fast in between that,
whereas the copying and pasting lines
probably the same speed,
but the navigating to the string,
deleting what's currently in the string.
And then, you know, like that's such a fast motion in Vim. And I just do
that all the time. To backtrack, really dumb question, CI, what's the difference
between typing the letters and using the letters to navigate in that? How do you
switch between the two modes? Okay so insert mode means that you're just
putting in text. Yeah. And then normal mode means that you're moving your cursor.
How do you switch between the two?
Escape.
Escape goes from insert mode into normal mode.
And to go into insert mode, press I to take your current cursor and go to the beginning.
A to go to the end of your cursor.
Capital A to go to the end of the line.
Capital I to go to the beginning line.
O to put a new line below and then put your cursor at the proper intent for the language.
Shift O to shift your current line down and then put a new line in. Like put your cursor at the proper intended for the language shift o to shift your current line down and
Then put a new line in like you can see yeah
There's like a lot pressing escape a lot
Yeah, I mapped mine
I do ctrl C control C does the same thing except for in one edge case people hate that I got used to it just due
To the fact that I was using IntelliJ and I really hate pressing the escape key
So I just got used to pressing it so that seems like an essential thing to do if you're using NeoVim to map escape to something.
Cap lock would be like your standard go-to.
Oh yeah, I map it to, cool, I gotcha.
Yeah, so then it's just really easy to press it
and boom, boom, boom, not a big deal at all.
But yeah, I think that if you're willing to learn it,
the emotions are superior,
but if you're not willing to learn it,
then they're not superior.
You should just not do it.
If you're willing to endure pain, it's good.
If you're not, it's actually way worse.
It's 100 times worse.
Right, so if you like pain, you use Neovim.
Totally, I understand.
Yeah, you're totally on board.
See, now you get it.
If you like joy, you use Emacs.
So.
Oh, sorry, sorry.
Did Emacs ever get a good text editor?
I know they're a great operating system,
but I never caught up if they got a good text editor. Operating system.
I think you've been miseducated, my friend.
So at least 30 minutes on Emacs versus Neo of Em
is what Reddit requested.
Have you actually used Emacs
in order to be able to talk some shit or no?
I used it for a year.
You used it for a year?
Yeah, yeah, Doomac, SpaceMax, and regular Emacs.
But you don't know Lisp, so you did you really use it?
I kind of hacked my way through kind of like okay, so this is how the config, you know,
like you kind of get your way through and do all that.
So you recommend to sort of master new of em and really learn the depths of it,
but emacs is okay to just kind of use before making a judgment. I think everybody...
You got me on that one.
Yeah, no.
And what's new have been written, is Lua?
Yeah, so Lua would be the configuration language,
but you have, it's written in C, but you have Lua for,
and Lua is just a dead simple language.
Anyone can program Lua.
I actually don't know why.
I think it's because my love for Lisp
that I went with Emacs.
I think you just choose a path
and you walk down that path.
that I went with Emacs. I think you just choose a path
and you walk down that path.
And because there's just such a vibrant,
intense battle between the two communities,
you just start fighting
just because everybody else is fighting.
And then one day you're like an old warrior,
like on a horse and you're wondering what,
what was this all for?
And I mean, it's quite sad in all seriousness
that I haven't to this day tried any of them.
I think because there is a learning curve,
there's a learning curve to a lot of these editors.
Yeah. To really learn.
To really learn it.
And I think this is some of the criticism
of maybe VS Code or Sublime or Atom, that it's so easy to not learn it,
to just kinda half-ass use it.
And there is a big benefit to having editors
that force you to have some learning curve
where you take the art, the science,
the procedure of editing seriously.
Cause like you spend so much time in it.
You might as well like learn like how to use the thing.
My big takeaway really, like what I'm trying to say
with all these words is that I honestly don't actually think
that the editor obviously does not make the programmer.
But I think it says a lot about your character
as a programmer, if you don't know how
to use your editor well.
There's something about a person
who's willing to commit their life to programming
and spending literally 50,000 hours doing an activity
over the course of their lifetime
and never take the time to learn their editor
through and through.
It just seems strange, right?
You'd never see that in another world
where people would be able to build something
or do something and just completely forget
how these things work and only just focus
on one part of their craft.
And so to me, it's just like,
it doesn't matter how you use it.
I want to see the person that just knows how to use it.
And they know how to use it well.
When there's a problem, they can say why the problem exists
and then go and fix the problem.
To me, that's like, there you go, you've done it.
You now know your tool,
go forth and conquer with said tool.
Especially for tools you use a lot.
You have to look at like your whole life, your life,
whatever, if you're a developer or anything,
like what is the thing you do a lot?
Meetings.
Yeah.
Yeah. I mean- Sorry, keep going, keep going. Ask a question like, how can this be done a lot better?
Because every single day you do this for hours a day, how many hours did you spend on thinking
how to do this better or whether to do it at all in the case of meetings?
People surprisingly just don't do this enough.
I see this just to go back to jujitsu.
There's a lot of people that show up
and do jujitsu or martial arts,
and they do it the same way over and over and over,
and they invest a tremendous amount of energy,
and they don't ask like,
how do I do it differently to improve faster
in the case of jujitsu or any kind of sport?
Same with practicing the piano or the guitar.
They just religiously put in a lot of time
and derive a lot of joy from getting better.
They don't enough ask the meta question of like,
how can I do this better?
And with editors, it's surprisingly how often
people do just that.
With typing, it's surprising how often people do just that. With typing, it's surprising how many people do just that.
Like you said, they're pecking or looking down.
It's like the quality of life improvement you can have
by learning to touch type,
by just like typing without looking.
It's like immeasurable.
You're bringing a lot of joy to your life because all of us are typing without looking. It's like, it's like immeasurable. You're bringing a lot of joy to your life
because all of us are typing a lot.
And yeah, I mean, the reason by the way,
I was extremely efficient with Emacs.
I'm sure, you know, all jokes aside,
it feels like NeoVim has more room
for the kind of efficiency I've had with Emacs
to be able to move really fast as you described me to edit.
There is a real joy, it's not just efficiency,
it's like, yeah, it's a freedom that you can get
when you get really good with an editor.
The reason I chose to go with VS Code is it felt like
there's going to be an acceleration of features
to which NeoVim or Emacs will not be able to catch up
in the, and I don't mean in the next five years,
I mean in the next 30 years.
Like, and it felt like I almost wanted to take the pain
of learning new editors constantly and just switching
and learning that,
because I was getting so comfortable in Emacs.
You know, this is this keyboard, everything,
all the shortcuts, I know how to program.
And it felt like this is not, you know,
a new event will not be here in 50 years.
Possibly might be, I don't know.
But it felt like you wanna learn these constant
sort of different technologies.
Now, Cursor's example, a great example of that,
I've primarily been using Cursor now.
I'll go back to VS Code and cursor.
The, just the skill of using AI is a real skill.
Like, you know, with, from the shortcuts to the timing,
to the layout of the windows,
to how I think about where, when, and how to use AI
that doesn't distract me, that it empowers me, not just for the fuck of it
or for the fun of it,
for the actual measure of productivity.
It's a skill, and I feel like I would be stuck
in a local maximal of comfort if I stayed with Emacs.
And maybe the same should be true for me with NeoVim.
I should try it, seriously.
I'm sure there's a plugin, like a copilot type of situation that you could set up with NeoVim, I should try it seriously. I'm sure there's a plugin, like a copilot type of situation
that you could set up with NeoVim.
I should possibly consider that.
But like cursor is doing a lot of really fascinating stuff
on the IDE side, not just sort of generate code
and like edit that code manually.
It's like continuously be able to rewrite code.
It's like the idea of tap, tap, tap, tap.
Move the cursor around, but also modify parts of code
and do the diff really nicely.
That, whether it's cursor or VS code,
that wins that battle out with Copilot, I don't know.
But like that feels like a fun,
with a different experience.
Then the really efficient, joyful experience
that you just described,
and you're selling me on this is Neovim.
That doesn't have AI in the picture,
obviously immediately, but you can, yeah, absolutely.
I would have 100% agree that
cursor seems like such a cool product.
Like I actually think there's like a lot
of really neat things coming down with all that.
And I could, you know, I could change from Neovim. I don't use Neovim because I love Neovim. cool product. Like I actually think there's like a lot of really neat things coming down with all that.
And I could, you know, I could change from NeoVim.
I don't use NeoVim because I love NeoVim.
I use NeoVim because I love the instrument I play.
And so it's like if Cursor can meet those needs, I could see myself moving over.
I don't have a some sort of obsessed attachment with it.
I am curious though that, you know, every time I use AI, I think I just have skill issues.
I think I'm just so riddled with skill issues
when it comes to using AI.
I've yet to be able to use it in a way that I really love it.
We'll talk about it before then.
Oh, ball to sit on.
I forgot to say that, ball to sit on.
Desk needs to be properly hided, one monitor.
Eye should be two thirds way up the screen.
I don't like to turn my head.
I prefer my hands in kind of
like a pistol neutral position. And there you go.
A ball to sit on. Yoga ball.
Yoga ball.
What's that about?
It just helps just maintain good posture. Cause when I have something to lean against,
I do this.
So you're for hours sitting without... Wait, what are you doing?
I sit on the ball and then I bounce.
Is your back leaning on a thing? No.
What the fuck?
Well, how else do you, like, the problem-
How else do you, you're the only person in the world
sitting on a yoga ball as you program for hours.
You do realize that, right?
It feels great, I mean, the problem is,
is whenever I get a back, I just slouch.
And I find myself just getting uncomfortable
and I'm like, why am I uncomfortable?
Like my shoulders are kind of getting goofed up.
I just like, I'm chicken necking like constantly like,
you know, it's just like-
But you're able to keep your posture
for hours on the yoga ball?
Yeah.
And so I can just do that.
And then I find myself, if I slouch, I'm like,
okay, nope, gotta get back.
You have like incredible back muscles or what?
No, I don't think it takes incredible back muscles
to remain upright.
Yeah, I think that's a pretty basic human function.
I would not consider myself a strong person.
Yeah, basic human function, I don't know.
Facts and logic.
Okay, cool.
With one screen,
Neo Vim with operating system.
Linux, just because I want a good window manager.
That's the whole press one button, bring up Chrome.
I just use i3.
I'm sure I could use something better than i3.
People always tell me all these window managers are really great, but I just want,
I just have like those three screens I switched between so it doesn't really, I don't really care what I use,
just as long as I can press one button and go.
Yeah, I'm the same, so half and half.
So half Linux, the other half Windows with Linux,
meaning WSL, what's that, Windows Subsystem for Linux.
Weasel.
Weasel.
See, no, there's gotta be a better one
that's more positive.
Weasel just sounds.
Seems right up Microsoft's alley.
That seems perfect.
So people often accuse me of being a shill for somebody.
Sometimes dictators, if I'm a shill for anybody, it's for Windows.
There you go.
I get paychecks every week.
Dang.
Bought by Bill Gates.
Well, he's not Microsoft anymore.
Developers, developers, developers. Well, he's not myself anymore. A bomb developers,
developers, developers. I'm just joking. I think, um, man, I need to try Mac.
I need to, I need to try. I'm surrounded.
I'm surrounded by people with iPhones. I use Android.
I use Android. Yeah. There you go. See, oh, we're losers together.
Losers on a sinking ship. Okay.
So, just to stay in the event for a sec,
and to give love and a shout out to your friend, Teej.
He streams, by the way.
He's a streamer, and I subscribed, and I've been enjoying it.
My allegiance is slowly shifting from you to him.
The quality is far superior with him.
The looks, the intelligence, the skill set, everything just far superior. No. Okay. So he...
You know you're making his day.
All right. So he mentioned that he loves NeoVim because it gives him the ability to eliminate having to do things
He doesn't like it's just a nice way to
frame
Sort of what does the automation process that you described of?
Automating a way assigning shortcuts to things that are painful so that that that procedure
I mean, I wonder if you agree with that.
Fully agree.
We have very similar mentalities
when it comes to usage of Neovim,
why people should use it, all that kind of stuff,
and how to even use it well.
He definitely takes it probably to a further degree.
He spends more time automating and all that.
I don't necessarily derive a lot of joy
from getting the perfect setup.
And so, but a lot to learn from.
He's very, very good at what he does.
He is by far probably one of these,
he's 30 years old, been programming for not too many years,
and he is one of the most talented developers for sure.
It's very shocking to see how smart someone can be.
So people should check him out at t-e-e-j underscore d-v.
Yep.
Tej.
dv, his last name is DeVries. Oh, it's not a developer
Okay, cool. Yeah. Yeah, so it's just TJ. That's just his name just
Spelt kind of fun. What do you love about him? Well how how much did he pay you to ask these questions thousands of dollars?
so
Can't even count that many dollars
He is a trust.
Obviously trust is the biggest thing, especially in the quote unquote streaming YouTube kind
of world.
If you will, it's very easy to find people that will want to like be a part of stuff.
People tend to latch onto things and it's very hard to find someone that you can really,
really trust.
And so he's just somebody whom I can genuinely trust.
He'll always tell the truth he's all he's all the right things for a good friend in
this kind of endeavor so as a good friend he told me questions I could
backstab you with I hate him I forgot I forgot how much I don't trust him so
speaking of harpoon you mentioned it he you know, to ask you about whether,
basically how many years or decades is going to take to transition to Harpoon 2, to actually release
it, develop it, and so on. Can you describe what Harpoon is and why you seem to be incapable of
finishing a single project? That was a lovely framed question.
So Harpoon 2 is actually done.
This is what I did.
To avoid the swirl and the thousands of questions
I will inevitably get.
I kept the master branch as Harpoon 1
and I've kept Harpoon 2 as Harpoon 2 branch.
And people that don't read the readme to say
that I just use Harpoon 2 now, that's their fault.
That's it.
I just don't want to, I really don't like answering hundreds of questions
about open source stuff.
I used to love doing open source and all that,
but I kind of got my soul crushed during the Falcor years.
And so I guess I'm just kind of allergic
to being a really active maintainer.
I build everything just for me.
Like Harpoon's just literally just built for me.
It's just what I spent three months trying to figure out the most optimal navigation
for files.
And that's what I came up with.
So Harpoon, it's a take on alternate file.
If you're familiar with alternate file, typically you'll have this in all editors where you
can go back to the file you were just in.
And so that means you can have effectively two files you swap back and forth in.
You probably used it a bunch, really fast way to navigate, pretty nice thing to do. I wanted something with I want alternate file, but like three of them
or four of them. And so that's all harpoon is, is just being able to pin a file. And
so I have one button to press to go to a file, another for another, another for another.
And so I can have up to four. So I just had my four power fingers for Dvorak. What is
that? That's HT and s. So if I go 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 make it
so you can add in functions
and be able to execute things externally.
So you can open up terminals,
you can send requests off to servers,
you can do anything you want with it.
I just have it primarily designed for opening files.
Since you mentioned it,
what keyboard layout do you use?
Do you use Dvorak?
I use Dvorak, but I used a custom version of Dvorak.
The reason why I used
it is in 2017 we were just having my second kid. It was Christmas and I'm having so much pain in my
arm and I'm sitting there freaking out like oh my gosh is this the end of my career? Am I done
programming? Is this all over? And so I decided that I was going to create my own keyboard layout
optimized to prevent the pain that I'm experiencing. So I used a Dvorak as the base and then laid out the symbols in a symmetrical, reasonable
way so that it's opening, closing, opening, closing, opening, closing, right?
And so it's, and they all are right here.
I actually have to hold shift to press a number.
So symbols are actually my first thing I get the press.
And so it's very optimized for a laptop keyboard layout.
So I can use my laptop in a very efficient, nice way.
That's how I got started on Dvorak and all that.
I wouldn't actually recommend it if you, because I didn't have a Kinesis at the time.
I didn't even know Kinesis existed at that time.
And so when I discovered Kinesis in also 2017, that's when I was like, oh, okay.
Would you recommend Kinesis to people?
I am technically sponsored by Kinesis.
So people, you know, it's hard for someone to believe
someone that's sponsored by it,
but I did use it before I ever became sponsored.
They're the only sponsor that I reached out to and said,
I need a sponsorship from you.
You are the key, I'm gonna use you either way.
You know what, you can say no, but I really love it.
And for the first three years of using Kinesis,
they gave me free Kinesis' Kinesi as my sponsorship.
Kinesi.
Yeah, I'm always torn.
I tried to leave so many times.
You can't, it's too good.
But see, I have this absurd situation
of like traveling with it.
I relate.
Yeah, I mean, I'm literally going to war zone in Ukraine,
I have a Kinesis keyboard,
a laptop and like just a few other small things
and that's it.
And it's like, is Kinesis keyboard really gonna be 30%
of volume that you're bringing to a war zone?
Looks like the answer is yes.
Yeah. Like, do you really derive that much value?
I think it's probably spiritual or psychological for me.
It feels like home, it's just comfort associated with it.
Yeah.
I try to leave.
And I love this experience.
You just, it's like a relationship you have with the thing.
It is, it's, I'm trying to figure out
if it's a toxic relationship
um I think it's mostly love. I think it's love. Like all relationships there's some you know push and pull complications but. They say that distance makes the heart grow fonder so maybe sometimes the
kinesis keyboard needs to stay at home and the laptop keyboard can be the one so that your
heart grows even more fond and that connection grows even deeper. I already miss it as you say
it so I don't know.
I think it's coming, coming along to all the trips.
If it breaks down though, you know, I was worried that Kinesis was shut down as a
company. I'm like, what's the business model here?
Who actually uses these keyboards?
Right.
But apparently it's still going strong.
Yeah.
Who uses these keyboards as you use the keyboard.
You're like, I have to take it with me everywhere.
I wonder who uses these keyboards as you use the keyboard? You're like, I have to take it with me everywhere. I wonder who uses these keyboards.
Yep.
I should mention that one of the things,
when I first became a fan of yours,
I heard you talk about coffee and terminal.
I still don't, by the way, understand
what you're even talking about.
I need to actually use it.
But you are, you run amongst many things a coffee
company and this smells so good so this one is dark mode dark roast whole coffee
beans there is a Sega origin dash dash location there's a bunch of stuff on
there stuff on there that's very devy shop server web
Can you legit as such order coffee vs sh so as of right now? It's the only way you can get the coffee is right ssh
That was kind of okay, so can I just origin origin story you yeah? Yeah? Yeah, right? I was gonna do some kind of
Command line command to request or like dash dash help or something.
Or like man.
Yeah.
Man coffee.
Man coffee.
Okay, so TJ and I, again, same teach, teach TV about,
by the way, very amazing designs done by David Hill.
They're very, very good.
So let me kind of give the basic ideas.
Like it must've been about a year, a year and a half ago,
TJ and I were talking like, hey, you know,
every one of these people that have like some sort
of following some sort of online presence,
they're always like selling a thing.
I got nothing to sell.
I don't really want to do merch.
I've never really 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 a tequila.
I don't want a tequila.
I want something that, and I also want something
that I really don't feel bad about selling.
You know, there's like a lot of people
that will go on the internet
and they'll show for a whole bunch of products,
like, oh, okay, try this, try this.
And this is why I've only ever really done Kinesis
is because it's like,
well, I can point to something that was really bad in my life.
I was very scared and now it's not bad anymore.
So it's like, okay, that one made sense,
but everything else always has been, you know, it's harder for me. And so we just talked for so long
and we love NeoVim. So we're just like, why haven't we could do something from NeoVim?
And we're kind of like laughing about that, like ordering from NeoVim is just so ridiculous.
And then at some point, we're just like, well, wait a second. And maybe we could do like
coffee, like every developer loves coffee. Maybe we could figure out this coffee business.
And so I had a good friend named Dax, uh, thdxr Dax.
Yeah.
Dax.
Uh, he the most sassiest man alive.
Sassiest.
Oh yeah.
He has a lot of sass.
Beard.
Yep.
He has a beard.
Very, uh, very, he does SST.
He does a lot of stuff.
Very, very talented. Uh, we'll he does SST. He does a lot of stuff. Very, very talented. We'll call him
DevOps engineer. He's more than that, but very talented guy. Him and another person
named Adam.dev vegan, by the way, great guy. We make, we take them to Korean barbecue all
the time. He eats nothing. And Liz, she has been super important to the terminal coffee
company. I think without her, we would not have been able to do what we have done.
And then also David Hill designer.
He does, uh, uh, Laravel designs for Laravel, very talented designer.
And so we all kind of came together and we are just laughing about how can we,
like, could we do something that's just ridiculous?
And that's kind of what we came up with.
Yeah.
You like, there you go.
You just opened the website.
You actually, you literally cannot order.
We actually do not allow you to order.
The website is something that kind of looks
like the terminal use command below to order
your delicious cold coffee.
SSH terminal dot shop.
Yeah.
So you can only SSH into it.
So you have to copy that command and throw it in there.
If you want to add it in the little terminal shop
for your known hosts, you could do that.
How do you handle payment?
Through Stripe.
And so one of the things we'll be adding a mobile checkout
to where I'll show a QR code in the terminal
and you can just like check out on your phone.
But right now you enter in your credentials,
it goes to Stripe.
Via all terminal like SSH.
Yeah, SSH is obviously, it stands for secure shell.
It uses elliptical, you know, quantum safe algorithms
to ensure that your data is not being intercepted.
Yeah, but does it use AI?
I'm pretty sure DAX uses AI.
So that counts.
You said quantum, so it's, I don't know.
Quantum AI.
Can this-
Fusion quantum AI.
Can this even be a company if it's not using AI?
We have some crypto chains with some quantum AI that's, you know, powered by Fusion.
So it's pretty, it's pretty wild.
Anyway, so yeah, we just kind of came together where we thought what is the most, that was
from the Mike Tyson fight.
All right.
It was literally that night Mike Tyson kissed the reporter and then walked out without any
clothes.
We did an ad for somebody, but we decided to make a coffee shop.
And then we thought instead of just making it neovim, what if we made it.
From SSH, because everybody has SSH, you have VS code launch VS code.
You can order coffee from within VS code.
Right.
Cause your little bottom terminal has access to SSH.
Bada bing, bada boom.
It's kind of fun.
And so we kind of really, I love that.
We just wanted to do something where there's no level and there's no world Bada bing, bada boom. It's kind of fun. And so we kind of really, I love it.
We just wanted to do something where there's no level
and there's no world that makes me feel bad
about selling this and people buying it.
It's good, ethical coffee.
We developed the entire supply chain and everything.
It's all packaged, it's all boutique.
It's all really like, it's pretty high-end coffee.
It tastes really, really good.
At this point, I don't like drinking other coffee.
I get kind of upset 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. I'm high on my own supply pretty hard
right now. Uh, I just got done ordering 16 bags and gave it out to my family to try to
convince them. But it's just something where it's like, I didn't sell you a software product
that's going to influence your startup that could potentially lead to disaster. I didn't convince you to do a bunch of stuff that's going to change your career. I just said, hey, here's some coffee.
And it just like, it's, it's like a fun experience.
Yeah, it's fun.
Everything.
The humor on is great.
Yeah.
Uh, people should go to terminal.shop.
SSH, terminal.shop.
I was speaking to people that don't know what SSH is.
And there you can read the command and then figure out
how to use SSH in order to, I mean,
it's the kind of documentation right on the website.
If you can't use SSH,
you probably should just not worry about buying your coffee. Like that's the whole.
Well, you can learn.
You can learn if you are active and you're a computer person,
you'd like to launch the terminal and feel like a hacker, go for it.
We even have subscriptions.
What I would love to see this, this is how it came up
I think on the cursor conversation,
is that I would love it if an AI agent
did this, like Anthropis computer use
or something like that.
Actually took the action of ordering the coffee
while it was programming.
Yeah, like hey, order me some coffee
and it'd actually go off. Give me dark roast, order coffee, it could actually go through the whole flow of ordering the coffee while it was programming. Yeah, like, hey, order me some coffee and it'd actually go off.
Give me dark roast, order coffee.
It could actually go through the whole flow of ordering.
Yeah, the whole flow.
But even better, if you didn't ask it to order coffee,
you asked it to do something.
And as a tangent, as a side quest, it did that,
which is computer use does that, right?
They showed off that it's able to go to, I think,
like Google for some images, take a pause and then continue doing, you know, doing other
stuff. Anyway, yeah, super cool idea. Love it. Speaking of which, let's talk about AI.
All right. You've been both sort of positive and negative on the role of AI
in the whole programming, software engineering experience. As it stands
today, what do you
think? What's your general view about AI? What is it effective at? What is it not so good at?
Okay, so my general view is it comes down to something that's pretty simple, which is that
if you're doing something in which is very predictable, AI is really nice.
in which is very predictable, AI is really nice.
When you're doing something that is just not predictable, AI is not very nice to use.
If you're using anything that's more cutting edge,
AI will not be using it,
or AI won't be very good at doing stuff with it.
Like it's not great at Zig,
because Zig is just like, say less documented.
It's really great at TypeScript.
I think there's a lot of,
there's a lot of interesting things
that are gonna come down through AI
that I think a lot of people aren't really prepared for
or thinking through.
TJ is kind of the genesis of this idea,
but the idea that I think there's gonna be a lot of
kind of market manipulation, if you will, through AI,
meaning like, hey, you want to research, say,
best woodworking tools.
Someone's going to be buying an ad spot.
Someone's going to be buying premium training data.
They're the ones that get the big boosts in the LLMs, but LLMs don't really have to market
as an advertisement because it's not really directly an advertisement.
They just had a more premium spot per se in the training data, a little bit extra learning to it.
You know, it's like, there's a lot of things about AI
that I fear upcoming.
A lot of it just comes down to people not learning
or making the trade-off where productivity
is the only thing that matters.
And I don't think productivity
is the only thing that matters.
If you want to build something complex and difficult,
productivity is not the only thing.
You actually are gonna have to do deep learning and kind of pursue it beyond the basics. And so I see AI as
kind of like this really cool thing. It feels like a magic trick. I remember the first time I used
it, I got early access to GitHub co-pilot. In fact, Nat Friedman saw my Twitch clip of me asking
GitHub for it and he sent me early access himself. It was awesome.
And when I used it, it predicted an if statement correct,
and my mind was just absolutely blown.
Cause I had nothing before then,
and now it's just like first time ever.
And I just remember thinking,
man, this is gonna change programming so much.
And then the more I used it, the more I just,
for me personally, I kept introducing bugs.
And I couldn't figure out why.
And what I realized is that I kind of developed,
I wasn't co-piloting well, I was autopiloting much better.
And my ability to read code versus my ability
to critically think and write code,
they're definitely different sets of skill levels.
I don't consider as well when I just read code
as opposed to when I write code.
And so I struggled there.
I do think that's a skill set.
Yeah, skill issue for sure.
Skill issue.
But people who are not aware, that's like a hashtag thing.
Sometimes you use mockingly.
In this case, there's like several layers,
mockingly, but also seriously.
Meaning like the criticism is grounded in the fact
that you lack the skill versus
some kind of fundamental truth.
Yes. I think that that's the skill versus some kind of fundamental truth.
Yes, I think that that's the reason I use actually
Copilot cursor a lot is for developing the skill
of editing AI so I can just learn how to do that
better and better.
Because I think as I do that better and better,
I start to utilize AI better.
At this time, it is a bit of a boilerplate code thing.
But you can do out of the box kind of novel design decisions or tricky
design decisions from scratch, but fill out stuff using AI
and then just learn the skill of modifying.
I personally just, it's more fun to program with AI.
Even when I delete a lot of the code, it's more fun.
It's less lonely.
It's more, it's what I imagine like pair programming to be
but I've never done it.
But it just feels like that friction that you get
when you're like staring at an empty thing is not there.
Like empty function, empty class,
it's just more fun, less lonely.
And I do think that a lot of the easier type of coding,
it really helps with, like interacting with APIs,
basic things that I would usually have to look up
to Stack Overflow for, it's just really fast at that.
Yeah.
As examples, just interacting with the YouTube API.
The YouTube API documentation is not very good,
and you can just load it all in there
and ask it to generate a set of functions
that access the API, all kinds of read and write operations,
and it figures it all out.
And then you can just, well, you do have to read.
You have to read and check everything.
And you start to develop the skill of understanding
where it misinterpreted the task.
What is that skill?
I don't even know.
You have to kind of be empathic about what the AI is,
what its limitations are. of be empathic about what the AI is,
what its limitations are. A lot of the times that has to do with prompt engineering,
you have to like at the same time understand
what the AI is aware of.
Like what did you actually give it as data
to be able to generate the code?
A lot of times we don't realize
that we're not giving it enough information.
So you have to like, actually, okay, all right.
You have to like be empathic, be like,
okay, these are the files it's aware of.
This is the specifics of the question you asked it.
You have to imagine you're an intern
that doesn't know anything else.
Oftentimes we want the AI to figure out the things
that's left unspoken, but you can't know those things.
You have to specify those things.
And so you have to actually be much more deliberate and rigorous in the things you specify. It's a spelling
out. And so I just have this like sea of prompts that I have saved up and I'm
building these like library of different templates for prompts and it's a mess.
And I'm sure there's a lot of developers that have this similar kind of mess. So a
lot of it has to do long term with the tooling that's going to improve that one
The systems are going to get much more intelligent
Well, you don't need the nuance and to there's going to be the tooling that allows you to specify those things and load it in
Correctly and give all the context that the system needs in order to make the good decisions
And maybe the system asks you follow-up questions
Wait, here's things you didn't make clear, all that kind of stuff. A lot of that has to do with
the interface, with the actual design of the tools, like we said with Cursor. It's going to
keep getting better and better and better. So my sense is like developers in general should be to see, to not be left behind, to see what, how that can be used to super, as a superpower
to boost their productivity, their effectiveness,
their joy of programming versus like,
be seen as a competitor to them or something like that.
So, but I, you know, I, for me already,
it's been, it's been a big boost to productivity.
Like actual, like if you measure the actual, how quickly you're able to get a thing done.
It's been a big, and measured not across minutes and hours, but days also.
Like sometimes there's things I have to do that are not that important that I'll just
like out of procrastination will push off. but sometimes there's things I have to do that are not that important that I'll just,
out of procrastination, will push off.
And AI helps me actually get it done.
Because that thing, the empty page,
like I mentioned before, it helps me write the thing,
get it done, get it tested, ship the thing.
Maybe it's just because it's just less lonely
to work with an AI, I don't know.
I don't know if any of that made sense, but. It all made perfect sense.
I really do like that phrase, it makes it less lonely.
I think there's something to that that's kind of interesting
having just some level of interaction
that's not just like an LSP autocomplete.
Like having something that's actually a little bit more
than just that, where it actually is kind of thinking
through and you can see a different thought and you're like,
oh, wow, that's like, that's a way different approach
than I would have taken.
Hey, that's kind of cool.
I like these kinds of things.
And the thing is I'm not like a AI negative person.
I can see why people really, really like it.
I just haven't, like I just, every time I used Copilot
from when Nat gave me the access all the way up
until about six months ago.
Like that's how I used it for quite some time.
And I really 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 more reviewing than writing.
And I felt like I was more kind of just letting things slide
or I just didn't really think too heavily about stuff.
And it just, I wasn't as engaged.
And so I'm like, okay, so something's kind of of wrong here and that's just like a me personal thing so
I recognize that is not how someone should approach these things that's not
a good reason for why you should or should not use AI like I just don't
think that that's right because I could probably correct that and figure out a
better way to do it I've been meaning to have another AI round and so I've been
thinking about like maybe I just need to spend like two weeks in cursor and just
like fully embrace what does it mean to be somebody like this? And, and what can I do
with this, like these new powers? Have they improved to the point where they're actually
good? And I mean, for me, because like a lot of the decisions I make, a lot of the little
functions I'm writing, it's not because I'm trying to write this function to solve this
problem. It's because I'm writing these functions or this set, not just to solve this problem,
but because I know in about another 2000 lines of code of building all these other things,
I'm going to need to start doing this next activity. So it's like, I'm trying to like,
really try to chess move myself into the exact things that as I let things go faster,
I kind of fall apart on that chess move. And again, skill issues for on my behalf.
And I mean, in the truest sense, the word where it's like, I'm making your critique
because I don't use it well enough.
The better you are at programming,
I don't know if this is a general rule,
this is my anecdotal data,
the better you are at programming,
the less you wanna use the AI.
The more gets in the way.
Like the good programmers.
Fair enough as far as I can tell.
So like the more sort of beginner programmers
are much more happy to use AI.
You know, when I use AI for basic, like, for just like, I don't know if there's a better
term, it's not boilerplate, but it's like pretty easy programming.
And that kind of programming is much easier to do.
Like the sort of the 10X, not to use the meme, sort of programmers that I know that are ultra
productive and brilliant people, they just, they hate AI.
They're like, this is nowhere close to what's needed.
So there's something to that.
I still think they should be using AI just for the learning
because it's gonna get smarter, it's going to get better.
And it's the same thing.
It's like when you super optimize Neovim
or super optimize Emacs, you may not discover
the new things that are in the pipeline. So it's always good to be sort of training in that way.
Let me ask you a question here, just kind of from my understanding. You talked about this idea that
you have all these kind of LLM kind of prompts, all like this big backlog of messy LLM prompts
that you kind of have these templates for that you can do various actions. You probably, you
have these strategies of making it self explain itself and then do
the right thing right like you have as far as I can tell that's that's really built into
a lot of people.
Well, then you make this phrase we're like, but then at some point the interface is going
to get better and maybe you can do a lot of these things better where I won't need that.
Then my question is, well, is anyone actually falling behind for not using AI then?
Because if the interface is gonna change so greatly
that all of your habits need to fundamentally change
and it will be able to clarify and make all those statements,
have I actually fallen behind at all?
Or will the next gen like actually just be so different
from the current one that it's kind of like,
yeah, you're over there like actually doing punch card AI
right now, I'm gonna come in at compiler time AI.
So different that it's like, what's a punch card?
So obviously open question is to fascinating one.
I personally think yes, you're falling behind, not you,
but if you're not playing with it, you're falling behind
because the thing I'm doing with the prompts
is you're learning,
you're building up this intuition about how AI works.
You're understanding what is its strengths and weaknesses,
not even the current version,
but the next version and so on.
What does it mean to teach an AI system about the world?
Like what kind of information does it need
to make effective decisions?
I think that does transfer to smarter and smarter models.
You'll need to make less rigorous and specific
in details instructions over time,
but you still have to have that kind of thing. Yeah. I
think it's a skill of almost empathy with an AI system because it doesn't
know the you know what it's missing it's missing like common sense. It's missing
long-term memory. A lot of things when we talk to other humans they have a basic
common sense about reality like and AI systems often lack that kind of common sense
And they also don't remember things so you have to like realize there's a constant blank blank slate
Happening so it's almost like just a skill of talking to an AI system
that that I'm training and
by having to write all those prompts
and communicating back and forth to understand
what kind of prompts work better or not,
you build up that intuition.
And also just raw, the skill of reading
somebody else's code.
Maybe for people who work on large teams,
that's a skill that's already developed.
For me, not so much.
So learning how to modify the code
that somebody else written is a real skill.
And also the other thing you mentioned, which is like considering another perspective on a piece
of code is really nice, but it is also a skill to understand, okay, this is what you did. There's
a skill to asking a question about that code that's been generated
such that you can have a conversation about the approach that was taken. I
think there's just a lot of subtle little skills involved in a cooperative
endeavor to code. Kind of like if there was a real skill issue between you and
Teeij when you
guys did the video of 280S1 keyboard, right?
Uh, people should go watch that video where like you guys obviously sucked at it.
Yeah.
Co-using.
That was pretty cool.
Which you guys did, which is controlling one NeoVim interface
from two different keyboards.
Yeah.
And then we each get an allowance of certain characters or
motions we could perform.
Yeah.
And so you both had to like communicate together. That's a real skill.
I'm sure you can get super like super efficient with that. Yeah, but it takes it just takes time to learn that kind of thing.
So yeah, I think there's some value to it, but I think there's a learning curve.
So I have so I I want it. I do want one thing to be pretty clear is that I actually use AI quite a bit.
I just don't use it for programming. I do want one thing to be pretty clear is that I actually use AI quite a bit.
I just don't use it for programming.
And so one thing I've been trying to get it to
is to be able to have like a long interview
or understand what Twitch chat is saying
and become Twitch chat and be able to speak
as if it is Twitch chat.
Try to like learn how to prompt it in different ways.
And so I think those things for me are just really fun.
I tried to get it to learn how to play tower defense.
I made a tower defense game in Zig
and then made it play tower defense
and then played a Claude 3.5 against OpenAI.
Claude 3.5 would do better during the daytimes
and OpenAI did better during the night times.
I don't know why, I have no idea what was going on there,
but just one would just start winning
and the other one would start losing.
It was just very strange.
And so it's just this, you know,
I'm learning to prompt well,
but I'm learning to prompt in a very different axis. I just don't find it very
useful yet in programming. And I should also say that I'm using it in, yeah, in
every walk of life, in every context I use that same kind of exploration about
prompts and so on I'm using and learning. I think legit is a whole field in itself.
Prompt engineering and how to interact with AI systems,
I think it's worth the investment.
Can you actually speak to that?
Because I saw you're basically pulling from Twitch chat
and having an LLM speak.
I didn't realize, I thought you're, so you're not reading the exact chat messages.
Yeah.
You're doing some kind of summarization?
Yeah, so what I, I try to go through like a,
I end up making like eight queries off to OpenAI
where it's just like, the first thing is like,
I have it have it like a default personality.
Hey, you're Randall, the manager.
You're a software engineering manager,
kind of explain their position, what they like, what they don't like, you're Randall, the manager, you're a software engineering manager,
kind of explain their position,
what they like, what they don't like,
and then be like, these are the list of thoughts
you have in your head,
and you need to talk to this person
and ask them a question.
This is amazing.
Give me 10 of these responses that you think
are probably thoughts that you have
and you want to ask.
Yeah.
You know, like, make it kind of,
give you a list, and then be like, okay.
Then re-prompt and be like,
hey, you're Randall, you're this, this, this, this, this, this, this.
You have these 10 questions before you.
And now you need to select one of them
and reword it in a way that sounds more like you,
the engineering manager, you know?
And so you're like, you know,
I'm constantly trying to make it like iterate on itself
as opposed to just like one-shotting it.
And I found if I iterate too much,
it becomes like it loses the value,
it like loses what it was originally trying to 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 a lot of improvement to do with this idea just to clarify
You're feeding in twitch chat. These are the thoughts you're you're a manager
These are the thoughts you have in your head pick out some of the most profound thoughts
Effectively is like depending on what I want it to do. I'm trying to work on a better system still.
Kind of brilliant.
And so it's like how can I give voice to Twitch chat? Can I make it so that I can get create adversarial characters against Twitch chat or for Twitch chat?
Can I incorporate YouTube? All that kind of stuff. And like how do you describe to an LLM to roleplay into its position?
And so, you know, just thinking through those kind of things.
You know, so maybe I am having some prompt skills,
but just, you know, it's just not in the coding world yet.
Sure.
One day, one day I'll get there.
I saw that you were having like playing with different voices.
There was like a sexy voice.
That started off as a French voice.
And then it turns out 11 Labs just cannot do a French lady.
And when you do multilingual French lady, she starts talking.
I was like, what?
I tuned into one of your streams.
What is this?
And there's this lady like in a sexualized way.
It became too funny. And so we call her not French Stormy Daniels.
Oh, nice.
Yeah.
But I want to go back to the AI
and some of the aspects.
And so like my big gripe with AI
has nothing to do with its capabilities.
It's exactly capable as it should be capable
because that's what people programmed it as.
The things that I really dislike is A,
there's a whole group of people that are just like,
the end is nigh, AI is here,
you just need to stop programming.
Like I cannot see, I cannot tell you even on like you mentioned Peter levels earlier
He made some sort of tweet and one of the person's responses was yet
No one in this like in
2025 or whatever should be acquiring hard skills
You should rely on everything for the AI effectively and it's just like these are really
Damning pieces of advice for young people.
Like young people are being told
that you should never become an expert in anything.
You should always offload.
And the problem is, is that anyone worth any of their salt
will tell you that AI, though can produce code,
is gonna get it wrong in a huge number of cases.
And as the code becomes bigger or more complex
or more input, it's gonna just start kind of sloshing
back and forth between bugs.
And so if you don't have those hard skills
and you're not ultimately the driver at the end of the day,
like you're gonna really find some hard times
and your ability to progress will be directly bound
to how good the LLMs are.
So if you believe that the LLMs will be vastly superior
to humans in the next year, maybe that's a good bet.
But if they aren't, then your skill ceiling is bound to whatever they are. And even beyond that, there's just as
like a whole, there's just like a level of information problem, which is like, can the
thing actually navigate larger, like, do we even have enough compute power to be able
to solve things at this real scale? And even if we did, if everybody started using it right
now, do we even have the compute power for everybody to use it right now? There's like a lot of kind of bounding questions. There's
privacy concerns and I just don't want people to make the immediate or what appears to be the
obvious choice where you don't need hard skills. You don't need these things. Our life is already
going to be, we just need to only think creatively. It's like, no, I don't think so. I think these
hard skills are going to be around for quite some time, even with a massive improvement
in the AI, like you're gonna really be needed
to step in regularly for quite some time,
as far as I can tell.
But I also think even on top of that,
just even acquiring the hard skills
or whether that means programming from scratch,
for example, in the context of programming,
that's going to make you better at steering the AI.
Not just correcting the AI, but steering the AI.
I think there is some kind of, if you know how a computer works, you can
program Python better, it's maybe counterintuitive, but you can, if you
know the low level abstractions, like some intuition around that, you can
steer the high level abstractions better.
But that just seems to be the case.
Unless of course AI becomes like truly super intelligent,
like many levels above,
but it's very unlikely in the short term.
And in the long term, it's still good
as it gets better and better and better
to be able to steer, to ride the wave of the improvement.
Yeah, I'm on that team very much so.
A lot of people have written to me,
I think a lot of developers, programmers
are really concerned about the future of their profession
in the context of quickly improving AI systems.
So do you think AI will eventually replace programmers?
The hard part about that phrase
is use the term eventually.
Do I think in five years, 10 years, 100 years, what does that term actually mean?
I think at some point, if we were able to scale, if all things continue at the current
rate of improvement, there does come a point where programming as a hard skill does become
unnecessary.
At some eventual point way, way down the 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 attempt to make predictions about that, but there are still some like leaps and bounds we need
to make just. I mean, even just like societally, like there's plenty of companies that don't even
allow you to use AI, right? Like that, I mean, there's just practical problems that exist. So that's like a question I just try not to answer in the direct sense.
There will come a day if humanity continues and all things continue in a good
positive direction, where a lot of skills will go out the window due to immense
computing systems.
So I, yeah, I'll give you that one, but it's just like, if I don't think it has
anything in the near term, there's been no computer improvement
up to this date that did not result in more jobs.
Yeah, absolutely.
I should say that I think it depends
how you define programming also,
because when the community moves from assembly to C,
from C to, I don't know,
Python and JavaScript, like that's evolution
that's really painful for a lot of people
who are used to programming that lower level language.
So there's going to be a continuous evolution
and maybe that means with AI, there's going to be a continuous evolution and maybe that means with AI,
there's going to be more and more evolution
towards natural language as part of the tool chain.
Like being able to learn how to write proper prompts.
Yeah, that might, you know,
because natural language is still a language.
And in the long term,
it's possible that a large percentage
of programming is natural language.
There are probably still going to be some percentages not that's going to be extremely
structured language.
Right now, I don't think we are anywhere near natural language being possible because it's
ambiguous.
And I think what we'll end up seeing as people push really hard into this, you're going to
see some sort of like pseudo-lang, which is going to be a language for AIs in which you
prompt, which is going to a language for AIs in which you prompt,
which is gonna be less ambiguous, right?
People keep striving towards the less ambiguous state.
And at that point, you're just programming,
you're just programming yet another evolution
into a higher order language.
And perhaps that is a future
in which people will have a more terse language.
I'm just not sure how much more terse it can get.
Yeah, I mean, all I see is that if you say natural language can be used in the pipeline,
you've just made that many more people can become programmers, which means that much
more software will eventually be created, which means there's that much more software
that will need to be maintained and just becomes a real big snowballing effect.
But you know, there's just people who are programmers who are worried about their jobs
Yeah, not a complete replacement, but maybe a rapid evolution of what it means to be a programmer like you mentioned if natural language
Becomes a way that you can communicate you can program
that means
The pool of people who can get programming jobs changes rapidly.
So they're really concerned.
To some extent, right?
Because no matter how much we want to say how good AI is, there comes a point where
there exists a bug, there exists a large piece of software in which to describe the change
requires just like pages and pages of description, to the point where it is significantly just faster
or easier for someone to just whip something out.
Like there's definitely a balance there.
It's not like a perfect trade-off.
And so I still don't,
I think people need to quit worrying
and think about how they can integrate it and try,
like prove it to themselves.
Do they actually make themselves irrelevant?
And if you truly make yourself irrelevant,
I would challenge you that you're already,
like you're just doing something that
was just slightly too complicated to automate.
Like if you're only writing just straight up crud apps
from backend to frontend and like simple table displays,
like yeah, maybe we just couldn't quite automate that away.
And now we just have something that can just do that
a little bit better. So now that's's automated away but that's not really programming that's
almost like building Legos at that point where the designs already set you just
simply have to move piece from bag into correct position yeah is there something
you recommend how a developer programmer could avoid a situation where AI can automate them away.
I think that the bigger the project you can manage, the bigger the thing you can build,
the more understanding both down and up the stack you can go, the more valuable you become.
Because if you understand how to build something in the front end, okay, well now you kick
off some LLM task of some sort that's going to go off and make a change in the front end. Okay, well now you kick off some LLM task of some sort
that's gonna go off and make a change to the front end.
Okay, while it's doing that,
you can go and kick off something in the CLI tool.
You can go and you can go kick off something somewhere else.
And as these things come back with results,
you can review the results,
make sure it's the way you want it,
change it, commit it, go to the next.
Like you only become more, you know,
as you said in the end, more productive
if we reach this state where it's truly able to do that.
I think there is like a skill to working together with 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 it fits exactly, but it feels like AI should be a boost to
productivity.
And I definitely think 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 a source of meaning a source of joy
Like programming is fun. You're creating something cool and also potentially that a lot of people use
There's this one thing that just really frustrates me and this is kind of going into the Devon category
Which is that I want an intern that cares.
Yeah.
You don't get that out of an alum.
It does not care.
Meaning that I don't want it just to make a UI for me
that displays these icons like I asked.
I want it to care.
I want it to think about it.
I want it to present to me and mean to be like,
oh yeah, yeah, that's great.
And then me to make changes.
And then later on it's like, actually, you know what?
I really rethought about this. And actually it'd be way better if we change, you know, like, that's great. And then me to make changes. And then later on, it's like, actually, you know what? I really rethought about this.
And actually it'd be way better if we change,
you know, like it doesn't actually care about the craft,
you know, but when you work with an intern
or you work with somebody else, they care.
When they factor something, they actually go over and go,
ah, yeah, this is actually kind of bad.
I'm gonna come back to that.
They finish this, they go back over
and they make this even better, right?
They like actually care about the thing itself.
It's a completely different experience.
I just want something that also cares,
that wants to make the thing better,
not just simply accomplish the task.
And I know I'm asking way too much.
That's not, you know, now we're getting into like
Blade Runner level AI.
I just want something that's,
it just feels like I'm missing that.
Where it's just like, it will complete the task
to whatever level it understood what I was prompting,
but it just doesn't
it doesn't actually care about it.
I mean, there's so many aspects to caring, but sort of the trivial version of that is
a kind of restlessness where you want to keep improving.
And I think that is very much AI can do.
Yeah.
We're constantly just ask itself, can I make this better?
And if it keeps doing that,
it probably is gonna take it to some ridiculous place.
So actually it's also knowing when to stop.
Yeah.
I think developing something you can call taste,
which is like trying, working extremely hard,
constantly improving until it just feels right.
This is it. And I think that is a thing that AI is not good at. It was just like, yes, this is it.
I've iterated three times and three was the-
That's it. We're now there. And that, I think ultimately that is what humans are amazing at, which is like knowing when something is right.
Like this is it.
Especially as you understand,
as you develop taste in the particular industry,
in the particular context application,
knowing like this is it, yeah.
This, the rounded corners on this button,
that's exactly that.
That's beautiful.
So it's just a sense of beauty,
a sense of function
and efficiency and so on.
Yeah, but that, you know, humans could do almost
like supervision of AI systems in that context.
Yeah.
Yeah, you've ranted about Devon, just full of rage.
I mean, first off, the people that run Devon
are extremely nice.
I want that to be understood.
I don't have some sort of upsetness against them or anything like that.
Second, Devin is just, it's kind of like the full, it's like the full package 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
through, it's going to try to understand the repo and the task, make the change to the
repo by exploring it, then actually make a commit to GitHub
and explain what it did so that you can have like,
so hopefully you have this whole offline thing,
which is the other part of this AI part
that I actually really like,
or it's just like, go fix this thing.
Then I can just go and unbroken fix this one thing
and come back and go, okay, good enough merge, boom.
I want that kind of running, being able to complete things.
I think the ideal solution is that you can start giving
it small bugs and it goes and fixes these bugs
and you can just come back to these backlog tickets
that no one ever does.
And it actually starts going through these backlog tickets.
And it's actually a really amazing experience.
So I love the idea, right?
I think we can all agree that that sounds great.
But every time I've done it and and I've asked it for many,
and I try to keep narrowing down the problems,
the more narrow the problem, the better it does.
So if I'm like, just add one singular icon,
and when it gets clicked, I want you to do this,
just console, click me, like,
just at least create me an SVG and place it
so it's nicely placed.
The more narrow the task,
the more likely it's to be successful.
There's like a certain level of specifying where you specify too much,
it just like can't do it. If you specify too little, it just does weird things.
So it's kind of like this very kind of fun, unique way you have to play the balance game.
But so far, every time I do these things, I always end up going,
gosh, you know what, I should just get better at tailwind and write it myself.
Because I always go back and I just rewrite it. And then it's just like,
dang it, what am I saving at the end Because I always go back and I just rewrite it. And then it's just like, dang it,
what am I saving at the end?
I feel like I'm not saving anything yet.
And you know, it's just like this, 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 amazing fast, but then I always just go,
gosh, I should just learn tailwind myself
to like the nth degree and just go fast.
Yeah, we should also mention that that debugging this might be intuitive or counter
intuitive is AI is really bad at.
Yeah.
Like that is one of the hardest.
It actually makes you realize how special humans are and how difficult
the task of debugging is obviously for trivial debugging.
Maybe you can find bugs, but like that is the real art
of programming.
It's finding bugs, logical bugs, like extremely complicated, rare bugs, edge cases.
AI can assist, but man, the hard ones are really require so much context, so much experience, so much intuition from,
uh, again, operating in a fog full of uncertainty. It's hard. Yeah. Uh, of course, the AI could
maybe create like logs and do traces and do some kind of
loading a huge amount of data that humans can't.
But ultimately that just means it could be a better assistant
in debugging versus the actual lead debugger.
Yeah, I mean, it'd be great if they could,
I mean, 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,
current state debugging is really,
it looks at the code, it looks at the bug problem,
it just kind of tries to text predict
where it's most likely accurate
and then just tries to fix that spot.
And so it's like, it's likely this spot,
you said admin panel, it's slightly off,
this, this, this, it's probably this location,
which could actually be a really great way
to do search, right?
Let me do semantic searching, point to me where this is,
because maybe that is a really great way
to navigate large code bases,
is like smart, intelligent search, as opposed to trying to make it do the thing, ask it to just
help you do the thing. And like pinpointing problems. And I love to see more of that.
Because that's for me is like the exciting part. And there's this really great article by
creator or maintainer of curl. It's the I and LLM stands for intelligence. And he writes curl and maintains curl.
Curl has been inundated with security problems and all this.
And it's all from LLMs being like,
oh, I found a security flaw.
Here's the security flaw, details it out in the code.
And he's just like, okay, how did you reproduce that?
Show me, because if you look at the code right here,
that's actually an impossible situation you're just speaking of.
And it's just like going in these circles
and security right now is being inundated.
These bug bounty programs are being inundated
by LLM submitted responses
because they can't actually, you know,
analyze the code beyond just like basic text prediction.
Oh, this is a stir copy.
Stir copy is commonly referred, you know,
blah, blah, blah, blah, boom, there you go.
Here's the bug.
And it's just like, no, that's actually impossible
because the if statement right beforehand
leaves the function if the string is too long.
So it's like, we don't even run into this case.
It's impossible what you're saying.
So the bugging is very interesting.
Yeah, I mean, that for me would be the big,
if it can solve that, not solve that, but improve that,
that would be huge, whether it's agents
or just the alums integrated into IDEs.
I think there's this whole idea I call a denial of attention.
I think there's an entire attack vector that's going to be happening.
We're using LLMs to generate fake bug reports, fake all these things to just actually effectively
to demotivate and hurt open source maintainers.
Polykill was the first bug that kind of had this experience is this denial of
attention where I active malicious maintainer just hounded the owner.
And then a white knight came out and offered to buy this, you know, buy some
stuff from under them.
And when they bought it, they actually replaced it with a malicious piece of
code and then used it.
So there's like this whole security world that's developing around using
these in a very aggressive format.
I mean, it's a fascinating world we're entering into, but I do agree with you
that humans, human developers will be a huge part of that world.
That this is not the job might evolve, but it's 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 you. This is a, again,
the overflow, my favorite stack overflow developer survey,
talking about their sentiment and usage of AI systems.
The general sentiment of yes, uh, 61% say yes,
they use it and 25% say no, don't plan to.
So majority use it, majority have a favorable sentiment
over it, favorable or very favorable or indifferent.
That's like, looks like over 90%.
That's really surprising that that many people
just have no plan in looking into AI.
Like as much as I don't like using it for coding,
I hope one day I can use it more, right? And so it's like, to me, I'm always looking for the next
thing. I'm just surprised that people are that, I guess, obstinate for it. Obviously
the second one, the AI tool sentiment, it must be only the users who responded to the
top two of that first one, just given the amount of respondents.
I wonder if no and don't plan to are people who have tried it and quickly built up the intuition
like this really sucks yeah so you know it could be like experienced programmers
they're like no this is not making me more productive 81% agree that increasing
productivity is the biggest benefit that the developers identify for AI tools, so this is what are the benefits increase productivity, speed up learning,
greater efficiency, improve accuracy and coding, make workload more manageable, improve collaborative.
Where's the fund? Increased fund, I would say that's that's like number one for me.
Maybe speed up learning is like a subcategory of fun, right? If you're able to learn more and be able to become better,
to me that sounds good.
I don't know, it's different because like productivity is part of fun too.
There is just the lightness, I mean maybe improve collaboration,
all of these elements for sure.
There was my time using copilot, there was certainly a level of wonder
that would happen
for quite some time where it's just like,
it's just amazing what it can do.
Yeah.
I'm just super impressed by what it can do
even though I don't use it.
Like it's amazing to me that we have something
that can even get that close.
In terms of accuracy of AI tools,
only 2.7% highly trust.
I would say that you have to be very green
to think that you should highly trust an AI output.
Yeah.
You should be very skeptical.
Yeah, I don't know where I stand.
Probably somewhat distrust.
Highly distrust seems aggressive.
It does seem a little true.
Like you should definitely be in the somewhat.
Like you should always assume that there's something wrong
and then from there you can go and challenge it.
And then estimation of whether AI can handle complex tasks.
Most people don't think it can handle complex tasks.
I mean, it seems like people have a good sense
of what it's able to handle and not.
I would argue that people don't have a good grasp
of what complex is in programming.
Sure, yeah.
If you say write to me, you know, write me quicksort,
some people will think quicksort's super complex.
But I would argue that that's actually probably
the simplest thing you could ask an AI to do, right?
Things that are so well documented.
It's going to do a great job at that.
Yeah.
Probably high level design decisions, which people don't even use AI for right
now, I guess agents are supposed to be doing that kind of stuff.
That's probably the most difficult thing or the most impactful thing.
Well, the most difficult thing is finding bugs.
Yeah.
AI tools next year, writing code and so on.
Now this one, the ethics part, I'm actually super curious your take on the ethics.
Will we see Europe laying down some new regulations?
Oh boy.
What about artists?
Right?
Yeah. What about people that are really, because the difference between coding
and artists is very, very simple.
If you gave me a sheet 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 it's right or it's wrong.
There's not a variation of interpretation for what a crab is.
It's like, no, that statement's just, you cannot make that statement.
You know, it's very bounded in what it can express.
And I could see why artists,
like that's a very frustrating point.
And then who gets rewarded for all that?
You know, obviously,
and then there's like the whole thing with coding
and licenses, how much of it is GPL licenses?
Do you think they have scraped and used as training data?
GPL forces open source.
Yeah.
What are you gonna do with that one?
Like that means your model might need to be open source. Like open AI may do with that one? Like that means your model might
need to be open source. Like open AI may have to get forced open. Yeah. All their
previous stuff. If there's any hint of GPL. Yeah that's a weird one. That's a
really weird one. Because most of these models I think are training on data they
don't technically have rights to be training on. Yeah there's a lot of questions. There's an
unspoken, it's a real wild west.
Because like you could imagine that WAPNF, you know, I always use Europe because they
tend to have like maybe the most consumer protection laws out there. You could imagine
WAPNF a law came down that said that if you used a model that produced GPL potential code,
you have to open source. Like how many companies are going to be like, oh my gosh, right? Like you have one year to get rid of all code that was generated that's potentially GPL potential code, you have to open source. Like how many companies are gonna be like, oh my gosh. Right, like you have one year to get rid of all code
that was generated that's potentially GPL source
from a model, like that could,
you could imagine just the sheer panic that's gonna happen.
It'd be a fire sale of code.
So given all that, can you give advice to young programmers?
Like this is another question from Reddit, the infinite wisdom
of Reddit. What should a person in their early 20s do to move forward in the
tech industry? And this is an interesting addition to the question. And by doing it,
will this be walking on someone else's path?
someone else's path?
I am going to try to answer that question I guess the best I can, which I think that if you're entering into the tech world, one of the hardest pieces of
advice that I took a long time to learn was I became enamored and addicted.
Obviously we talked about that program for way too many hours,
forgetting to spend the time I needed with my wife,
with my friends, all that stuff,
like totally wrapping myself up into one activity.
I think though it made me who I am,
was probably an unhealthy activity
and probably not a wise activity.
And so the best advice I can give is that
you got to develop the love, the skill, the desire for,
whether that's just only using AI agents,
programming yourself, using Zig or programming JavaScript,
whatever that flavor is that's gonna get you
coming back every single day,
getting the reps in the gym, if you will, for programming,
but also knowing how to value what is valuable
and not getting lost in the sauce
where you're just so stuck
on trying to make the next greatest startup that you sacrifice your health, you sacrifice
your relationships, or even worse, you sacrifice your own morals to take certain shortcuts
that you probably shouldn't be taking in life to be able to achieve these things because
I'm sure there's hundreds of horror stories you could hear where people definitely shortcut
their morals for you know monetary success. Yeah I mean the Golden Hanukkah's
comfort can destroy the soul in some sense. Yeah so that's yeah I mean that's
really important to remember but would you you know there's young people kind of
thinking do I even want to be a programmer now? It seems like AI is getting better and better and better at these programming.
If they were trying to make that decision, would you still say, yeah, if this is something
that fills you with joy?
I still want my kids to learn how to program, if I can answer that, if that's a good enough
answer.
In the sense that my kids are decade younger
than a young person trying to learn how to program right now.
And so if I want, you know, I'm hoping that my kid
can run and build whatever he wants in Roblox.
I'm showing him Chad's Gippity and be like,
all right, let's ask questions.
How do we do this?
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 learn and be effective.
And maybe one day he has to throw away
all those skills in 20 years.
But I bet you that whatever skills he threw away
or whatever hard skills he had to throw away,
an entirely new field that none of us have thought about.
Just like if you would have asked somebody in the 70s,
you know, about social networks, they'd be like,
what the heck are you even talking about?
Like things will exist in the future
that are gonna be massively different
and crazy and exciting maybe in virtual reality there
you go maybe all of us actually down the line would just be building video games
just entertainment for all the brave new world of our world well I think I think
entertainment is a kind of trivialized version of what a video game could be
mm-hmm it's like what is the purpose of life anyway version of what a video game could be.
It's like, what is the purpose of life anyway?
I mean, it could be a deeply fulfilling video game.
It doesn't have to be just like dopamine rush.
It could be educational, it could be scary,
it could be challenging, forcing an evolution,
the leap into adventure that makes up a fulfilling life, that could be video games.
Who knows? Especially in virtual reality.
I tend to, that's the other thing, I play a lot of video games.
I think there's a lot of room to make video games deeply fulfilling.
Like, there's a lot of space where that can go.
I didn't know you played a lot of video games because when I asked you specifically, should
I play World of Warcraft or do Advent of Code, you're like, Advent of Code, Advent of Code.
Oh, well that might mean I've never played World of Warcraft because there's certain
games I avoid, Fortnite by the way, I think was one of them, because I was worried I'd
become too addicted
Yeah, yeah, so there's certain games. I just know I won't get super addicted to for example
I'm terrified of civilization like I have never played a civs game because I'm worried
I'm worried
The dark path in my lead because there's some games just really pull you in I I'm much better with, that's why I play Skyrim.
I can play these games or Baldur's Gate
and moderate my, how much I play.
And they could be like a lifelong companion
versus an addiction where I'm like,
it's like sunrise and you're like,
what's happening with my life?
And I find myself naked behind a dumpster somewhere,
just wondering what happened. Yeah, so that's how I choose my video games.
You're not the first person who has specifically called out civilization.
I've had more than one person also very high up in the tech world be like, civilization
is my downfall.
If I get near that game, I'm done.
I've never even played the game.
Now it makes me be like, dude, I gotta give this a
try. That sounds crazy. Yeah. And the new one is actually supposed to be really, really good.
What were we talking about? Yes. For that same young developer, is there a trajectory through jobs
that you could give advice on? So you started out with Schedulicity. Yeah, that was my first
full-time, when I had the government contracting one before that, that was my first full-time, when I had the
government contracting one before that, that wasn't quite full-time, it was in C,
it was a lot of fun, and then building my own startup for quite some time. So if
you count either of those as full-time, then those would be the full-time, but
Schedulicity was the official on the docks. So is there some value to jumping
around like working in one company and another to try to figure out like what brings you joy?
I think there's a lot of that because not every job you're going to get is going to
be great.
Now your first job you could get could make you think you hate programming.
It happened.
I did an internship at a place, I keep on like surprising you with more kind of things
I did in the past, did an internship at a at a place called like a total information management system. Remember when I talked
about that hours ago about healthcare and that and industrial shipping and all that
it was a C sharp shop. It was so bad that after I did that I went and changed my major
to mechanical engineering for a semester in college. I thought I okay actually I like
computer science I hate programming. So you know just because you've had a job doesn't
mean it's the, it's gonna be the one. And the thing is, here's the best part though,
if you get a job and you like it and you want to do it and it's exciting, you
don't need to change. Right? I think a lot of people are like, oh, I got to find the
next thing. I've been here for two years. Like there's kind of this like, you got
to move around mindset. I don't think you
have to move around. I don't think it hurts your career. Because if anything,
you'll gain more responsibility, and you'll be able to talk with way more
authority. And the next time you interview, you're going to be way more
into like, Oh, yeah, I had to get these ex people and these ex people to be able
to do all this stuff. And it's like, you can talk with much more authority if
you stay at a place longer. And that's nothing but benefits in my book. It's
only if you stay at a place because you're afraid or you don't want to, you know,
you already have something that works for you and you just never want to change and
you're just like, I get to go in and just be completely mindless.
I think if you go mindless for a couple years, you'll find yourself.
That's like the only real danger.
Just come out with nothing at all.
Yeah, especially when you're younger.
That's the whole point.
Take the risk, take the leap out to the next thing, to the next thing. And not for money,
but for just personal joy. Yeah, and money could get at the end. That's the best part.
When you don't strive for the money, sometimes the money just shows up anyways. Yep. And some of the
what makes life worth living is the people you work with, like a good team. Some of it's like,
not to be generic, but culture matters.
It's whatever makes you happy.
Like for example, I just had, won't call out places,
but there's certain companies where everybody
is very nine to five and it's very,
even if the work is exciting,
they don't work hard enough, I would say.
One of those people that likes to go all out,
likes to be surrounded by people who are super passionate.
Now, to be fair, a lot of them don't have families or don't.
It's a fascinating choice.
I really don't wanna talk down on any choice,
work-life balance or not.
I think both are beautiful paths.
And if you really derive a lot of value from joy
from your work, going all in at least for some stretch of your
life is a beautiful thing to do. Just all out, full on passion,
sacrifice a lot of social life, all that kind of stuff. I don't
know, that could also be beautiful.
There could be something very, very exciting about that
in some sense, especially if you're building your own thing.
I can imagine that would be very exciting.
Like if I was Amazon, Jeff Bezos building Amazon,
one could imagine that those early years
were probably very rough.
And the amount of hours he probably put in
were very, very rough.
But I will say that there's this kind of unique aspect
in our culture where we kind of make this
as an equal trade-off between family or work
Like oh you don't you do or you don't have to have kids and my only kind of real notion with that one is that
You will never know
your capacity for love
Until you have kids like you just don't know and some people like oh, yeah, but I'd like love my dog
it's just like I loved my dogs too and
Then I had kids and now my dogs are they're I like I like them
Yeah, I could come home my pet Indy and I'm a cool indie and then I'm just like, okay bye Indy, right?
Like it just I can't even describe the difference between the two. Yeah, cuz they're not it's not even the same
And so it's very that trade-off you're making is it no one can tell you what it's like
Because there's a real reality that's right 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
You have some medical procedure where if we do this you will die, but your kid will live
There's not a question in my soul that I wouldn't do that
Right if I was given if I could look into the future and if I had to die right now, knowing that my kids would have a better
life, they would be happier, they'd be more fulfilled and all those things. I guarantee
you either my wife or I would take that every single time. It's just like, you will never
be able to say that about most things. People will jokingly say that until it's actually
on the line. But it's like with, with that, you just have this ferociousness. I can break
out and sweat thinking about somebody
fictionally pushing my kid to the ground.
Like, I actually get, you know, real adrenal responses
flowing through my body.
So it's just like such a different world
and it's hard to explain.
And you could never have convinced me when I was young
that it'd be this big.
Yeah, yeah.
I thought I knew, I didn't know.
But to add on top of that,
some of the most successful people I know, some of the most successful people I know, some of
the most productive people I know have kids. So like I don't know if it's even a
trade-off. Like that love you feel, it seems to be a catalyst for like to make
sure you have less time but you're gonna use that time better to be productive.
I would argue that I'm... it definitely changed a lot of my life and how I approach problems and everything
in a very different way.
Let me ask some random questions from Reddit.
On a scale of one to 10, how much do you hate
every product Microsoft has ever created
and why is it a 10?
Okay, I think we covered that.
We haven't technically covered it.
There you go.
All right, go ahead. Go ahead. Okay, the only thing I'll say is that I don't like that Microsoft pretends to be
the good guy. When what they really wanted to get you addicted to their
products to get you to use their products as much as possible so they can
extract as much money out of you. Well in this world are there really good guys?
That's a great point. I would argue NeoVim is a great guy. There's no way
they can make money.
Justin Keyes is the benevolent dictator and he thinks deeply about the product and tries to make it the best as possible.
Whereas something like Microsoft, they made VS Code as a loss leader.
Copilot is probably operating on a loss leader. These things are all getting you so tied into GitHub, remote workspaces, CI, co-op, you become this trapped in permanent person.
And if that price rises, the switching cost is so great
at some point that you'll never be able to switch.
That's my only fear is that Microsoft was once accused
of EEE and it feels like they're EEEing again.
Yeah, I'm nervous about criticizing a good thing
because you could see an incentive to do that good thing.
Like Google creating all these services that don't make money like
Gmail for example you can sort of sort of cynically say like they're only doing
that to tie you into an ecosystem so they can like basically keep you for
life but also it's awesome that they created Gmail yeah and they create
incredible product.
I can side with you on that one. It is a good product.
VS Code is a good product.
Yeah.
Don't put that on the street.
But it was fine.
They did a great job.
Yeah, so there is going to be financial incentives
behind some of these companies.
And by the way, me defending, not defending,
but saying positive things about Microsoft
is just so I could talk shit to Prime.
But that's-
I love that by the way.
Yeah, Linux is my first and last love.
It definitely, the spirit of Linux and open source
is a beautiful thing.
So I do think that when you have these large corporations,
even when they try to do good,
oftentimes the profit imperative just takes over
and they can corrupt themselves.
And Microsoft has a long history
of doing just that to themselves.
That said, they've done, you know,
they have, you could say for cynical reasons
because they wanna seem like the good guy
amongst developers,
but they've done a lot to support open source.
It's just like same with Meta.
They've metas done like insane amount to support open source.
And you can say, actually for that one, I don't even, I don't know if I can even
make a financial or cynical case for why Meta is open sourcing llama and like
these, yeah, that one's confusing.
It just seems great maybe for hiring.
But no, I think one's confusing. It just seems great. Maybe for hiring, but no, I think that's legit, just an ethical, really powerful decision.
And sometimes these companies, because they have a lot of cash, can make the right, do the right thing.
Yeah. It's a really positive way to look at it, and I think that's really nice.
But we should always be skeptical.
Yeah, I mean, because at the end of the day, companies,
they're not good, they're not bad, right?
They're morally neutral.
It's the people that are running them,
the decisions those people make that are really
where the bad or the good comes from.
Another question asking if he knows how to milk a cow.
I've already asked that.
The answer is, oh, no, you don't know.
I've never milked a cow.
Never milked a cow.
Almost been killed by a cow, but never milked a cow. Did you ever ride a bull? No. All right. Why male models? Okay, so I can explain that one.
Mm-hmm. I will say something like I really dislike the color purple because the color purple makes me upset.
I don't know just something very benign, but then someone right afterwards will be like,
makes me upset. I don't know, just something very benign. But then someone right afterwards will be like, but why don't you like the color purple? Right? And it's just be like, it's just like Derek
Zoolander is just like, I get done on a five minute talk about it. And then the next question is like,
but seriously, why though? It's just like, why male models? Yeah. So that's the Zoolander reference
when there's a long explanation why male models and he, he agrees and then forgets. Yeah. What is
Ligma? You know I've died by Ligma quite a few times. Ligma, so do you know the
origin story of Ligma? No. So Ninja, famous streamer, someone got him with
Ligma said like oh something like have you heard about Ligma and he was like no
and he's like oh Ligma balls right then after that, Ninja got like so hurt
by getting had by that,
that he started banning anyone in chat
who said the word Ligma or something like that.
And so then it'd be, you know, if you don't embrace the meme,
you get destroyed.
So of course gets destroyed.
And so then the whole goal is that,
can people get me with Ligma?
TJ did Eyeladies.
He's like, oh, did you hear that?
E-girls got renamed to I Ladies?
And I just didn't even see it coming.
And I was just like, what?
And he's like, I Ladies, nuts on your face.
And then it's just like, oh my gosh.
And then a pirate software has also got me like,
oh, have you heard about Google SEMA,
which SEMA is a real product by Google.
And I'm like, oh yeah, I've heard about this.
What is this again?
He's like, SEMA balls, right?
It's just like, dang it.
How do I keep?
So I've just had it happen live on stream
Many many times I've died by Ligma the most please ask him about the size of his dick
Okay, so this is so that's D ICT that's dictionary in Python. Who doesn't love dicks? Yeah, that's a great question
Just a dick party when you use a python. I love dicks
That should be a t-shirt. That's actually a hilarious t-shirt, but so on Stack
Overflow, you can ask any question you want. And I decided to craft a question
one day on Stack Overflow that says how to measure your dict and bytes.
And then I proceeded to really go to town and like explain all the different
things like, well, what about the cost of the strings and the references?
And you know, like when you really get both hands
on your dick and really go after it,
it's like very hard done,
like really threw in some innuendos.
The Stack Overflow team deleted the question
and then someone hand wrote me an email
explaining why they deleted the question
and complimented me on how thoroughly and
thoughtful the question was just to weave in innuendos and that the entire team was
impressed, but it's inappropriate and it had to be deleted and don't do it again or we're
going to ban your account.
And so it's like very funny moment.
And so I was like, Oh, that's funny.
You know, that happened.
That was about six years ago.
Last year I was at a conference
and there was a guy wearing a Stack Overflow name tag.
And I was like, oh, you work at Stack Overflow.
He's like, oh yeah, I do.
I'm like, do I got a story for you?
And he goes, no, wait a second.
Are you the Dict guy?
Like that was his only question was that.
And I was just like, let's go.
I didn't even say anything about me
and he already knew immediately I was the dict guy.
I should say in all seriousness, I think I've had a bunch of conversations in the Python world where I would have to mention the name of this data structure and it makes me uncomfortable every time.
You know, it's a very unfortunate shortening of a word.
Dict. It's just like when I go to the hardware store and ask for caulk, and there's always a nice old lady,
and I ask her where to find,
and it's very uncomfortable.
I try to pronounce it as hard as I can.
Really get that L in there, like caulk.
Caulk, just to be clear,
and try to avoid eye contact the whole time.
You said that God was a big part,
was a big part of your life.
Can you speak to that a little bit more?
Who is God and what effect,
what role do you play in your life?
So I did talk about that one important evening
where I, for whatever reason,
gained my conscious that moment.
So obviously for me that I grew up with a life where I would probably
argue myself as a functional atheist. I went to church a handful of times. I
can't quite really remember actually going to church as a family in any sort
of sense. So there wasn't like some super strong tie or anything like that to it.
Like pretty much anyone else growing up in America in the 90s you had some sort
of impact or intersection with church at some point in your life.
That was just a very normal thing, I would probably say. And so when that happened, it was a it was a fairly big surprise for me. I
wasn't, I wasn't necessarily going that direction or deciding to do any of those things. And so for me, it's it's obviously the the
turning point of my entire life. I would have, I cannot speak to who I would be now
without that.
I can just tell you that I wouldn't have had the drive.
I probably would not have completed college.
I would not have found my wife or had my kids.
I wouldn't know how to value people.
I don't think without that whole thing,
my value for people would have been very, very small
because I would have continued to just objectifying in the way I was.
And then probably the biggest thing is there's this one verse, I don't even know where it's
at.
It effectively says that we love because he first loved us.
And so for me, it's like, I don't think I would have ever lived a life that was happy
without this.
And I just didn't even know that that was an option for me.
And I never really, you know,
it was a very tough set of years for me.
And I was very, very sad and just always kind of
just constantly looking for something to fulfill me.
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 that was kind of this moment where for the first
time ever I didn't, all of a sudden I just felt like I didn't have to live up to a standard.
All right, like the standards have already been paid for, like everything's already,
like that's the free gift, that's the exchange. And so it's just like for the first time I
didn't have to be the cool guy. I didn't's just like for the first time, I didn't have to be the cool guy.
I didn't have to have all the right words.
I didn't have to feel, you know,
I didn't have to go on the conquest,
the sexual conquest to find validation.
Like I didn't have to do any of those things.
And it was exceptionally liberating.
And so who is God?
That's more of like a catechism question perhaps.
What is man? Who is God? Right?
Like those are much, much harder questions. I believe that
anytime you try to get too deep into describing who God is, you typically fall into Christian
heresy. But for you, He gave you a chance to be happy. Yeah, He gave me a chance not just to be
happy, but also made it so that like the first time I can actually feel forgiven, I guess in some sense,
and able to forgive people that hurt me. Like for a long time I had this like weight I'd carry around from like the things I hated about high school and all that kind of stuff.
And through that experience, I just wrote down every last person's name and actually held them with me for quite some time. And this was the list of people I forgave.
And I read it a few times because I couldn't let myself be angry or consumed by that kind
of stuff because hate is so sticky.
It sticks for a lifetime.
And there really is only one cure for hate, which is forgiveness.
I just don't think you can get rid of it without that.
And so I just had had choose to forgive these people
and to move on and it really kind of freed me.
And I would never have thought forgiveness
as a means for that change
if I didn't first experience it myself.
What's the role of love in the human condition
to go to the philosophical?
And what's been the role of love in your life?
And what's been the role of love in your life? It's very obvious that every person wants or desires love.
My wife has recently convinced me 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...
It feels like it's just a disaster of an experiment to just cause crazy filming.
But anyways, the idea is that if you just don't see somebody, you can fall in love with
somebody and want to marry them after like 10 days or some very small period of time.
And what you really end up seeing is all these people who are just desperate for actually
love.
And there's like some part of it, I always, I told my wife, it's like love gladiators.
We're watching people battle it out for drama
and really what they want is love.
And it's like, they're fighting to the death
and love, if you will.
And it's this almost kind of sad aspect to watch.
And so I think that it's, it's hard to call like,
what is its role in the human experience?
Because I don't think,
I think it's just something that we all naturally not just want but need and I don't think that you can really
Progress and when I say the word love I would like to kind of narrow it down
Maybe a bit more and I don't mean like arrows the Greek word like sexy love. I
Think that paternal and friendship love are extremely important
I think agape like God love is also very important.
Agape love is the one that is superior to them all,
but obviously different and also, you know,
co-needed with the parental ones and all that.
And so you kind of need this mixture of them all.
And each one is different for each reason
and where it's applied.
And so I don't think,
I just don't see a world in which
is good of any kind without that as like
a very foundational piece, right?
Because you know, again, not, you know,
I didn't come here trying to quote any sort of scripture,
but it says that it's not the nails that hung on there,
it's love, that's the reason why these things happen.
And so it's, it's not the nails that hung on there. It's love that's the reason why these things happen and so it's if
Forgiveness is the requirement to kind of pay off hate in some sense then love has to be the motivation for forgiveness
Yeah, that's the tragic aspect of life. I think we're all there's like a deep loneliness in all of us and a longing
Longing to be a part of this bigger thing.
And that longing is a love and it has many names,
but yeah, the love aspect of it
is the beautiful aspect of life,
the tragedies, the loneliness,
and the unfortunate suffering.
That is a fundamental part of life,
and the beautiful aspect is the love.
Yeah.
Which I think is a good time to mention more Reddit,
the place for everlasting positivity and love.
Somebody wrote, please thank him, you,
for his everlasting positivity
and give him a big hug from me.
So I won't give you a big hug on camera because I'm afraid I'll get a boner
and that will be very unfortunate.
Hey, let's not bring dicks into this again, okay?
It's my favorite data structure.
Like I said, I love dicks.
All kinds of dicks, ordered dicks, unordered dicks. I don't
discriminate. And yeah, but just that to say like big thank you. For me, like I listen to you a lot
just, and I just really enjoy, I've been going through a lot of shit myself and just the positivity,
even when you're building the stupidest shit,
it's just the positivity radiates from you
and you inspire me to be a good person,
you inspire me to build stuff, so thank you.
And I'm sure there's many, many others
who listen to you for the same reason.
So thank you for your positivity.
Thank you for being the light in many people's lives
and thank you for talking to me, brother.
Dang, that was very, very kind.
I really do appreciate all those extremely nice words.
Even from Reddit, that's very surprising, but thank you.
I mean, I know you know that there's many people's lives
and I'm sure you've received the letters
that have been changed from actions
and things you've said and things you've done.
And so it's one of the best parts about doing this side
is that you get a chance
to potentially improve somebody's life.
You know, and you getting to interview a lot of people,
like there's a lot of people that listened to Chris Latner
and saw his excitement for
Swift and probably went and learned Swift and then got really amazing jobs and it can
be all origin back to you and that interview.
And so 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 stuff.
Right back at you, brother.
Thank you for talking today.
Thanks for listening to this conversation
with Michael Paulson, AKA The Primogen.
To support this podcast,
please check out our sponsors in the description.
And now let me leave you with some words
from Paulo Coelho.
When we strive to become better than we are,
everything around us becomes better too.
Thank you for listening and hope to see you next time.