ThePrimeagen: Programming, AI, ADHD, Productivity, Addiction, and God | Lex Fridman Podcast #461
By Lex Fridman
Summary
## Key takeaways - **Linked Lists Sparked a Love for Programming**: The concept of a linked list, where a node only knows about its neighbor, profoundly impacted ThePrimeagen, revealing the potential for infinite items and the ability to express complex systems with simple rules. [00:46], [01:46] - **The Pain of Knowing Everything in Programming**: The worst aspect of programming, for ThePrimeagen, is when there are no surprises, no challenges, and the work becomes a factory line, leading to despair rather than joy. [11:14], [12:03] - **High School as a Tutorial, Not Life's Definition**: High school's social hierarchy and perceived permanence are misleading; these early relationships are often inconsequential in the long run, and high school should be viewed as a low-stakes tutorial for life. [32:05], [32:22] - **Porn Addiction's Devaluation of Humanity**: Porn addiction objectifies people, turning them into commodities and devaluing human connection, which is a difficult addiction to overcome due to its private and accessible nature. [39:03], [39:36] - **Work Hard, Then Work Smart**: The phrase 'work smarter, not harder' is misleading because one must first work incredibly hard to understand the problem and discover what 'smart' even looks like, especially when dealing with complex systems. [06:46], [10:04] - **AI as a Programming Assistant, Not Replacement**: AI can be a powerful tool for learning programming by generating code and providing explanations, but developers must still build from scratch to gain deep understanding and avoid becoming overly reliant. [40:48], [48:44]
Topics Covered
- What Ignites a Programmer's Soul?
- The True Pain of Programming: No Surprises
- How a Divine Encounter Changed Everything
- "Work Hard, Get Smart": The Only Path to Mastery
- AI: A Powerful Tool, Not a Programmer Replacement
Full Transcript
The following is a conversation with
Michael Pollson, better known online as
the primagen. 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, the
primagen is a legendary programmer and a
great human being with an inspiring
roller coaster of a life story. This is
the Lex Freedman 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? Uh 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 in data structures and
the teacher that was teaching Ray
Babcock, he was talking about linked
lists. Now you 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 you 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 cuz 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 or 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 heavens forbid my uh
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
like there's so many weird and unique
ways you can solve problems and like 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 uh wax
philosophical about a link list. It is
pretty profound. For people who don't
know, a node in a link 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. Yeah. And it's kind of
beautiful and you realize like in that
little simple data structure, you can
construct arbitrarily large systems and
they 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 uh dump junk into
memory and have memory leaks and then
there therefore create infinite pain as
you try to figure out where that uh
unfreed memory is. Uh for me, yeah
probably it's so 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 what was the thing? What
was the like the one that taught you?
Cuz I think we all probably you probably
did factorial where you like, you know
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 mine first. How do you not
remember your first? It was magic. I've
had so many that just You were a list
guy. You're probably pretty used to the
recursion. Yeah. All I remember is just
surrounded by C of
parentheses. I mean, that's that's
really probably when I uh 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
uh Java, but then the the renegades, the
cool kids were all using lisp. That's
that's when you're doing the AI, the
quote unquote AI at that time. That's
that was lisp. If you want to write a
chess engine, you would use lisp. And so
for me, probably the moment I really
fell in love with
programming was was lisp and writing
like a programs and uh 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 oh
um game of life too, cellular automa
that's when I I built that, you know
all kinds of programming languages.
that's less about programming language
and more about the system you create.
And that just filled me with infinite
joy. Uh 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, it can create infinite
complexity. So I I just man those are
many pthead moments where I'm just like
looking at the beautiful complexity that
can be created with cellular automa.
That's that filled me with just infinite
joy for sure. But yeah the par all I
remember is parenthesis. So my first
memories of my first are
drowned in a sea of
parenthesis. Oh man. Mine is I have well
first off mine was in Java. Though 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
Freshmaker. And so it's just like I'm in
this very cold. That's nice. Thank you.
I'm in like this cold, rigid environment
uh 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 Dell and Dell learn Java
and it has a section recursion. And 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 I maybe
I'm not a programmer. Maybe I'm not
worthy enough to enter into this circle
of people who can figure out what what
the heck recursion means. And so Dell
and Dell is 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 it's like a very hard
recursive problem. And I just sat there
and thought, "Oh my gosh, I'm not going
to make it." And I sat there in the lab
for 8 hours, 10 hours doing these
things. So worried, it's the week of
recursion. We have to do a lab
assignment. I'm not going to be able to
do it. And I just remember being like
genuinely worried about that. Uh 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? 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 complicated for loop. And
so I just could not understand it. And
then lab came that day and it was I'm
going to 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 me a path
through the maze. And so I just sat
there like, "Okay, I guess I can just go
up and I can create like a visited grid
that's so I know not to visit these
places anymore." And all a sudden it
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 rec 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 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 uh conformist dogmatic
Java instructors will tell you that this
is you know um that's important to
understand uh 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. I actually
remembered when
I think I first I think I remember my
first now. All
right. Uh I think it was uh dub first
search for one of the games maybe a
something like that and for that
implementing recursion understand that
you can search trajectories through the
the space of states and do that
recursively that was mind-blowing. just
imagining like
you can just see the possibilities.
Yeah. Just like numbers flying. It was
uh like the beautiful mind and then um
and that's when I also uh discovered
conspiracy theories. That was and I just
saw I saw the truth. Uh okay. Yeah. So
what were we talking about? Oh, what was
the most painful aspect of programming
for you? Uh like what what memories do
you have of uh deep profound suffering
in terms of programming in the early
days? Uh, I would say the biggest one
that I can really hold on to had to be
one of two
experiences. The first experience was
when I was at a place called
Schedulicity.
And am I not allowed to say the
place? There's I'm not sure if they're
even operating still at this point, but
they're in there something funny about
the name. I'm sorry. Oh, scheduleity.
They actually the name was so bad that
when you looked at their 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 cuz
no one knew how to spell the word
scheduleity. And so it was just like
this the Google optimizing for that is
just hilarious. Uh but okay, go back to
the thing. And the 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 codebase. Sure
that's that's fair. I didn't understand
all the things about the codebase, but I
knew I was going to go in, I was going
to generate some sort of object from the
database. I was going to take that
object from the database, and I was just
going to map it over and just display it
on the web page. There's no creativity.
There's no 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 like I
knew everything about it. I already knew
exactly what I was going to do that day.
I knew all the hurdles I was going to
have to go over. There was no unknown
unknowns if you will. It was just known
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. Uh male, husband of
beautiful wife. Okay. You stream about
all kinds of programming. Uh but what
kind of programmer are you? Are you full
stack developer, web
programming? Uh, 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. Uh, 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 Okamel or
O camel. Let's go.
Thank you, Dylan Moyward. Okay. Wow.
Yeah, I did not expect that. That
escalated quickly. Anyway, what do you
identify as? Okay. So, first you let's
let's do the previous or the in 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 do 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 going to be just like
performance operating systems compilers
there's just huge amounts a variation of
all these different type 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 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 a 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? Uh I've always looked at myself
as a tools engineer. So at my time at my
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 matricy
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. And
so as I went on to say Netflix, uh 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 just I've always
really enjoyed that aspect because your
share your stakeholders and the people
that use your program understand
programming and they're going to 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 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 mean that would be full stack
by the general definition of full stack
meaning like perhaps yeah versus like
systems engine like starting at the
bottom and trying to optimize a certain
kind of specific thing without seeing
the big picture of like what the the
resulting interface would would look
like. And a lot of people you know in
web programming they never go beyond the
front end of how the thing looks. They
kind of always assumed there would be
somebody some some uh grunt in the
shadows in the darkness of the basement
that will implement the back end. Some
gil foil out there will be doing the
back end. Yeah. Like I like to call
myself a generalist. Um just to kind of
give some ideas is you know at at one
point at Netflix I built the websocket
connection. So for TVs how websocket
works is code I just wrote. And so I you
know 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 want to
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. Uh I posted
about the fact that I'm talking to you
on Reddit and there's a lot of wonderful
questions. Uh 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 Cal
team 6 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, info engineers. Uh 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 pop like
website. People that do PHP that are
doing WordPress and all that, they're
going to build something. They're going
to hand it off to I don't know, Lenode
Digital Ocean, 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 uh the time I spent at
Google, it's like, oh yeah, yeah
there's all these fancy machine learning
people, but the 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 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. And you
could also say that's like an S sur
right? Site reliability engineer
whatever. You know, the ones that wear
the 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 engineer.
It's 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 Verscell kill DevOps?
Wow, that's You're almost a journalist.
That's a headline.
Uh, let's go back to the beginning. All
right. Baby Prime. So, you mentioned
Netflix. You've uh Oh, I worked at
Netflix, by the way. For people who
don't know uh who uh the primigen is, he
mentions uh 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 Neoim. Oh
great. Tell me more about Neoim. No
please don't. So, Baby Prime at the very
beginning, you've had one hell of a life
and I think it's aspiring 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 uh 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 going to 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. Uh, 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 20ome 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- conssuming, time-consuming
thought-consuming thing that kind of
plagued me from a starting at a very
young age. When I was 7 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. Like 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. So, kind of rewind
as I got older, obviously was very good
at computers, good at accessing porn, of
course, uh played uh 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, G R A A L, 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 seike language. And that's how I
discovered how to program is I looked at
these symbols and figured out what they
meant. 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. I high school
was brutal. Got made fun of a lot. Uh
really didn't en I wouldn't say I had a
great time during high school. Uh
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 I 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
started getting into drugs and along
with that he exposed me to pot. So at 8
years old, I was smoking some marijuana
uh 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 uh uh Quindelar Rand, if you
will. For those that know Wheel of Time
will appreciate all that. Uh for those
that don't, it very confusing and 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
broke in 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, meth, 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 squiggies 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
um 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 Froto uh 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 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 about my
day. 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 I have no idea
what's happening now. And then all a
sudden when I smoked pot I just felt
deep shame. And when I hurt somebody or
did something wrong all 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 cuz for whatever reason
I've kind of been changed in the 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 handw 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. You know I try to
become a good student. And it turns out
it's really hard. Like I was I was
really bad. I still got C's. 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 spent hours upon
hours in in like a studying uh 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 is 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 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 cuz I just was motivated by
this desire to do something
not not thinking it was going to get any
easier. And then all 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 just 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 it was 21 and 3/4 somewhere
in that range. I'm not really sure where
I I stopped all the addictions part but
or at least the outwardly addictions.
And then at some point 6 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.
Yeah. 5.2 two 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'd program for 24
36 hours straight and I just like
non-stop 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 would
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
non-stop 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 7 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 cuz 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, uh
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 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 uh 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 to psychoanalyze my
actions during the time it's not like I
was actively thinking that uh 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 uh struggling through a lot of
different complexities at home. What
advice would you give to them? Man, 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 going to be some of the least
consequential people in your life. Yeah.
which is very shocking to kind of think
about especially if you're in it right
now right like right now they are the
everything that you're
experienc one day it all stops and then
real life starts to begin
it's just that's such a shocking thing
and if I could just tell myself that
maybe I would have been a much different
person that's so beautifully put I mean
it is a it's like a trial run you know
like at the beginning of video games
there's a little tutorial that's what
that is yeah And actually that should be
a chance uh to try shit out to take
risks. Uh because real life will begin
where there is more consequences after
that. Here you can you know if you like
a girl ask her out try shit. If you get
picked on, hit that guy back. Try shit
out. I'm not going to condone punching
another person. I will beat the shit out
of them and uh take some jiu-jitsu and
learn how to take him down. And then and
then and then that girl that rejected
you will be like, "hm, 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 is
just like a huge help. I mean the way
you phrased it is exactly right. That's
what it feels like that this is 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 uh 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
to be I I think it's underated 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
meaning 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 have 12 like
there 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 and I can
imagine that there's a lot of of just so
much weight put on that that it's just
it feels probably way worse and way more
damning to be uncool because you have an
exact number of how uncool you are.
Yeah. The challenge
there and the task the quest is to
remember that just because your social
circle on social media and uh in high
school thinks you're
uncool, it actually might mean you are
cool. Yeah. 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 I I think if anything, high school
is really bad at picking out the cool
people that like uh the whatever the
system, the hierarchy that forms, it is
so it's 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
herist, I mean, even the objective
function uh 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 uh try stuff out. The
weirdos are the ones that are going to
succeed. The weirdos in high school, uh
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. Cuz if you're
winning in high school, you're not being
challenged. Yeah. You're not
self-reflecting. You're not trying shit
out. So, there is some degree to like
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
you say that's one of the hardest
addictions um to uh 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 going to
cheer you on. If you go on Twitter and
say, "I quit porn." They're going to 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 going to be like
"Well, not everyone has to quit math
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 it's a much more
difficult one in just like that. So, it
feels accepted. And I think it's also an
addiction you can practice, participate
in privately, and hide it from the
world. There are certain addictions that
are harder to hide from the world for
prolonged periods of time. Yeah. And
porn 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 grew up before
the
internet because the it's porn is so
accessible, so so easy to go deep into
that addiction. Uh 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 a male's perspective
that porn in its just like most basic
thing is that you use another person for
your own
uh desire or your own want. It's not
something that is deeply needed. There's
no need there's no like 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
uh humanity just in general is my
perspective of it and that 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. Mhm. you know, no one's going to
know. No one's going to have any ideas.
Like, it's a very private. It can be
very short session. It doesn't have to
be something that takes like, you know
you can't take acid than go out to
lunch, right? You're going to be you're
going to your whole day is going to be a
very different day. And so, there's a
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 constantly need more and more
dopamine. That's why people typically
don't just watch five minutes of porn
and call it a day. There's like, you
know, the hundth tab joke that's always
made on the internet. It's because you
it's just this 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. Uh, my problem with the
the quoteunquote sort of manosphere
is I
think sleeping with a bunch of women is
great, wonderful, but the problem is 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 like in its purest darkest form
which is like the thing that matters is
the sex not the like the deep connection
with another human being. I think again
going back to high school and uh the the
manosphere the objective function if
it's to get laid which helps with status
and confidence and all 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 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 be it could feel great but there's
no meaning to it. There's no val 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 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
that with whom you could be deeply
intimate with. Sometimes like the
nervousness around like this society
uh constructed like value in getting
laid can cloud your judgment. And if you
just release that by getting laid a
bunch of times, then like you could see
the world clearly that getting laid is
not as nearly as important as you said
as finding the right human, including I
should put in that pile not just like a
romantic partner, but like friendships
like deep lasting friendships. Well, 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 uh 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
I'm sure that exists, but and there's
there's probably some truth to the sense
that after you've you know who was it?
Uh 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
something, 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 um I
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 it's just all
the dopamine effect that it is.
Uh but for me like the the most
important part and the thing that
actually has real reward is having that
having just my wife. I do not look at I
try I desperately try not to look at any
other woman. I'm hopefully not going to
get caught Mark Zuckerberg at the White
House like that. Um you know like 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 I would
argue 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. Mhm. It's very hard
to have a deep relationship with no
trust. Yeah. And uh a
probably a prerequisite maybe a
component of trust is vulnerability to
where you like take the leap of being
vulnerable with another human being and
that vulnerability when reciprocated
builds this this really strong trust and
it's a beautiful thing. Yeah. I I I
personally just given my position
uh 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 worthwhile anyway to
be vulnerable. It's always worth the
risk is always worth it in 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
riskreward 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 cuz like finding my
wife is been obviously the most
impactful or changing thing in my life.
So 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
like 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 to escape the
pain to escape the addiction or the
beginning of that journey. Uh what do
you think 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 a 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 speculate on
things I I don't understand. I just know
that in that moment I had the
option and I just chose I 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 like 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. Um 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 cuz the night
it 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. Because
you find in that advice that you can
give to others who are probably there's
there's probably just an endless amount
of people that are struggling with porn
addiction, not young people. What 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 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. I didn't have
all that. I just realized that I was
truly taking away from something for 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 she was at Montana State
University at that point. And so it's
just
that's uh once I made that realization
I think it went from my head to my
heart, which they say is the greatest
distance in the universe. I finally like
got it. And that's really where things
change. So
if the the ability to say like what's
going to help you change and all that, I
don't know if there's I don't think
there's silver bullets, right? If
someone could offer you a drug, I forget
who says this phrase, but there's this
really interesting phrase that goes
something like um he was a very
depressed man and he was struggling with
suicide and he kind of writes about this
in this memoir and he goes to the these
doctors and the doctors effectively say
"Well, here's anti-depressants. It's
going to 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 cuz 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 cuz 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 to a to a
flourishing to a 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. Like 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 going to have an
awesome life and remove from your life
the things that are uh preventing you
from walking down that that path, which
is essentially what you did. It's a leap
of faith that like if you let go of porn
that a better life is waiting for you on
the other end. 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 cuz I couldn't value
uh 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. So, got to ask. So, I've never
done math.
I've never done meth. 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, meth and
LSD, you know, I did Iaska, I did
shrooms a bunch of times. Oh, on this
topic, I should say that like uh there's
a lot of uh on Twitter and on tech in
the tech community in general sort of
people speaking negatively about
Iawaska. Uh and some positively. I don't
I think it's it's such a roll of the
dice. Like I I had incredible
experiences, but I don't think I want to
recommend it to anyone. It's a risk.
It's a serious risk. It really is a roll
of the dice. Like 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 they're
somewhere in the basement but like I've
never met them on drugs. Yeah. I'm
always a really happy. I'm a happy
drunk. I'm a uh super happy an Iaska
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, um I don't know
what the recommendation from that is.
maybe avoid it, but then all of us die
and life, you know, I I tend to lean
into
adventure, but but drugs is
a it's if you fuck with the biochemistry
of your brain, you can really destroy
yourself in a way that's going to
torment you. though. I would
generally recommend that people avoid
drugs
altogether probably unless you're crazy
motherfucker. Hunter S. Thompson.
What an intro to this topic. Uh I'm
sorry. What's meth like? That is it's
it's that's a great intro. I I I like
you are very correct in the sense that
there is at least when it comes to
hallucin 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 going to have a good
time right there's a lot of uh
personally I find that stuff uh 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 But it's much much
different experience. Now, some people
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 going to you don't have to
put yourself through that to make a good
decisions or to realize that uh people
have value, right? You can you 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
like like it's just so intense. It's
like so great. And then it's just
followed up by like like a 5 hour like
just feeling wiggly, right? I don't know
how else to describe it. 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? What is it
pleasant or
negative? In the actual moment, not the
consequences, but in the moment. So
there I mean this is this is just like a
very interesting kind of area which is
that
not universally you can't say that. Um
often you'll find that there's kind of
these two um groups of drug addicts.
There's those that like the the opioids
and those that like the uppers. They
typically don't like there's there's
very few people in the drug world that
do both. They're really just kind of
like find their side and they go for it.
So, will is meth a thing that
everybody's going to enjoy. Well
categorically as you can see and just
like how people experience drug
addiction. No. Uh 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 cuz you know you're 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 like really
be in the moment. Uh, 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
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, you know
get in front of a crowd and 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 is it didn't
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. Yeah. Uh, for me
I've had all really wonderful
experiences. Do not recommend them, but
like what was 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
experience, but don't whatever you do
don't do it. Mr. Primigen, I have no
master. I don't have YouTube or
whatever. I'll say whatever the fuck I
want. I'm just uh But seriously
no, I don't 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 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 if
they Yeah. Mhm. 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 work for me. It works the
same as if the if the liquid actually
looks like
alcohol, it does the same purpose often
because like alcohol from like if you
have of a a whiskey or a beer looking
thing, it kind of sends a signal that we
should be having fun. So, we're
socializing, right? We're fucking
getting crazy. And then that mean you
don't actually need the alcohol. You can
get fucking crazy without the alcohol
substance. Yeah. But there is some kind
of uh like
uh social signaling that happens when
you have a drink in your hand. So I've
been to gettogethers where I'm not
drinking but just doing like a fake
drink situation and I can also have fun.
So I've been uh but that said, you know
traveling across the world, there are
times when you be able to dawn 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 like a
necessary component of a successful uh
social interaction, one that brings you
happiness. So uh 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 a good effect on my
life because I think for most people no
for majority of people they will in the
long term long term have a negative
effect. So, I think if you were to
choose one or the other, just no drugs
uh, and no drinking means one day you
can be the president of the United
States kids.
And I should say, oh man, his funniest
line. Diet Diet Coke is great. That's
his funniest line, which is, you would
hate me if I drink, which I just like to
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 I 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 escapism. 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 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. you know, maybe
some people in specific jobs, you know
like this obviously of very broad
strokes I'm painting with like if you're
an EMT and you save someone's life
maybe, you know, there can be purpose in
that whole experience, 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. Mhm.
And then at some point, that distraction
comes with a heavy cost. I think Dr. FA
would probably know the best about the
heavy cost, but it's just you're making
one trade for another and at some point
the 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 know you failed pre-calculus, you
really struggle in school like you
realize that school is really hard and
then
eventually you're able to sort of
persevere and um I don't know break
through that wall of struggle. Can you
by way of advice figure out what
happened and what the kind of advice you
can give to people who are struggling?
Yeah, I I'll paint it in kind of more
clear picture, a very fast speedrun 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. Uh, 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 was the highest score
in all of the school and I proceeded to
be the highest score in all calculus and
diffyq. I was the only person out of 400
people to finish the diffyq final. Uh
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 just I it just
simple wrote 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 McLaren
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
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 are bad at it. But then
at some point it 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're 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 it you a
completely different problem. And 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 find the next
barrier. Yeah. The next barrier. Yeah.
I've always been the same. It's
everything's come really hard. Yeah. I
do not I had I've had no free lunches.
Everything's just been a lot of a lot of
pain and struggle.
Uh I think somebody said that the on
this topic that you think work
smarter not harder is a phrase that you
dislike.
Somebody on Reddit told me this. Yeah. I
don't just dislike it. I hate that
phrase. Okay, tell me tell me tell me
about your hatred. How how do you feel?
The reason why I dislike that is that
there is a kind of a 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 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 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
work smart dog. Why why you putting in
all those hours? And so it makes a lot
of people that struggle feel like
they're a failure. Yeah. Cuz like I
don't see it. And then the choice I
have, well, I'll just go with the uh
with the l I'll just be lazy and then
maybe the profound truth will come to me
somehow. And and yeah, I think I don't
think I've ever and I don't think I've
met great engineers
uh 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
they now are experiencing from all the
efficient smart work they 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, no. You have to put in the hours.
Like, you know, musical instrument is a
beautiful example of 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'm
I sound
like I sound like one of those people
like just, you know, just relax, you
know, 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 uh
use the the whatever 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 like uh you know ride the bus
home crying, your your ego completely
shattered and destroyed and then like a
little
element is figured out late that night
or next morning. And from the
depression, there's this uh little plant
that grows this flower of uh 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
jiu-jitsu is or judo is for just
speaking for myself or piano or guitar.
And then yes, the 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 uh is going to be
a hard one. Can Can I 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. Uh the
journey is better than the
destination. Right. Everyone's heard
this, right? Mhm. 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
right? Like that that literally is what
it means, right? Enjoy the journey
celebrate the destination. That's like
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, what does that why would the
journey ever be better than the
destination? Cuz you're always this I
think this might even be a CS Lewis uh
quote is that CS Lewis was like, nope
this is terrible. Don't the journey is
not in fact better than the destination.
I love the demotivational posters. Uh
progress moving forward is better than
moving backwards even if you're still
going nowhere. There's a there's a I
feel that one so so much being in
California for a few years. That is 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. You know, 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 cuz 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 at
Netflix, by the way. by the way. Now
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 this incredible engineering company
and uh 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 2 and 1/2 years, built a
startup PHP jQuery everyone's
favorite languages all put together. Uh
you can solve math stuff with jQuery. So
I just was like totally into just
non-stop doing that. This is like the
height of Stack Overflow. Us asking
really dumb questions on Stack Overflow
like what is more Pythonic? And then you
get a bunch of up votes 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 non-stop building of a
startup. Ultimately that startup failed
and so I had to get you know go get a
real job. Can you say what the startup
was? It is so wild thinking about it in
the past. I before I tell you what it is
I want to 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'll be able to
pre- purchase long distance minutes.
Now, if you remember the '9s and about
like what 97, 98, 99, 10, 10, 220, all
those different things, dial down the
center, right? Like all those companies
where you can pre- purchase long
distance 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 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 un some
would say I got unlucky on that uh
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 uh 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. Uh
when I went out and sold it, I only had
a flip phone during that time. I didn't
even have a smartphone. Mhm. Right. Cuz
that 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
Boseman, Montana. And the guy below us
must have been on some some amount of
drugs. He threatened to kill us several
times. Would just like scream and just
lose his marbles all the time. Very
unhinged man. Angry downstairs man is
what we called him. One time my wife had
dropped a battery. double A. Okay, so
not like a big we're not talking about
like a B battery or D battery. We're
just talking about a double A. Dropped
it. Land on the ground. I'm going to
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 going to start our
life. And so I worked at a small placey
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 uh pre-wish your
friend's birthday messages and then it
would automatically send it via Facebook
beforehand. We called it grief feed. It
was pretty it was pretty clever.
Nonetheless, that story, I 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. Uh, being
able to be successful at a job, learning
about a bunch of kind of technologies
that were 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, uh, kind of ported over to
JavaScript. And for people who don't
know, I guess C, what is its closest
neighbor? Java. Is Java like? They
obviously just took Java and ripped it
off at one point, 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 I'm not really
into wearing pleated pants in
programming at a Microsoft house. So, is
pleated pants a requirement? I think so.
Okay, we'll get back to this. Can we
just get back?
All right. web web
filings web filings was that's where I
had to do like all the matric matricy
stuff and build systems and just kind of
all that and it really pushed me cuz
they also wanted me to do like 60 hours
a week. um it was not very healthy work
life balance 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.
Fleeted pants. Pleated 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 uh 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. Um, 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, and she might
remember this, but I said, "We now have
to make a decision. Are we actually
going to move to California or not?" Cuz
I already knew I had the job at that
point. Like I 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.
you know, all the 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 this situation
I've been preparing for this 80 hours a
week for the last like 5 years. So just
walk in and just 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 was
Netflix? This is San Francisco.
Loscatoos.
So uh if you're familiar so classic uh
symbol people do which is this is San
Francisco. Yep. Oakland San Jose. Los
Gatos is just like a little bit Yep.
kind of little bit below a little bit
south of San Jose. Same mega contiguous
city. Yellowstone is a Montana
Yellowstone the show. Yeah. Yeah. With a
Yeah. So is it is it basically like that
Kevin C riding on a horse? Is it were
you riding on a horse to to campus or
No. No. But that 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 cuz obviously LA and
California 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 I have an
admiration a romantic admiration for
like uh for the shows like Yellowstone
being out in nature. It's beautiful.
Yeah, I like uh riding. I Somebody also
said Reddit is full of wisdom about you.
Uh some of it could be fake news, but
something about horses and this kind of
thing. Like you write 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 leg so they had to put it down.
Yeah. 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 cow 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 going to now or the open cow's
going to now go out to pasture. Pastor
for the year and then get turned into
delicious t-bone steaks and of various
things. And so we would house open cows
on our property. So, no, there's no
milking of open cows, okay? They'd be
very upset if you tried to milk an open
cow cuz they're not they're not milking
cows, right? You have to get like that
cow pregnant and then once you get it
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. Uh, we
will return to Reddit time and time
again, my friend. Uh, 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 cuz it's like, oh
you're taking a leap of faith by going
into a fang company in like 2013 sounds
super risky. Uh, 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 hire fast, firef, you
know, it was 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 you're born
every Montana's born with a natural
dislike of California. So, there's like
all these things kind of flowing into it
where it's just going to be like, wow
this is going to 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 a
much larger toll on my wife than me, for
sure. What was the uh technical learning
curve for you? You showed up in your
plaid pants like dressed up. Yeah. What
was it? What What did you have to learn
about the stack? cuz Netflix I imagine
is is a is this incredible
infrastructure 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 it easiest out of
all the companies Netflix by. 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 5x more view
hours than than uh YouTube, whatever it
is. Netflix has a fundamentally easier
problem than all other companies. And
let's get back to that. I'm going first
tell you about the stack, but I'll tell
you why it has a fundamentally easier
problem. 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. Then I'm going to 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 3s? Other different 2013
devices that plug into the T. Okay
cool. Yeah. Not many 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
uh the middle layer between the actual
back end and the front end was written
in Groovy. And as I went around, Groovy
is uh if you're not familiar with
Jenkins, then you've probably never
interacted with Groovy. But Groovy's 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. Uh, Groovy is not
a powerful great language. Nothing. That
statement makes it seem way cooler than
it actually is. You will meet one out of
a hundred people that have touched
Groovy that said, "Oh yeah, Groovy is
great." Yeah. The other 99 will be like
"Heavens forbid you ever have to touch
that language." So, uh, when I got
there, nobody, not a single soul at
Netflix, there's 40ome 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. I was like oh wow really?
So all I did was go like uh observable.
sleep one cuz 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 cuz 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 cuz 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 f 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 uh from what is
called a lolo list of list of movies
into lolo which is a list of list of uh
recommendation objects for a movie. Why
would we need to do that? Think about
this. You have two lists. One has live
free dieh 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
recom or the video with the
recommendation information. Okay. So
you can abstract away into the the space
of recommendation versus the space of
movies, right? 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 and
it's 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 so 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 print of debugging? like you you
walk into a system and there's a lot of
systems in the world like this like uh
Twitter was like this when you when uh
when Elon acquired Twitter and it rolls
in and there's this old janky code base
that's just like a JMS and you have to
basically do print of debugging like
what's the process of going into a
codebase and figuring out like what the
fuck how does this work what are the
flaws what are the assumptions you have
to like reverse engineer what all these
other engineers did in the past and the
mess across you know the space of months
and years and you have to figure out how
all that works in order to make
improvements. The thing the reason why
I've always just been good at print
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
um 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. Um, 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, uh, 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 after
debug 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
Carmarmac was on here and talked how
great the debugger is. Different world.
Cuz when I was at Netflix, there's
machines that exist somewhere where 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 going
to become this is like this is what I've
trained for. I'm a print f 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, drop
into any situation and do print out
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 like I can kind of blueprint
what's happening. Like I don't
understand the services or anything
that's h but like you can start guessing
pretty quick as to what's going wrong
right? But then the the print side of
that helps you u 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 uh that break the system
and not I mean I I think that just that
kind of space like that kind of
situation is um intimidating for a lot
of engineers like they break down at
that point. I think this really is a
powerful thing to be able to come into a
codebase that's generally a skill set of
like uh 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 uh 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
printive debugging on the on the space
of languages on the space of problems
because there's a lot of
wisdom and solved problems already in
this codebase. 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 a
new one 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 it was
this had to do with Falor, so our data
fetching um 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 me and one other
person were responsible for this thing
working and the request side where we'd
had to ddupe 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
optimal optimally request the stuff that
we don't
have. He wrote it in such a goofy way
and I'm thinking, man, this guy's just
what a goofball. So I delete it all and
I start writing it. I'm like look at how
much nicer this is. It's looking so
good. I'm like, "Oo, there's that one
edge case." Uh, 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.
And 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 a skill set that is extremely
important for people to learn. I see
that in myself that's a constant
struggle for myself. I when uh facing a
codebase 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 print
out 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 to 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. 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 uh the wisdom of
Reddit. Apparently there there are memes
and legends about your uh programming
arc in Netflix. Uh this Falcore system
you mentioned somebody I think it was uh
Tee. How do you pronounce his name by
the way? Teach. Tee. Okay. Tee. It's TJ
would be his name, but we call him T 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 DOSs. Uh 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 this Felcore So there's this
Falcore business, right? And I kind of I
a I did discover the bug before anybody
else and I did report it to security and
and it it was so bad it actually got its
own name, Repulsive Grizzly Attack.
Yeah. 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.
There you go. Look that how Netflix the
next one down was the article that was
actually written. Um 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. Uh anyways, and had to write the
fix for it or the first fix. So this is
how it works is that it 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 request
as much or as little of the data as you
would like frameworks are vulnerable to
this kind of attack. So with Falor 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 z or list z or row z
column z title I want you know row 0
column 0 description I want you know you
don't want to have to write out all
that. So instead you could just be like
I want um I want rows 0 through 10
columns 0 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
have requested the data and there's
nothing there. So, this is called like a
they call this like a boxed value. So
it's going to be like type uh something
value. There's nothing there. We've
already requested it and there's nothing
there. They call, you know, it's like a
sentinel value, if you will, a boxed
value.
And we have this little special flag
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
accidentally 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 0
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 to JSON serialize. It's
not going to do it, right? 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 because 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 um 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 2 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's
like the amount of problems that would
have happened if ne if someone would
have discovered this is is unstable. Ju
just to be clear the infrastructure
that's serving the videos would shut
down. Yeah. The UI like you couldn't
perform any actions in the UI. You
surprisingly could still stream video
but you would never be able to get to a
video to stream cuz 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 only take
50 requests to shut down the entire UI.
Isn't it possible to do DOSs or DOS 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
ext 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 cuz, 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
do DOSs 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, DOSs 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 reax attack that existed where
um Cloudflare actually did it to itself
and shut itself down which is there's a
reax expansion attack where given the
right kind of reax if you know someone's
running a specific reax 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 to do it correct.
This is super fascinating. I I do also
wonder how many ultra competent
uh 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 kitties
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 uh doing some auditing and uh I
think your PIN's out of date on file is
it 2323 still and they're like no it's
4747 you're like a 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 hard 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. Yeah. 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 the social
engineering aspect that's a real attack
vector. I think that's the attack factor
that will do in the long term the most
damage in the world. Um especially as AI
tooling becomes easier and easier to
convince people at scale sort of do that
kind of gram email grandma. I think
that's a really serious attack vector
like human psychology and all that. I I
kind of assume whenever there's a girl
that approaches me it's kind of some
kind of social engineering project. Some
attack vector some some a 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 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 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 b 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 going to 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. It'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. Uh 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 um 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.
Uh, folks on Reddit, the good folks on
Reddit demanded that I ask you about the
time you broke production. Is this
related to Falor? Did you break
production? Is this I broken 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. A 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 cuz I just
whoopsy 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 homepage on the
website waiting for Lady Gaga's video to
come out and you were 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 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 are some of
these bugs difficult to discover until
you start? That one seems really easy
looking back at it. 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. You just
press that button, boom, it just
completely freezes the website.
Polluting the code with sort of global
variables that are holding values uh as
PHP I think allows you to do. That's a
tricky one to discover cuz you rely on
it, but then there could be somebody
else assigns a value to it. Data races
everywhere. And I just didn't understand
like in my head static was like oh this
is for the life like I was just so
locked into the PHP world at that time
that I just made a just such a like
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
websites that thousands not hundreds of
thousands of people use he he often
ships to production
uh pushes to production meaning like
just no testing just like push to fix.
Uh 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
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 I mean I personally
love that. I think that you have to 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 cuz not
all applications are created equal
either. Like that application I was
making with zooming and scrolling where
we had all of our own everything. It was
a very deep log 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 you know different things uh
come popping out in different areas and
that's like that's very 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 you're
affecting just this one area's visual
stuff and you can test it and like
that's normally the end of it whereas
you know so it depends on like the
coupling and everything. So, I I mean, I
love his approach, by the way. I I have
such mad respect for anyone that
operates that way because it I think is
a great way. It just is so good because
it kind of breaks this notion that tech
Twitter has that, oh, you have to use
all these expensive services. You need
to use all these kind 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, 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 loaded. Like all the reasons
I used jQuery back in the day was adding
a click on a on a button was like hard.
You had the deal with IE7, IE8, IE9
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 I have I still
use the exact same stack PHP, jQuery
uh, and different flavors of, uh, 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 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 like the
problem is 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 um you
will 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 in 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
of 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 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.
Yeah. So on the consumption side
YouTube has over 100 billion views a
day, over 1 billion hours watch time
but on the sort of creator side, 1
million hours of videos are uploaded
every day. 1 million
hours. It's like you have to do you have
to service both and you have to deliver
everything. It's incredible to me. Uh
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
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 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 I can't even fathom what it takes
to do that. That just to me it's just so
impressive. A million view hours in how
many different uh 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 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 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 because the problem
now actually comes down to space. Like
space actually becomes a real problem.
like how many hundreds of pabytes do
they have that they have to like okay
what do we cache and where do we cache
this right like the number I mean I
think in the terms of like gigabytes or
maybe megabytes like they have to think
in 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 speific areas. It's a very
limited set. We're not going to 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. Instead
it's like, okay, we know Stranger Things
season 5 is about to drop. We're going
to pre-cash Str Stranger Things season 5
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-m than what you have to do with
something like YouTube. And 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 the system like that. Hats
off to Twitch engineering. Like cuz that
is like some that's some serious work.
And here's some asshole Lex coming out
and tweeting about YouTube features. So
like there's
a I listen you're not wrong on the
features you ask for though. Uh I think
there's this is 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 codebase. So at the
edges of the codebase sort of improve on
certain features without like having to
consult the mothership uh of the code.
It's the large team, right? That's
that's the fundamental problem. When you
get into YouTube size, there is the
team/organization that deals with data
warehousing. There's the
team/organization that deals with
delivery. There's a team/organization
that's like the middle layer. how you
even you know they're going to be like
the little microsurfaces to talk to
these places. Then you have this front
end engine. So like for for a small
feature you have to get middle team you
have to get backend team you have to get
all these things. Quick example Netflix
um are you familiar with uh the
dystopian Black Mirror. Yeah. Yeah.
Okay. Season 1 episode one. Do you know
season 1 episode one? Everyone who
watches Black Mirror typically knows
this episode. Okay. Yeah. I don't
remember what it is. Forgive my language
but they call it the pig fucker episode.
Oh yeah. Of course, 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
uh season 3, I think, at that time. We
need episode 1, season 1 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 got to 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
like still keep it very fast even as the
company grows. There's got to be like a
process to doing that, especially for
uh yeah, for the Pig Fucker episode.
Like uh I don't know where that in the
priority list, but like for important
things like that, you should be able to
do that quickly. I don't know. Can you
speak to like 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 is called a product called Dexter.
I can't remember. There's our actual
like movie metadata warehouse that's
going to be highly integrated with
Hollywood that's going to 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 going to 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 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 our uh 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 website people. I need to go to
the 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 c I was
the captain. I'm the captain now. Yeah.
So I went to all these teams and said
"Hey, manager, I need I need an
engineer. we need to get this done
within the next couple months cuz 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 LMO for this."
And so it's like, "All right, you're
working 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. I go to all 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 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 in like gosh I'd say about like
3 weeks worth of effort but that was
still I thought that was amazing
comparatively to how many people moved.
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 cuz you can fuck
it up. you might not see the bigger
context
u legally or any and so 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, whatever. But the long term 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. 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. They'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 with
the VPs and that destroys their soul and
they either don't want to contribute
anymore they leave the companies or they
just kind of tune out and take the
golden handcuffs and just you know buy a
nice house and focus on the family and I
feel like I would die under that like
honestly like that is 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 going to go in
there like effectively zombie through my
day and call it like I don't want to
live like that. I want to feel like I'm
trying to do something. Uh 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 in all kinds
of ways. So they have to consider all of
that. That's just yes 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?
Like think about when you mark something
as kid-friendly. How many times have
they snuck porn into a Taylor Swift
video or whatever it was. 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
come up and then boom. It's like that's
a that is such an awful problem and I'm
so happy that is not a problem I have to
try to figure out. Yep. Okay. So, yes
YouTube and uh and Twitch and Netflix
are doing an incredible job. You
eventually
uh
chose the madman you are to leave
Netflix and to start on the new journey
of being a Wolfpack 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, uh, Extra Life. Shout out Extra
Life for starting my streaming career.
Effectively, it's 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 like it's a
pretty cool organization. And so, my
friend Guy Sereno, uh, 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 going to
all do this." And so, I played Fortnite.
And so, before I did that, I was like
"I better learn how to stream first. I
better get, you know, affiliated so I
can like 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 I start
uh 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. Uh, 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 cuz there was no really
programming section at that point. Uh
and I did it and uh 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 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 2:00 in the morning
or play video games until 2:00 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 won. 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 uh turmoil
thing and it just took a lot
of it was it was pretty awful, you know
cuz I 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. I had a really great boss.
Um really appreciated him. I still every
text him now and then he's really great
guy. So it's just like I'm leaving all
these things for something that's
unsure. And the reality is 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
"Duces, I'm out." Like I don't care. Now
it's like now I'm going to do this as a
job. And so there's like a whole huge
turmoil to this whole thing that kind of
went through it. And eventually I just
said
"Okay, I'm going to 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. I'm
only not even a year into doing this uh
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 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.
Yeah, just you and the camera and the
audience and the ups and downs of that
and it's not there's not really a team.
I do have one lucky thing I'd say that
my editor Flip shout out Flip. He was he
said it would mean the world to him if I
said shout out Flip but I love you Flip.
I love you. I love you. Oh man, he uh he
had you know as he would say he had
nothing going for him. He he had a
really hard growing up. a lot of 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, "All
right, like 50/50. Whatever I make on
YouTube, you get. We're going to 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 there's 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 uh in my case I don't
know how many people attack you. I've
you know I have a shockingly low amount
of attack rate I feel like. Yeah. You're
people generally I mean it's sometimes
fun sort of teasing that kind of thing
but it's mostly just really I mean you
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
with me sort of taking the loneliness of
it combined with just really intense
attacks, it's tough. It's can be rough
psychologically really a tough journey.
Uh 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 the collaborative
aspect of it. Yeah. Um multiple things
there. Uh one hey we love you Lex. So
don't let the don't let the things get
you down. Um, thank you. But thank you.
I love you, too. Thank you. Hey, little
little bonding moment you're going on.
But, uh, you know what I one thing I
really miss. Not in a sexual way, just
to be clear. The tension is a little
tensive. I'm getting uncomfortable.
Yeah. Anyway, team, um, 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 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 I really do miss is the
kind of like forced hard problem solving
together. I 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 sort of mind for potential
wisdom there. Uh cuz it's so easy as 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. So we're that 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's
really it really stinks to work with
someone that's combative and negative.
Like I don't mind combiveness if it's
like I'm trying to figure out what's
like what's best to do right now versus
combiveness just because you're a
negative person and things have to be
this one particular way cuz if they're
not this one particular way it's the end
of the world and like that's actually
really hard for me to work with. What's
the origin story of uh the primogen
name? The origin story of the Prime name
was, are you familiar with a video game
called Turok? Nintendo 64. So, Tur Rock
had Tur Rock 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 Tur
Rock one, then Tur Rock 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. Yeah, there you go.
So, in 1998, there you can see it right
there. Tu 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. It's a black
cartridge. It was a badass game, 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 Tro 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 then was the prime it
was great and then you know I became an
adult eventually and it's just like okay
you know I'm an adult my name is Michael
Pson 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
um 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. Uh Ken Wheeler got
cancelled over playing the circle game.
It was just like it 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 you everyone
else is the dumb people. Don't worry
we'll design for you, dummy. We got the
we'll we'll show you how to make the
perfect architecture." And I remember
changing my Twitter handle cuz I got so
upset and just went back to my video
game name cuz 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 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 uh once said, "You have a
strange voice, you have a strange body
and your name your name's
unpronouncable. No one's going to
schnitzle. No one's going to remember
that." Yeah. 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 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 has 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. Mhm.
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 was it did it
emerge from the
darkness of the struggle that is your
life or where where does it come from?
Well, the original 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 got to do? You got to 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 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, "Hey, it's mustache time."
And I was just like, "Heck, it feels
like it's like a lifestyle decision
right? It's like this is the fun times."
And so all a sudden it was just like
exciting to have a mustache. and I
shaved it off and I was like, "Oh
okay." But then, you know, part of me is
like, you know, there's this weird
energy that comes from just having a
mustache. So, I was like, I'm going
back. Told my wife, forgive her. Uh she
was very uh 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 was
the mustache. It was always been there.
It just never was visible until later
on. feels like. Yeah, we're we're
chatting offline how uh 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. So
you uh do this incredible thing where
you tried a bunch of different
programming languages when you stream.
you uh you have
like you go all out on certain
programming languages like Rust and then
Go and then trying to pick a new one but
also are like experimenting constantly.
So um maybe one question I could ask is
uh 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 uh
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 Zigg. How do
I do a main function so I can just run
the program? Okay, I 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
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 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, uh 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 uh manual for these languages.
Like Zigg, 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 breath
of what the language offers, you just
may make it painful by simply being bad
at it. What exactly are you reading?
Like the like language reference, the
language reference. So, it just goes
through like every feature top to
bottom, right? Every way it's described
all the different things. Like I think
Ziggs is, you know, it's a 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
like building uh in AI terms like a
background model like oh just cuz cuz I
don't think you can just start building
once you're done reading because you
probably forgot Yeah. You know how to do
a for loop like you 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 uh uh a
junior like 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. Like 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, right? 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 uh AI is is 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. Um maybe
can you comment on on that aspect like
the use of AI as part of the learning
process? This is where I have both the
hopeful and the doom or take at the
exact same time. Yeah.
Uh, and it's the same thing with Google
or Stack Overflow like this. It's 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 incorrectnesses of it. like
ultimately just using it as a learning
you know, tool and being able to just
you know, formulate and read answers in
your own voice, I think is super
powerful and I think it's 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
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. I'm 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 fix the
line." You didn't actually learn
anything. You 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 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 um 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 my worry
is is that AI I think can 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'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 much
better but what if I just always have
recursion solved by them and not learn
it myself. So if I ask AI to generate
code to do a certain thing, some
actually a 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 the the
point. Um that's a skill and how do you
learn that? You learn that by building
from scratch. So both are probably
really necessary. Yeah. But I think as a
first step of learning how to program
it's pretty 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 like modify
them to try to adjust the behavior of
the program. And from the way the the
behavior of the program adjusts or bugs
are created, you learn about the syntax
of the the the
language, the behavior of the language
all that kind of stuff. So, it's I 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 cuz I just don't I
haven't done it in so long. and I can't
remember all or all the semicolons and
colons and like you know you do public
and private and how should you do naming
convent 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 uh ridiculous
question of what's the what's the best
programming language? Um let's say
what's the best programming language
that everybody should learn. Maybe uh
let's go with the top five. I'm going to
pull up the Stack Overflow developer
survey because I think we have Yeah
those are your way. You don't like them?
No. No. Those are those aren't that you
got to remember because I mean you're a
data guy, right? You know about biases
and data. What does what does Stack
Overflow naturally bias towards? Well
they have the different slices of
professional developers, uh, junior
developers, they have different slices.
Okay. What's what what is the bias? I 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 that like if Stack
Overflow is a great place to get data
it could be a very biased set of data.
Is it really only uh new people? I mean
that's who's using Stack Overflow. All
right. Most popular
technologies on this. JavaScript, HTML
Python, SQL. SQL. SQL is one of the more
general kind of I I'm sure they're not
doing the individual uh sort of flavors
of SQL. Uh by the way, pronounce SQL
versus SQL. It's squeal. Squeal. You
squeal. Squeal. I think is the correct
way. Squeal. I did sequel because I
didn't, you know, I didn't know the
audience. I don't know if they can
handle the truth. Okay. Which is it
squeal. The squeal of joy is squeal is
squeal light. My squeal postgress
squeal. By the way, I had a lot of joy
from earlier saying pig fucker for some
reason. Speaking of such a I mean, can
you believe that? That was a real
conversation that I had. Yeah, that was
uh Typescript, Bash, Java, C#, C++. It
largely kind of aligns with the world
you'd expect, but like assembly. Why is
assembly more popular than Ruby? Who is
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 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. They I don't think so.
Yeah. Anyway, and Swift and Ruby being
less popular than Assembly seems
ridiculous. Uh, 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, C++ could
be good choices or uh JavaScript and
doing canvas games. I could see that
also working, but you know, you got to
you're limited by doing JavaScript
obviously because it 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. Uh if you're
going to be doing backend stuff, you
know, if you want a job, if you're
looking for a job, maybe
C#/java or JavaScript or Go would be
great choices. If you're looking to do
embedded, you probably want to do C.
Mhm. C++. 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 going to 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 I'm first off, I'm not
supposed to say anything nice about
JavaScript. Yeah, usually that's the
meme that you hate JavaScript, right?
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 is
that you can do that. Then you can go
okay, I want to learn about the back
end. I'm going to make a request now.
You can write a quick backend and 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 frontend
backend for web development. You can
even do embedded. They actually have J
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 embedded, 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 uh
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 I assumed are just you're just
smuggling in C++ underneath the hood or
C. Okay, so JavaScript, I'll say Python.
Python's a great one, too. You can get
quite far with it, but you can't write
the front end. So what if you love the
front end, right? What happen 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 cuz you can't do
the ML stuff in JavaScript nearly as
easy. Do we count HTML and CSS as
programming languages? I think there's
like some technical definition that it
is if you put it 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. Um, you know, I for me
listen, 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 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's crazy how much it has
but it's more of a specification than
anything else. I specify it to be a
pop-up. I specified 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? Well, 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 the Do you
really like it? I like it up until I
need an array. Oh, as a programming
languages, no. But I like I like the
command line. Okay. That's what I do
like that. No, nobody likes
bash. Do you mean I'm someone is so
offended right now? Means do you use it
a lot? Yes. It's good to I mean it's
good to learn, right? It's good to be
comfortable in the command line because
it's a bit of a superpower. It's like I
think I follow on Twitter FFmpeg. Great
account.
Like there's certain Twitter accounts
that are just like legit. Yeah. And uh
you know I I think
ffmpeg 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
at every step is like it grows
exponentially. It feels like I mean
FFmpeg is just this incredible like what
would you call a library system there
just the people behind it must be just
brilliant masterminds because they have
to work with all these codecs with all
these containers with all this they the
the the mysteries of the media codec
universe they're like masters of and
they understand compression which is
another super fascinating technical uh
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 to to work with it to really uh
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 ffmpeg does
not get the love it deserves. Yeah.
Every single application OBS probably
ffmpeg underneath the hood. all the prof
everything ffmpeg underneath the hood
and then and yet you know they do not
get the love they deserve. I just love
it. I just think they're the best. Yeah
I would say JavaScript, HTML, CSS
Python, SQL. I mean that is SQL, Squeal
is is a programming language. Yeah, it's
an incredibly sophisticated programming
language. Yeah, SQL is interesting. I I
would I believe you can classify it as a
programming language. does have like if
you have case statements and it it's
pretty crazy what you can do with it.
You can do functions, you can do all
that you should stored procedures that
that's how you make your life hell.
Um I will say that all the top languages
right there are none of them are like
strict
uh 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 um even I mean even C++
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 gun to your head, five top
five languages. Let's let's list them
out there. There's a brighteyed
20-year-old asking you what are the top
languages to five languages to learn.
Um, if I were to pick five languages
that I think people should learn, or at
least how, let's restate it this way.
I'm going to say a couple languages and
you should at least explore some of
them. I think you should explore explore
a Lucy language. So, uh
Python/JavaScript where there is truly
only one type which is a boxed value
which is a multivariant different types
underneath the hood, right? Would you
call it a Lucy language? A loosey goosey
language, right? It's a dynamic
language. Okay. Um, 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. Uh, so I'd do something like
Rust, Go. Um, I think those are both
really really great. C++, you can do
C++. You can do some type eraser in C++.
You can do it with Go as well, but it's
for the most part that's it's a great
language to do that in. Um, it can get a
little wild. New C++ seems great.
Everyone keeps telling me new C++ is
great. Mhm. Um, it has every feature
you've ever wanted and all the features
you don't want. Yeah, exactly. I mean
there's smart pointers, there's dump
pointers, there's all kinds of pointers.
There's no memory leaks. It's not an
issue. face guns, soft beds, there's
everything in there. Unless you like
memory leaks that 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, o camel, and then I'm
going to throw th Odin in there just to
just cuz gingerbell is great. But elixir
and o camel. I don't have a strong
functional language underneath my belt.
That's something I just genuinely lack.
Yeah, I've heard incredible things about
elixir, about Odin, about Okamo. Uh
obviously I'm a person, as you know, who
loves lisp. I have never done lis. Lisp
could be in that category too. 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 want to
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, Odin, and Okamo. So that helps
you say 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 like
something on Twitter and you'll get like
a thousand likes if you do something
cool in Elixir. Yeah. Okay. Like which
is a pretty big that's like a pretty big
amount of people to like a post for such
a niche topic. Programming is 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 if I proudly use Neovam
there'd be a lot of people like, "Yeah
good job." Cuz it is the best editor.
Um, 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 uh choose Neoim just to be popular.
You sacrifice integrity and values and
quality for just popularity. So, choice
you made. I love how you put it. Okay.
Uh, anyway, what were we talking about?
I like how you're doing this in bunches.
That's great. Right now, my my kind of
side honeys that I'm exploring is side
honey. Yeah, side honeys. I like they're
not my main stay right now. Go is 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, go is just so convenient, but I
get really frustrated with its ability
to express uh everything that I need.
Like if you have a list, a heterogeneous
list, a list that contains two
types, go's just really not that fun to
use. And so I could see so the ones I'm
exploring is Jai or J or the language as
Jonathan Blow says and Zigg 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, um
they don't take it easy on you. Zigg
seems like it's a really amazing
language and so does Jai. They're both
very cool. Yeah, actually I saw uh Dave
uh Plamer'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 I nothing against
Dave Plamer. He's an extremely talented
engineer. It's just that Zigg, C, C++
all those languages that were being
tested, they're all LVM 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 uh there's the language
ball test that's been bouncing around on
Twitter. Yeah, Zigg was like sixth or
seventh below, I forget what language
is. Um I played around with the example
added the word uh no alias to the
argument, which means that the p 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 uh
optimizations. And I made it faster than
the C version. So it just means that
just it's just not correctly specified
is all that means. Yeah. But it's still
it's still exciting to me. The
competition between Zigg, Rust, and C++
is really interesting. Like part of it
for speed, part of it how easy it is to
write performant code. I will say
something that's the reason why I think
Zigg is so interesting comparatively to
say C or Rust. C is like the ultimate
language. It can do anything. You have
pre-processor 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
its 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 going to be just the
greatest. But somewhere in the middle
lies Zigg. Zigg 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
dreerencing seg fault problem. And
that's not 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 Zigg 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, Zigg like we'll 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 where you can express safe
code and unsafe code. It's very easy to
write. 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. Uh you've uh programmed in Rust a
lot. What do you uh what do you love
about Rust? What are the strengths? What
are the weaknesses? Maybe you can speak
about memory management that you already
mentioned. Yeah. The challenge of memory
management that uh several of these
languages address. But yeah, what do you
love about Rust? What I love about Rust?
I I love that it's that uh the ability
to free the memory that you're using is
directly tied to the 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 um 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
Russ 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 Russ 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. M and I think that
just makes code really readable and
really understandable cuz 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 ch this is going to be changed. Yeah.
Yeah. That's really interesting. I mean
it's safe. It's it's trying to be and
and this the safety might be it's uh
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.
Uh the language enforces memory safety
without using a garbage collector as you
said instead utilizing the unique quote
borrow checker that tracks object
lifetimes at compile time. This prevents
common programming errors like null
pointer dreferencing and memory leaks
and so on.
Yeah. So you've also spoken about
metaroming. Um which of these languages
do you like for the meta programming? I
love metaroming in C++ but it's a giant
mess. At least when I program C++ C++ 17
standard I believe. It's just it's just
a mess. Especially a mess to debug.
Yeah. I I would consider myself kind of
a meta programming newbie. I have only
solved some amount of problems with it.
Uh I I'm 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. Uh Zigg, 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 Zigg, 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 zeg 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. Uh but
again I haven't 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? Uh I'm going to
keep go as my main stay. my two side
honeys and I'm going to explore and try
to build out a service in them that can
do a bunch of talking to say Chad and 11
Labs and send stuff down to client and
work with websockets and I want to make
sure that uh I just want to see kind of
how do they perform in this realm and
you know I may be using the language
incorrectly like J 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. It's
how you do it in C. So, you have to kind
of go through the whole nine yards of uh
creating your own connection. I had 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 with 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 uh jump to memory? My
most favorite Sorry for interrupting
you. Sorry, I'm getting I'm I'm really
jazzed right now. Let's go. Okay. So
jazzed. Jazz hands. Uh my most favorite
project uh was the one I did last
year there. Someone built a Doom ASI
port. So, you could play Doom with ASI.
So, that means you could play it in your
uh terminal. very very fun, very
excit. Then I took that Doom ASI and I
sent it to the browser so that people
could play Doom Asie in the browser. But
then I made it so that Twitch chat could
control that instance of Doom uh ASI 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. So I used like quad trees to
be able to take smaller amounts to use
run length encoding. Tried to create my
own compression algorithm because if
you're sending out a bunch of asky 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 asky look like? Well I realized
you know there's all these fun
techniques you can do for compression.
like the shape of the asy 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 to turn a bunch of data which
would take, you know, I forget how much
it would take. could 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? Twitch chat.
Yeah. So they would go, people would
span 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, and originally I was
going to send that through Twitch, but
Twitch is like 5 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 uh
lag was right around 70 milliseconds.
Mhm. So it's like they could mostly see
what was happening in that short period
of time. It was it was pretty exciting.
So we had 1,000 people or I had
somewhere between 1,000 to,400 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? IRC. 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 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 cuz it I never got to do
like a lot of encoding. Encoding is kind
of like you know you what do you
normally do? 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 going to send the right
thing. Yeah, you have to think about the
compression. Yeah. And there you go.
That's some more love towards FFmpeg.
They have to think about that a lot.
Ultimately inspired by FFmpeg and their
awesomeness.
Uh so can 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 uh can you talk to the uh
the different chat communities? First of
all, which is the best chat community?
Uh YouTube, Twitch, or X? This is where
I feel bad for YouTube cuz 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. I know you
love I know you love YouTube, but let me
let me explain why is that when you go
on Twitch, you go to anyone's channel
Mhm. they have this like cultural human
centipede thing that's happening where
as the memes flow in all of Twitch kind
of reacts and 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, Sodapoppin or some big
streamer, Asmin Gold, whoever, Prate
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 to put it into
perspective, I have somewhere between uh
somewhere between like 1,500 to 3,000 uh
people on Twitch, somewhere between 800
to 2,000 on YouTube, and like 50 people
on Twitter. So, it's like the the
difference is is massive, but they all
kind 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, they want to learn.
So, they're not like on the meme train.
They're not in this like 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 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 going to 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 time stamp 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 Zigg and
someone's like, "I personally use
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, called swim. Swim
the term. Yeah, that's that's that we
people said swim. Oh, so you're you're
okay. swimming through the Yeah. So
you're not just making up the term.
Thank you. Wow. Yeah. But it's probably
made up and probably only 10 people said
it at Netflix and so no one's going to
know it and they're gonna be like
"Yeah, right. That thought happens on
Netflix." Uh, so going back to projects
what what projects on stream or in
general? No, you need to answer why
YouTube chat's the best chat. Well, you
kind of convinced me. Okay. Why YouTube
is the best chat?
Um, well, I think I'm just a hater. Uh
that's that's basically what it boils
down to. And I'm just talking shit and
I'm probably just like from the outside
shoot, you know, 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 throw to like
egg the house of Twitch and then I just
sit back on my lawn chair and uh with
the small YouTube community just talking
shit. No, you're you're absolutely
right. There is a there's a real sort of
sense of community that Twitch can 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 for the non
uh for the open world. Like I can send
it to people that don't usually watch
video game streaming or all that kind of
stuff. Yeah. If you send a Twitch link
they're like "I don't like video
games." games and you're like, "Well
actually, it's not in video." Like
there there's that talk happens every
single time you mention Twitch, cuz
Twitch does have a perspective about it
that YouTube does not. I was just on uh
uh Joe Rogan's podcast and I I think it
came up. He asked something like, "Is
Twitch still a thing?" So, that just
gives you an example. Uh and then and
then Jamie uh said, "Yeah, 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 participate in the Twitch uh
Twitch sphere. Yeah, 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 and just like why do people
use X? You typically are going there for
like a textbased interaction you want to
look through. So, I also think they just
have like a user expectation change that
needs to happen and that 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, man. I mean, X is this
incredible comment section just like
Reddit, right? So, it's like No, no, you
said incredible. That's not Reddit. Uh
comment section. Correct. Comment. Yeah
incredibly dynamic and vibrant even if
it's
uh Yeah. What is
the what is the technological platform
like? How does the the interface and the
technology
shape the discourse? It's fascinating
cuz X has 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 uh uh build a community
around it, you know, cuz 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 like you're not you
can't jump across. There's not like hey
Bill, hey Jordan, you know. There's no
cross talk that happens in multiple
videos. Yeah, but community is 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. Like they have an aggregate
community, you know? 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 the community. It's just
only a certain slice sees it. I think
that's even more so on YouTube for live
streaming. Th all 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? Uh
whether the ones you
streamed or uh offline. For me, I don't
know if there's like a one project I can
point to, but I can I can point to a
specific spot where I think it happens
and where I think you can learn a lot
from. Um, 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 5 to 10,000 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 learn the most is because I love
getting to that point in a project or in
some small part of the codebase because
at that point I get to test a how good
were my initial gut decisions about how
I design 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 I
think that number should just get bigger
as you get more experienced cuz you know
there's like there's projects that are a
million lines of code, but they're most
certainly not holistic, right? Like
every part of the codebase 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-processor
macros in C++, right? Like there's like
all these different kind 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 the just enjoying
the thing you create part. Yeah about
there you can sit back and see all the
parts dancing together. Uh 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.
Um I put uh asserts everywhere. No
you're the reason why I do that. Yeah.
You're like the first one. Keep on
going. Sorry. really okay.
Uh so for me one of the joys whether
it's uh try catch blocks whether it's
assert whether it's with the testing I
uh I get to see the payoff of all the
the mind 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 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. They work correctly in
majority of the cases. And there sort of
the stress testing the system and
getting all the signals from that system
that everything is working correctly is
uh is is something that fills me with
joy and makes sure that the system
actually works. So yeah, that I don't
know if it's 5 10,000 lines of code. If
it's Java or C++, it's millions lines of
code. But yeah, um 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 Carmarmac had a conversation
about asserts. Yes. You talked about
this idea of putting asserts everywhere
that effectively crash the program when
you you have some state in your program
that should not be represented and you
have made this choice actively. Mhm. 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 I was like I'm
curious about how to use asserts more.
And then I ran into a person named
Yuron. 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 Zigg. And what they
do is they do deterministic simulation
testing and they just uh use NASA's kind
of guarantee for creating really great
software. So like don't use size specify
your exact size of int you expect
everywhere. All these kind of like
things they do to be very uh specific
and one of them is that every function
should contain two asserts whether it's
positive space like uh you know 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
determination simulation test
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 Carmarmac, and you're on
that's where I like, okay, I gotta
really, 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 it. I built uh 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 a whole
simulation testing thing that could do
everything deterministically. So, 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 was super
fun. And it's like a really great way to
program. Yeah, I think it's a skill set
you grow over time. It's it's not just
that you have to specify the
preconditions like every 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 in complicated classes that
uh 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
uh Jonathan Blow that either in
conversation with you or was it uh 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 u
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 to programming language
that makes it um 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 in a
fundamental sense. And there you have to
anticipate the kind of weirdnesses that
might
emerge while not really knowing
everything just this this full like fog
fog of war. Um and there that's a real
skill to anticipate the kind of uh
issues that might arise and put asserts
on top of them. And it's also like
spiritually for me uh been a really nice
way of programming of 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, "No
no, no warnings." Like, make sure you
treat every single problem, uh, 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 with, much
more robust, resilient to all kinds of
weirdnesses, all that kind of stuff.
It's a different way of approaching
coding probably more NASAlike versus
like web programming style but yeah it's
it has made programming for me
personally much more fun cuz 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
are very difficult. I, you know, bless
anyone's soul that's working on million
line code bases because it does it just
I 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. M 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. Uh cuz I would have never
thought, you know what I'm going to do
if I'm wrong, I'm going to crash this
thing. I'm going to 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 production
it's like, well, users are 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 uh
that's going to 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." Or you can
like give him a nice message and then
log it off so he can see it and then
measure how often are you doing it. You
know, I I understand that there's a bit
of interestingness to a um 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 that's a pain you're going to
have to accept. I think this is more
applicable for uh single systems like
robots and so on. You uh have struggled
with
ADHD. I think uh a lot of people are
really inspired by the fact that you're
able to be productive and flourish
uh 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 then 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. Uh the
part of me that just went, "Oh man
gosh, I just can't even do this." I had
to just simply quit listening to it and
said, "Nope, 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 I think just generally helps. and
it 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. Um
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 like 10, 12, 15
hours at a time. And I absolutely love
it. And so it's 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, you know, dentistry
and go do all these other things or make
sure the kids have this type of stuff
ready for, you know, the meals you need
to pack throughout the week.
I'm historically very bad at that and
will probably uh 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 would be foolish of me to claim that
I've defeated day 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
you said a lot of interesting things. So
on the on the reading and the for me
it's also audiobook side. I do uh 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 yeah there's
you know read a page and you don't
understand anything on the p you you
didn't actually read it and yeah you I I
forced myself to just uh reread it or
relist to an audio book which is much
more common problem for me now uh and
forcing myself to really pay attention
cuz I I listen to audiobooks often when
I run and it's so easy to just tune out.
Yeah, it's a skill. Like, 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
like really pay attention to every
single word. And if I don't like tune
out and don't remember what I just
listened to in the past 30 seconds, I
force myself to relisten to it. And uh
sometimes that means like five times
until I like it's like punishing myself
to like you're going to listen to this
boring shit over and over until you you
get good at that little skill of
like zoom in and you're like yeah
there's people that are 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
going to be like, from here on out, I
will never make that mistake again. I
will say I'm going to 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 will start
again. 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. And with with
every medium with every platform I think
it's like a new skill. Uh for me like
using social media has been that just
like I end up like doom scrolling Yeah.
too easily on platforms. So, 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. Mhm. Okay. Feel a
thing, learn a thing, and then put it
down. Yeah. Versus
like this glazed 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. Um, the horrible afterwards
is real serious. I 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 it's not
anger, but it's not, you know, it's 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 a bird
chirping. Bird chirping on Instagram is
a different bird chirping than real
life. Like cuz bird chirping on
Instagram. I'll start swiping until like
there's like demons of different types
fighting inside my head and then I you
know 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 with the
audio book. It boils down to like, man
these people that talk about meditation
I think that's probably they're on to
something cuz like the that's what
that's what it is is be able to like
focus
uh calmly and deliberately on a thing
whether it's reading or audio book or
existence. When they sort of observe the
breath, you're able to silent out
everything else and remove everything
else from focus. Yeah, that's a skill. I
heard it put really beautifully which is
that uh 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 you actually
want to do you don't do cuz 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, that's a skill.
What What can you say to the the the
skill of achieving focus in programming?
like do do you have a process of how
you sit down and try to sort of approach
a problem? So all the different
uh not just distractions but the
challenges of starting a project of
thinking through like the design how to
maintain like real focus cuz it's really
difficult intellectual endeavor. I guess
at this point I'm lucky. Uh 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 going to 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, you know, 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 going to spend all that
time and all that mental effort like
looking up the thing. I'm going to just
memorize, you know, I'm just going to
get it in me and then I can go fast and
it feels good. And so, that's how I kind
of defeat that is cuz 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 like distractions like I
wonder how you know uh anytime I guess
you have access to the internet you're
going to like Twitter's a big one on
that one. Yeah, you're going to get
curious about stuff including I guess
you're speaking about everything in the
editors optimized but you're okay. You
can always improve stuff. You can always
find better sort of plugins and macros
and oh let me you know what this thing
that took uh this painoint I just found
this tiny painoint let me spend the next
5 days creating a plugin for my editor
or whatever the fuck uh to uh remove
that one painoint when you should have
just kept going uh as opposed to taking
the side quest. So, I have a rule. Yeah.
Which is I do not edit my RC other than
some kind of cataclysmic thing like
someone updates a plugin and I didn't
know they updated it and now there's
like a hard air in my editor and I have
to like move forward. Um, 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. Now, every now and
then I I'll break that rule if I know
like, oh, I want a new remap to be able
to do this one command and that takes
like literally 13 seconds. Like, copy
paste, do this, bop, done. Okay, I have
this new remap. It made perfect sense in
this situation. But I don't go plugin
exploring. 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
a 100 hours just like editing every
possible thing I could about how I start
up my system. Mhm. And make I can have a
computer from zero to 60 in almost no
time now. Everything the way I exactly
want it. Neoim everything all perfectly
set up. Happy enough. I'm not going to
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. 0 to 60. Let's talk
about the perfect setup.
Uh, what's your uh 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. Uh, save
my career. Beautiful keyboard. Uh
concavity and thumb clusters are just so
important cuz if you really think about
it, especially if you're using querty
when you're pressing the symbols like on
a standard key, you're just doing this
the whole time. Backspace, enter
symbols, like you're just doing this. It
just screws up your wrist constantly
doing this. And this when you're
constantly doing like control and shift
it's just is 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, Kinesis
keyboard, I I think the 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, it usually
means a mistake. And so, uh, the not
only did you just make a mistake in what
you were typing, you also have to take a
physically painful action, annoying
action. Yeah. To to to fix that mistake.
And for most of us, we make a lot of
mistakes. So, uh, kinesis just makes it
pleasant and fast and easy physically to
correct a mistake. I that's probably for
me the number one reason of kinesis.
everything else. Yeah, super plus with
the macros and the positioning, the
concavity like you mentioned, but there
mistakes are pleasant. Yeah, I'm on that
team. That's why so that's why I love
that. So that's I would say that's one
of the most important things. The next
thing 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
you know, I sometimes crash my computer
I have to restart it 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, uh
you've been there, I have to physically
switch to the streaming chat 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
want 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. And big middle
finger right there. Just smash it down.
Uh alt six is going to be GIMP. So my uh
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 four. I had all
these kind of everything is perfectly
mapped out to single key. And then when
it comes down to using say T-Mox, I have
all my terminals into one single
terminal. And now I'm able to kind of
switch between there. Uh prefix one goes
to my Vim editor. Whatever project I'm
in, it's always the first T-M tab, if
you will. Not sure they call it a
session, but not sure how to describe it
if you're not familiar with T-Mox. A
tab. Second one is like my spare
terminal. Third one is my longrunning
process terminal. My fourth one is a
longunning process terminal. 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
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 F in any terminal will bring up a
fuzzyfind 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 uh pin one of the files to like a
temporary buffer. I think uh projectile
is potentially close to this in Emacs. I
can't remember. Projectile. I think
projectile is closer to uh my
sessionizing script. Anyways, uh so now
I can 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
want to go to the browser that's one
press. I want to go to my workstation
that's one press. I want to go to a
specific folder. I need to change
folders. Sometimes you work between two
different um projects. So in T-Mux
that's prefix capital L will swap
between your last two. So I have
alternate projects. I can even swap
between projects in pretty much one key.
So, it's just like dude, dude, dude.
Just trying to optimize it so I don't
think as much because I think search
fatigue is a massive fail where you have
to look for 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 like 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
cuz it feels better. It at least
intellectually feels better. may not be
great for at some point. There's a few
profound things you said which is like
really what you're the the 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. At any one time at any one
like space of like 20 minutes or
something like that. So okay that's
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 not when I'm
traveling, but my 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. I 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
27inch monitor. Yeah, I think that's
okay. I think I feel fundamentally
constrained when I can't see more cuz
you're 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 up and down by a half
page because the ape visual system was
designed to like you loading a lot of
information like what if every time you
have to investigate this table what's on
this table you had to press a
keystroke you you could develop the
skill set that integrates that
information but like 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 uh
load in the structure of the information
the the topics of the information like
you just can do it faster I think
there's a big cost because you you know
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 you 25 lines at
a time I think you can do a lot this is
more for like articles and especially
with visual information in them or
documentation, you can just jump faster.
But I'm trying to as you were speaking
uh 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 cuz I'm a big proponent of
just automating everything with the
keyboard cuz you could just move really
really fast. You don't have to think.
Uh, one of my, you know, cuz I also do
um creative stuff like uh whether it's
recording music or um video editing
it's it's hard, you know, some of these
programs don't make it super easy for
you. On Windows with auto hotkey, you
can do quite a lot, but still there's
limitations on how much you can do with
the keyboard. So that's it. It really is
a pain. He has to have to use the mouse.
But man, you're really making me think.
It's, you know, the even the text one
with the reading one. I like
fundamentally I think I agree with you
that you can 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 have 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. Um my text is bigger
than this when I when I program. And so
it's it's just that it's so comfortable.
I don't even have to exert any 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 Neoim. Okay.
All right. And then Neovim's obviously
the next big one. I love Neoim. Uh
reason being is that I think you can
make all the arguments 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? 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 um
what's
EI5? What like what does it take to work
with Neo Vim? Okay. Uh I thought you
were talking about a Vim Motion there.
That's how you know that you know that I
I know but you know that meme that's
just like, "Hey Jarvis, can I tell you
about Vim Motions cuz they can't fit
anything else in their head cuz they
only have Vim Motions." cuz you said EL5
like explain it like I'm five but in my
head it's like okay E is jumped to the
end of the word L's one more like dude
I'm so like broken I'm like okay vim
motions when I hear letters um 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 wellthought 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. Uh 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 is an a like Saul to
Apostle Paul, I am like the Saul to
Apostle Paul of Vim. Just so you 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 around paragraph. Or
maybe I want a D. F mean jump up to the
next character that matches the next
character I'm going to press. So DF
opening parenthesy will delete
everything from your cursor up to the
first opening parenthesy. So you get to
describe your motion in these little
keystrokes. 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 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 where 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
want to 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. I just need to get the I just
need to get it out of my head onto the
you know, onto the text editor. And so
that's why I think Vim Motions 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. Oh, so this is not just about
writing text. This is about modifying
text. It's primarily about modifying
text. Yes. And I'm sure that most
editors including Emacs, including VS
Code, can do all those same things. But
there is something they just don't
encourage you to discover those things.
Yeah, that's like an important thing
about a lot of technologies that and L
programming languages that a lot of them
can do a lot of the stuff. Yeah. 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 uh to edit text in
in this particular example. Yeah. How to
use the keyboard. That that's a
fascinating sort of just reality of how
technology is used. You want to be
encouraged to find the fast 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. Um, let me
give you one more example. Okay, I'm a
big fan. Okay, let's say you have a line
that can that 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 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 can I like to do
shift V to highlight the whole line.
Then Y. Some people do Y Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y Y Y Y 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. It's just a little optimization
for me cuz 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 line is 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. Uh CI, what's the difference
between typing the letters and using the
letters to navigate and edit? How do you
switch between the two modes? Okay, so
insert mode means that you're just
putting in text. Yep. And then uh normal
mode means that you're moving your
cursor. And how do you switch between
the two? Uh escape. Escape goes from
insert mode into normal mode. And uh 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 intented for the language. Shift
O to shift your current line down. And
then put a new line in. Like you can see
there's there's like I'm pressing escape
a lot. Yeah. I mapped mine. I do
cr except for in one edge case. People
hate that. I got used to it just due to
the fact that I was using Intelligj and
I really hate pressing the escape key.
So, I just got used to pressing a So
that seems like an essential thing to do
if you're using Neoim to map escape to
something. Cap lock would be like your
standard go-to. Oh, yeah. I map it to
cool. I got you. Yeah. So, then it's
just really easy to press it. Boom
boom, boom. Not a big deal at all. Uh
but yeah, I think that if you're willing
to learn it, the motions are superior.
But if you're not willing to learn it
then they're not superior. You should
just not do it. Right? If you're willing
to endure pain, it's good. If you're
not, it's it's actually way worse. It's
100 times worse, right? So, if you like
paying, you use Neoim. Totally. Yeah.
You're totally Now you get it. If you
like Joy, you use Emac. 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 I think you've been
miseducated, my friend. So, at least 30
minutes on Emacs versus Neovim is what
Reddit um requested. Have you actually
used Emacs in order to be able to talk
so much shit or No, I used it for a
year. You used it for a year? Yeah.
Yeah. Doom, Space Max, and regular
Emacs. But you don't know Lisp. So, you
did you really use it? I 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 mastering U of M
and really learn the depths of it, but
Emacs is okay to just kind of use before
making a judgment. I think I think
everybody you got me on that one. Yeah.
No. Uh and what's new written is Lua.
Yeah. So Lua would be the configuration
language, but you have uh 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. Mhm. And
uh 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 uh I mean it's it's quite sad in all
seriousness that I haven't to this day
tried Neoim. It's uh I think because
there is a learning curve. There's a
learning curve to a lot of these
editors. Yeah. To really like to really
learn it to really learn it. And I think
there this is some of the criticism of
maybe VS Code or Sublime or Adam, but
that it's so easy to not learn it to
just kind of halfass use it. And there
is a big uh benefit to having editors
that like force you to have some
learning curve where you like take the
art the the science the procedure of
editing seriously cuz like you spend so
much time in it. You might as well like
learn like how to use the 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 like 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 like 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 they can 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? Cuz 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?
That's the people surprisingly just
don't do this enough. I see this just to
go back to jiu-jitsu. There's a lot of
people that show up and do jiu-jitsu or
martial arts and they do it the same way
over and over and over and they invest
tremendous amount of energy and they
don't ask like how do I do it
differently to improve faster in the
case of jiu-jitsu or any kind of sport.
Same with practicing the piano or the
guitar. They don't they just religiously
put in a lot of time and uh 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 how often people
do just that. Yeah. With typing it's
surprising how many people do just that.
Like you said they they like they're
pecking or looking down. It's like the
the quality of life improvement you can
have by learning to touch type by just
like typing without looking. It's like
it's it's it's like immeasurable. You're
bringing a lot of joy to your life
because all of us are typing a lot.
Yeah. And uh yeah, I mean uh the the
reason by the way I I was extremely
efficient with Emacs. I'm I'm sure, you
know, all jokes aside, I it feels like
Neoim has more room for the kind of
efficiency I've had with Emacs to be
able to move really fast as you're
describing to edit. There is a real joy.
It's not just efficiency, it's a it's
like um yeah, it's a freedom that you
can get when you get really good with an
editor. Uh the reason I chose to go with
VS Code is it it felt
like there's going to be uh an
acceleration of features to which Neo
Vim or Emacs will not be able to catch
up in the and I don't mean in the next 5
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 cuz I was getting so
comfortable in EMX you know this with
this keyboard everything all the
shortcuts because I know how to program
and it felt like this is not you know
neoim will not be here in 50 years
possibly might be I don't know but it
felt like you want to learn these
constant sort of different technologies
you know cursor isam a great example of
that of primarily am 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 the timing to the
layout of the windows to how I think
about where, when, and how to use AI
that it 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 local maximum of comfort if
I stayed with Emacs. And maybe the same
should be true for for me with Neo of
him. I should I should try it.
Seriously, I'm sure there's a plugin
like a co-pilot type of situation that
you could set up with Neo. I should uh
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 uh 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 with with co-pilot I don't know
but like that feels like a fun with a
different experience than the really
efficient joyful experience that you
just described and you're selling me on
this as
Neoim that doesn't have an AI in the
picture obviously immediately but you
can yeah absolutely I would 100% agree
that cursor seems like such a cool
product. Like I 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 neoim 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 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. Uh, we we'll talk
about it, but before then, oh, ball to
sit on. I forgot to say that. Ball to
sit on. Yeah. Desk needs to be properly
heighted. One monitor, I should be
two/ird way up the screen. Uh, I don't
like to turn my head. I prefer my uh 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 because 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 a
ball and then I bounce. Are you Is your
back leaning on a thing? No. What the
fuck? Well, how else do you like the 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 this
right? It feels great. I mean, okay. I I
the problem is is whenever I get a back
um I just slouch and I find myself just
getting uncomfortable and I'm like, why
am I I'm uncomfortable. Like my my
shoulders are kind of getting goofed up.
I just like I I'm chicken necking like
constantly like, you know, it's just
like But you're able to keep your
posture for hours on a yoga ball. Yeah.
And so I can just do that and then I
find myself if I slouch I'm like, "Okay
nope. Got to get back." You know, you
have like incredible back muscles or
what? No, I I Well, I I don't think it
takes incredible back muscles to keep
posture, remain upright. Yeah, I think
that's a pretty basic human function.
I'm I would not consider myself a strong
person. Yeah, basic human function. I
don't know. Facts and logic. Okay, cool.
With uh one
screen, Neo Vim with operating system
Linux. Uh just because I 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 uh 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 switch between. So, it doesn't
really I don't really care what I use as
just 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 with Linux, meaning uh WSL.
What's that? Windows subsystem for
Linux. Weasel Weasel.
See, no. There's got to be a better one
that's more positive. Weasel just sounds
seems right up Microsoft's alley. That
seems perfect.
Uh, so people often accuse me of being a
shill for somebody. Uh, sometimes
dictators. If I'm a shill for anybody
it's for Windows. There you go. I get
paychecks every every week from uh
bought by Bill Gates. Well, he's not
Microsoft anymore. Balmer developers
developers. about. No, 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. Um okay. So, uh just to to stay on
you for a sec and uh to give love and a
shout out to your friend Tee. He
streams, by the way. He's a streamer and
I'm I subscribed and I've been enjoying
it. My allegiance is slowly shifting
from you to him. It's um the quality is
far superior with him. Uh the the looks
the intelligence, the skill set
everything just far superior. No. Okay.
So, he uh you know, you're making his
day.
All right.
So, uh, he mentioned that he loves Neoim
because it gives him the ability to
eliminate having to do things he doesn't
like. It's just a nice way to to
frame sort of what this the automation
process that you
describe of automating away 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 Neoim, 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. Um, I don't
necessarily derive a lot of joy from
getting the perfect setup and so, but a
lot to learn from. He's he's very, very
good at what he does. He is by far
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, uh
people should check him out at te
ej dv. Yep. T DV. His name, his last
name is Dere Dise. D. Oh, it's not a
developer. Okay, cool. Yeah. Yeah. So
it's just TJ. That's just his name. Just
spelled kind of fun. What do you love
about him? Wow. How much did he pay you
to ask these questions? Thousands of
dollars. Just so many.
Um, I can't even count that many
dollars. Uh he is uh 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 on
to 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 will 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 um questions I could backstab you
with. Okay. I hate him. I forgot. I
forgot how much I don't trust him.
Uh so, speaking of Harpoon, you
mentioned it. Um he said, you know, to
to ask you about uh
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're seem to
be incapable of finishing a single
project? Okay, 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 one and I have kept
Harpoon 2 as harpoon 2 branch. And
people that don't read the read me to
say that I just use harpoon 2 now
that's that's their fault. Uh that's it.
I just don't want I I really don't like
answering hundreds of questions about
open source stuff. Uh I used to love
doing open source and all that, but I
kind of got my soul crushed during the
Falor years and so I I guess I'm just
kind of allergic to being a really
active maintainer. Um I built everything
just for me. Like Harpoon's just
literally just built for me. It's just
what I I spent three months trying to
figure out the most optimal navigation
for files and that's what I came up
with. So Harpoon um it's a take on
alternate file. If you're familiar with
alternate file, uh 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. And
you probably used it a bunch. Really
fast way to navigate. Pretty nice thing
to do. Um 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 uh for D'vorak. What is that?
That's htns. 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 uh
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, what keyboard layout do you
use? You use Dorak. I use D'vorak, but I
used a custom version of D'vorak. 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
D'voric as the bass 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 to press. And so it's very
optimized for a um laptop keyboard
layout. So I can use my laptop in a very
efficient nice way. That's how I got
started on D'Vorak 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 and also 2017, that's when I was
like, "Oh, okay." Would you recommend
Kinesis to people? I am technically
sponsored by Kinesis. So, uh, 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 going to use you either way. Yeah
you don't. You can say no, but I really
love it. And for the first 3 years of
using Kinesis, they gave me free
Kinesises. Kissi as my sponsorship.
Kissi. 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 I relate. Yeah. Yeah, I mean I'm
literally, you know, going to the war
zone in Ukraine. 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
going to be 30% of volume that you're
bringing to a war zone? You know, looks
like the answer is yes. Yeah. Like, do
you really derive that much value? Um, I
think it's probably spiritual or
psychological for me. It feels like
home. It's there's comfort associated
with it. Yeah. I try to leave. Man, I
love this experience. You just are. It's
like a relationship you have with the
thing. It is. It's uh is it but I'm
trying to figure out if it's a toxic
relationship or not. Um I think it's
mostly love. I think it's love like all
relationship. 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 said. 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 would
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. Uh
who uses these keyboards as you use the
keyboard? 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 talking
about. I need to actually use it. But
you are you run amongst many things a
coffee
company. Uh man, this smells so good.
Uh, so this one is dark mode, dark
roast, whole coffee, beans. There is
uh, Seg origin-lo.
There's a bunch of stuff on there. Stuff
on there that's very devi shop server
web. Can you
legit order coffee via SSH? So, as of
right now, it's the only way you can get
the coffee is by SSH. That was kind of
Okay. So, can I just or origin story
you? Yeah. Yeah. Uh yeah, right. I was
going to do some kind of um command line
command to request or like d-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. Yeah. Um, so let
me kind of give the basic ideas like it
must have been about 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, but 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 I don't
want a tequila. 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 and we love Neoim. So, we're
just like, "Oh, what if we could do
something from Neovim?" And we're kind
of like laughing about that. Like
ordering from Neovim is just so
ridiculous. Mhm. And then at some point
we're just like, "Well, what? 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 have 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 ve he does SST. He does a
lot of stuff. Very very talented. Uh
we'll call him DevOps engineer. He's
more than that. But um very talented
guy. Him and another person named Adam.
Vegan by the way. Great guy. We make we
take him to Korean barbecue all the
time. He eats nothing. Um
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. He designs for Laravel. Very
talented designer. And so we all kind of
came together and we were just laughing
about how can we like could we do
something that's just ridiculous. Mhm.
And that's kind of what we came up with.
Yeah. Like there you go. You just open
the website. You actually you literally
cannot
order. We we actually do not allow you
to order. The website is uh something
that kind of looks like the terminal.
Use command below to order your
delicious whole coffee bean. SSH
terminal.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 in the
little terminal shop for your known
host, you could do that. How do you
handle payment? Uh through Stripe. And
so, one of the things we'll be adding a
mobile checkout to where it'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 all
terminal. Yeah. SSH is obviously it
stands for secure shell. It uses
elliptical, you know, uh quantum safe
algorithms to ensure that your data is
not being intercepted. Yeah. But does he
use AI?
I'm pretty sure DAX uses AI. So that you
said quantum. So I don't know. Quantum
AI. Can this fusion? Quantum AI. Can
this even be a 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 mo that was from the Mike
Tyson fight. All right, Mike, it was
literally that night Mike Tyson kissed
the reporter and then walked out. Yeah.
Without any uh clothes. We did an ad for
somebody. But nice. We decided to make a
coffee shop and then we thought instead
of just making it neim, what if we made
it
from SSH cuz everybody has SSH. You have
VS Code, launch VS Code. You can order
coffee from within VS Code, right? cuz
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 this. 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 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 cuz 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 you 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 and
sh terminal.shop. I'm 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 a kind of documentation right on
the website. If you can't use SSH, you
probably should just not worry about
buying our coffee. Like that's the whole
Well, you can learn. You can learn you.
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. Uh what
I what I would love to see this this how
it came up I think on the on the cursor
conversation is that uh I would love it
if an AI
agent you know did this like u
anthropics 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 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 it's able to go
to I think uh uh like Google for some
images, take a pause, and then continue
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 on the role of AI in the in the whole
programming software engineering
experience as it stands today. What do
you think uh what's your general view
about AI? Uh what is it effective at?
What is it not so good at? Okay. So my
general view is it 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.
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 it's not great
at Zigg because Zig is just like say
less documented. It's really great at
Typescript. Uh I think there's a lot
of there's a lot of interesting things
that are going to come down through AI
that I think a lot of people aren't
really prepared for or thinking through.
Uh TJ's kind of the genesis of this
idea, but the idea that um I think
there's going to be a lot of kind of
market manipulation, if you will
through AI, meaning like, hey, you want
to
research, say, best woodworking tools.
Well, someone's going to be buying an ad
spot. Someone's going to be buying
premium trade train training data
right? They're the ones that get the uh
the big boosts in the LLM, 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
I fear upcoming. Uh a lot of it just
comes down to people not uh 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 going to 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 it feels
like a magic trick. I remember the first
time I used it, I got early access to
GitHub Copilot. Nat, 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 because I had nothing before then.
And now it's just like first time ever.
And I just remember thinking, man, this
is going to 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 I struggled
there. I do think that's a skill set.
Yeah, skill issue for sure. Skill issue
for people who are not aware that's like
a hashtag thing sometimes use mockingly.
In this case, there's like several
layers. Mockingly, but also seriously.
Yeah. meaning like the criticism is
grounded in the fact that you lack the
skill
versus of some kind of fundamental
truth. Yes, I think that uh 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. Mhm. Uh but you
can do out of the box kind of novel
design decisions or tricky design
decisions from
scratch but fill out stuff uh using uh
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 uh less lonely. It's
more it's uh what I imagine like pair
programming to be and I've never done
it. But the it just feels like that uh
friction that you get when you're like
staring at an empty thing is not there
like empty function, empty
uh 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. Mhm. Um basic
things that I would usually have to look
up to Stack Overflow for. Uh it's just
really fast at that. Like as example
just interacting with the YouTube API.
Uh 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
do all kinds of read and write
operations and it figures it all out and
then you could 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.
So you're what is that skill? I don't
even know. You have to kind of be
empathic about what the AI is what its
limitations are. A lot of the times that
has to do with
um uh prompt engineering. You have to
like at the same time
uh
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 code the files it's aware
of this is the specifics of the question
you asked it like you have to like
imagine you're an intern that doesn't
know anything else like often times we
want the AI to like figure out the
things that's left un unspoken but you
you can't know those things you have to
like specify those things and so you
have to actually be much more deliberate
and rigorous in the things you specify
is to spell it 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 longterm with the tooling
that's going to improve that. One, the
systems are going to get much more
intelligent where you don't need the
nuance. And two, 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 uh
developers in general should be learning
this to see
uh to not be left behind to see what how
they can be used
uh to super as a superpower to to boost
their productivity their effectiveness
their joy of programming versus like uh
be seen as a competitor to them or
something like that. So, but I you know
I for me already
uh it's been it's it's 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. Mhm. It's been a big and uh
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.
And AI helps me actually get it done.
Like actually cuz like that thing, the
empty page like I mentioned before, it
helps me write the thing, get it done
get it tested, like ship the thing. Um
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. Yeah.
And you're like, "Oh, wow. That's like
that's a way different approach I would
have taken. Hey, that's kind of cool. I
like these kind of things." And the
thing is I'm not like a AI negative
person. I I can see why people really
really like it. Um I just haven't like I
just every time I I used Copilot for
from when Nat gave me the uh access all
the way up until about 6 months ago.
Like that's how I used it for quite some
time and I really 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 wrong here. And
that's just like a me personal thing. So
I 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 cuz 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
god 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 cuz like a lot of the
decisions I make a lot of the little
functions I'm writing it's not cuz I'm
trying to write this function to solve
this problem. it's cuz I'm writing these
functions or this set not just to solve
this problem, but because I know in
about another 2,000 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 of the word where it's
like I'm making a 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 want to 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, I when I use AI, it's for
basic like for just like I 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 no nowhere close to
what's needed." So that there's
something to that. I still think they
should be using AI just for the
learning. Yeah. Because it's going to
get smarter. It's going to get better.
And
it's the same thing. is like when you
when you super optimize Neoim or super
optimize Emacs, you may not discover the
new things that are in the pipeline. So
it's it's always good to be sort of
training in that way. Let me ask you a
question here just kind of for 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 LL 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 where you're like
but then at some point the interface is
going to get better and maybe it 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 going to 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 nextG like
actually just be so different from the
current one that it's kind of like
yeah, you're you're over there like
actually doing punch card AI right now.
I'm going to come in at compiler time
AI. So different that it's like what's a
what's a punch card? Uh so obviously
open question. It's a fascinating one. I
personally think yes, you're you're
falling behind. Not you, but could be
could be me. 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 like this intuition about
how AI
works. You you're understanding like
what is its strengths and weaknesses?
Not the even the current version, but
the next version and so on. Like what
uh what does it mean to teach an AI
system about the world? like what kind
of uh information does it need to make
effective decisions. I think that does
transfer to smarter and smarter models.
You'll need to make
uh less rigorous and specific and
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 there the uh 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
uh blank slate happening. So, it's
almost like a just a skill of talking to
an AI system that uh 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 uh 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. There's a skill to
asking a question about that code that's
been generated
uh 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. Um kind of like there
was a real skill issue between you and
Te when you guys did the video of 28s
one keyboard, right? Uh people should go
watch that video where like you guys
obviously sucked at it. Yeah. Co-using.
That was pretty cool what you guys did
which is controlling one new 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 that's a real
skill. I'm sure you can get super like
super efficient with that. But it takes
it just takes time to learn that kind of
thing. So yeah, I think uh there's some
value to it. But I I think there's a
learning curve. So I have So I I wanted
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 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 uh Claude 3.5
against open AI. Claude 3.5 would do
better during the day times and Open AI
did better during the night times. I
don't know why. I don't I have no idea
what was going on there, but just 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 axi. I just don't find it very
useful yet in programming. programming
and I should also say that I'm using it
uh 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 I think it 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 you I
saw you're you're basically pulling from
Twitch chat 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 you're doing kind
of some kind of summarization. Yeah. So
what I 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 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. 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 like
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
reprompt be like, "Hey, you're Randall.
You're 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 val 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. It's like
depending on what I wanted to do. I'm
trying to work on a better system still
for 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
and, 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
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
Yeah.
talking. I was like, what? I tuned into
one of your streams
and there was just this lady like like
in a in a sexualized way. It became too
funny. And so we call her not French
Stormmy Daniels. Oh, nice. Yeah. But I
want to go back to the AI and and and
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 I
cannot see I cannot tell you even on
like uh you mentioned Peter Levels
earlier, he made some sort of tweet and
one of the person's responses was yeah
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
going to get it wrong in a huge number
of cases. And as the code becomes bigger
or more complex or more input, it's
going to 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 going to
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 LLM 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 is 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 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 going
to 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 uh whether that means programming
from scratch for example in the context
of programming
uh that's going to make you better at
steering the AI. Mhm. 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 uh you can
steer the high level abstractions
better. Yeah, 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 in the context of uh
quickly improving AI systems. So, do you
think AI will eventually replace
programmers?
The hard part about that phrase is use
the term eventually. Yeah. Meaning, do I
think in 5 years, 10 years, a 100red
years like what is that what does that
term actually mean? uh 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 right there 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, 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 we should say
that I think it depends how you define
programming also because
um you know when uh the community
uh moves from assembly to C from C to I
don't know uh 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. Uh so there's going to be a
continuous evolution and maybe that
means with 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. Uh yeah that might you know cuz
natural language is still a language and
in the long term it's possible that a
large percentage of programming is
natural language. There probably still
going to be some percent is just 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
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 tur
language. I'm just not sure how much
more tur it can get. Um, yeah. I mean, I
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 a real big
snowballing effect. But, you know
there's there's just 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 uh a way that you can
communicate, you can
program that means uh the pool of people
who can uh get programming jobs changes
rapidly. So they're really concerned to
some extent, right? Um because no matter
how much 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 there's
definitely a balance there. It's not
like a perfect tradeoff. And so I 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 front end 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 automated away. But that's not
really programming. That's almost like
building Legos at that point where the
design's already set. You just simply
have to move piece from bag into correct
position. Yeah. Uh is there something
you recommend how
um uh 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 value
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 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. And 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 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.
This is kind of going into the Devon
category, which is that I want an intern
that cares. Yeah, you you don't get that
out of an LM. 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 to
think about it. I want it to present to
me and me 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? really
rethought about this and actually it
would 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 they care when they factor
something they actually go over and go
ah yeah this is actually kind of bad I'm
going to come back to that they finish
this they go back over here and they
make this even better right they like
actually care about the thing itself
it's a completely different experience
and 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 could do. Yeah. we're constantly just
ask itself, can I make this better? And
if it keeps doing that, it probably is
going to take it to some ridiculous
place. So, actually, it's it's also
knowing when to stop. Yeah. Uh I think
developing um 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. Yeah, 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. This is especially as
as you understand as you develop taste
in the particular industry in a
particular context application knowing
like this is it. Yeah. this the rounded
corners on this button. That's exactly
that that's beautiful. So just a sense
of beauty uh a sense of function and and
efficiency and so on. Yeah. That but
that you know humans could do almost
like supervision of AI systems in that
context. Yeah. Yeah. You've uh ranted
about Devon um just full of rage. Uh 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. Um, second, Devon is just it's
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 you know so
hopefully you have this whole offline
thing which is the other part of um this
AI part that I actually really like
where 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 you know like 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 I've
asked it for many and I 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 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. Um 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.
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
what am I saving at the end? I feel like
I'm not saving anything yet. 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 debugging this might
be intuitive or counterintuitive is the
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 yeah bugs but like that is
the real art of programming is debug is
finding bugs logical bugs like um
extremely complicated rare bugs edge
cases. Mhm. AI can assist but mans 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
uh of course AI could maybe create like
logs and do traces and do some kind
of load in 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? Cuz as far as I
can tell, I mean, correct me where I'm
wrong on this current state debugging.
It's 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. It's just 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 cuz
maybe that is a really great way to
navigate large code bases is like smart
intelligent search as opposed to try to
make it do the thing. Ask it to just
help you do the thing in like
pinpointing problems. I know I' I'd love
to see more of that cuz 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 LLM's being like
"Oh, I found a security flaw. Uh, 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 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 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
debugging 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 LLMs integrated into
um into IDEs. I think there's this whole
idea I call a a denial of attention. I
think there's an entire attack vector
that's going to be happening where using
LLM to generate fake bug reports fake
all these things to just actually uh
effectively to demotivate and um hurt
open source maintainers. Uh, Polykill
was the first bug that kind of had this
experience is this denial of attention
where a 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 again the Stack
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 I
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 uh yes 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 we, you know, we 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.
Okay, so this is what are the benefits?
Increase productivity, speed up
learning, greater efficiency, improve
accuracy in coding, make workload more
manageable, improve collaborate. Where's
the
fun? Increased fun. I would say that's
that's like number one for me. Maybe
speed of learning is like a a
subcategory of fun, right? If you're
able to learn more and be able to become
better to me, that that sounds that
sounds good.
I don't know. It's different cuz like
productivity is part of fun too. I there
is just a lightness um I mean maybe
improved collaboration all of these
elements for sure. There's I my time
using co-pilot c 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. Uh 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. 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 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 and challenge it
and then uh 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 think quicksort's
super complex. Mhm. 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. Yeah. On the ethics.
Will we see Europe laying down some new
regulations? Oh, boy. What about
artists, right? 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. Mhm. 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 is just you
cannot make that statement, you know?
It's it's very bounded in what it can
express. And I could see why artist 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've scraped and used as
training data? GPL forces open source.
Yeah. What are you going to 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
it's a it's a real wild west cuz like
you could imagine that what if you know
I always use Europe because they tend to
have like maybe the most consumer
protection uh laws out there. You could
imagine what happened if 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 sourced from a model.
Like that could you could imagine just
the sheer panic that's going to
happen. It'd be a fire sale of code. So
given all that, what can you give advice
to young programmers?
uh 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 in the tech
industry? And uh this is an interesting
addition to the question and by doing it
will this be walking on 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 um forgetting to
uh 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 it, whether that's just only
using AI agents, programming yourself
using Zig or programming JavaScript
whatever you know that flavor is that's
going to 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 uh in life to be
able to achieve these things because you
know I'm sure there's hundreds of horror
stories you could hear where people
definitely shortcuted their morals for
you know monetary success. Yeah. I mean
the golden
handcuffs uh comfort can destroy the
soul in some sense.
Yeah. So that's uh 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 at
programming. Um, 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 can if that's a good
enough answer in the sense that my kids
are 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 want in Roblox, I'm showing
him Chad Jippity 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 going to be
massively different and crazy and
exciting. Maybe in virtual reality.
There you Maybe all of us actually down
the line will just be building video
games. Just entertainment for all. The
uh brave new world of our world. Well, I
think I think uh
entertainment is a kind of trivialized
version of what a video game could be.
Mhm. It's like what what is the purpose
of life anyway? I mean, it could be 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 uh
challenging, forcing an evolution, the
leap into adventure that it makes up a
um a fulfilling life. That could be
video games. Who knows? Especially in
virtual
reality. I tend to uh that's the other
thing. I I play a lot of video games. I
think I think 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 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 cuz
I was worried become too addicted. Yeah.
Yeah. So there's certain games I just
know I won't get super addicted to. Like
for example, I'm terrified of
Civilization. Like uh I have never
played a Siv game because I'm worried.
I'm worried uh the dark path in my lead
because there's some games just really
pull you in. I'm much better with uh
that's why I play Skyrim. I can play
these games uh or Balders'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. Um yeah, so
that's how I choose my video games.
You're not the first person who has
specifically called out civilization.
Yeah, 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." Yep. So, I've
never even played the game now. It makes
me be like, "Dude, I got to 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 uh 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 schedule list was the
official on the docks. So, is there some
value to jumping around
like working one company and another to
try to figure out like what brings you
joy? I think there's a lot to that cuz
um not every job you're going to get is
going to 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 I know I keep on
like surprising you with more kind of
things I did in the past. Did an
internship at a at fuck you so many
things. It's incredible. At a place
called like uh total information
management system. Remember when I
talked about that hours ago about health
care and that and industrial shipping
and all that? It was a C# 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 going to
be the one. And the thing is the 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 the
change, right? I think a lot of people
are like, "Oo, I got to find the next
thing. I've been here for 2 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. You just come out
with nothing at all. Yeah. Especially
when you're younger, that's the whole
point. Take take the risk, take the leap
out to the next thing, to the next
thing. And not for money, but for just
person like joy. Joy. Yeah. And money
could get at the end. That's the best
part is 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 a good team. Some of it's
like not to be generic, but you know
culture matters. It's whatever makes you
um happy. Like for example, I just had
won't call out places, but you know
there's certain companies where
everybody is very 9 to5 and it's very
even if the work is exciting, they're
not they don't work hard enough. I would
say I'm one of those people that likes
to go all out like likes to be
surrounded by people who are like super
passionate. Now to be fair, a lot of
them don't have families or don't Yeah
it's a fascinating choice. I I really
don't want to talk down on any choice
like work life balance or not. But I
think both are beautiful paths and like
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 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 going to be something very very
exciting about that in some sense
especially if you're building your own
thing. Uh I could 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. Uh
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. Uh 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 you just don't know.
And some people are like, "Oh, yeah, but
I like love my dog." And it's just like
I loved my dogs, too. And then I had
kids and now my dogs are they're all
right. Like I like them. Yeah. I could
come home and I pet Indie and I'm like
Indie. And then I'm just like, "Okay
bye Indie." Right. Like it just I can't
even describe the difference between the
two. Yeah. Because they're not it's not
even the same. And so it's very that
trade-off you're making is no one can
tell you what it's like cuz 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. Mhm.
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 like 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. Yeah. I thought
I knew. I didn't know. But to add on top
of that, some 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 going
to use that time better to be
productive. I would argue that I'm it
definitely changed a lot of my life and
my and how I approach problems and
everything in a very different way. Let
me ask some uh random questions from
Reddit. On a scale of 1 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. Uh, 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. Yeah. When what they really
want is 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. Uh, I would
argue Neovim is a great guy. They
there's no way they can make money. Um
Justin Keys 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 they made VS Code as a
loss
leader. Copilot's probably operating on
a loss leader. These things are all
getting you so tied into GitHub, remote
workspaces, CI cop, like you've 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 uh basically keep you for
life. But also, it's awesome that they
created Gmail like Yeah. And they create
an incredible product, right? So, 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 butt is
fine. You know, they they they did a
great job. Yeah. So, like it, you know
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 it definitely the spirit
of Linux and open source is a beautiful
thing. So I I do think that when you
have these large
corporations even when they try to do
good often times the the profit
imperative just takes over and they they
can they can corrupt themselves and
Microsoft has a long history of doing
just that to themselves. Yeah, that said
they've done, you know, they have, you
could say for cynical reasons because
they want to 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 met Meta's
done like insane amount. Yeah. To
support open source. 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
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 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
they're morally neutral. Well, 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. Do you
ever ride a bull? No. All right. Uh, why
male models? Okay, so I can explain that
one. Mhm. 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, "But why don't you like the
color purple?" Right? And it just be
like, it's just like Derek Zoolander.
It's just like I get done on a 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 uh he he agrees and
then forgets. Yep. Uh
uh 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. And 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 be, you know, if
you don't embrace the meme, yep, you get
destroyed. So of course gets destroyed.
And so then the whole goal is that can
people get me with ligma. TJ did I
ladies. He's like, "Oh, did you hear
that e- girls got renamed to Eye
Ladies?" And I just didn't even see it
coming. And I was just like, "What?" And
he's like, "Ye 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, "Yeah, 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 dict. Okay.
So, this is So, that's dict. That's
dictionary in Python. Who doesn't love
dicks? Yeah, that's a great question.
just a dict party when you use uh
Python. I love dict that should be a
t-shirt. Uh that's actually a hilarious
teaser. 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 dictes. 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 dict and
really go after it's like very hard to
like really threw in some innuendos. The
Stack Overflow team deleted the question
and then someone handwrote me a uh an
email explaining why they deleted the
question and complimented me on how
thoroughly and thoughtful the question
was just to way 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. Uh two, that was about
six years ago last year. I was at a
conference and there's a guy wearing a
Stack Overflow uh 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. Uh I should say in all
seriousness I think I've had a bunch of
conversations sort of 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 coke
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
call just to be clear and try to avoid
eye contact the whole time. You said you
said that God was a big part was a big
part of your life. Can you speak to that
a little bit more? Who is God and what
effect what role did he play in your
life? So I you know I I did talk about
that one important evening where I for
whatever reason gained my my conscience
that moment. Um 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.
Uh that was just a very normal thing I I
would probably say. And so when that
happened, it was a it was a fairly big
surprise for me. I was, you know, 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. Uh
I would have I 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
cuz 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 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
right? Like my the standards have
already been paid for. Like everything's
already like that that's that's the free
gift. That's the 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 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. Uh, what is man? Who is God?
Right. Like those those are much much
harder questions. Um, I believe that
anytime you try to get too deep into
describing who God is, you typically
fall into Christian heresy. Mhm. But for
you, he gave you a chance to be happy.
Yeah, he gave me a chance not just to be
happy, but also uh made it so that for
like the first time I can I can actually
feel forgiven, I guess, in some sense
and able to forgive people that hurt me.
Like for a long time, I 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 I forgave. And
I read it a few times cuz like I
couldn't let myself be angry or consumed
by that kind of stuff cuz like hate is
so sticky, right? It's it sticks for a
lifetime. And there really is only one
cure for hate, which is forgiveness.
Like I just don't think you can get rid
of it without that. And so I just 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.
It's very obvious that every person
wants or desires love. Uh 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 feels like just a
disaster of an experiment to 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 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 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 I would like to kind of narrow it down
maybe a bit more. And I don't mean like
aeros, the Greek word, like sexy love. I
think that paternal and friendship love
are extremely important. And 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-ed 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 a very foundational piece
right? Because you know again not you
know I didn't I didn't come here trying
to quote any sort of sub scripture but
it says that it's not the nails that
hung them 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 uh 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 of
this bigger
thing. And uh that longing is is is a
love and it has many names. But yeah
that the love aspect of it is is the
beautiful aspect of life. The tragedies
the loneliness and the unfortunate
suffering that is a fundamental part of
life and the the beautiful aspect is the
love. Yeah. Uh which I think is a good
time to mention more Reddit. The the the
the place for everlasting positivity and
love. Uh somebody wrote uh please thank
him you uh for his everlasting
positivity and give him a big hug for
me. So uh I won't give you a big hug on
camera cuz 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. Uh all kinds
of dicks. Ordered dicks. Unordered. I
know what it takes. I don't
discriminate. Uh and yeah. Uh but
just that to say like big thank you. Uh
for me, like I listen to you a lot just
and I just really enjoy I've been going
through a lot of shit myself and just
the positivity you even when you're
building the stupidest shit, it's just
the positivity radiates from you and it
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 uh being the
light in many people's lives and thank
you for talking today, brother. Dang
that was very very kind. I really do
appreciate all those extremely nice
words even from Reddit. That's very
surprising, but yeah, 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 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 origined 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. Uh, right
back at you, brother. Thank you for
talking today. Thanks for listening to
this conversation with Michael Pollson
aka the Primagen. To support this
podcast, please check out our sponsors
in the description. And now, let me
leave you with some words from Paulo
Coello. 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.
Loading video analysis...