Hello Theo. I know you stopped doing
videos related to jobs and new devs.
Sorry to ask, but how do I learn things?
Do I nerd out and take my time or
something else? Sorry if this isn't a
good question. You should be sorry
because it's such a good question I'm
now stuck here making a video about it.
But yeah, this is harder than ever to
answer and I'm going to do my best. But
the right way to learn and grow and find
success as a dev has changed a lot. The
reason I used to do so many videos about
this is because at the time things
hadn't changed too much. I had went
through this all myself eight or so
years prior and as such I was able to
talk about my experience and it was very
similar to how things worked at that
time and I know thousands of devs have
found success following the same
footsteps I did whether or not they even
heard about it from me. There's even
dozens in the chat now that got their
start in their careers by doing the same
things I did after hearing about them
from me. Things have changed a lot.
And I will admit I might not be the best
person to talk about it simply because
it's different from how I got in. I
learned, I grew, I found my success by
doing things a way that doesn't
necessarily work anymore. And as such
the recommendations I'm about to make
aren't based on my experience doing it.
They're now going to be based on my
perspective externally for how to learn,
how to grow, how to get hired, how to
find success. And if those are questions
you have, I think this video will still
hopefully be helpful. If you made it out
on the other side, I think it's even
more important you watch this because I
don't want us to pull the ladder up from
behind us. There's a lot of people who
got into this stuff when it was easy to
because there just weren't enough devs
and it's unfair for us to make it hard
for people who could potentially be
incredible devs to get where we are now.
So I'm going to do my best to explain
all of this while also acknowledging the
fact that if I was in this position
right now, if I was 21 and finishing up
college today instead of 31 and ranting
to college students today that I might
not have made it. I don't know if I
would have found success the way things
are today. I don't know if I would have
been able to get a job, be paid as an
engineer and do all of the things that
we expect to do in the field. And if I
can't make money from coding I've got to
make it somehow. So let's take a quick
break for today's sponsor. It's time to
face the facts. AI models are kind of
stupid unless you give them access to
the web where they can collect all the
information they need to behave better.
I can't tell you how many times I've had
my AI agents not do the right thing
because they just don't have the right
info. And maybe that info isn't on a
place that it has access to. Even if
it's able to do like curl calls to
various sites, it might not be able to
get the info you need much less be able
to do things on the web pages that you
want to navigate. Unless you give them a
real browser like BrowserBase.
BrowserBase has figured out how to let
agents do everything you'd want them to
on real websites and they do it in a way
that feels just as reliable as a normal
API does. That's why everybody from
Microsoft to Lovable to Ramp DeepMind
all use BrowserBase for running their
cloud browsers. Obviously their browser
as a service is their killer feature.
The fact that your agents can spin up a
real browser to do real work on real
websites is awesome. But sometimes you
don't need that. Sometimes you just need
to do a web search and get some
information or fetch data from a given
URL. They now have support for both of
those use cases as well. They have their
own search API built in that is really
easy for agents to use to get the info
they need as well as a fetch API where
you can just let the agent go to a URL
that they found and collect all of the
info in HTML, JSON or markdown, whatever
your system prefers. BrowserBase
transforms the entire internet into an
API that your agents can use to do
everything whether they need a real
browser with authentication and the
ability to interact or a search engine
that they can use to get the context
they need, BrowserBase has you covered.
Unleash your agents on the web at
slate.link/browserbase.
Sorry about the slightly cringe sponsor
cut. I got to put those in. Bells have
to be paid. Teams got to be paid. But
again, thank you to Fuzzy for this
awesome question. I'm going to do my
best to break down the ways I've seen
work for learning and growing as a
developer today. The reality is that
being a new dev does kind of suck right
now. There's a lot of things that are
good, but there's also a lot that are
bad. The two key things I want to talk
about are how do you learn, but also how
do you find success in the space because
sadly these are very different questions
now. They didn't used to be, but now
they kind of are and that that sucks to
be frank. I don't feel like talking
about the numbers and all of that. I've
done it before. I just want to talk
about how I think about this right now.
First let me talk about the split of
devs. I'll put a nice good old average
line in the middle here and we'll say
roughly, it's not exact but it's close
enough, that each of these sections is
about 25%. One of my favorite mind [ __ ]
is explaining how averages work in an
admittedly kind of silly way. Imagine a
perfectly average intelligence person.
Somebody smack dab in the middle.
They're not smart, but they're also not
dumb. They're right smack dab in the
middle. If you somehow test on general
knowledge, they would get a C every
time. The perfect average person. Have
them in your head? Nearly 50% of people
are dumber than them.
That is a thing I have to digest every
day especially because I and many others
that have made it far in the world that
we're in, we don't surround ourselves
with average people much less below
average. And I would also argue most
people don't have average set correctly
because depending on where they are,
average might be lower or higher
depending on the people that they're
surrounded by. The point I'm trying to
make is that first off, your definition
of average is skewed by the people
around you, but second off, if you
actually do have a measure of average
that's even slightly realistic, roughly
half of people are below it. And those
are two points that were really hard for
me to digest early in my career and I
still feel like I screw things up around
this when I try to do any type of
reasonable planning. I am regularly
surprised by how I mean I will be frank
how dumb the average dev is. I know
people who are making 350k a year that
can't figure out how to SSH. That's
absurd. They squarely fall admittedly in
like this area or honestly I would argue
many of them are in this area. So why do
I care? Why am I talking about all this?
Well, I'm going to make up some numbers
just to make this easier. Let's say that
there's 70,000 tech jobs created a year
and there's 100,000 new CS grads every
year. Again, entirely made up numbers
didn't even check to see what the real
ones were. I changed them twice while
filming. Just want to make a point here.
So I'll say there's 70,000 new tech jobs
and 100,000 new CS grads. That means
that there is a 30k surplus. This sounds
like a death sentence immediately,
right? Like if we have more grads than
jobs, it's all over. Well, less than
half of people are doing work that is
directly related to their degree if they
have one. So as absurd as it sounds,
it's not necessarily that bad. So if you
see these numbers and you look at this
chart, you're like, okay, so roughly 25
to 30% of people don't have jobs
available. So obviously that means this
whole section here like everybody from
here down just doesn't get a job and
everybody to the right of them does.
Well, sadly no interview process is good
enough to accurately place people
consistently across this range. Even the
best interviewers are kind of I'd say
one or two standard deviations in either
direction for their interview process.
So here's our target. We place this here
based on the candidate's potential.
Funny enough, when I was at Amazon we
had a system for this. The interview
loop required you to score each
candidate a number one through four. And
no, you can't do 2.5. You have to give
each candidate a one, a two, a three or
a four. The reason that we didn't do an
odd number is because if we did,
everyone just picks the number in the
middle. The even number forces you to go
over or under the mean. The way that
this was framed to us is a two you
wouldn't want to hire but you wouldn't
be too upset if they were. A three is
you would hire them, you could see
yourself working with them, but you
wouldn't be too upset if they weren't. A
one is, at least the way I framed it
was, I will quit if you hire this
person. And a four is I will quit if you
don't hire this person. So it's our job
to try and place each candidate that we
talk to in one of these four columns.
But we are not accurate. I've had times
where I gave a candidate a four and half
of the rest of the panel gave them a
two. I had times where I gave the
candidate a one and the rest of the
panel gave them a three. So these
systems are not necessarily accurate,
but that's not the point. The point is
assuming everybody does their best, we
can get a rough idea as to how much we
should or shouldn't hire this person.
But as I was saying, this is not
perfectly accurate. In fact, it's far
from it. So I'm going to take this and
again, imagine this middle line here is
where we think a candidate is. Let's say
we're interviewing, who am I going to
pick to bully here?
I want someone funny. Oh, Krish. Krish
it is. You have been volunteered for
tribute, Krish. For those who don't know
Krish, he's a I believe no longer a
college student. Congrats on graduating
if you finally did. Krish was very
competitive with me in Advent of Code.
He actually helped manage the moderation
for Advent of Code in our Discord server
way back when I first started doing it,
when I first started getting attention.
I've DM'd with him a bunch. He's a very
talented dev. He knows his lead code
[ __ ] very well. He's in his last two
weeks of college which means he's
probably doing job interviews. From
everything I know about Krish, he's
absolutely top 25 percentile of
capabilities a dev for sure. He might
not have the industry experience yet
because he's a college student, but he's
a very, very talented developer.
Apparently he also won the Vercel
hackathon and has also built a clone of
Vercel. All of these things make it
pretty clear he falls in the top 25% at
least to me based on what I know, the
interviewing I've done and everything
else I know about Krish. As such, I
would pretty confidently place him
roughly here. But you'll notice
something about what I drew here with my
little reticle.
There's a range. It's quite possible
he's actually quite a bit over, and he's
actually top 5% to 1%. But it's also
possible I'm wrong entirely and he goes
the other way, and he's actually just
barely in the top 50% tile. Nobody's
judgment is perfect, and you have to
account for that fact. There is a range
of left to right here, where if I think
this person is in the top 20%, they
might be the top 10%, they might be the
top 50. If I think somebody's this far,
it is very unlikely that they're
actually like all the way down here, but
it's possible. There's another standard
deviation here effectively, like another
curve based on where I place the person
relative to where it's most likely they
actually are. When I say I think this
person's top 10%, I don't mean that they
are definitely that. I don't mean I'm
guaranteeing this is where they land.
I'm saying it is my belief they are
here, but the range could be in each
direction. So going back to these
numbers here, remember every company's
goal is to hire the best devs, but if
your devs aren't that great, or you're
just being realistic about what you're
working on and who you can get, you know
these numbers, too. Your goal stops
being hiring the best and starts to be
higher average at least. So assuming
your company's trying to hire average,
you end up in this range, where if you
say this dev, I believe this dev is
average, there's a reasonable chance
that they're slightly above, and there's
also reasonable chance that they're
slightly below. But remember what I said
earlier, where depending on what you're
surrounded with, your understanding of
average can be very different and
borderline wrong. If your company's
already shifted to this line, like if
your average engineer at your company is
not average of the rest of the world, if
they're like bottom 50% tile, and
they're looking for people that feel
average to them, this starts to happen.
Might not go all the way, might stop
here. It is possible for those companies
to hire above average devs, but it
usually happens accidentally. It is very
common that they hire these below
average devs. The reason I am bringing
this up is because this area here could
actually get jobs. It was admittedly,
depending on how you defined it, kind of
accidental that this would happen, but
this area here, this range below the
25th percentile, the bottom 25%, could
get jobs. Absolutely they could get
jobs. It was harder for them than people
all the way over there, obviously, but
below average devs and far below average
devs were still capable. I know this for
a fact because I was able to get a job.
When I got my first job, I was a very
technical person. I knew how to do
things on computers well. I knew how
servers worked. I often joke that I knew
GNU screen, Git, and SSH before I wrote
a line of code because I did, but I
didn't know how to write and deliver
software that functioned. I remember in
my job interview at Twitch being asked
what language I wanted to use and
freezing up because I didn't have enough
confidence in any specific language to
pick one. So I kind of just went with
C++ because I had written some recently
and it was what I thought about, and I
just could not solve the problems I was
given in C++ because they ended up being
really weird memory allocation-wise. I
don't remember what the problems were, I
just remember bombing. I bombed so hard
that they changed out one of my
interviewers to be somebody more
front-end focused to give me some
front-end scrolling questions, when I
had done almost no front-end. And I
learned after they literally brought
Jeremy in for my interview because I
bombed the C++ I had done so badly. They
assumed I must be a front-end dev. So
they brought somebody else in even
though I wasn't a front-end dev, and I
bombed that even harder. But since two
of the people in my panel really liked
me and saw me fitting the team well,
even though my skill set didn't fit yet,
they let me on on a contract. So I
didn't get a full-time offer when I
joined Twitch. I got a 3-month contract
with the plan being if I did well, I
would get a full-time offer, and then I
did okay, so they gave me another
3-month contract before the full-time. I
think that worked out for them. It was a
big risky bet, and I'm sure for every
Theo they got out of that, they got some
[ __ ] too. In fact, I I know that I
had to fire a handful of them. But that
was a risk they took because based on
their calculations, I was here maybe.
Like they probably thought I was
here-ish, like
just below average.
I was actually probably here-ish, but
they were hoping with time I could end
up over here and maybe even over here,
and depending on who you argue with,
either they were very, very wrong, or
they were pretty damn right. They were
also in such a crunch to hire engineers
who understood anything about media
because they were expanding the media
side, and they were building this
non-gaming team to do the live streams
for Bob Ross, Power Rangers, and all
that, and I got to write the code for
that, which was super fun. They let me
in because they felt like I fit and got
along with them well enough to take the
risk of this range, and that's how I got
in and how I started to really learn how
to code. But it's important to
acknowledge a big part of why that
happened. All of that stuff matters, but
the biggest reason by far, they didn't
have more promising options. It was hard
to find good devs. It was really hard.
This was an era where Google would hire
people not to have them work, just to
keep them out of Apple, just to keep
them out of Microsoft, just to keep them
out of other companies they were
competing with. Could my team have spent
more time and maybe found a better
candidate? Perhaps. But in 2017, they
didn't have a lot of options. Well,
technically I was doing the interviews
in 2016, so in 2016 they didn't have a
lot of options. They needed people, they
needed them fast, they liked me, so
their options were hire this person we
like that might not be that good on this
contract where we can kick them out in 3
months if they suck, keep interviewing
other people, which they did do at the
time, they were continuing to do
interviews in that window, too, or we
could not hire him, wait longer, and
hopefully find somebody better, but we
might end up stuck with somebody who's
just as bad at coding but doesn't fit
the team as well. And they decided to
roll the dice. So even though I didn't
meet the technical bar, the potential to
meet the bar combined with the urgency
of getting somebody on the team and the
vibe match that they liked me led to me
getting the offer that I went super hard
with to try my hardest to keep that job
then ending up in the career path that
I'm in today. And here's the harsh
reality.
This isn't the case anymore. It just
isn't. Because there were so few good
engineers, because the interview process
was flawed in a way where they couldn't
really know how bad I was, because the
team had this crunch, and because they
liked me, I was able to get the gig.
That's not true anymore. I got to learn
at a job I shouldn't have had. I got to
be paid 125k a year to effectively learn
how to code. And that sucks. I was okay
at data structures and algorithms, none
of that matters for real work. I had
some popular open source projects, they
were all [ __ ] slop. I didn't know how
to be a good dev. I kind of looked like
one. I could absolutely talk as though I
was one, but most importantly, I was
just fun and the team liked me. So what
the [ __ ] do you do now?
Hiring is always a function of a few
things. Urgency, likeability, and
competence. The company fully controls
the first one, how urgent is this hire
to them? Likeability is 50/50. This is
your responsibility to be likable, and
it's their responsibility and their role
to have a culture that people can like
and be involved in. And then competence.
This one's mostly on you. Do you
actually know what the [ __ ] you're
doing, and can you prove it in the
chaotic scenario of a job interview?
This is also partially on them because
most technical interviews suck,
especially right now because AI [ __ ]
everything. But these are the keys to
getting that job. Historically, you
could not have this part and still get
the gig because the urgency was so high,
and if your likeability was reasonable,
you'd be fine. So to the frat bros that
got their degree mostly by cheating off
of the nerds' homework, that don't know
how to [ __ ] initialize their
terminal, they don't know what SSH is,
much less what it stands for and how to
do it, those people could still somehow
get jobs, and this was the somehow. They
were likable enough, and the competency
measurements were bad, and the companies
had such high urgency, they would end up
in. And some of those people ended up
getting decent. I'm one of them. I know
plenty of others where this is the case,
where they got in despite their lack of
skill for other reasons, and it went
very well for them. This meant that you
didn't really have to be that competent
to get a job. You had to maybe sound
competent, that would help, but you
didn't even necessarily have to if you
were likable enough. Now there's a
thousand people who already applied for
the same role, many of which have other
experience that got laid off, that
appear much more competent and likely
are much more competent. And do you have
to fight them in the interview process?
And if I'm being frank, fresh out of
college, you're probably not going to
win there. It is really hard to look
more competent than the person who has 5
years of industry experience. I also
want to be clear this isn't totally
over. I'm not saying like this is fully
dead and doesn't happen. As Chris just
said, he knows people who are graduating
and have jobs who barely can use Git.
Absolutely. This will always happen,
there will always be more things like
this, but there's less of that. There is
significantly less of that simply by the
nature of God, I've made it this long
without saying the two letters, AI. AI
makes incompetent devs look more
competent in ways that are annoying. It
means lurking somebody's GitHub is no
longer a trustworthy thing. It means the
quality of their portfolio no longer
means anything, the number of projects
they've shipped barely means anything.
It is easier to appear competent now,
and that sucks. That hurts the people
who are decent but don't know how to
show it yet. So what this means is you
got to take the two that are in your
control, the likeability and the
competence. These are the two things you
can actually do yourself and work on and
better your position with. And to go
back to the original question that
started all of this, the question was
not even about jobs. It's about my old
videos that covered job stuff, but the
question was much more about learning
things and nerding out. That's this
side, the competence side. How do you
get good enough that you'll never be a
bad hire? How do you get good enough
that the people with more experience
than you and more fancy resumes than you
would be a worse decision for the
company than you are? If I knew enough
the answer to that actually falls a
little more on the likeability side than
you might think. So, we're going to put
this aside for a tiny bit longer, focus
on the likeability. Going to ask a weird
poll question to chat now. On a given
day, like an average day, are you the
best dev that you hang out with in real
life? Not talking about the internet,
and I want you to be really honest. I
know a lot of you think that you suck
compared to all the people you see
online. This isn't about them. This is
about the people that you hang out with
on a day-to-day basis. Work absolutely
counts. Yes, work 1,000% counts. If you
go to an office in or like lunch or
dinner and hang out with people, like
spend time and exchange words is what I
mean. Do you exchange words IRL with
somebody who is a better programmer than
you? I guess I phrased this wrong. Like,
if there's no devs better than you in a
given day, say yes. If there are, say
no. I should have framed this inversed.
And you might have seen a few things in
chat already that kind of give away the
premise here. I live in the middle of
nowhere. I might be the only dev in my
city. Does my dad count? I don't have
many dev friends IRL, sadly. I work
remote.
If I was in office, probably not. Can't
where I am right now. I live in the
least educated city in America.
I'm the only dev I've spent any time
with in the last 25 years. Do you see
why I asked this?
There are a lot of devs who, to be
frank, I don't know how else to put this
other than the word lonely. I'm very
fortunate that I didn't really have that
experience. When I was a freshman in
high school, there was a bunch of
seniors in my school that were really
good devs. They were hardcore Linux
nerds. They Linux pilled me when I was
14. And then they graduated, and I had a
year or so of being the like only person
who cared a lot about dev, but
eventually my other friends started
getting interested. And we got to nerd
out about these things. I got to hang
out with devs every day. Who was better,
who was worse, arguable depending on a
lot of things, but we all liked it
enough. And I wouldn't have been
comfortable saying, other than like
maybe my sophomore year of high school,
from when I was 14 to now, I am not the
best dev I spend time with IRL in an
average day. That is huge. That means
that every day I have a huge chance to
better myself, to improve my
capabilities as a dev, to learn, to
grow, to push them as well, just by
living my day. I don't have to put
effort in to hang out with more capable,
competent technical people. I'm now at
the point where they just show up in my
apartment. I'll end stream sometimes and
go downstairs, and there are just
maintainers of important projects
sitting there excited to hang. You
caught on, chat. One of my favorite
quotes ever, "If you're the smartest
person in the room, you're in the wrong
room." Absolutely. There is no hack to
fix this, other than, if you can,
getting a tech job in SF and moving
here, because then it'll be hard to
avoid developers. But you can
artificially manufacture this. It won't
be the same because it won't be in
person. But you can manufacture bridges
for this gap remotely. And a bunch of
people in my chat are already doing
this. Oh, like Dara here, who took one
of my random quips in a video about how
I do better design with AI by telling it
to make five designs at once, turned it
into a benchmark, and then linked it to
me right as I was about to cover design
skills for models, thereby quickly
becoming one of my favorite people in
the community. I wrote the [ __ ] out of
his channel. I highly recommend checking
it out. He's going to go places. Correct
me if I'm wrong, Dara, amongst your
friends at college, most of them would
call you one of the better devs at the
school. I'm not asking what you think.
I'm asking what your friends think. Do
your friends consider you one of the
better devs?
Yep. Cool. Called it. So, Dara's friends
luck out here, because Dara's friends
get to ride his coattails to an extent
as he dives into these communities and
spends his time taking study breaks to
come engage with us, watch our content,
and be involved in the community. Or
people like Gabriel, who was making $11
an hour despite being one of the best
full stack and front-end leaning devs I
know, being so useful in my chat and in
my community that one of the companies I
love working with picked him up and
brought him on full-time, at least
quadrupling his salary, and also
surrounding him with a ton of really
talented devs he could work with.
Gabriel, correct me if I'm wrong, but
even your insecure ass would say you
were the best dev at your last job,
right? Yeah, that's what I thought.
This is somebody who I consider one of
the best devs I know that himself said
he considers himself maybe median, like
50th percentile. Even he knows that the
place he was at before, he was the best
at. And here's the harshest reality.
Remember this, the like how good do I
think a person is? We're going to use
this differently. The middle place is
you. You can't know where you fall here.
No one does. Nobody actually knows where
they fall in this range. People can have
a good idea, but if they actually get it
right, it's a lucky guess. You are the
middle here. You can't know where you
are, but hypothetically speaking, let's
say you are actually top 25th
percentile. What's the point of this
range now? The reason I left the range
here is everybody outside of it makes
you a little bit uncomfortable. You can
go about one standard deviation in
either direction from your own
capability, and if you have to go
further, you get frustrated. About a
year ago, I was mentoring an old friend
with her codebase that she was trying to
build, and it was the nastiest pile of
[ __ ] I've ever seen in my life. I found
at least eight different ways to fetch
data despite there only being two
endpoints. Just loading the initial data
for the homepage required seven actions
to be called in Redux, just to trigger
the fetch calls that all had different
ways to populate the data. All vanilla
JavaScript, obviously, because according
to this dev, TypeScript just seems like
too much work. And the backend was a
separate repo
that was the worst Express app I'd ever
seen that was apparently intentionally
using an outdated, insecure Express
version that was a major behind, all
because, despite this person having a
job for 2 years, their professor said
this is how we should build. So, they
kept using the template that they got in
college for starting new projects. And
they didn't even hit me up for code
advice. They were apparently hitting me
up because they wanted me to tell them
how good the project was so they could
go raise money on it. I don't think I've
ever felt more pain in a technical
conversation in my life. I would rather
try to explain memory leaks to my mother
than have to read that code again. I
don't care where you put me on this
chart. I'm at least here. So, having a
conversation with somebody here made me
feel physical pain. I don't feel bad
telling this story because I have been
told by this particular dev that they
don't watch my videos because they're
too boring. Even if they did watch this,
they wouldn't know I'm talking about
them because they're also too arrogant
to accept the fact that their code
sucks. So, the reason I'm bringing this
up is because people get uncomfortable
if they are too far above or below the
people that they're surrounded by. And I
am very lucky here. I am the ultimate
benefactor of this reality. Because if
you're in your end years of high school,
or you're starting college, or even if
you're pretty far into college, there's
a pretty good chance that you are in
like this area. It is pretty damn hard
to be above average if you've never had
a job. So, what happens to those rare
devs who are? What happens to the people
like Maria who are under 20 and in Chile
that don't have all of these great devs
around them. Maybe they have some
friends in high school who are learning
how to code, but they're like figuring
out Hello World in Python while Maria is
rebuilding T3 code in the terminal
herself. They're teaching Python 2 in
school. You get the [ __ ] point. When
you are surrounded by people here, there
is nothing more painful than being here.
And for devs like Maria, devs like Dara,
possibly even devs like Fuzzy here, I do
admit I haven't interacted with them
beyond this, so I don't know. There is
nothing more painful than being here,
being in this higher range when
everybody you know in the real world is
stuck here. So, you end up looking for
somewhere to go. You end up desperate to
fill the hole you feel in your heart.
Because this gap you perceive it every
day. It manifests as frustration, as
depression, as confusion, as insecurity.
It manifests in all sorts of different
ways. And if I've learned anything from
talking with my audience as much as I
do, apparently more than I'm supposed to
as a creator, according to all the other
creators, managers, and businesses I
talk to, turns out a lot of creators
don't really interact with their
audiences beyond like thanking them for
subs. I do. I talk to a lot of people,
and I really perceive this gap. A lot of
them hang out here because it feels less
lonely. A lot of them are here because
they are tired of being surrounded by
this, and they want to be talked to
about things in a way that feels less
like learning Python 2 in high school.
And even if they're actually here,
and their high school class is in the
bottom 25th percentile, they are just
outside of the range of their peers, and
it is just frustrating enough to be a
little bit sad. And maybe my content is
slightly above where they are. Maybe my
content is here. The loneliness is
enough to push them over. It's enough to
motivate them to cover that gap, to
learn what they have to, to nudge
themselves to the right, because
anything is more appealing than spending
more time with the [ __ ] down here who
don't care enough to learn, that are
only doing this because they heard from
somebody on the news once that they
might be able to be paid a lot of money.
And I know a lot of y'all, especially
the people in my chat today, are here
for this reason. You guys are all here
today at 6:00 p.m. on Easter Sunday
because the alternative is being lonely.
And don't say that finding me is a
[ __ ] miracle, the first time you've
ever had the balls to send a message.
It's not. If you didn't find me, you
would have found somebody else. I'm not
the important part here. The fact that
you're looking for these things at 3:00
a.m. Look at all of these 3:00 a.m.
people watching right now. Drop your
time. What time is it where you're
watching from? Drop it in chat. I want
timestamps. 8:00 p.m., 3:00 a.m., 9:00
a.m., 9:00 p.m. Look at all of this,
guys.
You're not [ __ ] normal.
You're lonely. You're filling a hole.
And that's not a bad thing. YouTube
chat's even crazier with the range here.
You guys being here is what's
incredible, not me. The fact that you
want it so bad that you wake up early to
watch, that you stay up late to stay
part of the community, even though you
guys know the video is going to be on
[ __ ] YouTube. You don't have to be
here. You don't have to show up here and
be a first-time chatter. How many
first-time chatters are at 3:00 a.m.
now?
You don't have to be here. You know
that. You could be going to bed and
hanging out with friends tomorrow.
You're not even participating in chat,
but you're here.
Here is why.
Albihax here said it perfectly. It's
nice to hang around here. It feels good.
Now we need to go back a little earlier
cuz this is all part of my plan.
Remember the three things that cause
people to get hired, urgency,
likeability, and competence? You didn't
like hanging out with your peers in high
school talking about code because you
were ahead of them. It felt bad. Being
around people who are multiple standard
deviations away from you, better or
worse, doesn't feel good. And you're
here not for me, not cuz I'm some super
genius and if you miss out, you're going
to fail and not get a job and suffer.
You're here cuz you like being here.
You're here because you like hanging out
in chat. Maybe you're not participating,
but you're reading it still. You're
excited when you see things. You click
the links when something cool pops up.
You're learning. You're growing. You're
embedding yourself. You like being here.
And here is where you can start
gamifying your future because it goes
both ways. The same way you like being
here, you can also be liked, to be
frank. The things that get you excited
to see when I'm live and come hang out,
the things that make you excited when
you see one of my new videos pop up, the
things that make you excited when a cool
new library appears on Twitter and you
get to go dig in and try it, the things
that hype you up when you hear that
there might actually be a tech
conference in your general area you can
go to. That feeling is also really
powerful when you're trying to make
career decisions, both for you and the
people who can hire you. You got to lean
in a little more.
The reasons you like being here also
make you likable. Share them.
Be here. Get involved. Be more like the
awesome people in my community who are
in my chat, who are dropping all these
cool things, who are as coming out with
all of these interesting, exciting
people, and do it not because you feel
like you have to to get a job. Do it
because you're also interested and
excited the same way they are. Don't
show up and spam me with your [ __ ]
link to your portfolio. Nobody cares.
Don't ask me to review your random side
project I don't know anything about.
Show up because you care and are
excited, and show us why. You don't do
that by just spamming links to GitHub
stuff or random things you built. You do
it by asking questions, by being
interested, by responding to things
people bring up, by remembering when I
say, "Yo, does anybody have the link for
this thing?" And you remember you saw it
on Twitter, and you might have it saved,
and you go find it and drop it in chat.
The fact that you're here means that you
care more.
You got to lean into that.
Let's go back to that original question.
How do you learn things? Do you nerd out
or take your time or something else?
This goes to that competence thing. In
order to improve your capabilities, you
have to be able to measure them, or you
are just going to get trapped in
Dunning-Kruger. And a big part of
preventing that is surrounding yourself
with people who get it. Ideally, you
find a way to do this in person. I was
very fortunate to be handed one.
Apparently, people don't necessarily
know what Dunning-Kruger is. If you're
not familiar with the Dunning-Kruger
effect, it's a cognitive bias where as
you start learning a thing, you think
you're really good at it, but the more
you learn, you realize, "Oh [ __ ] this
is harder than I thought." And you
realize you're actually [ __ ] at it, and
then ramp up from there. Silly example,
I'm going to use my YouTube channel
here. Starting by oldest. My first video
is just me posting a skate video. It
doesn't count. I just left it out cuz I
think it's funny at this point. My next
video was building a modern full-stack
app, and this was just me going live
showing off my stack because people on
Twitter wanted to see it. I had no
followers or anything. It's like my
little crew of like 100 people. I did a
stream where I showed off my stack, and
I put it on YouTube cuz you wanted to
watch it. They were asking for it, and
they didn't like Twitch VODs. So I did
that. It went way better than expected.
And then I convinced Dan Abramov to do a
mock job interview with me because he
was doing mock job interviews, and I
wanted to show how you can do a good
technical interview with somebody who
doesn't know LeetCode. I was very proud
of that. These two videos killed. This
one did okay. This one did really good,
and it brought this one up with it. The
original T3 stack video was beating the
Dan Abramov one on a basically brand new
channel. This is the video a lot of
people came in. Ones in chat if the
first Theo video you saw was the Dan
Abramov slaying the life code interview.
I want to see how many of you OGs are
still here.
[ __ ] yeah.
Crazy that it's been 4 years. Way more
of y'all than I expected. Was it the
tutorial? That's even cooler, honestly.
I think it's cooler if you saw the T3
tutorial, but that probably means it was
later cuz that one only got like 500
views before the Dan Abramov interview,
and then that boosted both up a ton. So
I bring this up because after these two,
specifically after how well they both
did, I was convinced I was a god
YouTuber. I just stumbled into this, and
all of my videos are doing great. Every
video I do is going to break 100k plays.
I'm going to be the biggest tech
YouTuber ever. And I specifically
remember the DM that I sent to Ryan
Carniato, the creator of SolidJS,
because I was convinced that my video
where I ported my roundest app to
SolidJS was going to be just as big as
all the others, that I would blow up
Solid. I would be the reason everyone
used it. And I was DMing him. I had a
group chat with him and a few others. I
was so excited that I was going to make
SolidJS this massive thing. And then I
put it out, and it got like 500 plays in
2 days. It has since grown a lot, but
that was my Dunning-Kruger effect. I had
two videos. They went really well. I was
still new to YouTube. I was like, "Oh my
god, I'm a god. Everyone else sucks."
And then I kept going, and it didn't go
great. My next video got 10k plays. Then
my next two did okay. They didn't
initially. They slowly grew. This stop
being create-react-app one. I would
argue this is my first ever good video,
where the video itself is good, not just
like me talking or something novel like
I did an okay job making this content.
But then bombed, bombed, bombed, okay,
surprisingly good, bombed, really good,
okay, okay, bombed, really good, really
good, but like it took a minute for me
to figure my [ __ ] out. The thing I'm
trying to emphasize here is when you're
starting, you will feel much better than
you will when you get halfway. We go
back to my diagram here. People on this
line feel smarter than people on this
one. The people on the bottom 25th
percentile line feel like they know more
than people here. And this has resulted
in a very interesting thing where people
like Gabriel in my chat, who are pretty
far to the right of this chart, are
experiencing Dunning-Kruger and have
ended up plummeting in their
self-confidence as a result. The more
you know, the more you realize you
don't. So that's Dunning-Kruger. So how
do you keep yourself from falling for
that? How do you keep yourself from
being here and thinking you're great and
then doing job interviews and failing?
Well, most of y'all, especially those
watching live, have already figured out
step one. Hang out in communities that
know more about the thing than you. I'm
being distracted. Fuzzy, define imposter
syndrome without looking it up. I want
to hear your definition of imposter
syndrome. Yes.
But the other side of that is when you
think you're smarter than you are, it's
Dunning-Kruger. When you think you're
dumber than you are, it's imposter
syndrome. The problem with imposter
syndrome is you get nothing talking
about it because people who are
experiencing it are like, "Yeah, it
sucks that there's smart people who
think they're dumb. I'm not one of them.
I'm dumb." Your actual knowledge in the
gap between that and your perceived
knowledge, where you don't know much,
but you feel like you're really good,
then you know a bit, but you feel really
dumb. This can also be imposter
syndrome. But imposter syndrome is when
this is regularly, consistently lower
than your actual skill level. You could
argue that this part here is imposter
syndrome. I know the actual
Dunning-Kruger paper didn't specifically
say this. It is effectively now just a
coined a phrase, but it's doesn't
matter. The point stands. The reason I
bring all of that up is because you
can't really measure your competence,
whether it's Dunning-Kruger or imposter
syndrome or something between or some
combo of the two. If you're not
surrounding yourself with capable,
competent people doing the things that
you care about, you can't really know
where you are. The best way to know is
to be told. The second best way is to
measure yourself against the people
around you who are also doing the thing.
So in order to get more competent, in
order to get smarter, in order to get
better at the things you care about, you
need to be able to know what better is,
and you can't really know this unless
you have the measuring stick around. And
that measuring stick either needs to be
handed to you by somebody else or built
by you using someone else. So as silly
as it is, the reason I slid competence
over earlier to talk about likeability
is that these two go together very well.
The things you do to make yourself more
likable and to surround yourself with
things you like give you the tools you
need to measure how good you're doing
and if you're making real progress or
not. It also will help give you good
guidance as to what you could be
learning or should be learning or what
other people who have the same interests
in you are doing. And another very good
call out from chat here, the surrounding
can be virtual. It absolutely can be. In
fact, for most people here, it probably
will be because sadly, a lot of y'all
don't live in San Francisco because not
everybody can afford to live in a city
where median rent is like 4 grand a
month. And I get that.
It sucks that it's so expensive to be
here and there aren't other good tech
hubs in the world really, but you can
make up for this online. So how do we
pull this all together? How do we go
back to that initial question? How do we
actually learn and grow as a new dev? Is
it better to spend your time nerding out
or should you go slowly through all
these things that everybody says matter?
God, I have a lot of directions I want
to go in with that thought. I'm going to
resist the urge cuz there's so much. The
biggest thing by far is to do the things
you enjoy doing in the space and
surround yourself with others who do as
well. Generally speaking, I don't see a
very enticing future for people who
don't like coding in the code world.
There are some people who hate coding
that are pretty good devs, but if we go
back to this, I would be very surprised
if people who hated coding ever broke
out of the 50th percentile. Maybe
there's a few who just had a really bad
experience but are really gifted that
are slightly above average, but the
average person who hates code is a below
average dev. And this is a dangerous
place to be nowadays. So ideally you
already like code and if you don't, you
should try to find a way to cuz it'll
help a ton. So assuming you found things
you do like in code, maybe you found
some front end libraries that are cool,
maybe you're all in on these agentic
coding tools that you want to make them
go further and do more, maybe you're a
big fan of memory management and low
level stuff, maybe you're a hardware
person. Whatever you like building,
whatever you like using software to
create and put in the world or explore
and go deep on, doesn't matter if you're
building real products people can use or
if you're deep in the trenches of it
memory management. If you get excited
about it and you see a post about it on
Twitter and it makes you smile, that's
probably what you should be working
towards in general in the tech space
right now. So once you have found those
things, what do you do next? The first
big thing is ask questions. I don't want
to make this a whole like stop using AI
thing cuz it's not meant to be that. I
actually did a very good job not talking
about AI much in this video cuz I don't
want it to just be about that. But
instead of asking the AI for a solution,
ask it how to approach finding one. Ask
the AI how to think about these things.
Ask the AI why your existing solution
might not work and ask it specifically,
can you give me one small hint to steer
me in the right direction? Don't let it
generate your solutions, let it unblock
you a bit. Let it encourage you to go
deeper in things. AI is magical when it
lets you go deeper in something you
wouldn't have touched otherwise. It
falls apart when it prevents you from
going deeper. How is not the right
question for AI? Do it is not the right
thing to tell AI. Why is a much better
question to ask. But that's not the only
question you should ask. One of the most
important ones I think you should ask
and not even just to the AI, just in
general,
is who? I think this might be my
greatest career hack. I think this
legitimately might be the reason I got
away with so much [ __ ] so early in my
career and I think this is to this day
why I have been able to find success
especially on the content and open
source sites. When I see something cool,
I am more likely to go to the GitHub
profile to find the creator of the thing
than to read the code of the thing. I
spend much more time on profiles on
GitHub than repos on GitHub because it's
so interesting to dig into who made the
thing, why did they make the thing, what
led them to making this thing, what
experiences did they have that made them
want to this thing to exist, how did
they come to making this thing, how did
they choose to build this thing, how is
it benefited them, are they still
working on it, why are they working on
it, and what do they have in common with
you? If there is a project you find that
speaks to you, something you find cool,
chances are the person who built it has
a lot in common with you. And if you
spend way too much time reading into the
details, you'll never get to do the
rest. The lines of code aren't where the
careers are made or the friendships are
had. So if you see that thing that's
cool, do a bit of lurking. Don't just
rabbit hole on the implementation,
rabbit hole on the history of it, rabbit
hole on the people who built it, on the
people who use it. And Jake just pointed
out a really cool thing in chat, got to
start telling people that I like their
code more. Yeah, there is no cooler DM
to get as an open source maintainer than
thank you for building this. It has been
very helpful for me. No ask, no push, no
thing that takes my brainpower and makes
it so I can't do other stuff, no wasting
of my time, just a smile. Do you know
how many incredible early follows I got
when I had a hundred people who followed
me on Twitter just cuz I like DM'd Ryan
Carniato and said his blog post was
really cool and then he thanked me and
then I asked if I could give him some
copy feedback to like make it read a
little better. He was like, "Oh, [ __ ]
yeah, I'd love that." And then I did it
and changed how he writes. He has
thanked me many times now for helping
him with his communication, which is
crazy. He's one of my [ __ ]
superheroes. I just hit him up cuz I
thought what he was doing was cool and
that's how I got here. I made it to one
of what I would argue is the actual
coolest position in this entire industry
where not only can I hit up any person
in the space that I find cool and
probably get a response, I can also
bring out cool people that I don't think
are getting the attention they deserve.
It's magical. There is nothing cooler
than getting to help somebody get
noticed by the community. Having
somebody like Stypeet, the guy who made
OpenClaw, do a panel with me and call me
his first fan. Dan Vale in chat here
said he hit me up once just to say
thanks for defending game devs and now
we've hung out and cuddled. Like not
wrong, we've hung out on our couch a lot
now. Like you'd be amazed of how many
cool things can happen just by hitting
up somebody who did something cool.
Dan's just a very friendly guy, don't
overread this. In a world of tech, it's
still about the people. I'll go even
further with this one, foo force. In the
world of tech where we're constantly
surrounded by increasingly more boring,
more sloppy AI [ __ ] the human
aspect matters more than ever. A simple,
poorly worded, slightly typo riddled,
clearly written by a human two sentence
DM saying, "Hey, T3 code is so cool. It
inspired me to build more." is so much
[ __ ] cooler than almost anything you
can do for me. My My assistant's gotten
mad at me before because I skipped over
two sponsor DMs to get to the one where
a random person told me how much they
appreciated my work. Yet I still have to
scroll through 30 of them that are
people spamming me with 15 paragraphs
and links to all sorts of [ __ ] they want
me to review for free for them. Don't do
that. Just tell them you like their
work. And I want to set your
expectations straight especially now
that Twitter's DMs are [ __ ] they're
probably not going to respond. But for
every five to 10 of those you do, one or
two might and at least half of them will
eventually see it and read it. And even
if they're too busy to respond which
happens to me a lot, the feeling when
you see that message is still great. And
please don't do this to me. I am one of
the worst people to do this to generally
speaking cuz I am so busy. All the
people who gave me as an example earlier
did this years ago before my DMs were
like 500 new people a day. Do this to
smaller open source people that don't
have a big following or presence because
they need it even more. You could easily
be the first person to hit up somebody
and say your thing is cool. I've even
done this. I got a funny example for
y'all here. This is a package I found
when I was deeply hunting trying to
overhaul the syntax highlighting in T3
chat. I put a lot of work in. I was
about to build my own library wrapping
Shiki and I randomly stumbled upon this
library, React Shiki. It was nearly
exactly what I needed. And when I found
it on GitHub, it had two stars, the
creator and a bot. It might have even
been less. I might have actually been
the first real star on this if not the
first star ever on this. I was blown
away. It was so close to what I needed,
but I wanted to make sure but first off
that it was maintained and second off
like if it wasn't that if I forked it,
they'd be okay with that. So I did some
sleuthing. At the time, Basim was not
really on Twitter and I couldn't find
his Twitter anywhere, but I found his
LinkedIn. So I hit him up. "Hey man,
really like your work on this. Just
curious, are you planning on maintaining
this long term? I will gladly fork
otherwise and give you all the credit in
the world. We just really need this for
T3 chat." He responds two hours later,
"So sorry it took me a bit to get to
you. I thought this was a fishing scam.
I didn't think Theo actually hit me up.
Yes, I plan on maintaining this. I don't
know how you found it. Let me know if I
can help in any way, shape or form. I'll
drop everything to do it." Turned out he
had an IT job in New York where he was
making a not what you would expect tech
salary. He was like repairing computers
and networks for a living. He was
learning to code for fun on the side and
built one of the best implementations of
syntax highlighting I'd ever seen in
React. When I learned he didn't have a
tech job, my first reaction was to be
sad that I didn't have any end rolls
open cuz I would have loved to hire
somebody like him. But I had been
talking to others in the space as I
always do, I do a lot of investing, and
I happened to be talking to the founder
of a company called Assistant UI.
Assistant UI is an open source library
for doing AI chats in your real apps. So
if you want to build an AI chat in your
React app for any of many different
things, Assistant UI is a lot of the
pieces you'll need to do that. Assistant
UI recently did Y Combinator. I think I
had passed on investing but was still
talking to the founder. And when I was
thinking about Basim, I wanted him to
have a real tech job. I wanted him to be
out here. So I referred him to the first
person I had in mind who was doing
something similar, which was an open
source AI chat UI library and back end.
I referred him to Assistant UI thinking
there was no world in which he would get
this job but it would be a good first
interview. I could get some feedback
from the founder, help him get coached
and do his next thing, get another job
somewhere else where he could be hired
like 10 or 15 or so. Nope, no need. Got
hired within a day and got to be the
first engineer joining a very hot new AI
startup from Y Combinator because I saw
his two star library on GitHub, thought
it was cool and DM'd him. And now he
lives out here working full time at a
really cool company. Had to do one
interview to get it. He got the first
job, which is insane. I've ever heard
many a person who did not get the first
gig and he did not ask. If you ask me to
refer you to companies, I'm probably not
going to do it. This is a
tell don't ask thing. Like I will tell
you that I'm going to help you with this
when it makes sense to. Do not ask me to
get you a job. I will immediately write
you off going forward, almost always.
But Basim demonstrated so much [ __ ]
competence that it frustrated me he
didn't have a job. And also, he was
going through some bad imposter
syndrome. He had no idea how good he
was. So much so that getting DM'd by
Theo, he just assumed it was fake.
Somebody trying to scam him. The point
I'm trying to make here is that the best
people to reach out to are the smallest
ones, the ones who are just doing cool
[ __ ] Do it in a selfless way because
that's the point. You're doing it as an
act of appreciation for the things you
find cool. That's why you should do
this. But you'll end up benefiting
greatly long-term, too. And this all
goes back to that middle point earlier.
It's the likeability. If you find
something you like, tell the person who
made it. Respond to them when they do
cool [ __ ] And from that, you'll create
urgency in them
because suddenly they're realizing
people care. They're going to push
harder. They're going to put more effort
in and they're going to do more. They're
going to have more impact. And they're
going to remember you. I remember the
first 10 people who hit me up saying the
[ __ ] I was doing was cool. I'll never
forget how cool it felt to have these
people who I saw the work of that I
thought was awesome hitting me up to
tell me how cool I was when I was a
nobody on Twitter. If I for any reason
needed to get a normal tech job, I would
never have to worry about that. Gabriel
in my chat here will never have to worry
about getting a job. Chris here will
never have to worry about getting a job.
And they didn't get there just by being
really good devs. That part helped. They
did this just by being around because
they care and are excited about these
things. Strive to be the type of person
that gets uncomfortable if they haven't
thanked the creator of the thing they're
relying on. So, how does this all relate
to competence? Well, when you start
asking the who's instead of the how's,
you start to see how the people who do
the things you like got where they are.
And you'll start to see overlapping
patterns between them. You'll see the
things that Ryan Carniato and Shiv and
Julius and Gabriel and all of these
people have in common. And then you'll
just start getting better. I have lots
of other small tips like don't rabbit
hole too hard. There's a lot of benefit
to rabbit holing and AI makes it easier,
but try to explore the tangential
things, too. Like if you're big on front
end, try to do a little bit of design.
Try to do a little bit of API design. If
you're big on back ends, try to get a
little bit into database architecture.
And try to get a little bit into the
front end and the bindings between it
and the back end. If you really into
databases, go up and down a layer.
Wherever you are, try to go slightly
left and right of where you are. Don't
be scared of breadth just because you're
going deep. And don't be scared of depth
just cuz you're going horizontally. The
T-shaped engineer. Absolutely. But I
don't want to just give that type of
practical advice because in the end, all
that matters is people. In a world where
there's more AI slop, where we're being
surrounded by all of this [ __ ]
resume padding crap that is meaningless,
where I'm getting DM'd 15 paragraphs by
somebody who doesn't even speak English
and threw it into AI, which no shame, by
the way. If AI tools make you more
confident sending in message in English
because it's not your native language, I
love that. Just make sure they're under
three sentences, please. The best thing
you can do for yourself is be grateful
for the people who are doing what you
want to. And let that excitement, let
that energy, let that interest bring you
to the coolest possible places it can.
In a world of slop, the only thing that
matters is the human touch. So, find it,
follow it, and eventually you can be it.
And that matters way more than anything
you can learn in class or from a book.
Follow your excitement and you'll find
yourself surrounded with really cool
people who share that excitement. I hope
this gives you a little more confidence
and direction in how you push yourself
as a developer. And also, if you're one
of these experienced devs that is
noticing the junior struggling, that you
take the opportunity to help them as
things change. The world is very
different than the one I grew up in, but
that doesn't mean these parts don't
matter. The humans matter more than they
ever have. And if you're on the other
end of this, try to be a good human to
help the others who are interested in
getting here, too. And if I got anything
else, it's this.
Don't lose hope.
Things are crazier than ever, but if you
just stuck through this whole video,
you're not going to be on that bottom
50% for long. You will find your way out
the other end. Just follow the things
that you're interested in and excited
about, and I'm sure you will find your
way to something awesome. It might take
longer than you hope, but you will get
there.
Until next time.
Peace out.