0:02 Why is everyone so fragile? You're mad
0:04 that someone made a game with AI. You're
0:06 mad that someone updated a JS library.
0:08 You're mad that someone made Doom with
0:10 TypeScript. I'm mad that everyone's mad
0:12 about these things. I have a lot of
0:14 feelings on this one. The thing I've
0:17 seen a lot of, too. Feels like
0:18 engineering is in this unique place
0:20 where there is more progress than ever,
0:22 but there's also more frustration about
0:25 that progress. And it's unbelievable to
0:27 me the sheer levels of I don't even know
0:29 what to call it. Just disdain I've been
0:32 seeing from developers who don't like
0:34 where things are going. Used to be
0:35 something I would spend a lot of time
0:37 thinking about and finding ways to
0:39 solve. Like how can we convince these
0:41 developers that these things are good
0:43 and that their frustrations are
0:46 misplaced. Over time, my perspective has
0:48 shifted and I am much more aligned with
0:50 what Trash is saying here. I think
0:52 engineers as a whole have gotten quite
0:54 fragile and I want to talk about what
0:56 this means, but since I'm about to talk
0:58 a lot of [ __ ] on engineers, there's a
0:59 good chance none of them will ever hire
1:01 me again. So, uh, let's pay some bills
1:02 really quick and then we'll get back to
1:04 it. Today's sponsor is a little bit
1:05 different. I want to tell you a story
1:09 about a mistake I made. I love building
1:11 modular things in my serverless scalable
1:13 ways. As such, there's a lot of products
1:16 that I just don't think are for me. When
1:17 things get too combined and they provide
1:19 too many different features, I tend to
1:21 assume it's not going to do what I need
1:23 it to well and move on from it. One of
1:25 those businesses is today's sponsor,
1:27 Convex. And the reason I'm opening like
1:28 this is I want to make sure you guys
1:30 don't make the same mistake that I made.
1:32 I assumed when I read the code and I saw
1:34 what you could do with Convex that it
1:36 was built for people who are starting
1:37 from scratch on a brand new application
1:39 that they're working on as a side
1:43 project. And I was so wrong that I I
1:44 feel bad about it. The amount of time
1:46 and energy and honestly probably
1:48 customers that I have lost because I was
1:51 hesitant to try Convex 2 to 3 years ago
1:52 horrifies me. The fact that I took
1:55 Tanner Lindsay and WebDev Cody and a
1:56 sponsor deal for me to even give them a
2:00 real shot is pathetic. I screwed up. I
2:02 was wrong. And I am so happy that I've
2:04 made the move to Convex because it's
2:06 made our lives significantly easier for
2:08 T3 Chat. Sure, we had an outage, but
2:10 most of that was my fault in the tiny
2:12 tiny bit of it that was theirs. They
2:14 documented the hell out of and did a
2:16 great public postmortem. This is a
2:18 company that passes Sam Lambert from
2:20 Planet Scales sniff test for knowing
2:22 databases. Well, they really get it.
2:24 They're not just some fun thing for side
2:26 projects. They're a very, very
2:28 legitimate platform for building quality
2:30 applications using TypeScript. If you
2:32 want to see how simple it is to use, go
2:33 look at the code for the T3 Cloneathon.
2:35 I used it heavily there and it made it
2:36 so I could vibe code the whole thing out
2:38 in like an hour. It's really impressive.
2:40 But just take my word for it. If you've
2:42 seen Convex and assumed it wasn't for
2:43 you because you're building legit,
2:45 powerful, big user software, you're
2:47 making the same mistake that I made for
2:49 multiple years, and I immensely regret.
2:51 Convex is sponsoring this video, but
2:52 they've told me nothing about what to
2:54 say. So, I want to take the opportunity
2:55 to be honest with you guys because I
2:57 don't want more people making the
2:59 mistake I made. You haven't given them a
3:00 shot yet, you really should. Check them
3:02 out today at soy.link/convex.
3:05 Why are engineers so fragile? This will
3:08 be a fun one. There's a lot of layers to
3:10 this one. Oh [ __ ] Trash is here. Thanks
3:11 for stopping by, man. Thanks for
3:12 inspiring this. This has been on my list
3:14 to do for a while. It was a very good
3:17 tweet and I have a lot of feelings. So,
3:20 we need to start talking about normal
3:23 curves. If somehow you're watching this,
3:25 you're not familiar with normal curves.
3:28 It's a pretty useful concept for how
3:30 capabilities of things are distributed.
3:32 There is the median, which is the thing
3:34 right in the middle, the average, so to
3:35 speak. I know median and average are
3:37 different. You get what I'm saying? And
3:39 then as you go further and further from
3:42 the norm, those distant points become
3:45 more rare and unique. Someone who is way
3:47 worse than average is similarly rare to
3:50 someone who's way better than average.
3:52 We've all seen the normal curve meme,
3:54 but we need to talk about what this
3:56 means for developers. A fun mental
3:57 exercise that I learned to do when I was
3:59 very young that has haunted me since.
4:01 You guys have probably done this one
4:04 with me before. Imagine a perfectly
4:06 downthe-middle quality engineer. Someone
4:09 who is as average and median middle of
4:12 the road as possible. Person who, you
4:13 know, isn't going to go excitedly learn
4:16 a new technology, but you also know will
4:17 write an if statement correctly without
4:18 having to Google search for it. They
4:20 might have to Google search for some
4:22 other syntax, but the the core
4:23 fundamentals they probably know well
4:26 enough. You're bog standard average
4:29 engineer. Just picture this perfectly
4:32 middle person. Half of engineers are
4:34 worse at coding than that person. Not
4:37 exactly 50%, but it's 49.99999.
4:39 You get the idea. Very close to the
4:41 majority of engineers are below average
4:42 cuz that's how averages work.
4:44 Thankfully, this also means half are
4:46 better, but they're not a lot better.
4:47 There are very few engineers that are
4:49 significantly better than that average
4:51 engineer. And there's a lot of engineers
4:53 who are meaningfully worse. The myth of
4:55 the 1x engineer, if you will. In the
4:57 middle here, we can imagine the 1x
4:58 engineer right in the middle. You go
5:00 down, you get to the 10x. And as you go
5:02 the other way, you get to the 0.1x. This
5:04 is the nature of engineering, but it's
5:07 also the nature of something else that's
5:09 important. If we go to my YouTube
5:10 analytics, which give me one sec to make
5:12 sure I don't leak things I don't want
5:14 to. Oh, yeah. My favorite bug here. I
5:16 mentioned this before. See how it says
5:17 stream finished when the stream's not
5:18 finished? That's cuz it cached the wrong
5:21 state and then it catches up and figures
5:22 out what it's supposed to actually be
5:24 showing. Let's look at some recent
5:26 videos. This one, my thoughts on vibe coding,
5:27 coding,
5:30 nearly 50,000 views. It's over that, but
5:34 this number's delayed. 284 comments.
5:37 That's roughly my usual ratio of
5:40 comments to views. If we do that ratio
5:45 out quick, 284 / 49,000,
5:49 that's 6% roughly. So, we do the math
5:53 for Theo's comment section,
5:56 around 0.6 6%
5:58 of viewers leave comments. It's actually
6:00 quite a bit worse than this cuz any one
6:02 person will often leave multiple
6:05 comments. And I would estimate that
6:09 greater than 90% of YouTube comments are
6:13 left by less than 0.1%
6:15 of viewers. This is from like very
6:18 rudimentary numbers I've run on my side.
6:20 The vast majority of YouTube comments
6:23 are left by a very, very small
6:26 percentage of people. The ratio here is
6:28 insane. And this was a hard thing for me
6:32 to digest as a YouTuber because I would
6:34 talk to people about my videos and
6:35 they'd be like, "Yeah, that was a really
6:36 good one. I learned a lot from it." But
6:38 then I would look at the comment section
6:41 and it was a mix of porn bots and people
6:43 flaming me for daring to say anything
6:44 about their beloved tool. What I've
6:47 since learned is that the people leaving
6:50 comments are not normal. 0.6%
6:52 of any group of people is not the normal
6:56 group. The 0.6% of people leaving
6:58 comments on my videos are not my average
7:02 viewer. They think they are here.
7:05 Those people without question imagine
7:07 themselves as being in this upper
7:10 echelon. But the more I've talked to the
7:12 average commenter, and no offense to
7:13 anyone who's left a comment on this
7:15 video already, actually, if you've left
7:16 one before you got to the end of it, you
7:17 are probably the person I'm talking
7:19 about. But if you've left a comment
7:21 that's kind asking thoughtful questions,
7:22 whatever, this isn't about you. This is
7:24 about the majority of the comments that
7:26 I get, which come from a minority of the
7:29 people. They are here and that is a hard
7:31 thing for them to accept. It is
7:34 unnatural to enjoy feeling stupid. So if
7:36 you encounter something that makes you
7:39 feel stupid, your instinct is to fight
7:41 it. Your instinct is to pretend that
7:43 you're here because the alternative is
7:44 that you're here and that makes you feel
7:48 bad. It's our job as engineers to feel
7:53 stupid a lot. And it's unnatural for
7:57 humans to feel stupid a lot. These two
8:00 facts are what make engineers so
8:02 insecure. I am very fortunate that I
8:04 learned how to code after I learned how
8:06 to skateboard because you don't get good
8:08 at skateboarding by sitting in class
8:10 reading about the history of the
8:12 skateboard. Y'all might know Giggly.
8:15 She's a Harvard grad CS student that now
8:17 has a job in software development.
8:18 Pretty good at what she does. There's a
8:20 lot of men on Twitter who are really mad
8:23 at her existence as a cute girl who went
8:25 to Harvard, got a degree, and makes
8:27 money doing code. a Harvard educated
8:30 software engineer, eh, without using a
8:32 search engine who's considered to be the
8:34 father of modern information theory.
8:35 This is somebody who's on one side of
8:37 the curve and thinks they're on the
8:39 other. He doesn't want to feel stupid.
8:41 And since that person looks down on
8:43 women, a woman being a successful
8:44 engineer, a woman being more successful
8:46 than him makes him feel stupid. So
8:48 instead, he says something even
8:50 stupider. I People are saying that's
8:52 bait. I legitimately don't think it is
8:54 having read through this person's other
8:56 posts and
8:59 bait used to be believable, but this
9:01 isn't funny enough to be bait. This is
9:03 just somebody being incredibly stupid.
9:05 And I've seen so many things like that
9:07 in my comment section. You guys have no
9:09 idea. And there are so much of that. If
9:10 you just read through someone like
9:13 Giggaly's replies, it's hilarious. It's
9:16 so common that engineers are sensitive
9:20 to feeling stupid and find random things
9:22 to prove that they're actually the legit
9:24 engineer. And again, to compare to
9:26 skateboarding where I came from, if
9:27 someone finds a way to do a really
9:29 insane trick, the response isn't, "Well,
9:30 you don't know enough about the history
9:32 of skateboarding to do that." People
9:34 would do that here and there if you like
9:35 did a trick that already been done. But
9:37 the response when people would talk [ __ ]
9:38 was like, "Why the [ __ ] are you doing
9:40 that? This person just did an incredible
9:41 thing. this 18-year-old just did an
9:43 unbelievable trick. Why are you mad
9:44 about it? What the [ __ ] is wrong with
9:45 you? Because you didn't get good at
9:47 skateboarding by obsessing over every
9:49 detail of the history. If you do that,
9:51 it's fun and exciting. And the people
9:53 who are the encyclopedias of
9:55 skateboarding are held in a different
9:58 way in the skateboarding world. Somebody
9:59 like Jake Phelps, who used to run
10:02 Thrasher, knows every detail of the
10:04 history of skateboarding, who did what
10:06 trick in what place and when they did
10:07 it, and who they were inspired by to do
10:10 it. He was not a good skateboarder. He
10:11 just loved skateboarding and the
10:13 entirety of the world of skateboarding
10:16 and became the person sharing that
10:18 knowledge with so many. But that was
10:19 different and he didn't view himself as
10:21 a skater in the traditional sense. He
10:23 did care deeply and was a skateboarder.
10:25 He'd skate every day to and from work
10:27 and around the city. But his knowledge
10:29 of skateboarding didn't make him a
10:31 skateboarder. His love of skateboarding
10:32 made him a skateboarder. The knowledge
10:34 was just the thing he chose to focus on.
10:36 The best skateboarders aren't the ones
10:37 who know everything about skateboarding.
10:38 It's actually kind of funny how often
10:40 the best skateboarders don't know [ __ ]
10:41 about skateboarding. They don't watch
10:42 videos. They don't know anything about
10:43 it. They just go and do it and then go
10:45 home to their wife and kids. Because you
10:46 don't get good at skateboarding by
10:47 learning all the details. You get good
10:48 at skateboarding by doing it. And
10:50 whether or not we want to admit this as
10:52 engineers, it is the exact same thing.
10:54 If the fundamentals are important to you
10:55 in your work, you will discover that and
10:58 learn them. And if the history of
11:00 information theory is important to your
11:02 job, I would question if your job is
11:03 actually software engineering in the
11:05 first place. But the biggest thing that
11:07 skateboarding taught me was to love
11:09 failure. I learned how to do tricks in
11:11 skateboarding by screwing them up over
11:13 and over again. By hitting the ground,
11:15 getting it wrong, getting hurt, and then
11:17 trying again, again, and again, and
11:20 again, until I somehow managed to ride
11:22 away. And that feeling of riding away
11:24 was so magical that I would push through
11:26 those hard things to get there. And
11:28 slowly, I learned to not hate the bales
11:30 and hate the failed attempts. I learned
11:32 to love them because those failed
11:35 attempts to land a trick, each one got
11:37 me slightly closer actually riding away.
11:39 So by the time I moved to software dev
11:41 and my apps weren't compiling didn't
11:42 feel that bad cuz at the very least I'm
11:44 not risking breaking my arm every time
11:46 my app fails to build. So I learned to
11:49 love that feeling of doing it wrong, of
11:51 being stupid. I learned to love the
11:53 failures because they meant I was
11:55 getting closer to success. That is an
11:57 awesome thing. And I love somebody
11:58 that's brought this up. Been rock
12:01 climbing for almost a year now. 99% is a
12:03 failure or oh sorry 99% of rock climbing
12:04 is failure. Yeah, succeeding every time
12:05 means you're not not growing. I was
12:07 going to make a joke doesn't fit anymore
12:09 of like devs getting into hobbies where
12:13 if you aren't 100% capable you're bad is
12:16 funny to me and I kind of think of rock
12:17 climbing that way. Thankfully in like
12:19 rock climbing gyms you can fall and get
12:21 back up. It's fine. Rock climbing an
12:24 actual giant rock one failure means you
12:26 die. And if that's how you work, if
12:28 that's the thing you do for fun, and you
12:31 bring that mental model back to software
12:34 dev, you're never going to do better.
12:36 You're not going to improve. It's so
12:38 important to work in ways where you can
12:41 fail and learn and grow. And learning to
12:44 love the failures is essential. To be
12:45 really good, you need to fail 10,000
12:48 times. Yes, humans evolve to avoid
12:49 things that make them feel bad and dumb.
12:52 Very good thing. Humans steering away
12:54 from the things that make them feel bad
12:57 and dumb generally keeps them safer. If
12:59 you get in the back of a plane and you
13:01 look around and see all the controls and
13:02 say, "I don't think I'm smart enough to
13:04 do this." You might save some lives by
13:07 not doing it. If you look at a wound on
13:08 your leg after making a dumb mistake and
13:11 say, "Hey, I probably shouldn't run into
13:13 metal things anymore." You'll be safer.
13:15 If you put your hand on a fire and
13:17 realize it hurts and you get burned,
13:19 you'll probably do that less. We are
13:21 engineered to steer away from things
13:24 that hurt us and make us feel dumb. But
13:26 engineering is encouraging us to do
13:28 things that make us feel dumb. Because
13:31 of this, engineers are in a weird space
13:33 where we feel dumb more often than the
13:36 average person. The average person
13:39 probably feels stupid maybe a few times
13:42 a day. Not a lot, but some number of
13:45 them. A great engineer feels dumb a lot
13:46 of times a day because they're working
13:48 in things they're not familiar with.
13:49 They might have changed their mental
13:51 model for it where they don't feel dumb.
13:52 It now feels unfamiliar and that's how
13:54 they categorize it in their brain and
13:56 how they process it. But you should at
13:59 the very least feel unfamiliar regularly
14:01 as an engineer or you're not growing and
14:02 you're probably not doing your job very
14:03 well. The complexity of the stuff that
14:05 we do necessitates a level of
14:08 unfamiliarity due to the wide range of
14:10 things that exist in our field and that
14:13 range is growing constantly. As such, we
14:16 find interesting ways to cope. If this
14:18 is the world of engineering, this
14:21 circle, as we all know, data sets are
14:24 always circles. World of engineering,
14:26 there's a lot of different types. I I'll
14:29 specify software engineering. I know you
14:30 are mad that software engineer is in a
14:31 real term or whatever. They can screw
14:34 off. This circles the world of software
14:35 engineering. There are lots of different
14:38 sections in here. You can pretend that
14:40 it's cut in a linear way. It's not.
14:44 Let's say we have gamedev, webdev,
14:48 infra, and operating systems. Not meant
14:51 to be a comprehensive list. Certainly
14:53 not meant to properly represent the
14:54 ratios because it would probably look
14:59 like this nowadays. Like at best, if we
15:00 were to pretend it's only these four
15:02 things, maybe something like that. You
15:04 get the point, though. The problem is if
15:06 you live in one of these worlds, like
15:09 within webdev, we have like the React
15:12 bubble. We have jQuery people that are
15:14 still insisting that jQuery is the only
15:16 way to do things even though the creator
15:18 of jQuery doesn't do that.
15:20 We have all the other tools and
15:21 technologies and things in this one
15:24 bubble. If you are a really good React dev,
15:25 dev,
15:29 I would say best case you like maybe
15:32 understand twothirds of React and the
15:33 things that it's used for. like best
15:35 case, like the best reactives in the
15:36 world, like the ones who work at Meta.
15:38 Maybe they can fill out like this side
15:40 of this one bubble here. And then you
15:43 ask them about how suspense works within
15:46 React 3 fibers parallel loading and they
15:47 look at you like you're an alien
15:50 speaking a different language. Or what
15:52 happens sometimes that's even more fun
15:54 is React's place in this bubble moved.
15:56 They actually moved down so that it
15:58 overlaps with infra a bit with server
16:00 components. All of a sudden, knowing all
16:01 of React means you need to know a little
16:04 bit about infra 2 and it didn't move
16:07 there, it grew there. So if your
16:11 understanding of the world is this box,
16:13 like this is where you currently live
16:15 and reside and you fought really hard to
16:17 know everything in this box and you're
16:19 really proud, you're a great engineer,
16:21 you start doing stupid things like
16:23 saying, "Well, game devs don't know what
16:24 they're talking about. They're not real
16:26 devs. Operating systems are silly. Just
16:28 use Mac OS. Backend is stupid. Why are
16:30 people still building servers when they
16:31 can just use Verscell? And at the same
16:34 time, we have people in the infra world
16:36 who are expected more and more to build
16:38 good applications and systems that work
16:40 well with applications saying, "Well, I
16:41 wouldn't have to do that if we just said
16:45 HTML." React joke. GameDev Schmev, they
16:47 think things are so hard, just put it in
16:49 a sync engine and be done with it.
16:52 Operating systems, I already have Linux.
16:53 What do you need to change? Stop
16:54 changing Linux. You're just making my
16:57 life harder. All of these boxes exist
16:59 because we live in them. It's the work
17:01 that we do and the way that we think
17:03 about things. Somebody brought up the
17:05 example of asking Dan Aro about CSS.
17:08 Very, very amusing. A fun convo I had
17:10 with Dan way back when server components
17:11 were happening was about cold starts on
17:13 Lambda. I had to explain how Lambda
17:15 worked to Dan Abramov as he was
17:18 architecting server components because
17:19 the idea of cold starts wasn't a thing
17:22 that made sense to him yet. I had to
17:24 explain all of these things. And that's
17:26 not because Dan's a bad engineer. It's
17:28 because he lives in a different box. And
17:31 that's fine because he's excited to
17:34 realize the box has many directions he's
17:35 not going in yet and he can learn about
17:37 all of them. But if you live in this box
17:40 and you're very happy with it and then
17:43 the box gets bigger that way, suddenly
17:45 you went from knowing 50% of React and
17:47 feeling like you knew 80% of React to
17:49 knowing like 30%. And that feeling
17:51 sucks, especially if it goes over a line
17:53 that you're not comfortable with because
17:55 you're fighting to be confident in the
17:57 thing you already do. You put a lot of
17:59 work in to build this little box around
18:01 the part of React that you work in every
18:03 day. You've also put a lot of time into
18:04 looking down on the people who aren't
18:05 doing the thing you're doing, saying
18:07 that they are lesser in some way,
18:08 assuming you're insecure enough. We've
18:11 all built our mental boxes around what
18:13 we do every day. And as a result, we
18:14 inherently see what we do as more
18:16 complex and what other people do as less
18:17 complex. If you're not familiar with the
18:19 Dunning Krueger, as you get into a
18:21 thing, you start to think you fully
18:23 understand it and can do it and be
18:25 successful with it. And then as you
18:26 learn how complicated the thing actually
18:29 is, you immediately have your confidence
18:32 plummet and then slowly build it back up
18:33 as you learn more and more about the
18:35 thing. If you know how to engineer
18:37 within one of the boxes or one of the
18:39 parts of this world, you don't have to
18:41 go very far into the others to feel like
18:42 you know what you're doing. And if you
18:43 stop there, you'll just look down on
18:46 those things. So, if you're building
18:47 some infrastructure for some weird
18:51 project and you put together an HTML
18:53 like page for it and then you add like
18:54 one interaction with a web component,
18:56 you'll be like, "Wow, this is so easy.
18:57 Everybody thinks React is necessary.
18:59 They must suck." And then you look down
19:00 on them. And then when you see
19:01 innovation happening in that space, you
19:04 look down on it because you currently
19:06 reside here in your knowledge of the
19:08 thing. And the people who are smarter
19:09 than you about it are going to be less
19:10 confident than you about it because they
19:12 know more. And the more you know, the
19:13 less confident you are. There are
19:15 questions people could ask me about
19:17 React 3 years ago that I would very
19:18 confidently answer and might even be
19:21 correct about. And now I would say, hm,
19:22 I'm going to go check the source code
19:24 quick because as much as I think I know,
19:26 I'm more aware of what I don't. And I'm
19:28 very aware that my confidence can be
19:29 misplaced in something as complex as the
19:32 React ecosystem. All of this combines to
19:35 people feeling weird. If you spent years
19:37 building this little knowledge box and
19:39 you managed to get a job in it and be
19:40 the React expert at your company because
19:42 you know a little over half of React and
19:44 now React is suddenly moving in a
19:46 different direction, not leaving the
19:48 space you're in, but expanding into
19:50 others, that's going to feel personal.
19:52 And I've seen devs that I used to look
19:55 up to being very hostile towards the
19:58 React team and community for daring to
19:59 venture into spaces they don't want to
20:01 be in. One of the cool things React did
20:04 was enable front-end leaning devs,
20:05 people who wanted to focus on the
20:08 browser, CSS, styles, JS, animations,
20:10 integrations, accessibility, and all of
20:12 that. They wanted to be a senior
20:15 developer on the web. And the cool thing
20:17 React did was by enabling new levels of
20:19 complexity in our web applications, they
20:21 also enabled a need for engineers who
20:23 could wrangle that complexity and build
20:24 these gigantic web apps with hundreds,
20:26 if not thousands of devs contributing.
20:28 That meant we had senior to principal
20:31 level devs doing nothing but managing
20:34 Webpack configs and package JSONs and re
20:35 viewing code from other teams and making
20:38 sure this giant pile of React doesn't
20:39 crumble. And they did all of that
20:42 without touching a goddamn server. React
20:44 was key in enabling developers at
20:46 enterprise companies building
20:49 applications for users to have full
20:51 career paths and trajectories without
20:54 leaving one side, without leaving
20:56 webdev. And that was pretty cool. Not
20:57 because everything's way more complex
21:00 than it needs to be, but because massive
21:03 complexity was now possible just within
21:05 webdev itself, allowing for bigger,
21:07 better apps, bigger teams to work on
21:10 those apps, and more knowledge to be
21:12 necessary, but also existing within that
21:14 space. But if your excitement came from
21:17 the fact that you could now be a
21:18 principal level engineer working in JS
21:21 and CSS on the web primarily watching
21:24 React push you towards the server feels
21:27 like you're being betrayed. That promise
21:29 of now you can have a full fulfilling
21:32 career in webdev really should use the
21:35 infra 2. That extra whisper at the end
21:37 hurts them and makes them feel insecure
21:39 because React gave them a security that
21:41 they could be a principal level engineer
21:43 and they can make 500k a year and
21:45 deserve it just writing JavaScript in
21:47 the browser all day. That being
21:49 challenged makes them go back to the
21:50 insecurity they felt when they first
21:52 were learning webdev. It makes them feel
21:54 dumb again. And these people might not
21:55 have felt dumb for a while because
21:57 they're the best React engineer at their
21:59 company. When anyone has any problem
22:00 with React, they're the person they go
22:03 to to ask. And since they are not the
22:06 0.6% of people who leave comments,
22:08 they're not in the Twitter world or in
22:10 my comment section or in here enough to
22:12 have great engineers pushing back on
22:15 them to make them feel dumber. I'm
22:16 incredibly fortunate that my time at
22:18 Twitch was almost always surrounded by
22:20 awesome engineers pushing me to be
22:22 better and also trying to learn from me
22:23 as I would go down these deep rabbit
22:25 holes. And after I left Twitch, I got
22:27 pulled into the open source community.
22:28 And I had so many incredible developers
22:31 from there take me in and give me more
22:34 to aspire to and people to learn from.
22:35 People like Jensen who helped build
22:37 Radics, people like Tanner Lindley who
22:39 built the whole Tanstack in React Query,
22:40 people like Ryan Carneato who built
22:43 Solid or Fred Shaw who built Astro.
22:45 These people were so excited to go deep
22:48 on the details with me and they were way
22:50 smarter than me. So, I knew that I
22:52 wasn't the best in the world at this
22:54 stuff, but I loved it so much that I
22:56 could hold the conversation with them
22:58 and keep learning through them. I don't
23:00 know where I would be if I didn't get to
23:02 feel stupid every step along the way if
23:04 I didn't have that opportunity to keep
23:06 humbling myself and learning more and
23:08 more about things like this. It's why I
23:10 love software. I feel like I can run in
23:12 any given direction and find more to
23:13 learn the further I go. And that's
23:16 awesome. I'm looking for growth, not comfort.
23:17 comfort.
23:20 Most people don't though. Growth versus
23:22 comfort is probably the biggest issue
23:24 that we have here. Most people hit a
23:26 point in their life where they don't
23:29 want to keep improving and growing. They
23:31 are happy with where they're at and they
23:33 are wanting things to slow down. Maybe
23:36 they have a family and kids. Maybe they
23:37 are saving up for their retirement fund
23:40 so they can go have a farm or do some
23:42 other job. They might have spent their
23:43 whole career up until that point
23:45 learning new things, trying new tools,
23:47 pushing new solutions, challenging
23:49 themselves to improve and be better. But
23:51 most people don't do that. And even the
23:53 ones who do, for the most part,
23:56 eventually stop. They slow down. There
23:57 are very few people who consistently
23:59 throughout the entirety of their lives
24:01 are challenging themselves to do new
24:03 things, pushing themselves to do things
24:05 they're unfamiliar with, and improve
24:06 every day. And that makes me sad because
24:09 I at the very least I hope that I'll be
24:11 continuing to improve for as long as I'm
24:13 on this goddamn earth. I want to
24:14 challenge myself and learn new things
24:16 and try new stuff. That's why this
24:17 YouTube channel exists. Not because I
24:19 failed to get a job in engineering.
24:21 Quite the opposite. I had too many
24:23 opportunities in engineering, but all of
24:24 them were surrounded by people who I
24:27 didn't really think I could learn from.
24:29 And I was tired of being the only person
24:31 who cared about technologies and new
24:33 solutions and new frameworks and stuff.
24:35 So, I made this channel to just get it
24:36 out of my system and talk about these
24:38 things because I really wanted to. And
24:39 then it blew up almost immediately
24:41 because a lot of y'all want the same
24:43 thing. My average viewer is not somebody
24:45 who is in one of these boxes that's
24:47 really insecure about the box getting
24:50 bigger or feels really bad when someone
24:52 tells about something that is in a
24:54 different place. If someone joins your
24:55 team and their knowledge is here and
24:57 your knowledge is here, the instinct for
24:59 many people is to talk [ __ ] on this and
25:02 say, "Well, that's not a real thing.
25:04 That's Flutter or that's Vue. No one
25:06 actually ships that. But the reality is
25:09 that most of the time these are just
25:11 different experiences in different lived
25:13 realities except for Flutter. I've never
25:14 seen a good Flutter app. But other than
25:16 that, this is a difference in our
25:18 experience. And when I look at this and
25:20 I see somebody who has this knowledge,
25:23 it excites me. But there's another
25:25 painful reality with this. If you look
25:27 too excited about the things you don't
25:28 know, there are a lot of engineers who
25:30 will just assume that you are dumb. I
25:32 had this really bad. Another one of the
25:34 reasons this channel exists, this is a
25:36 story I've like hinted at a few times
25:37 and I've never found a better place to
25:39 put it than here. The reason that Linear
25:41 is responsible for this channel is
25:44 because they rejected me as one of their
25:46 first hires when I interviewed there.
25:49 Why did Linear reject me from working
25:50 there? When I was going to interview at
25:53 Linear, I was really excited. I went and
25:55 watched some talks from the developers
25:57 at Linear and one of those talks was all
25:59 about really performant state management
26:03 in sync in React back in 2019. I thought
26:06 that was so cool. And after working at
26:08 two startups and doing some consulting
26:10 where I was the smart engineer, I really
26:13 wanted someone I could learn from. And I
26:15 was so excited to potentially go to
26:17 linear so I could learn from these
26:19 people who were smarter than me, who had
26:21 more experience than me, and get the
26:23 opportunity to be in a room full of
26:25 talented people again, pushing to better
26:26 themselves and better the things that
26:29 they're working on because I wanted it
26:32 so badly. I just missed being surrounded
26:33 with smart people that would push each
26:36 other to improve. The rejection I got
26:38 from Linear changed how I think about
26:40 engineering entirely. Here's the actual
26:42 email I got. Wanted to circle back from
26:44 your call with Jory. I wasn't sure if he
26:45 has communicated feedback to you yet,
26:47 but unfortunately they made the tough
26:49 decision to not move forward. Jory loved
26:50 your passion and your gaining experience
26:52 with the right technologies, but overall
26:54 felt that they need a bit more
26:56 experience at this time. The problem was
26:58 that I expressed my excitement to learn
27:02 from him. I am 100% certain if I had
27:04 just flexed what I could do instead of
27:06 expressing my excitement to learn from
27:09 him, I would have gotten that job. This
27:11 was about 4 months before I started my
27:12 YouTube channel and two months before I
27:14 started my company. It's rare I say a
27:17 company fumbled me. There are plenty of
27:19 times plenty of times where I got a
27:20 rejection that made sense. Like I got
27:21 rejected from Retool and no one made
27:22 sense. I was not the right fit for them.
27:25 Linear [ __ ] up hard with this mistake.
27:27 They've now hired like 20 people to do
27:29 the job I and one other person could
27:30 have done for them. And I followed up
27:32 after too, saying, "Hey, I feel like
27:34 there might be a misunderstanding here.
27:37 I'm not trying to like gloat, but I know
27:39 what the [ __ ] I'm doing. I think this
27:41 rejection happened because I expressed
27:44 my excitement about learning from this
27:47 team." That wasn't because I have to
27:49 learn cuz I'm underqualified. That's I'm
27:51 excited to have a team of people who
27:54 know what the [ __ ] they're doing so that
27:57 I can continue to grow. And I originally
27:59 was distraught by this because I was
28:01 very excited about linear at the time.
28:02 But after thinking through it a little
28:04 bit and talking with a couple other
28:06 people, hell, it was I think 2 weeks
28:08 after this, not even that Tanner
28:10 Lindsley, the creator of React Query,
28:13 asked me to go investigate TRPC for him,
28:14 which kickstarted the T3 stack in his
28:17 entire YouTube channel. So it was
28:20 entirely a fumble on their part. I I
28:22 amused at the level of fumble that
28:24 happened there. But the fact that the
28:26 industry had rejected my excitement and
28:29 energy and my desire to grow meant I had
28:31 to find somewhere else for it. If I
28:34 couldn't get a job where my excitement
28:36 to learn was going to keep me moving
28:38 forward, then I needed to find a place
28:40 where I could do it instead. And that's
28:43 why I say this. I needed a place to have
28:44 these conversations, to talk about these
28:47 things I was excited about. And I could
28:49 say almost certainly if Jory didn't [ __ ]
28:51 up his interview with me, that my
28:52 channel might not exist. And the
28:54 engineers he hires today might not be as
28:56 good because they're all watching my
28:58 goddamn YouTube channel. I would
28:59 guarantee the 20 people he hired instead
29:01 of me all watch my channel to keep up.
29:03 And a decent number of them are probably
29:05 watching this, too. Hi. Your boss sucks
29:06 at hiring. I hope that doesn't affect
29:09 you in your career. Yeah. The thing that
29:12 took me much longer to realize is that
29:14 part of why I didn't get this
29:16 opportunity was insecurity. The
29:20 realization that a spunky excited kid
29:21 could keep up with them was not
29:23 something they wanted to process yet. So
29:26 instead of processing it, they rejected
29:28 me cuz that was easier. It was way
29:31 easier. And I get it. Accepting that
29:33 some 20some year old kid that just left
29:35 Twitch knows what they're doing really
29:38 well is hard. And if you can flip it in
29:40 your head, like your brain will always
29:42 take the easiest path by default. And
29:44 since your brain doesn't want to feel
29:47 dumb, if it's ever handed a path that
29:48 gives you an easy out, you will
29:50 naturally take it. On YouTube, I see
29:52 this a lot with people trying to find
29:54 success and get views. And they will
29:58 constantly blame the algorithm or the
30:00 way things are being recommended or a
30:01 change to the app is the reason they're
30:03 not finding success. If a developer is
30:05 struggling to get hired, they'll blame
30:07 the state of the hiring world. They'll
30:09 blame the technical interview process.
30:10 They'll blame the frameworks for
30:11 changing all the time and not
30:13 recognizing the value in their toolkit
30:15 from 10 years ago instead of improving.
30:18 People like to find ways to excuse their
30:21 lack of success, and it's much easier to
30:24 do that than to push through it. And I
30:25 know a lot of YouTubers feel strongly
30:27 about this because I accidentally
30:30 outgrew most of them in a month. It is
30:32 what it is and I get why people feel
30:34 that way because it doesn't feel good to
30:36 see someone finding success with
30:38 something you struggled with. So instead
30:40 of recognizing your opportunity to grow,
30:42 it is our nature. It is the way our
30:44 brains work to do the opposite to find
30:47 an easy out, an excuse. And brains love
30:50 excuses. I almost just wrapped this up
30:52 without talking about artificial intelligence.
30:54 intelligence.
30:55 And I honestly think I can make most of
30:57 the points I need to without talking
31:00 about AI. But AI represents a very
31:02 painful moment for a lot of these
31:05 insecure devs because if you're one of
31:08 those devs that's in like the lower
31:09 quadrants here, you're one of the devs
31:12 that isn't doing particularly well and
31:16 is on the like lower end, AI programming
31:18 is probably around here in terms of the
31:20 quality. like it can put out better code
31:23 than at least 20% of engineers I would
31:25 guess depends on the task and a lot of
31:26 other things but it's not quite like an
31:29 average experienced engineer but it's
31:31 far along enough that the people in this
31:32 space be it the ones who are just
31:34 learning how to code or the ones who
31:35 have refused to learn anything new for
31:37 10 years these people feel awful right
31:39 now because the writing's on the wall
31:41 for them the wall being the skill level
31:43 for the AI being on the other side of
31:46 the AI skill wall is very painful and it
31:48 makes you feel like you've just wasted a
31:50 ton ton of time and energy and effort
31:52 and everything that you've spent your
31:54 life on that a lot of us were promised
31:57 very early just learn to code Google is
32:01 the best place in the world work
32:05 everyone just Google searches everything
32:09 all the time great engineers barely even
32:12 know what they're doing you guys might
32:14 remember this take these happened all
32:15 the time this is prime's favorite thing
32:18 to [ __ ] on that the the people saying
32:20 the whole just Google everything, no one
32:22 knows what they're doing stuff are bad.
32:24 There's two sides to this one. On one
32:26 hand, if you're Google searching
32:28 everything every day and you're doing
32:30 the same Google searches regularly,
32:31 you're not actually growing and you're
32:33 not actually a good engineer and you are
32:35 going to be replaced with AI. On the
32:37 other hand, if you're constantly dipping
32:39 your feet in different things, you're
32:40 constantly challenging yourself in ways
32:42 where you're playing with things you've
32:44 never heard of before, you're solving a
32:45 problem in a way that's complex enough
32:47 that you're trying a new technology that
32:48 requires you to learn all these other
32:50 different new things, then you are
32:52 Google searching a lot. There's a good
32:54 IQ meme of this one for sure, the bell
32:58 curve meme, where on the left side it's
32:59 just Google search everything because
33:00 they don't know what they're doing. On
33:03 the right side, it's just Google search
33:05 everything because they're doing such
33:07 hard stuff and trying new things all the
33:09 time. And then in the middle, it's like,
33:10 wait, no. If you're Google searching,
33:11 you don't know what you're doing. The
33:14 Midwit meme is very real here of the
33:17 people in the middle insisting that if
33:18 you Google search, you're bad. The
33:20 people on the right saying, "No, I'm
33:21 doing different things every day. I'm
33:22 experimenting with different
33:23 technologies and solutions and
33:25 challenging myself consistently. I have
33:27 to keep learning. I need to keep
33:29 Googling." And then people who don't
33:30 know what the [ __ ] they're doing at all
33:32 see that and are like, "Oh, well, if a
33:33 great engineer is googling all the time,
33:35 then it's okay that I am, too." And just
33:37 never developed the skill. And that
33:42 sucks. That's just not good. And a lot
33:44 of people were sold this promise. A lot
33:46 of people were told, "If you go to this
33:48 programming boot camp for 3 months,
33:51 you'll make $100,000 a year." And that
33:52 was encouraged because Google was tired
33:55 of paying people $200,000 a year. So
33:56 they went to him with all of this
33:58 marketing, all of this money spent on
34:00 different education programs, Google
34:02 Summer of Code, all these things, all of
34:03 the dev tools, they've open sourced and
34:05 everything too. Google's goal has always
34:08 been to lower the cost of the average
34:10 engineer. And AI is helping them
34:12 accelerate that. And the victim of that
34:14 is the below average engineer. And they
34:17 for the first time arguably have right
34:19 to be scared because the job of the
34:22 mediocre engineer is dying very quickly.
34:24 The engineers that refuse to learn React
34:26 could get by maintaining legacy systems
34:28 for the last decade. But those same
34:29 engineers are going to have their system
34:31 replaced with some AI generated
34:33 vibecoded slop and they're going to be
34:36 so insecure about it that it becomes the
34:38 rest of the world's problem. AI is just
34:40 going to make this all happen faster. It
34:43 was happening, but yeah, now it's just
34:46 going to go crazy. Like it's I feel bad
34:48 for the devs that are below average that
34:50 are starting that are trying to learn
34:52 and improve because they're going to get
34:53 grouped in with these people that have
34:55 not learned or improved in 10 years
34:56 because they're both on the same side of
34:58 the line. It's easier than ever to learn
35:01 and grow and technologies are changing
35:02 fast enough that you have so much
35:04 opportunity if you're willing to put the
35:05 work in and take it and you're willing
35:06 to feel dumb and get excited about the
35:08 things you can learn. But if you haven't
35:10 learned anything in 10 years, the only
35:11 reason you got by was you were
35:12 maintaining a code base nobody wanted to
35:14 touch for 10 years. AI doesn't mind
35:15 touching an ancient codebase and it
35:16 certainly doesn't mind replacing it
35:19 either. There this does hurt junior
35:20 engineers and I have a whole video about
35:22 the plate of the junior engineer coming
35:23 soon. It's probably out before this one
35:24 even is knowing what the schedule looks
35:29 like. But yeah, the insecurity around AI
35:32 was absurd duorous [ __ ] until it
35:34 wasn't. Now the the fact that code is
35:36 more disposable means that people who
35:38 write disposable code are going to have
35:41 more of it thrown away. The reality of
35:43 the last decade has been that code is so
35:45 expensive that if you had a bunch of
35:48 code written by somebody in like this
35:52 range. Previously, you would pay someone
35:53 talented to come in and maintain this
35:55 code. If somebody came in that was a way
35:57 better dev and you handed them this pile
35:59 of code written by [ __ ] devs, if they
36:01 said, "That's not tenable. I'm going to
36:03 rewrite this." They would be laughed at
36:05 or fired. Now, by the time they've said
36:07 it, they also have an AI generated
36:09 starting point that's at least as good
36:11 as the [ __ ] show that they were hired to
36:13 maintain. The giant piles of garbage
36:15 code written by garbage engineers that
36:17 are being maintained indefinitely
36:18 because replacing it's too expensive and
36:21 hard to risk. That's over now. That era
36:23 is done. Code is more disposable than
36:25 it's ever been. So, if the code you
36:26 wrote deserves to be thrown away, you're
36:29 no longer getting a free pass. The true
36:31 inclusivity in software engineering was
36:34 never about DEI. It was about including
36:36 bad engineers and letting their code
36:37 ship to production because there were so
36:39 few engineers we needed whatever code we
36:41 can get and that's over. That era is
36:43 done. To go back to the core point, why
36:47 are engineers fragile? I think there's a
36:49 few key pieces that led to us being the
36:52 way we are. One, jobs require us to feel
36:56 dumb. Two, it's human nature to fight
37:00 back when you feel dumb. Three, the
37:05 breadth of the dev world is insane.
37:06 There's always more to learn and it's
37:07 always changing and we are always
37:09 pursuing better ways to do things in
37:11 dev. Doesn't mean you have to keep up,
37:13 but it means someone is. And if you're
37:14 not, you're not as far along as they
37:17 are, which makes you feel bad. And then
37:20 there is the tribal nature of it all.
37:21 Since we have our tribes, we have our
37:23 little bubbles within our little
37:25 sections, it's very easy for us to look
37:26 down on the people outside of our
37:29 section on here. And this happens in
37:31 almost every industry. The FBI looks
37:32 down on the police and the police look
37:35 down on FBI. Street chefs get frustrated
37:36 with Michelin star chefs and Michelin
37:37 star chefs think the street chefs have
37:38 no idea what they're doing. When you
37:40 live in different bubbles within as
37:42 industry, it's easy to not understand
37:44 the thing on the other side and to start
37:46 looking down on it as a result. I even
37:48 experienced that as a YouTuber. I
37:51 noticed the moment where my audience
37:53 stopped seeing me as the open- source
37:55 developer who happens to have a YouTube
37:57 channel and instead saw me as the
37:59 YouTuber who pretends he knows how to
38:01 write code. I watched that shift happen
38:03 and it happened right around 100,000
38:06 subscribers for me. Humans are tribal by
38:09 nature and if being tribal allows them
38:11 to deal with these other parts more
38:13 easily, they will. And as a result of
38:15 that, there's a lot of people who talk a
38:17 lot of [ __ ] about things that they don't
38:19 really know anything about. But there's
38:20 one really important piece to remember
38:23 about all of this thing. I started with
38:25 the rude comments that inspired all of
38:26 this. The people being stupid on Twitter
38:29 about AI game generation, the people who
38:31 are leaving rude comments on this very
38:34 video right now, they are not average.
38:37 They are certainly not above average.
38:39 The vast majority of those people are a
38:42 tiny little blip right here. And this
38:45 tiny little blip is very, very loud,
38:48 very, very annoying. But this blip is
38:50 responsible for the majority of the
38:52 negativity on the internet. They It's
38:54 the classic loud minority thing as
38:56 chat's already pointing out, but it goes
38:58 further because the majority of people
39:00 aren't saying anything at all. It's not
39:02 just the loudness and the reach of the
39:04 message, it's the messages in the first
39:06 place. The average animate profile
39:09 picture [ __ ] poster on Twitter posts a
39:11 hundred times more than actual
39:13 developers do. The sheer volume of
39:15 things coming from these insecure people
39:17 is massive because what they're doing
39:19 instead of learning or shipping or
39:21 improving the things that they do. The
39:23 people who make this much noise and
39:26 complain this often aren't shipping
39:28 [ __ ] They don't do anything. They just
39:30 complain all day and they do not
39:33 represent engineering. It's annoying to
39:36 think that the negativity towards React
39:38 isn't a big deal because you see it
39:40 everywhere, but the people who are
39:42 shilling it are a very very very small
39:44 portion of the users of React. The
39:46 average React developer doesn't even
39:48 have a Twitter account, much less if
39:49 they do, they're probably not talking
39:51 about React on it very much. I didn't
39:52 think this YouTube channel would have
39:54 any viewers at all cuz I didn't think
39:55 many people wanted to watch videos about
39:57 software dev. And I was wrong. There's
39:59 way more than I expected, but it's still
40:01 like way less than a tenth of engineers.
40:03 Probably closer to a 50th. Those
40:05 engineers will be better than average
40:06 and help push their teams to be better,
40:07 too. They might send one of my videos to
40:10 a teammate, but the people who enjoy
40:13 consuming this content are not average.
40:14 And the people who like [ __ ] on this
40:16 content are even less than average.
40:18 They're very, very small portion of the
40:20 group. And when you're seeing all this
40:22 negativity on the internet, I encourage
40:24 that you take some time to talk to
40:25 people in the real world. Find a
40:27 developer who isn't online but talks
40:29 about these things at work and does it
40:31 for a living. See how they feel first
40:33 before being so confident that everyone
40:34 hates React and everyone's moving away
40:35 because when you talk to real
40:37 developers, you'll realize things are
40:38 not what you might think they are in
40:40 your little bubble. I even run into this
40:43 here because I'm an SF. So we are a
40:45 bubble of people who care a hell of a
40:47 lot more than average. And if I'm not
40:49 careful and I don't talk to developers
40:50 outside of this bubble whenever I have
40:54 the opportunity, then I will lose touch.
40:57 I'm just obsessive and nerdy about these
40:58 things. I would be looking into the
41:00 newest framework releases with or
41:02 without my YouTube channel. I just lucky
41:03 to have found a way to healthfully
41:05 engage, continue to push myself to learn
41:08 and grow and try new things, but also
41:10 profit from it, run a team on it, and
41:11 benefit from doing this instead of it
41:13 being a useless side quest I go on. The
41:15 people on the other side are trying to
41:17 justify not doing it, trying to justify
41:18 refusing to improve, trying to feel
41:20 better about the fact that they haven't
41:22 learned anything in 10 plus years. It's
41:25 a hell of a lot easier to talk [ __ ] on
41:27 React than it is to learn it. And humans
41:28 will always take the path of least
41:30 resistance without a little bit of
41:32 motivation to go the other way. So the
41:34 next time you see an engineer saying
41:36 something fragile and stupid, just think
41:38 to yourself, is the alternative easier
41:40 or harder? Is them understanding the
41:42 thing an easier path for them or is it a
41:44 harder path for them? And if the answer
41:46 is it's an easier path, that's probably
41:48 why they're doing it. Not because the
41:49 thing they're talking about is actually
41:51 bad. simply because it's easier to talk
41:53 [ __ ] than it is to learn the thing. And
41:54 then go apply this to my take on Flutter
41:55 and you'll understand the depth of my
41:57 hatred for it. Think I've made my
41:59 points. Engineers are fragile. There's
42:00 reasons why. And the ones that are the
42:02 most fragile are the ones that make the
42:05 most noise. Should start ignoring them.
42:06 People who build actual things are who
42:08 we should learn from. And we should take
42:10 the time to learn from the engineers who
42:12 aren't posting all the time, but are
42:14 actually shipping things every day. Let
42:15 me know what you guys think about this
42:16 one. And have fun in this comment