[00:00] (0.32s)
This needs to get in and if it breaks
[00:02] (2.56s)
the site, I will resign.
[00:04] (4.64s)
This is Michael Novati. He joined
[00:06] (6.96s)
Facebook preipo and shared a ton of
[00:08] (8.96s)
interesting early stories.
[00:10] (10.56s)
Like this is so much better than Zuck's
[00:12] (12.16s)
code. This is the craziest thing though.
[00:14] (14.56s)
The head of HR emailed the five of us
[00:17] (17.04s)
and was like at Facebook. He went from
[00:19] (19.28s)
an intern to a senior staff engineer in
[00:21] (21.44s)
just a few years. Was there anything
[00:23] (23.36s)
common among all the IC7 plus engineers?
[00:26] (26.08s)
The engineers that most impressed me. I
[00:28] (28.48s)
think you'll like the full episode since
[00:29] (29.92s)
I asked some tough questions and he was
[00:31] (31.52s)
transparent throughout. In spirit of
[00:33] (33.36s)
openness, I want to like try to talk
[00:34] (34.80s)
about it but carefully. Do you think
[00:36] (36.72s)
that LMS will kill the coding machine
[00:39] (39.60s)
archetype?
[00:45] (45.68s)
Let's get into the interview. And I
[00:47] (47.52s)
think before we go into, you know,
[00:49] (49.44s)
common topics of how you got promoted to
[00:51] (51.44s)
IC7 or staff or, you know, how you write
[00:54] (54.48s)
so much code, I wanted to go into just
[00:57] (57.92s)
you joining Meta. What was the story
[01:00] (60.40s)
behind you joining and why did you pick
[01:02] (62.00s)
Meta of all companies when it was small
[01:04] (64.00s)
at the time? I started as an intern in
[01:06] (66.08s)
May 2009 and I was in between undergrad
[01:09] (69.84s)
and grad school, which is not like the
[01:11] (71.76s)
most common internship to have. Um, I
[01:14] (74.32s)
was going to do my PhD at University of
[01:16] (76.40s)
Washington in HCI and I was like signed
[01:19] (79.84s)
up, ready to go, had my housing and
[01:21] (81.92s)
everything. I even had a research
[01:23] (83.36s)
assistantship lined up already. I really
[01:25] (85.76s)
wanted to work get some more work
[01:27] (87.52s)
experience at like a top company that
[01:29] (89.28s)
was doing really interesting kind of uh
[01:32] (92.16s)
interesting product work. Um, so I was
[01:34] (94.16s)
really only looking at at the time
[01:35] (95.76s)
Facebook and Google and I had no problem
[01:38] (98.96s)
getting interviews there, which I don't
[01:40] (100.64s)
know, nowadays it seems a lot harder to
[01:42] (102.24s)
even get those interviews, but um, it
[01:44] (104.24s)
wasn't that hard to get interviews. I
[01:45] (105.76s)
think I just applied online for both.
[01:47] (107.76s)
Um, and Meta was just like or Facebook
[01:49] (109.92s)
at the time. It was really like the
[01:51] (111.60s)
perfect team fit which is also not that
[01:54] (114.56s)
common with internships where you
[01:55] (115.92s)
actually I like happened to have
[01:57] (117.68s)
randomly interviewed with a engineer who
[02:00] (120.72s)
was working on um internal collaboration
[02:03] (123.20s)
tools which was like Meta's diff review
[02:06] (126.00s)
tools and task task tools and discussion
[02:08] (128.40s)
tools and I happened to interview with
[02:10] (130.16s)
this person and that's exactly what I
[02:11] (131.44s)
wanted to work on. I really wanted to
[02:12] (132.88s)
work on like the the social network for
[02:15] (135.60s)
work and in making people more
[02:17] (137.44s)
productive and that side of things. So I
[02:19] (139.36s)
was just like almost a perfect fit. I
[02:21] (141.92s)
did well on the lead code questions and
[02:23] (143.60s)
then uh joined his team as and he was my
[02:27] (147.52s)
manager and it started from there. So it
[02:29] (149.36s)
was really just kind of like the stars
[02:30] (150.80s)
aligning.
[02:31] (151.92s)
How big was the company at the time in
[02:33] (153.60s)
terms of engineers?
[02:35] (155.12s)
Yeah, it was about 220ish.
[02:38] (158.32s)
It's a bit there's some debate because
[02:39] (159.84s)
at the time production engineers I don't
[02:41] (161.76s)
think were like classified as software
[02:43] (163.68s)
engineers. So there was like the math
[02:46] (166.48s)
may vary a bit but it's about 200 or so.
[02:49] (169.04s)
And so, you know, I listened I did some
[02:51] (171.36s)
research and I saw that you felt like
[02:53] (173.76s)
you were one of the most into Meta's
[02:56] (176.00s)
culture engineers. What drew you so much
[02:58] (178.64s)
to Meta's culture? Like what were the
[03:00] (180.24s)
your favorite parts?
[03:01] (181.92s)
Yeah, it's it's really interesting. It
[03:03] (183.68s)
was both technical and also the social
[03:06] (186.72s)
vibe you I would say. So, like when I
[03:09] (189.36s)
showed up on day one, I opened up my dev
[03:12] (192.80s)
environment following the instructions
[03:14] (194.24s)
and it was like I was literally running
[03:17] (197.44s)
not the most complicated stack, but it
[03:19] (199.44s)
was even simpler at the time. I was
[03:20] (200.96s)
running Apache locally and PHP and my
[03:23] (203.68s)
dev server and it was just hitting a
[03:26] (206.88s)
database, my SQL database, just like I
[03:29] (209.28s)
would in a side project, except it was a
[03:31] (211.84s)
much larger SQL database um and a
[03:34] (214.24s)
federated one. Um, but it just felt like
[03:36] (216.72s)
a really good fit. I just like I sat
[03:39] (219.28s)
down and it just felt like I was home
[03:40] (220.80s)
kind of vibe. Um, and from that point
[03:42] (222.64s)
forward, I technically I just felt
[03:44] (224.56s)
really like in tune with with how they
[03:47] (227.44s)
were building stuff. And then socially,
[03:49] (229.28s)
I mean, honestly, Facebook was really
[03:51] (231.04s)
cool at the time. It's changed over the
[03:53] (233.04s)
years. It's had its ups and downs. Even
[03:54] (234.96s)
while I was there, I saw like the peaks
[03:56] (236.80s)
and troughs, but it was just like really
[03:59] (239.36s)
cool and it was a cool product that was
[04:02] (242.24s)
that everyone knew about and was talking
[04:04] (244.08s)
about and curious about. I could get
[04:06] (246.24s)
lots of feedback from people about like
[04:08] (248.32s)
what they liked and didn't like and it
[04:10] (250.40s)
was motivating to work on stuff that
[04:12] (252.56s)
like people cared about. Um, and I just
[04:15] (255.28s)
kind of
[04:16] (256.72s)
really wanted to make a good product for
[04:18] (258.80s)
all these people who cared. So, um, both
[04:20] (260.88s)
those things I think. Yeah. When I
[04:23] (263.12s)
joined Facebook and a lot of my peers
[04:25] (265.76s)
also joined as well, PHP was something
[04:29] (269.36s)
that I don't know want to say it scared.
[04:31] (271.76s)
It definitely was something that we were
[04:33] (273.36s)
not attracted to. We thought oh we had
[04:35] (275.76s)
worked with it a little bit here and
[04:37] (277.04s)
there in college was something that was
[04:39] (279.52s)
pretty unattractive. Did you feel
[04:41] (281.84s)
similarly when you joined Meta?
[04:43] (283.76s)
So now Meta um uses primarily hack which
[04:47] (287.60s)
is the derivative of PHP. It's kind of I
[04:50] (290.80s)
don't know if the language is officially
[04:52] (292.08s)
forked or I don't know you can you can
[04:53] (293.44s)
probably comment on that but it went
[04:55] (295.44s)
through multiple stages though to get to
[04:57] (297.36s)
hack. Um and the first step was just
[04:59] (299.68s)
having a like a compiler for PHP that
[05:02] (302.88s)
turned it into more performant code. Um
[05:05] (305.92s)
and those efforts were ongoing at the
[05:08] (308.08s)
time. And there was discussion of like
[05:09] (309.52s)
should the company change from change
[05:11] (311.76s)
rewrite the entire codebase like in Java
[05:14] (314.24s)
or Python or all these things and they
[05:16] (316.32s)
ended up just kind of optimizing the
[05:18] (318.08s)
language and starting to customize it to
[05:20] (320.48s)
address some of the deficiencies like I
[05:22] (322.56s)
think having loose typing was one of the
[05:24] (324.88s)
first things or an early thing that was
[05:26] (326.88s)
added. Yeah. So they kind of I feel like
[05:28] (328.96s)
it PHP off the shelf definitely had the
[05:32] (332.32s)
stigma at the time, but I felt like
[05:34] (334.24s)
Facebook's approach was like we're going
[05:35] (335.76s)
to make this better than any other
[05:37] (337.68s)
language could be because it's going to
[05:39] (339.20s)
be customized at a language level for
[05:41] (341.44s)
how the company uses it. So it's like
[05:43] (343.52s)
easier to use as an engineer, more
[05:45] (345.28s)
performant, and has all those traits. So
[05:48] (348.00s)
like uh both sides of that. So yes and
[05:50] (350.72s)
no is the answer.
[05:52] (352.32s)
Yeah. Yeah. No, definitely. I think PHP
[05:54] (354.24s)
gets more of a negative rap than it
[05:57] (357.04s)
actually deserves and hack is a a much
[06:00] (360.40s)
better experience. Not it's not
[06:02] (362.08s)
comparable to PHP. So that makes sense.
[06:04] (364.72s)
Um on the culture, you know, one of the
[06:07] (367.60s)
early things that I really liked about
[06:10] (370.00s)
uh Facebook was these move fast and
[06:13] (373.12s)
break things culture. I just thought it
[06:14] (374.40s)
was such a cool framing of something
[06:16] (376.08s)
that mattered a lot to people. Since
[06:18] (378.88s)
then, that culture has changed. What are
[06:21] (381.04s)
your thoughts on on that?
[06:22] (382.96s)
I was definitely the move fast and break
[06:25] (385.04s)
things person at the time. I still like
[06:27] (387.04s)
the kind of move fast and break things
[06:28] (388.72s)
framing. Um, personally, I think that
[06:31] (391.04s)
the removing the like break things part
[06:33] (393.84s)
um it felt like it was maybe a little
[06:35] (395.52s)
bit more like the perception on the
[06:36] (396.80s)
outside. There's part of it was like
[06:38] (398.56s)
Facebook communicating to the public
[06:40] (400.08s)
didn't want to communicate that like
[06:41] (401.44s)
people are recklessly like breaking
[06:43] (403.12s)
everything. Um, but the spirit of it
[06:45] (405.84s)
wasn't it wasn't about like breaking. It
[06:48] (408.56s)
wasn't like you're going around like
[06:50] (410.72s)
breaking glass all over the place and
[06:52] (412.48s)
like stepping on and cutting your feet
[06:54] (414.56s)
and like it wasn't that environment. The
[06:56] (416.24s)
idea of breaking things was breaking
[06:58] (418.08s)
norms. More recently when you hear
[07:00] (420.08s)
people talking about first principles
[07:02] (422.32s)
thinking and like not following trends
[07:04] (424.80s)
for the sake of following them like
[07:06] (426.40s)
breaking move fast and break things was
[07:08] (428.24s)
about like trying to break established
[07:10] (430.40s)
norms and thinking about things a
[07:12] (432.72s)
different way and trying things from
[07:14] (434.96s)
scratch. And um it h it was a really
[07:17] (437.60s)
like I think more in the spirit of first
[07:19] (439.92s)
principles thinking than like actually
[07:21] (441.92s)
just like causing havoc. Um so I I still
[07:25] (445.44s)
think that that's a good good motto if
[07:27] (447.36s)
they had it today. But um at the same
[07:30] (450.00s)
time like when a company's larger, more
[07:32] (452.96s)
mature, um stability
[07:36] (456.32s)
like even the smallest bug has millions
[07:39] (459.36s)
of dollars, tens of millions of dollars
[07:41] (461.44s)
of impact sometimes. and stability can
[07:44] (464.00s)
have a real impact so financial impact.
[07:47] (467.28s)
So I think it's also I can see also that
[07:49] (469.44s)
motivation for including it too.
[07:50] (470.96s)
And your throughout your tenure I mean
[07:52] (472.48s)
you started when it was so small at 200
[07:54] (474.48s)
engineers. Did you feel the culture
[07:56] (476.56s)
changing? I think you were there earlier
[07:58] (478.48s)
than I was. So I'm curious like how did
[08:00] (480.32s)
that evolve over time?
[08:01] (481.68s)
So when when I joined and this was um
[08:04] (484.32s)
going back to kind of maybe what was
[08:06] (486.32s)
like appealing about Facebook at the
[08:08] (488.08s)
time. Um the culture is very engineer uh
[08:11] (491.68s)
driven at the time. It still has that
[08:14] (494.56s)
today to some extent and it's a great
[08:16] (496.80s)
place for engineers to work in one of
[08:18] (498.96s)
the top competitive places. But um it
[08:21] (501.52s)
was like to the extreme where like
[08:23] (503.84s)
engineers were very empowered to make
[08:26] (506.56s)
decisions. Um designers and product
[08:29] (509.68s)
managers had to kind of like win over
[08:32] (512.08s)
the engineers and get their buy in to
[08:34] (514.08s)
build something because if the engineer
[08:35] (515.84s)
wouldn't build it, it wouldn't get
[08:37] (517.04s)
built. Um so there was like a lot of uh
[08:40] (520.48s)
like uh engineers were empowered to push
[08:42] (522.88s)
back and negotiate with designers and
[08:45] (525.28s)
engine and I mean these are still things
[08:46] (526.88s)
that happen today but it was just
[08:48] (528.56s)
another level. The internal a lot of the
[08:51] (531.68s)
almost all the internal tools at the
[08:53] (533.28s)
time were written from scratch
[08:55] (535.28s)
internally and employees use them. So
[08:58] (538.64s)
that actually gave like it really set a
[09:01] (541.04s)
tone that like this is a company that is
[09:03] (543.36s)
that is engineering first. It builds the
[09:05] (545.68s)
things it needs. it cares a lot about
[09:07] (547.36s)
like what it's building and what it's
[09:09] (549.28s)
using and that part of the culture I
[09:11] (551.12s)
like loved. I mean the IPO in 2012 was a
[09:14] (554.00s)
turning point where the stock like
[09:16] (556.32s)
crashed after the not crashed completely
[09:18] (558.40s)
but it tanked after the IPO um because
[09:20] (560.88s)
people were like how is Facebook going
[09:22] (562.32s)
to make any money and it's like yeah
[09:23] (563.52s)
that's a good question. You know I
[09:24] (564.88s)
started in 2009 and for three years we
[09:26] (566.88s)
didn't really talk that much about like
[09:28] (568.88s)
how we're going to make money. Um, and
[09:31] (571.44s)
you know, it's like to have a to have a
[09:33] (573.92s)
business that can make money, to hire
[09:36] (576.56s)
more engineers, to build really cool
[09:38] (578.40s)
stuff that hopefully has a positive
[09:40] (580.64s)
impact to you have to like in at least
[09:44] (584.48s)
capitalist society, you have to make
[09:46] (586.00s)
money to keep that going and keep
[09:47] (587.84s)
growing it. Um, so I kind of had a more
[09:50] (590.16s)
mature view as we grew and understood
[09:52] (592.56s)
how changes to optimize ads or to
[09:56] (596.88s)
changes that focused on saving money or
[09:59] (599.36s)
making more efficient infrastructure
[10:00] (600.96s)
became more important. Um, and there was
[10:03] (603.44s)
different competing factors. I would say
[10:05] (605.60s)
early on engineers would have more like
[10:07] (607.92s)
like senior engineers would have more
[10:09] (609.84s)
head-to-head discussions about how to
[10:11] (611.52s)
build stuff like somewhat independently
[10:13] (613.52s)
of management and like towards the end
[10:15] (615.68s)
you would have more like VPs of two
[10:17] (617.60s)
different teams like negotiating stuff
[10:19] (619.84s)
and then it like percolating down. Um so
[10:22] (622.24s)
that's just an example of the
[10:23] (623.28s)
engineering empowerment um too.
[10:25] (625.44s)
I see. What was it like when Meta IPOed?
[10:28] (628.32s)
What was like the feeling among the
[10:30] (630.24s)
team? Was it ecstatic or people were
[10:32] (632.88s)
scared cuz the the drop in the stock
[10:35] (635.92s)
People definitely weren't scared. Um I
[10:38] (638.48s)
would say that it was like a celebratory
[10:39] (639.92s)
moment. It started off not not being one
[10:42] (642.32s)
of those things like um I feel like Mark
[10:44] (644.64s)
Zuckerberg was really good early on
[10:46] (646.24s)
about like keeping things grounded and
[10:49] (649.12s)
humble and not getting caught up in like
[10:51] (651.36s)
headlines and the press and perception
[10:53] (653.52s)
on the outside. Um it was just very much
[10:56] (656.24s)
like you know IPOing is a very rational
[10:59] (659.60s)
thing to do to raise funding for the
[11:02] (662.48s)
company and that's what an IPO is. It's
[11:05] (665.60s)
not like a party or anything even and
[11:08] (668.56s)
and it was very rational. At the same
[11:10] (670.80s)
time though it's like it is kind of like
[11:12] (672.56s)
an event that can pull employees
[11:14] (674.24s)
together. So the actual IPO they like
[11:16] (676.40s)
got the NASDAQ to
[11:18] (678.24s)
there's like some button that like opens
[11:20] (680.08s)
the stock exchange or whatever. I don't
[11:21] (681.44s)
know. They got them to like bring the
[11:22] (682.72s)
button to Facebook campus and set up a
[11:25] (685.04s)
stage and like someone like rang the
[11:27] (687.12s)
bell or posted pushed the button or
[11:28] (688.72s)
whatever and like I can't there was some
[11:30] (690.72s)
talk about how they actually like hooked
[11:32] (692.16s)
that up through some special like
[11:34] (694.40s)
networking system so that it actually
[11:36] (696.16s)
was the button and not I don't it was
[11:38] (698.96s)
like some there's way more to that story
[11:40] (700.80s)
that you should dig into.
[11:42] (702.96s)
Ask ask internally about that. There's
[11:44] (704.56s)
probably something about it. But yeah,
[11:45] (705.84s)
but it was really cool. like uh Mark
[11:47] (707.20s)
Zuckerberg's parents were standing like
[11:48] (708.72s)
right beside me in the crowd and like I
[11:51] (711.28s)
even told told Mark about this story
[11:53] (713.36s)
because they just happened to be beside
[11:55] (715.04s)
me and and it was like the like kind of
[11:57] (717.20s)
tear in their eyes like it's a big
[11:58] (718.72s)
moment for like you know and you see
[12:00] (720.72s)
like kind of that person so like you see
[12:02] (722.32s)
kind of like all your friends growing up
[12:03] (723.92s)
and doing something and I thought that
[12:06] (726.64s)
part was very impactful on my life but
[12:09] (729.84s)
it wasn't like um yeah I mean
[12:11] (731.60s)
financially all the stock vested like
[12:13] (733.52s)
six months after the IPO so none of the
[12:15] (735.36s)
employees actually had like any money or
[12:17] (737.12s)
anything at the time. They were all the
[12:18] (738.96s)
same same as they were before the IPO
[12:21] (741.60s)
day. But
[12:22] (742.32s)
right when it vested, what was that
[12:25] (745.04s)
after it had tanked a bunch?
[12:27] (747.04s)
Yeah, it was actually it had tanked down
[12:29] (749.28s)
to I remember this day because me and a
[12:31] (751.76s)
bunch of it's like 20 of us. We went to
[12:34] (754.24s)
go see a movie. We were in the movie
[12:36] (756.56s)
theater and like everyone's sitting
[12:38] (758.08s)
there and then like the stock hit their
[12:39] (759.92s)
accounts. So it's like all the phones
[12:41] (761.68s)
like went off and it's like your vested
[12:43] (763.84s)
stock has been deposited. Um yeah, and
[12:46] (766.32s)
it was kind of I remember that moment.
[12:47] (767.76s)
Um but the IPO didn't really like change
[12:50] (770.64s)
people's behavior short term. I think
[12:52] (772.88s)
like much longer term like financially
[12:55] (775.76s)
people could afford houses and have kids
[12:58] (778.48s)
having kids in the Bay Area is like
[13:00] (780.00s)
super expensive. So having kids is is
[13:02] (782.96s)
even like a a thing that you a decision
[13:05] (785.68s)
you might make after having some more
[13:07] (787.68s)
savings. So like there was some impact
[13:09] (789.44s)
there longer term, but like short term
[13:11] (791.20s)
it didn't really impact people. Did you
[13:13] (793.36s)
hold because you say, "Oh, this is this
[13:16] (796.16s)
is going to go off and you know, we've
[13:18] (798.80s)
got this." Or were you the type that's
[13:21] (801.12s)
diversify, put it in index funds type
[13:23] (803.36s)
of, you know, as soon as you get
[13:25] (805.04s)
vestings?
[13:26] (806.00s)
I held my all my IPO stock and I still
[13:28] (808.24s)
have all of it. Um, but the
[13:30] (810.72s)
Oh my god, you really believe
[13:32] (812.56s)
But I uh sold on vest after at some
[13:36] (816.08s)
point in time, I don't remember when,
[13:37] (817.68s)
but at some point in time, I sold it
[13:38] (818.88s)
vest to diversify. It was very fortunate
[13:41] (821.20s)
for the younger people who like came out
[13:43] (823.68s)
of school and didn't have a lot of
[13:45] (825.04s)
financial literacy to have like the the
[13:48] (828.24s)
old guards so to speak who came who went
[13:50] (830.88s)
through like Google IPO and Yahoo IPO
[13:52] (832.96s)
and like there was like classes and
[13:54] (834.56s)
stuff on like how to how to man just
[13:57] (837.52s)
they were had nothing to do with like
[13:59] (839.20s)
the IPO per se just how to manage
[14:01] (841.28s)
finances and how to deal with stock like
[14:04] (844.08s)
stockbased compet I grew up in Canada
[14:06] (846.24s)
stock-based compensation was like I had
[14:08] (848.16s)
no idea what that was like I and I can
[14:10] (850.88s)
read the paperwork. I can do the math,
[14:12] (852.40s)
but like I didn't really like deeply
[14:14] (854.88s)
understand it. And it was not my day
[14:17] (857.12s)
job. And I so having these these like
[14:19] (859.68s)
lessons and stuff was was infinitely
[14:21] (861.92s)
helpful in like understanding how to
[14:24] (864.08s)
manage and how to think about the risk
[14:25] (865.76s)
and and these different things. I don't
[14:28] (868.24s)
know if they still have those classes
[14:29] (869.52s)
today, but they were very useful.
[14:32] (872.16s)
I mean, Meta Stock went down to like 90
[14:35] (875.04s)
or something like a year or two ago.
[14:37] (877.28s)
Were you sweating at that point or you
[14:39] (879.52s)
don't? It's just kind of out of sight,
[14:40] (880.88s)
out of mind.
[14:41] (881.44s)
I mean, I have like diversified enough
[14:43] (883.28s)
now that it's not like my uh retirement
[14:46] (886.24s)
like collapsed like type thing. It
[14:48] (888.40s)
wasn't that like but it was definitely
[14:50] (890.40s)
sweating a bit like
[14:52] (892.00s)
like oh these numbers are low like
[14:56] (896.08s)
Yeah. Yeah. I mean because 90 I mean
[14:58] (898.16s)
when I started in 2018 it was like 180
[15:03] (903.44s)
or something 150 I forgot exactly. So it
[15:06] (906.32s)
went to half of that like two years ago.
[15:07] (907.84s)
It's kind of crazy.
[15:08] (908.56s)
I do know people that started during
[15:10] (910.08s)
that time though who in like now three
[15:12] (912.96s)
years like almost 6x their stock which
[15:15] (915.28s)
is I mean at form so formation uh where
[15:18] (918.40s)
I'm what I'm doing now and we're helping
[15:20] (920.48s)
people prepare for interviews,
[15:22] (922.80s)
understand offers. It's definitely one
[15:24] (924.88s)
of the one of the pieces of advice I
[15:26] (926.64s)
give from just seeing these fluctuations
[15:28] (928.80s)
over the years when people are like
[15:30] (930.08s)
comparing offers and they're trying to
[15:32] (932.88s)
compare them in today's dollars headto
[15:34] (934.80s)
head and they're sweating over like
[15:36] (936.64s)
singledigit percentage differences. Like
[15:39] (939.36s)
it's a lot of money. Engineers get paid
[15:41] (941.12s)
a lot of money. It's it's reasonable to
[15:43] (943.84s)
care about like the thousands of dollars
[15:46] (946.00s)
differences, but at the same time
[15:47] (947.68s)
though, like they're kind of estimates
[15:49] (949.20s)
based off of current situation and
[15:51] (951.84s)
things change so much and stocks go up
[15:54] (954.24s)
and down and acquisitions happen and
[15:57] (957.76s)
scandals happen and like there's so many
[15:59] (959.52s)
things beyond your control that like I
[16:01] (961.44s)
always advise people to prioritize an
[16:04] (964.00s)
offer or a company that you're going to
[16:05] (965.76s)
fit really well at and perform really
[16:07] (967.68s)
well at because your performance over
[16:10] (970.08s)
time is more within your control and you
[16:12] (972.16s)
will be financially rewarded for that
[16:13] (973.84s)
performance more within your control
[16:15] (975.76s)
than trying to guess a stock um type
[16:19] (979.68s)
thing. Yeah.
[16:20] (980.88s)
Yeah. No, definitely. I mean, especially
[16:22] (982.80s)
for early career, I mean, just one promo
[16:25] (985.28s)
could be, you know, 40% more
[16:27] (987.44s)
compensation and relatively in your
[16:30] (990.08s)
control. So, I was talking with one of
[16:32] (992.24s)
my old managers who's been on Meta for a
[16:34] (994.40s)
long time and I mentioned that I was
[16:36] (996.48s)
going to talk to you and he said that
[16:37] (997.92s)
you had some like internal newsletter or
[16:40] (1000.56s)
something that was really popular. I'm
[16:42] (1002.80s)
kind of curious to learn more about
[16:44] (1004.00s)
that. What What was that and what made
[16:45] (1005.76s)
you start it? It sounds really immature
[16:48] (1008.40s)
in retrospect, but I had this like it
[16:50] (1010.64s)
was called the weekly navati. So, I I
[16:52] (1012.96s)
wrote like a weekly blog post type
[16:55] (1015.92s)
thing. So the notes product on Facebook,
[16:59] (1019.20s)
it's like the blogging platform type
[17:01] (1021.12s)
product. It was unowned when I joined in
[17:05] (1025.12s)
2009. There's no no one product
[17:07] (1027.68s)
engineering wise like it was just code
[17:09] (1029.68s)
that existed. So it was something I
[17:11] (1031.92s)
worked on a lot at hackathons um
[17:14] (1034.00s)
improving it. I added like it was
[17:16] (1036.00s)
literally like plain text. It was like
[17:17] (1037.60s)
you could write plain text notes and
[17:19] (1039.20s)
post them. So I made I supported rich
[17:22] (1042.00s)
text and one in a single hackathon. It's
[17:24] (1044.48s)
uh like on 11,000. You can probably find
[17:26] (1046.56s)
the PR somewhere, but uh or the diff
[17:28] (1048.80s)
somewhere, but it was 11,000 lines. I
[17:30] (1050.56s)
think it's like not how you build code.
[17:32] (1052.40s)
So, I had to like organize a meeting to
[17:34] (1054.88s)
review that code where like get
[17:36] (1056.88s)
engineers in person because no one could
[17:38] (1058.56s)
actually review 11,000 lines of code. It
[17:40] (1060.48s)
was anyways um had rich text editing and
[17:43] (1063.84s)
kind of spruce them up a little bit. Um
[17:46] (1066.00s)
and it kind of evolved. I kept adding a
[17:48] (1068.48s)
couple things here and there, tags. Uh,
[17:50] (1070.96s)
I was kind of using it a little bit like
[17:52] (1072.48s)
dog fooding, which is a big thing at at
[17:54] (1074.32s)
Facebook, like using the product
[17:55] (1075.92s)
yourself and poking holes in it and
[17:58] (1078.40s)
trying to give feedback and stuff like
[18:00] (1080.16s)
that. So, yeah, I was using it myself to
[18:02] (1082.08s)
post a lot of notes in general and then
[18:04] (1084.56s)
um I had a couple of posts that were
[18:06] (1086.72s)
just slightly controversial
[18:08] (1088.40s)
controversial about like product
[18:09] (1089.92s)
building and yeah, different like kind
[18:11] (1091.92s)
of hot topics and they got a lot of
[18:14] (1094.48s)
traction and discussion. So, I started
[18:17] (1097.12s)
posting more regularly. Some of them
[18:18] (1098.88s)
were very off-the-cuff like random
[18:20] (1100.88s)
things. Like there's one that was like,
[18:22] (1102.08s)
"If I was CEO, what would I do?" Um,
[18:25] (1105.60s)
Facebook was adamant about only having a
[18:27] (1107.60s)
Menllo Park campus and not having
[18:29] (1109.60s)
anything in San Francisco. And I was
[18:31] (1111.44s)
like, "We need to have stuff in San
[18:32] (1112.64s)
Francisco. All the new startups like
[18:34] (1114.24s)
Stripe and Uber, they're all in San
[18:36] (1116.08s)
Francisco and they're like taking our
[18:37] (1117.52s)
employees and everyone wants to be there
[18:39] (1119.44s)
and all the employees are moving to San
[18:40] (1120.80s)
Francisco." And like Facebook was just
[18:42] (1122.72s)
like, "No San Francisco office. No San
[18:44] (1124.48s)
Francisco office." So, I was posting a
[18:46] (1126.48s)
lot about that and I had like one post
[18:48] (1128.88s)
about how they should open a South San
[18:50] (1130.48s)
Francisco office and that actually
[18:52] (1132.72s)
happened. So, I was happy that that one
[18:55] (1135.12s)
like came true.
[18:56] (1136.16s)
When you look back on that writing, um
[18:58] (1138.72s)
because I know some people do advocate
[19:00] (1140.56s)
like, you know, you should start some
[19:02] (1142.72s)
sort of internal, you know, post in some
[19:05] (1145.12s)
Slack group or workplace group or email
[19:08] (1148.32s)
newsletter just internally. Would you
[19:10] (1150.72s)
recommend it? Like were there outcomes
[19:12] (1152.88s)
from that that looking back you say that
[19:15] (1155.68s)
was a great idea?
[19:16] (1156.80s)
Overall I would say that was not a good
[19:19] (1159.60s)
idea in retrospect.
[19:20] (1160.88s)
Oh really? Um why is that?
[19:22] (1162.32s)
So okay there wasn't a strategic reason
[19:24] (1164.48s)
to do it. It was really like I call it
[19:27] (1167.04s)
like open and transparent and I think it
[19:28] (1168.80s)
comes from Facebook values. Facebook's
[19:30] (1170.88s)
values of being open. Um at the time
[19:33] (1173.76s)
that was like a a strong value. Um, and
[19:36] (1176.16s)
I really just believe in like removing
[19:39] (1179.20s)
like removing like the kind of surface
[19:41] (1181.84s)
pleasantries and facades and like what
[19:44] (1184.40s)
are things like more objectively and
[19:47] (1187.28s)
like what can we do? How can we improve
[19:49] (1189.12s)
them or like if you build a product and
[19:51] (1191.04s)
it got like a lot of traction but it was
[19:53] (1193.20s)
there's always some luck involved. But
[19:54] (1194.72s)
if it was more like the circumstances
[19:57] (1197.28s)
that made the product grow and not the
[19:59] (1199.44s)
substance, we want to be like real about
[20:01] (1201.04s)
that. Like this is awesome. we got
[20:02] (1202.64s)
really lucky that this product took off
[20:04] (1204.32s)
and it's not that great. We need to
[20:06] (1206.48s)
improve it. Um whereas like I see a lot
[20:08] (1208.72s)
of startups, a lot of boot camps like if
[20:11] (1211.28s)
they get a lot of little bit of traction
[20:13] (1213.92s)
um they kind of like think that that's
[20:15] (1215.60s)
how that it must be justification that
[20:17] (1217.84s)
the thing they built was awesome and
[20:19] (1219.36s)
they kind of like don't hold the like
[20:21] (1221.28s)
highest bar to keep ruthlessly iterating
[20:24] (1224.24s)
on it. a bit of a tangent, but my
[20:25] (1225.84s)
generally my like philosophy is to be
[20:27] (1227.92s)
just fairly like open and direct and I
[20:30] (1230.64s)
want people to be that way with me and
[20:32] (1232.48s)
like create that environment where
[20:34] (1234.48s)
people are just okay talking about
[20:35] (1235.84s)
stuff. So, it was really about pushing
[20:37] (1237.84s)
Facebook's values and trying to have a
[20:40] (1240.56s)
company where people feel open about
[20:42] (1242.32s)
talking about things and it had nothing
[20:43] (1243.60s)
to do with like performance reviews or
[20:46] (1246.64s)
growing influence or anything like that.
[20:48] (1248.48s)
It was like there was no other
[20:50] (1250.08s)
motivation. But in retrospect, I would
[20:52] (1252.24s)
say I would not do it because actually
[20:55] (1255.04s)
caused this is like something I didn't
[20:56] (1256.56s)
deal with well at the time and I still
[20:58] (1258.96s)
don't know how I would have dealt with
[20:59] (1259.84s)
it if it caused some like friction and
[21:01] (1261.60s)
tension sometimes like there was one
[21:03] (1263.44s)
post where I just openly called out that
[21:07] (1267.12s)
uh Facebook has software engineer job
[21:09] (1269.60s)
titles where you can like be a software
[21:12] (1272.64s)
engineer and move around to different
[21:14] (1274.88s)
teams and it's a pretty like it's what
[21:18] (1278.00s)
you think of canonically as like the
[21:19] (1279.76s)
software engineer but then they had all
[21:21] (1281.20s)
these other engineers like network
[21:23] (1283.28s)
engineer data engineer and those
[21:25] (1285.60s)
engineers like couldn't change teams
[21:27] (1287.76s)
easily. They were hired to like teams
[21:30] (1290.32s)
and they weren't quite like the same
[21:32] (1292.16s)
like privileges as a software engineer.
[21:34] (1294.96s)
And I just like called this out very
[21:36] (1296.40s)
openly like out of the blue and I didn't
[21:39] (1299.36s)
realize that that was like a big tension
[21:41] (1301.04s)
behind the scenes and it like caused a
[21:43] (1303.28s)
lot of like friction with different
[21:45] (1305.68s)
executives who were like Michael I'm
[21:47] (1307.76s)
working on this problem. I didn't like
[21:49] (1309.76s)
really did not help us to like call this
[21:51] (1311.60s)
out like we have to do damage control
[21:53] (1313.68s)
now like we need to talk about this and
[21:55] (1315.36s)
it like kind of that off-the-cuff style
[21:57] (1317.52s)
like does have consequences. So I
[21:59] (1319.76s)
learned that
[22:00] (1320.80s)
and I try to try to adopt that still
[22:03] (1323.28s)
today but I still am very big on on
[22:06] (1326.00s)
Reddit and on LinkedIn on just trying to
[22:08] (1328.00s)
be like direct and open and unfiltered a
[22:11] (1331.20s)
little bit with with thoughts
[22:13] (1333.20s)
to try to show people that it's okay to
[22:15] (1335.68s)
do that. Did HR ever reach out to you
[22:18] (1338.08s)
saying hey you got to take that down?
[22:21] (1341.92s)
yes. There were not issues with sketchy
[22:24] (1344.96s)
type things like oh this is like uh you
[22:27] (1347.76s)
need to take this down like for the comp
[22:29] (1349.76s)
like I don't know. Um, but I got
[22:31] (1351.36s)
feedback from HR on certain things. Like
[22:33] (1353.60s)
I had a post that was about which
[22:35] (1355.76s)
companies are like hiring Facebook like
[22:37] (1357.92s)
poaching Facebook engineers and Uber was
[22:40] (1360.72s)
like giving Facebook engineers like very
[22:42] (1362.64s)
large stock grants at the time and HR
[22:45] (1365.68s)
was like not super they gave me feedback
[22:47] (1367.52s)
that like that kind of post they thought
[22:49] (1369.76s)
it could incentivize people to like
[22:51] (1371.68s)
explore other opportunities. Um, and
[22:54] (1374.24s)
they, it's not like I can't do it, but
[22:56] (1376.40s)
they just, it was just more like
[22:58] (1378.00s)
feedback that like, hey, did you realize
[23:00] (1380.16s)
that you might incentivize people to
[23:02] (1382.00s)
like consider other opportunities
[23:04] (1384.40s)
unintentionally with that post? And I
[23:06] (1386.16s)
was like, no, I didn't realize that. And
[23:07] (1387.68s)
it's like these were more off-the cuff
[23:09] (1389.36s)
thoughts and maybe it wasn't worth the
[23:11] (1391.52s)
the friction. But
[23:13] (1393.20s)
yeah. Yeah. Even in that case, I like
[23:16] (1396.08s)
when I got that feedback about the
[23:18] (1398.16s)
engineers going to competitors, I was
[23:19] (1399.60s)
like a bit concerned and I messaged Mark
[23:21] (1401.12s)
Zuckerberg directly and asked him like
[23:23] (1403.20s)
how he felt about it and he was totally
[23:24] (1404.96s)
fine with it and encouraged me to keep
[23:27] (1407.04s)
posting. So I like felt like it was like
[23:30] (1410.00s)
okay to do that and I I was still
[23:32] (1412.64s)
motivated to keep keep posting. But
[23:35] (1415.04s)
you could directly message Mark
[23:36] (1416.72s)
Zuckerberg and he would reply. Yeah, I
[23:38] (1418.80s)
mean when I joined Facebook was quite
[23:41] (1421.04s)
small. So I like interacted with Bos I
[23:44] (1424.40s)
think was my direct manager, skit
[23:46] (1426.16s)
manager for a while and I regularly
[23:48] (1428.88s)
interacted with him even when I left
[23:50] (1430.80s)
like I messaged all the executives
[23:52] (1432.40s)
one-on-one like Chris Cox and Shrep and
[23:54] (1434.80s)
Jay and Bos and and Zach and like told
[23:57] (1437.68s)
them I'm leaving and you know they
[23:59] (1439.76s)
responded thanking me for the
[24:01] (1441.36s)
contributions and stuff like I feel I
[24:02] (1442.80s)
had a relationship with all the people
[24:04] (1444.16s)
all the executives at the time but it
[24:05] (1445.68s)
was kind of from joining when it was
[24:07] (1447.28s)
small and from just genuinely
[24:09] (1449.68s)
interacting with them I'd say of all The
[24:11] (1451.60s)
people though Mark I like got to know
[24:13] (1453.60s)
more personally too outside of work a
[24:16] (1456.08s)
little bit and have like the closest
[24:18] (1458.16s)
relationship with him of all the
[24:19] (1459.36s)
executives but I have not talked to many
[24:21] (1461.28s)
of them for the past couple years as
[24:24] (1464.16s)
Facebook has really like exploded but
[24:26] (1466.72s)
when you had just joined I guess 200
[24:28] (1468.56s)
people probably not but did Zuck still
[24:31] (1471.36s)
write any code like did you ever see a
[24:33] (1473.36s)
diff from him
[24:34] (1474.24s)
I actually worked with him on a
[24:35] (1475.52s)
hackathon in 2009 Zach had this
[24:38] (1478.16s)
hackathon idea where he was like I think
[24:40] (1480.08s)
that anyone should be able to put like
[24:41] (1481.84s)
any emoji to any post as a reaction. And
[24:44] (1484.96s)
this was like in 2009 and now this is
[24:46] (1486.72s)
actually like the norm everywhere. So he
[24:48] (1488.48s)
was right.
[24:49] (1489.52s)
I was like a bit skeptical but I thought
[24:51] (1491.36s)
like it sounded like technically
[24:53] (1493.12s)
feasible that I could help build that.
[24:54] (1494.72s)
So I I was like working with him on that
[24:56] (1496.64s)
during a hackathon and uh with another
[24:59] (1499.52s)
engineer Tom Whitner. We kind of got it
[25:01] (1501.60s)
working but uh the code was just so bad
[25:04] (1504.72s)
we it never got shipped at the time. But
[25:06] (1506.88s)
he Mop just like did not give up on that
[25:09] (1509.84s)
idea though. And like I remember when um
[25:12] (1512.48s)
I think Sammy Krug I think is still at
[25:14] (1514.88s)
Meta. But I think she was the PM if I
[25:17] (1517.52s)
remember correctly. She was the PM who
[25:19] (1519.28s)
like led the reactions initiative and
[25:21] (1521.20s)
when it launched I was like wow like
[25:23] (1523.28s)
this it was done like properly and well
[25:25] (1525.76s)
and like well designed and well
[25:28] (1528.40s)
implemented like this is so much better
[25:29] (1529.92s)
than Z code.
[25:32] (1532.72s)
But uh there's also another there was
[25:34] (1534.32s)
another time though where he actually
[25:35] (1535.60s)
merged a PR and this is actually like a
[25:37] (1537.68s)
Facebook like this is a crazy story but
[25:40] (1540.32s)
um there was like this lockdown period
[25:41] (1541.84s)
in 2010 where Facebook was very
[25:45] (1545.44s)
concerned about plus um potentially
[25:48] (1548.64s)
making a dent into Facebook's user base
[25:51] (1551.52s)
and there was a lockdown period where
[25:53] (1553.60s)
they really wanted to ship like a bunch
[25:55] (1555.92s)
of features really fast. There was food
[25:58] (1558.72s)
served on the weekend. It was like
[26:00] (1560.40s)
pretty pretty intense and I was like
[26:02] (1562.96s)
again the all in person so I was there
[26:04] (1564.72s)
like all weekend but during that period
[26:06] (1566.64s)
I at one of the company uh Friday Q&A
[26:09] (1569.68s)
companywide Q&As's I basically made a
[26:13] (1573.20s)
bet with Zuck that he wouldn't like if
[26:16] (1576.16s)
he was able to commit code by the end of
[26:18] (1578.72s)
lockdown then I would like stop
[26:20] (1580.96s)
ripsticking which was a skateboard like
[26:23] (1583.60s)
thing that was very dangerous that's now
[26:25] (1585.44s)
banned
[26:26] (1586.00s)
that I would do around the office and
[26:27] (1587.76s)
then if he didn't commit the code I I
[26:29] (1589.60s)
can't remember what the penalty was and
[26:32] (1592.00s)
I don't remember what it was.
[26:33] (1593.44s)
Ripstick is that thing that like you go
[26:35] (1595.52s)
like this, right?
[26:36] (1596.32s)
Yeah. You have to wield skateboard and
[26:38] (1598.32s)
you have to like wiggle your hips. I
[26:40] (1600.08s)
like got got really good at it. But um
[26:43] (1603.20s)
it was really dangerous. So like a lot
[26:45] (1605.04s)
of there's rumors that Facebook's health
[26:47] (1607.20s)
insurance premiums were significantly
[26:49] (1609.12s)
higher than other tech companies because
[26:51] (1611.04s)
these ripsticks were like scattered
[26:52] (1612.56s)
throughout the office and there were so
[26:53] (1613.92s)
many injuries. Ripsticks were eventually
[26:55] (1615.84s)
banned I think in like 2012ish.
[26:59] (1619.12s)
This is the craziest thing though. The
[27:01] (1621.04s)
week before the formal ban went into
[27:02] (1622.88s)
place, the head of HR emailed like the
[27:07] (1627.12s)
five most prominent rip stickers at the
[27:09] (1629.36s)
company, the head of HR emailed the five
[27:12] (1632.24s)
of us and was like, "Can you give us
[27:14] (1634.16s)
feedback on this draft banning ripsticks
[27:17] (1637.04s)
and at draft email banning ripsticks?"
[27:20] (1640.24s)
And at the I didn't realize this, but
[27:21] (1641.76s)
this is like a classic technique to try
[27:23] (1643.36s)
to get buy in from like opponents is to
[27:26] (1646.88s)
try to bring them into the process more.
[27:29] (1649.28s)
So this was actually like a a buy like
[27:31] (1651.92s)
hey like hey you know ripsticks are
[27:33] (1653.76s)
going to get banned but can you give us
[27:35] (1655.04s)
like feedback on how we communicate this
[27:37] (1657.44s)
like I want to talk to her about like
[27:39] (1659.28s)
this part of her job but I just can't
[27:40] (1660.56s)
imagine being like the head of Facebook
[27:42] (1662.32s)
HR like tens of thousands of people and
[27:45] (1665.04s)
like having to ban ripsticks and having
[27:47] (1667.28s)
to get buy in from like these critical
[27:50] (1670.32s)
Um or else it could be like a revolt.
[27:52] (1672.48s)
That was like a big tangent. But yeah, I
[27:54] (1674.40s)
I just
[27:54] (1674.80s)
Oh yeah. What about the Zuck thing or he
[27:56] (1676.48s)
merged the PR and Okay.
[27:58] (1678.08s)
So basically it was a Yeah, bet in front
[27:59] (1679.52s)
of the whole company and then he
[28:00] (1680.72s)
actually like merged the PR.
[28:02] (1682.64s)
Um so then I think I was banned from
[28:05] (1685.44s)
riding ripsticks
[28:07] (1687.84s)
out indoors or outdoors. I think they
[28:09] (1689.76s)
like qualified it just to there was like
[28:12] (1692.48s)
a loophole. But yeah, there's these all
[28:14] (1694.56s)
these stories of like early Facebook
[28:16] (1696.56s)
where Zach actually wrote a lot of the
[28:18] (1698.80s)
code. When you first got there, was a
[28:20] (1700.56s)
lot of it, you know, you look at the git
[28:22] (1702.64s)
blame or I don't know what what uh
[28:24] (1704.88s)
source control early was. Would you see
[28:28] (1708.24s)
like those people's names in there?
[28:30] (1710.72s)
Yeah. Um occasionally, yeah, there was a
[28:32] (1712.56s)
bit I think there was a wave of
[28:34] (1714.24s)
engineers like in the Facebook kind of
[28:36] (1716.96s)
internal lore. the first engineers at
[28:40] (1720.40s)
Facebook were not known to be writing
[28:42] (1722.88s)
the like best quality code per se. Um,
[28:45] (1725.84s)
but they wrote code fast and like they
[28:49] (1729.44s)
did a good job of what they were doing.
[28:51] (1731.20s)
But there there's kind of like this like
[28:53] (1733.92s)
wave of engineers where mic um where
[28:57] (1737.28s)
Facebook got like poached a bunch of
[28:59] (1739.12s)
former Harvard people from Microsoft. I
[29:01] (1741.52s)
think Bos was in that wave too. Um but
[29:03] (1743.60s)
there was kind of like a wave of more
[29:04] (1744.96s)
like mature or slightly more experienced
[29:07] (1747.12s)
engineers who came in started laying out
[29:09] (1749.84s)
more more structure and framework and
[29:12] (1752.16s)
then they also brought in some other
[29:14] (1754.32s)
people at the time who really started
[29:16] (1756.48s)
writing like more of the core
[29:18] (1758.08s)
abstractions and the stuff that was the
[29:20] (1760.56s)
foundation for the product
[29:21] (1761.52s)
infrastructure team. Um I don't know if
[29:23] (1763.28s)
the team still exists today but um it
[29:25] (1765.92s)
existed for a really really long time.
[29:28] (1768.08s)
um who builds all those core
[29:29] (1769.36s)
abstractions and maintains them and
[29:33] (1773.04s)
um that wave of people their names are
[29:35] (1775.12s)
like all over the code base like Evan
[29:36] (1776.80s)
Priestley and Putnham and um these
[29:39] (1779.84s)
people. So these were my role models
[29:41] (1781.36s)
when I joined when I wanted to be the
[29:44] (1784.08s)
coding machine who writes a lot of code
[29:45] (1785.84s)
and I saw these people's names. I was
[29:47] (1787.52s)
like those were kind of my role models
[29:48] (1788.96s)
of who I wanted to be.
[29:50] (1790.08s)
Yeah. I'm kind of curious, you know, you
[29:51] (1791.92s)
you grew into such a strong engineer,
[29:55] (1795.36s)
uh, senior staff, IC7. Who were the
[29:59] (1799.04s)
other engineers that you looked at that
[30:00] (1800.80s)
you said those people really impressed
[30:02] (1802.64s)
me and why? The engineers that most
[30:04] (1804.72s)
impressed me was the product
[30:06] (1806.24s)
infrastructure team working on like the
[30:08] (1808.88s)
React framework uh nowadays, but at the
[30:11] (1811.68s)
time it was more like the PHP
[30:13] (1813.04s)
abstractions. Um like Nick Shrock and
[30:16] (1816.96s)
Ola and um the they were kind of it was
[30:21] (1821.36s)
like building out the the end framework
[30:23] (1823.20s)
of today like that was built through my
[30:25] (1825.36s)
time. So I saw that kind of get
[30:27] (1827.04s)
constructed brick by brick and those
[30:29] (1829.52s)
people I kind of saw as like the best
[30:33] (1833.20s)
engineer kind of thing. Uh Dan Schaefer
[30:35] (1835.76s)
I think Dan Schaefer might still be I'm
[30:37] (1837.60s)
not sure but I saw those engineers as
[30:39] (1839.36s)
people as a different type of engineer.
[30:41] (1841.12s)
They were that was not like the thing
[30:43] (1843.84s)
that was not my specialty. So the person
[30:46] (1846.00s)
who was most like me was this person
[30:47] (1847.76s)
Evan Priestley who I think was like the
[30:50] (1850.32s)
number one committer before me. I don't
[30:52] (1852.16s)
know if he invented clown I don't know
[30:53] (1853.52s)
if you still have clown town. This idea
[30:55] (1855.52s)
of clown town was like if you like
[30:57] (1857.12s)
caused a really bad silly bug or typo or
[30:59] (1859.44s)
something or like you break Maine or
[31:01] (1861.84s)
something like that, you would be like
[31:03] (1863.04s)
added to Clown Town philosophically.
[31:06] (1866.00s)
he had a a certain type of humor, I
[31:08] (1868.24s)
would say. But but he he was very
[31:10] (1870.08s)
prolific. He single-handedly wrote uh
[31:12] (1872.96s)
the diff diffol camp at the time which
[31:16] (1876.56s)
became fabricator and like when he left
[31:19] (1879.44s)
they forked they kind of open sourced it
[31:21] (1881.28s)
and like wrote all of that entire
[31:23] (1883.68s)
product suite from scratch like himself
[31:25] (1885.92s)
basically if let's say you are you know
[31:28] (1888.88s)
you're building your own team and you
[31:31] (1891.20s)
could either have him on your team to
[31:33] (1893.44s)
build out this new product or you can
[31:35] (1895.84s)
have four senior engineers just regular
[31:39] (1899.84s)
other senior engineers, you know, which
[31:42] (1902.72s)
would you rather take?
[31:45] (1905.04s)
Uh, Evan Priestley.
[31:47] (1907.12s)
Wow. Okay. So, how how many senior
[31:50] (1910.96s)
engineers does it take to you would pick
[31:53] (1913.68s)
them over Evan? So, it depends on the
[31:56] (1916.96s)
context of what you're building. And
[31:58] (1918.56s)
like this is something too that comes up
[32:00] (1920.00s)
with like came up with me a lot too is
[32:03] (1923.28s)
like if you have like this branding as
[32:05] (1925.28s)
like this person who just like writes a
[32:07] (1927.04s)
lot of code. It's like they're not like
[32:09] (1929.04s)
it's not like a mysterious process where
[32:11] (1931.28s)
like the code just magically appears or
[32:13] (1933.12s)
something like like it comes from just
[32:15] (1935.28s)
work hard work and it comes from keeping
[32:17] (1937.76s)
like a bunch of code in my like RAM in
[32:20] (1940.72s)
my head like my memory like and and
[32:24] (1944.48s)
paying attention to like the littlest
[32:26] (1946.24s)
details and really getting absorbed in
[32:28] (1948.72s)
it. And like if you put me on like a
[32:30] (1950.88s)
brand new product, like if if you were
[32:32] (1952.72s)
like Michael's a coding machine, let's
[32:34] (1954.08s)
put him on like Oculus
[32:36] (1956.64s)
uh firmware or something, I like would
[32:38] (1958.96s)
not be productive at first. It would
[32:41] (1961.04s)
probably take me a really long time to
[32:42] (1962.64s)
absorb everything and suck everything
[32:44] (1964.08s)
in. But it's not like just have like
[32:45] (1965.68s)
this magic power to do that. So I think
[32:48] (1968.00s)
it depends a lot on the context. Like uh
[32:50] (1970.00s)
if you're at a company and everyone's
[32:51] (1971.68s)
already ramped up on the thing and you
[32:53] (1973.84s)
have that choice, I would probably
[32:55] (1975.20s)
choose the the coding machine. Um, if
[32:58] (1978.24s)
you're doing something like really like
[33:00] (1980.08s)
new, you might actually want like a
[33:02] (1982.32s)
little bit more diverse backgrounds and
[33:05] (1985.28s)
diverse experiences so that there's a
[33:07] (1987.84s)
little bit more like flexibility and
[33:10] (1990.08s)
creativity in the process. Um, so I
[33:13] (1993.60s)
would actually qualify that as context
[33:15] (1995.44s)
dependent, but all things equal in a
[33:18] (1998.56s)
comfortable codebase, I would want the
[33:20] (2000.00s)
coding machine. I have like many many
[33:22] (2002.56s)
examples over the years of things that
[33:24] (2004.32s)
like just like would not have happened
[33:26] (2006.16s)
if it wasn't for the single person
[33:28] (2008.08s)
whether it's me or Evan Priestley or a
[33:30] (2010.00s)
similar coding machine like there it's
[33:31] (2011.60s)
like that's kind of what makes you the
[33:33] (2013.28s)
coding machine at that level is you're
[33:35] (2015.68s)
like doing something that people did not
[33:38] (2018.08s)
think was possible and you're making it
[33:40] (2020.24s)
actually happen. Can you give an example
[33:42] (2022.88s)
where you know something where you or
[33:46] (2026.00s)
Evan succeeded where you know a team of
[33:49] (2029.84s)
seven senior engineers would not have
[33:51] (2031.76s)
brought that through the finish line.
[33:53] (2033.60s)
The like canonical example for myself is
[33:56] (2036.96s)
um there's this framework called
[33:58] (2038.16s)
preparables.
[33:59] (2039.76s)
Um it was a framework that in a given
[34:04] (2044.16s)
component separated the rendering code
[34:06] (2046.88s)
from the data fetching code. Um so like
[34:09] (2049.84s)
a given component on the screen um would
[34:13] (2053.28s)
have a data fetching function and a
[34:16] (2056.88s)
rendering function so that you could
[34:19] (2059.68s)
kind of in different p waves fetch all
[34:22] (2062.80s)
of the data in parallel
[34:26] (2066.00s)
wait for it all to be fetched and then
[34:28] (2068.88s)
render everything. Those concepts have
[34:30] (2070.96s)
matured a lot now in React and all of
[34:33] (2073.60s)
the like complexities with with suspense
[34:36] (2076.40s)
and spending and all these like more
[34:38] (2078.56s)
intricate things. At the time it's
[34:39] (2079.84s)
fairly simple just like component two
[34:42] (2082.32s)
functions fetch data render at that
[34:44] (2084.88s)
framework basically got replaced over
[34:47] (2087.60s)
time with async await and uh more modern
[34:51] (2091.12s)
things. But there was thousands of
[34:53] (2093.12s)
classes throughout the codebase that
[34:54] (2094.80s)
people would be interacting with on a
[34:56] (2096.32s)
daily basis that were preparable
[34:58] (2098.64s)
structured. Um, and I like
[35:02] (2102.96s)
manually relentlessly remove refactored
[35:06] (2106.32s)
and removed every single preparable
[35:08] (2108.16s)
until literally the the parent class was
[35:10] (2110.80s)
removed from the codebase. Um, and I
[35:13] (2113.28s)
think there was three like three, five,
[35:15] (2115.52s)
six thousand of them or something. Um,
[35:17] (2117.68s)
it did take several months, but like I
[35:20] (2120.08s)
don't think that would have happened
[35:22] (2122.08s)
and it was single-handed effort. Um, and
[35:25] (2125.44s)
I don't think that would have happened
[35:26] (2126.64s)
otherwise,
[35:27] (2127.84s)
believe it or not. Now there's like a,
[35:29] (2129.36s)
you know, there's like a routing
[35:30] (2130.88s)
framework to route all of the like URL
[35:33] (2133.28s)
URL requests like to the right like
[35:35] (2135.12s)
endpoints. It's like abstracted now. I
[35:37] (2137.44s)
mean, it's been abstracted for many
[35:38] (2138.56s)
years now, but when I joined, there was
[35:40] (2140.00s)
still like PHP endpoints that were hit
[35:41] (2141.76s)
directly on the server like kind of old
[35:44] (2144.24s)
school web development. Um, and another
[35:46] (2146.32s)
project I did was to remove every single
[35:48] (2148.56s)
one of those and only use like the
[35:50] (2150.56s)
routing framework.
[35:52] (2152.48s)
Um, and it's again like something that
[35:56] (2156.16s)
if there wasn't like the drive, the
[35:58] (2158.80s)
grit, the priority, it wasn't like,
[36:02] (2162.24s)
you know, it wasn't like the most
[36:03] (2163.68s)
important thing for the company, but
[36:04] (2164.80s)
like those things wouldn't have
[36:05] (2165.76s)
happened. They would have taken a lot
[36:07] (2167.60s)
more resources that could be working on
[36:10] (2170.08s)
like new products to do. and one person
[36:12] (2172.96s)
just single-handedly doing it can make
[36:15] (2175.52s)
all the engineers lives a little easier
[36:17] (2177.20s)
to not have to deal with these legacy
[36:19] (2179.28s)
frameworks and stuff.
[36:20] (2180.40s)
I mean what you just described a large
[36:22] (2182.72s)
scale refactoring or super coding heavy
[36:26] (2186.16s)
task I could see an LLM doing that job
[36:29] (2189.92s)
quite well um in the future or maybe
[36:32] (2192.56s)
even now to be honest and so my question
[36:35] (2195.44s)
is do you think that LM will kill the
[36:38] (2198.40s)
coding machine archetype? So when I was
[36:41] (2201.12s)
doing all this work at at Facebook, I
[36:43] (2203.92s)
was using Vim. And the tools I used were
[36:46] (2206.08s)
like this thing called TBGS,
[36:48] (2208.40s)
which I don't know if it still exists,
[36:49] (2209.92s)
but it was just an indexed search of the
[36:52] (2212.16s)
entire codebase, but it was a
[36:54] (2214.24s)
proprietary tool outside of any IDE,
[36:58] (2218.48s)
like a command line tool or a web tool.
[37:00] (2220.56s)
Um, so I used that to find things and I
[37:03] (2223.04s)
think I had tab completion in Vim, like
[37:05] (2225.12s)
a plugin
[37:06] (2226.88s)
for like class names. That was it. Um
[37:09] (2229.84s)
and I was very productive. So even if I
[37:12] (2232.48s)
would have had like VS code with modern
[37:16] (2236.08s)
tools that we have now, I probably would
[37:17] (2237.76s)
have been more productive. So the the
[37:19] (2239.68s)
current wave of AI tools and the LLM
[37:22] (2242.96s)
based AI tools um are kind of like a
[37:27] (2247.68s)
next step of going from Vim to VS Code.
[37:31] (2251.84s)
It's like going to a LLM AI powered mode
[37:37] (2257.76s)
that lets you be more productive, makes
[37:40] (2260.08s)
certain things faster, certain
[37:41] (2261.92s)
refactorings faster and changes faster.
[37:44] (2264.00s)
The next evolution going into like that,
[37:47] (2267.04s)
you know, we're seeing some some agentic
[37:49] (2269.04s)
flows in coding popping up already. Um,
[37:51] (2271.84s)
some success cases here and there. Um,
[37:54] (2274.24s)
it's not like mainstream. I think that
[37:56] (2276.72s)
those flows will probably be
[37:59] (2279.84s)
even more replacing of like those basic
[38:02] (2282.48s)
functions right now though like and
[38:04] (2284.88s)
probably for it's changing so fast. It's
[38:06] (2286.80s)
never things have never changed this
[38:08] (2288.32s)
fast. But like for this year, I think
[38:10] (2290.80s)
that AI and LLM tools like a lot most
[38:14] (2294.80s)
people most engineers still don't use
[38:16] (2296.64s)
them. Like you get off YouTube and
[38:18] (2298.48s)
Reddit and all these places like and you
[38:21] (2301.04s)
just go to the middle and no middle of
[38:22] (2302.56s)
somewhere and ask an engineer like
[38:24] (2304.24s)
they're not using AI tools as much as
[38:26] (2306.48s)
like the the people who are pushing the
[38:28] (2308.96s)
leading edge. Um so if like everyone
[38:30] (2310.96s)
used the tools the way the like leading
[38:35] (2315.04s)
productive people are using them then we
[38:37] (2317.12s)
would have a massive industry change
[38:39] (2319.92s)
already and we would all be more
[38:41] (2321.68s)
productive including the coding
[38:42] (2322.96s)
machines. Um, and then the agentic flows
[38:45] (2325.44s)
that happen after that, like I don't I
[38:48] (2328.24s)
don't know. I not uh I'm not decided yet
[38:50] (2330.72s)
on how that's going to impact the coding
[38:52] (2332.72s)
machine and or the rest of engineers as
[38:55] (2335.04s)
well because that's going to really
[38:56] (2336.48s)
change things probably even more than
[38:58] (2338.80s)
we've ever seen before.
[39:00] (2340.48s)
What's the biggest difference between,
[39:02] (2342.40s)
you know, how you used to work? I mean,
[39:03] (2343.92s)
you mentioned this Vim workflow is
[39:06] (2346.16s)
basically your hand writing the code and
[39:09] (2349.36s)
doing everything yourself to using the
[39:11] (2351.52s)
LMS. like what are the biggest
[39:12] (2352.96s)
differences you noticed?
[39:14] (2354.08s)
I'm in a code base that's 500,000 lines
[39:17] (2357.20s)
give or take, which is not a small
[39:20] (2360.32s)
codebase, not a tiny codebase, but it's
[39:22] (2362.72s)
like the size of a popular like
[39:25] (2365.04s)
open-source big project. It's a
[39:27] (2367.36s)
reasonably sized codebase, but it's
[39:29] (2369.60s)
small enough that I like still know most
[39:32] (2372.08s)
of the code structure in my head and the
[39:34] (2374.80s)
and and everything. So I'm not using
[39:37] (2377.76s)
that many uh codewide agentic flows um
[39:42] (2382.72s)
or multifile flows in general sometimes
[39:45] (2385.84s)
but not often. Um I'm normally using AI
[39:50] (2390.00s)
to speed up what I would already do. So
[39:53] (2393.60s)
I already almost know the code I would
[39:55] (2395.44s)
want to write and I'm using LLMs to
[39:58] (2398.32s)
generate that code faster. Um, if I want
[40:02] (2402.00s)
to write an entire component that I
[40:04] (2404.96s)
think is going to be like a 100 lines of
[40:07] (2407.84s)
of markup for the page,
[40:10] (2410.88s)
um, if I I have to make a real-time
[40:12] (2412.80s)
judgment call, if I can type those lines
[40:15] (2415.12s)
faster or if I can explain in the most
[40:18] (2418.80s)
efficient prompt possible to an LLM in
[40:21] (2421.36s)
the right spot how to generate those
[40:23] (2423.60s)
lines for me and have it be successful.
[40:26] (2426.72s)
Um, and I'm
[40:29] (2429.60s)
just, you know, prompt by prompt
[40:31] (2431.76s)
building up that intuition on how to
[40:34] (2434.96s)
effectively give those prompts to speed
[40:38] (2438.32s)
up my workflow. Um, and I'm in a spot
[40:40] (2440.40s)
right now where I'm like very much more
[40:43] (2443.28s)
productive. Like we have a product, we
[40:45] (2445.36s)
are adding new features. Like the
[40:47] (2447.04s)
workflows are kind of pretty similar now
[40:49] (2449.04s)
that they have been six months ago for
[40:50] (2450.96s)
our product development process. And I'm
[40:54] (2454.00s)
producing like five times more code than
[40:57] (2457.36s)
I was then just through these
[40:59] (2459.76s)
optimizations. And it's changing so
[41:02] (2462.00s)
fast. So it's not like there's an
[41:03] (2463.52s)
endgame here. Um it's not like there's
[41:05] (2465.60s)
this fixed path. It's like every every
[41:07] (2467.52s)
time a new model comes out I'm
[41:09] (2469.20s)
developing different intuitions or a new
[41:11] (2471.20s)
feature or a new Yeah. Um a new command
[41:15] (2475.52s)
line tool stuff like that. Yeah. So it's
[41:17] (2477.76s)
interesting time for sure to be an
[41:19] (2479.52s)
engineer in general.
[41:20] (2480.88s)
It's interesting. I mean today and maybe
[41:23] (2483.60s)
soon also it just uh it seems like LLMs
[41:26] (2486.72s)
are an extension another thing to
[41:28] (2488.72s)
delegate to that makes us more
[41:30] (2490.56s)
productive. You mentioned the agentic
[41:32] (2492.88s)
stuff if it can kind of uh more
[41:35] (2495.76s)
independently generate code without the
[41:38] (2498.16s)
software engineer being involved. I
[41:40] (2500.48s)
wonder how would you feel if coding was
[41:43] (2503.68s)
more of a hobby in the future and
[41:45] (2505.84s)
programming was no longer driven by
[41:47] (2507.52s)
humans? Uh, I think it's a cool future.
[41:50] (2510.48s)
We talk about all the cool things that
[41:52] (2512.88s)
engineers do and and why it's so awesome
[41:55] (2515.84s)
to be a software engineer, but like if
[41:57] (2517.76s)
you actually clock your time and look at
[42:00] (2520.48s)
what you do as an engineer, there's a
[42:02] (2522.00s)
lot of stuff that's like copy paste,
[42:04] (2524.08s)
search, copy, paste, change some lines,
[42:07] (2527.60s)
like sit there and stare at the screen
[42:09] (2529.04s)
and think for a bit. Like there's a lot
[42:10] (2530.72s)
of things that are like not as fun. And
[42:13] (2533.44s)
if you could really just like focus on
[42:15] (2535.04s)
the fun parts like the creative product
[42:18] (2538.24s)
pieces or even sometimes just like
[42:20] (2540.96s)
building
[42:22] (2542.64s)
I find joy and excitement in like
[42:24] (2544.96s)
cleaning up code and combining things
[42:27] (2547.44s)
that didn't seem like they have any
[42:29] (2549.04s)
overlap and merging them into one like
[42:31] (2551.20s)
frame one concept like like there's
[42:33] (2553.28s)
things like that that I just like doing
[42:35] (2555.04s)
that maybe as a hobby or maybe it's just
[42:36] (2556.96s)
like Sergey Brin at Google's probably
[42:38] (2558.88s)
like the perfect example of this where
[42:41] (2561.36s)
he can just like plop into whatever he
[42:43] (2563.20s)
wants to work on um and like contribute
[42:46] (2566.40s)
what he wants to contribute there and
[42:48] (2568.08s)
like it's more he's doing what he wants
[42:50] (2570.40s)
to do and there's and not the day-to-day
[42:53] (2573.52s)
stuff. So I think it's probably it's
[42:56] (2576.00s)
exciting in some sense in that sense for
[42:59] (2579.04s)
Um it's definitely like scary to the
[43:01] (2581.04s)
software engineering profession because
[43:03] (2583.04s)
it kind of like raises like what does it
[43:06] (2586.00s)
mean to be a software engineer? Is it
[43:08] (2588.00s)
actually writing the code? Is it
[43:10] (2590.00s)
architecting the data models? Is it
[43:13] (2593.04s)
coming up with the systems level stuff?
[43:14] (2594.88s)
Is it gluing it all together? Like it
[43:17] (2597.20s)
and it's kind of a AI is already just
[43:19] (2599.68s)
making us think about those things. And
[43:22] (2602.40s)
I think it's going to be redefined many
[43:24] (2604.16s)
times over in the next few years. Like I
[43:26] (2606.00s)
think we're in this really weird
[43:27] (2607.04s)
transition phase though where for the
[43:29] (2609.52s)
next little while, I don't know how
[43:30] (2610.96s)
long, but next little while like AI and
[43:33] (2613.92s)
LLM tools are going to make engineers
[43:35] (2615.60s)
more productive. specifically engineers
[43:37] (2617.76s)
with a lot of experience and strong
[43:39] (2619.60s)
taste are going to be more and more
[43:42] (2622.08s)
productive. And if you're not an
[43:43] (2623.76s)
engineer with lots of experience, it's
[43:45] (2625.44s)
going to be harder and harder to to
[43:47] (2627.68s)
build that. Um, which is I'm more
[43:50] (2630.32s)
confident in that. But in the future
[43:52] (2632.00s)
beyond that, like if AI can write its
[43:55] (2635.60s)
own code and maintain its own code, I
[43:58] (2638.00s)
don't think code will be the same as it
[43:59] (2639.92s)
is today. Like it's if an AI can do its
[44:03] (2643.12s)
own thing, it's not going to be writing
[44:04] (2644.24s)
JavaScript. it's going to be managing
[44:06] (2646.16s)
its own services that have like a an API
[44:10] (2650.00s)
and it it's gonna do its thing. Like you
[44:12] (2652.24s)
might not know how it's building it and
[44:13] (2653.68s)
as long as that API is contractually
[44:16] (2656.40s)
provided and it is doing its thing and
[44:20] (2660.00s)
meeting whatever specifications it has
[44:22] (2662.00s)
to then it doesn't really matter how
[44:23] (2663.36s)
it's being built and it might be like
[44:24] (2664.80s)
doing its own thing and no one might
[44:26] (2666.64s)
know what that code looks like and it
[44:27] (2667.92s)
might not even be readable. I mean
[44:29] (2669.68s)
engineers make a lot of mistake like
[44:31] (2671.28s)
it's like humans make a lot of mistakes
[44:32] (2672.80s)
with code and cause really bad bugs and
[44:35] (2675.28s)
AI is probably going to have bugs and
[44:37] (2677.44s)
it's going to have ways to fix them and
[44:39] (2679.52s)
it's not like it's going to like we are
[44:42] (2682.32s)
going to build AI to to do those things.
[44:45] (2685.36s)
It's going to be like I don't think it's
[44:47] (2687.28s)
going to be like this dystopian future
[44:48] (2688.80s)
overnight. It's going to be step by step
[44:50] (2690.80s)
as we get there. And I think it's not
[44:52] (2692.24s)
going to feel and I think it's going to
[44:53] (2693.76s)
happen. So I don't think we should push
[44:55] (2695.68s)
back on it. we should be thinking about
[44:57] (2697.04s)
like how do we make this AI world the
[45:00] (2700.16s)
best that it can be instead of like
[45:01] (2701.68s)
pushing back that it can possibly work.
[45:04] (2704.32s)
That's where I stand on that. But yeah,
[45:06] (2706.00s)
you you mentioned there were some React
[45:08] (2708.40s)
engineers that you looked up to and
[45:10] (2710.00s)
their archetype was different from
[45:11] (2711.44s)
yours. What what impressed you about
[45:14] (2714.96s)
what they were doing? What how would you
[45:16] (2716.88s)
describe the archetype? Yeah, I don't I
[45:19] (2719.84s)
it might fall under the specialist
[45:21] (2721.36s)
archetype where you're really really
[45:23] (2723.76s)
really good at one stack. Um, another
[45:27] (2727.12s)
example is like this engineer who knew
[45:29] (2729.76s)
email protocols and was like one of the
[45:32] (2732.00s)
10 people in the world who deeply
[45:34] (2734.40s)
understood email protocols
[45:37] (2737.20s)
to like I know that like you can look up
[45:39] (2739.20s)
the specs but like the practical side
[45:41] (2741.20s)
too of like dealing with spam and
[45:44] (2744.72s)
routing and all this stuff and like you
[45:46] (2746.88s)
know so there's like I think it falls in
[45:48] (2748.32s)
a specialization um bucket um like in
[45:51] (2751.52s)
general I'm like the fan of the sports
[45:53] (2753.12s)
team analogy so like you want like a
[45:55] (2755.92s)
professional sports team that where
[45:57] (2757.84s)
every every every player on a baseball
[45:59] (2759.92s)
team can play like any position like
[46:01] (2761.84s)
pretty well. Even like the pitchers who
[46:03] (2763.68s)
only throw can probably hit the ball
[46:05] (2765.60s)
better than most typical people or like
[46:08] (2768.48s)
even amateur baseball players. Like so
[46:11] (2771.76s)
it's kind of like you want your team to
[46:14] (2774.16s)
have those different roles and you want
[46:15] (2775.60s)
to respect each other's place on the
[46:17] (2777.84s)
field. Um, so I kind of respect those
[46:21] (2781.92s)
those engineers for what what they do
[46:23] (2783.76s)
and I have like my thing and I think
[46:25] (2785.36s)
that the whole team is exceptional if it
[46:27] (2787.92s)
has these different these different
[46:29] (2789.44s)
players.
[46:30] (2790.24s)
I see. So what impressed you about those
[46:32] (2792.00s)
engineers is that they solve problems
[46:33] (2793.68s)
that other people couldn't.
[46:35] (2795.28s)
Yeah. And uh the abstractions they were
[46:37] (2797.76s)
creating specifically were very
[46:39] (2799.52s)
impactful because all the engineers are
[46:41] (2801.68s)
using them on a daily basis. So like a
[46:44] (2804.40s)
lot of the coding machine work I'm doing
[46:46] (2806.72s)
that impacted everyone was like cleaning
[46:49] (2809.44s)
up and making their lives easier. Um and
[46:51] (2811.92s)
these engineers were writing frameworks
[46:53] (2813.60s)
that were like that made the like
[46:56] (2816.56s)
thought process less overhead for an
[46:58] (2818.64s)
engineer to fetch data and stuff like
[47:00] (2820.48s)
that. Um so there were some similarities
[47:02] (2822.64s)
a little bit but that I like respected
[47:04] (2824.56s)
that work a lot. Um, but it's very hard
[47:07] (2827.12s)
to come up with such an elegant API
[47:09] (2829.76s)
that's super performant and is easier to
[47:12] (2832.32s)
use. Making things simpler is sometimes
[47:14] (2834.80s)
more work than writing a lot of code or
[47:17] (2837.44s)
harder work, too. So, I respected them
[47:19] (2839.76s)
for that. I wanted to talk a bit about
[47:21] (2841.68s)
your career growth cuz you grew to, you
[47:24] (2844.32s)
know, senior staff or IC7 at Facebook.
[47:27] (2847.76s)
Um, there were less IC7s at that time,
[47:30] (2850.16s)
so it's even more impressive that you
[47:32] (2852.40s)
did that and as quickly as you did it.
[47:35] (2855.04s)
Um, so I'm I'm curious to kind of dig
[47:37] (2857.68s)
into some of the, you know, behind the
[47:40] (2860.64s)
scenes in it. I I think you've told the
[47:42] (2862.88s)
story publicly a few times, so I kind of
[47:44] (2864.80s)
want to ask some of the the side topics
[47:47] (2867.12s)
on it. So, um, one thing I'm curious
[47:50] (2870.00s)
about, you mentioned somewhere that you
[47:52] (2872.72s)
had spent 30% of your time on your
[47:55] (2875.84s)
team's work and about 70% of your time
[47:58] (2878.24s)
on side projects or projects of your own
[48:01] (2881.12s)
initiative. How how does that work if
[48:04] (2884.24s)
you know you're getting work from your
[48:05] (2885.68s)
current team? Can you talk about that? I
[48:07] (2887.76s)
think the way I framed it is like almost
[48:09] (2889.84s)
being like a senior engineer on a small
[48:11] (2891.92s)
team of 10 people and then um spending
[48:16] (2896.32s)
like more than half my time doing kind
[48:20] (2900.56s)
of codebase wide initiatives, cleanup,
[48:23] (2903.36s)
refactorings, a new framework, sometimes
[48:27] (2907.36s)
some random
[48:29] (2909.44s)
random oneoff thing a team needs help
[48:31] (2911.92s)
with or something like that. Um
[48:34] (2914.00s)
emergency like other work. Um, so like
[48:36] (2916.40s)
the I would say like the 30% work very
[48:38] (2918.96s)
much like if you just imagine having an
[48:40] (2920.72s)
E5 on your team like it's not like time.
[48:43] (2923.12s)
It wasn't like I'm it wasn't like 30% of
[48:45] (2925.60s)
my 8 hour day was the team and it's like
[48:48] (2928.00s)
only contact me then. It was more like
[48:50] (2930.00s)
30% of my mental space or my focus I
[48:54] (2934.56s)
think. So I would still be like on the
[48:56] (2936.56s)
team all day long. I would be um as like
[48:59] (2939.84s)
a senior person you're reviewing a lot
[49:01] (2941.92s)
of code. You're bouncing ideas off more
[49:04] (2944.88s)
junior people. You're mentoring, helping
[49:07] (2947.04s)
junior people grow in scope to get
[49:09] (2949.92s)
promoted from entry level to midlevel.
[49:12] (2952.96s)
Those kinds of things. Um writing a lot
[49:15] (2955.12s)
of code on features that the team queued
[49:19] (2959.04s)
up like the team had um just you know um
[49:22] (2962.24s)
contributing to them. um going to like
[49:25] (2965.36s)
product meetings and contributing to
[49:27] (2967.44s)
like the product direction evaluating
[49:29] (2969.84s)
feasibility of things like when product
[49:32] (2972.40s)
managers like we want to do ABC and it's
[49:34] (2974.40s)
like okay well A and B I think we the
[49:36] (2976.88s)
team can do C they can't do like you
[49:38] (2978.48s)
know general things a senior engineer
[49:40] (2980.24s)
would do but the volume of code produced
[49:43] (2983.20s)
was more like a senior engineer on the
[49:45] (2985.12s)
team I would say how did you manage the
[49:48] (2988.08s)
relationship with your team or you know
[49:50] (2990.96s)
your manager for instance
[49:53] (2993.36s)
typical manager knows you have bandwidth
[49:56] (2996.16s)
kind of positions you in a certain area
[49:58] (2998.80s)
but it's a little unconventional if that
[50:01] (3001.60s)
that IC is doing majority of their
[50:04] (3004.48s)
bandwidth is solving problems all over
[50:06] (3006.56s)
the place so how did you manage that
[50:08] (3008.64s)
relationship I would often report not
[50:12] (3012.00s)
all the time but I often reported to
[50:13] (3013.76s)
more junior managers and I was almost
[50:16] (3016.64s)
like a peer like the skip would
[50:19] (3019.12s)
generally do my performance reviews but
[50:20] (3020.80s)
I would like report to a or junior
[50:22] (3022.48s)
manager, I would almost like help them
[50:24] (3024.56s)
manage the team and then like really
[50:27] (3027.92s)
report to the skip kind of thing. Um
[50:30] (3030.64s)
like unofficially report to them like
[50:32] (3032.32s)
vibe. So it was definitely like
[50:34] (3034.48s)
interesting relationships like the head
[50:36] (3036.64s)
of like one of the VPs I would meet with
[50:38] (3038.96s)
like monthly for the whole org and my
[50:42] (3042.48s)
skip level I would meet with like every
[50:44] (3044.24s)
two weeks. So in the org chart, you
[50:47] (3047.44s)
reported to a a frontline manager, but
[50:50] (3050.56s)
in practice, you were almost dotted line
[50:53] (3053.28s)
reporting to some more senior people and
[50:55] (3055.36s)
you were known as a it's almost like a
[50:57] (3057.52s)
weapon of the org that you kind of just
[50:59] (3059.36s)
go wherever.
[51:00] (3060.48s)
You know, let's say I'm a I'm a senior
[51:03] (3063.36s)
engineer and I want to go solve problems
[51:05] (3065.68s)
for the org all over the place and I'm
[51:08] (3068.40s)
reporting to my frontline manager. I got
[51:10] (3070.32s)
my tickets or whatever. How how did you
[51:13] (3073.52s)
transition into that IC7 solving the
[51:16] (3076.48s)
hardest problems for the org role?
[51:19] (3079.20s)
Is in my case like I was almost like the
[51:22] (3082.16s)
coding machine from day one and the
[51:25] (3085.76s)
thing that improved was my taste and
[51:28] (3088.64s)
judgment but the like even the raw
[51:31] (3091.36s)
output was probably honestly the same
[51:34] (3094.16s)
when I was like a week into Facebook. Um
[51:38] (3098.32s)
like there was there was two different a
[51:40] (3100.32s)
fork of the task tool. Um it was called
[51:43] (3103.44s)
Laltana and Cortana and it was the same
[51:46] (3106.88s)
like data source for the internal task
[51:48] (3108.80s)
management tool and there was two
[51:51] (3111.20s)
different like UIs. One was like
[51:53] (3113.04s)
streamlined and fast and one was like
[51:55] (3115.12s)
bloated with features and slow and there
[51:58] (3118.32s)
was like competition between them. And
[52:00] (3120.08s)
like I in like a week or less I merged
[52:04] (3124.16s)
the two code bases into one that was
[52:06] (3126.56s)
like the speed of the like slim down one
[52:10] (3130.80s)
with all the features of the bloated
[52:13] (3133.12s)
one. Um and it was I just like literally
[52:18] (3138.08s)
just took the initiative entirely on my
[52:20] (3140.24s)
own. I didn't even like tell anyone. I
[52:21] (3141.84s)
mean, this is so early on. You could not
[52:23] (3143.12s)
do this now, but like I didn't tell
[52:24] (3144.40s)
anyone. I just mer merged them. I posted
[52:26] (3146.88s)
to the entire company. I'm like, "The
[52:28] (3148.48s)
tools are merged. Like, it's done. Like,
[52:30] (3150.64s)
deal with it kind of vi vibe." Not not
[52:32] (3152.88s)
in a mean way, just like it's done like
[52:35] (3155.28s)
like surprise. Um,
[52:37] (3157.76s)
that So, what what I learned along like
[52:39] (3159.84s)
the output was really the same. What I
[52:41] (3161.84s)
learned though was like that's not the
[52:43] (3163.28s)
best way to like merge tools that are
[52:45] (3165.36s)
used by hundreds of people to just be
[52:47] (3167.04s)
like surprise like URLs changed like
[52:50] (3170.16s)
deal with it. like I didn't deeply
[52:52] (3172.00s)
understand like the consequences for
[52:53] (3173.76s)
teams. Everyone like like patted me on
[52:55] (3175.92s)
the back and thought it was amazing
[52:56] (3176.96s)
because like no one could have done
[52:58] (3178.32s)
this. So like all overall it was still
[53:00] (3180.80s)
positive but like that would not be like
[53:03] (3183.36s)
like the the things I learned were like
[53:05] (3185.12s)
judgment calls about like the scope to
[53:07] (3187.12s)
change things at um the the how to like
[53:10] (3190.80s)
pay attention to the impact the changes
[53:12] (3192.64s)
will have on other people. Building up
[53:14] (3194.80s)
intuition about what spots are more
[53:16] (3196.56s)
sensitive than others to make changes
[53:18] (3198.32s)
in. Um, and that like judgment of doing
[53:22] (3202.96s)
these massive things like over and over
[53:25] (3205.36s)
and over again and doing some of them
[53:26] (3206.64s)
too fast and having too many bugs and
[53:29] (3209.12s)
there's some people who will like
[53:30] (3210.32s)
forever not like me because I like
[53:32] (3212.16s)
caused a really bad bug because I went a
[53:33] (3213.92s)
little like made a bad judgment call and
[53:36] (3216.24s)
then I learn take the feedback and then
[53:39] (3219.04s)
keep going at the same speed while like
[53:41] (3221.76s)
improving my judgment and building that
[53:44] (3224.48s)
taste. Um, and I think that accumulation
[53:47] (3227.76s)
of judgment and taste is what crosses
[53:50] (3230.40s)
the line into the E7, but the raw
[53:52] (3232.88s)
output, it wasn't like the raw output
[53:54] (3234.48s)
kept going up. Um, so I don't
[53:57] (3237.60s)
necessarily have advice on how to build
[53:59] (3239.36s)
that because I think you have to kind of
[54:01] (3241.36s)
like it's very dependent on your or your
[54:04] (3244.80s)
team, but I think like if you want to do
[54:07] (3247.20s)
that, I would start by talking to your
[54:09] (3249.04s)
manager and if they can't really help,
[54:11] (3251.28s)
maybe talk to your skip level manager
[54:13] (3253.04s)
and if that doesn't really help, try to
[54:15] (3255.28s)
find a really senior engineer who is
[54:19] (3259.68s)
maybe that person and ask them how they
[54:22] (3262.64s)
did it in that same org as you or in
[54:25] (3265.68s)
their org similar to yours like it's
[54:27] (3267.76s)
kind of um it's very dependent on the
[54:30] (3270.08s)
context but yeah
[54:31] (3271.44s)
if I'm understanding correctly then you
[54:34] (3274.88s)
were able to work on all this
[54:36] (3276.64s)
extracurricular you know orgwide
[54:39] (3279.20s)
projects because you had such high
[54:41] (3281.84s)
productivity and that was true from day
[54:44] (3284.32s)
one and you had the initiative too like
[54:47] (3287.20s)
no one no one's going to stop you like
[54:48] (3288.88s)
let's say you you have your your project
[54:51] (3291.52s)
on your team no one's going to stop you
[54:53] (3293.52s)
from doing extra work that solves some,
[54:56] (3296.24s)
you know, problem on the side. And so
[54:58] (3298.80s)
you you took that initiative and you
[55:01] (3301.12s)
have exceptional productivity. So you
[55:03] (3303.92s)
just became known as this person that's
[55:05] (3305.68s)
constantly solving like extra problems.
[55:09] (3309.20s)
Um yes, but I I really think that the
[55:11] (3311.76s)
jud the judgment and taste piece though
[55:13] (3313.92s)
is like so critical. Um and it's more
[55:16] (3316.40s)
than just the code. It impacts like the
[55:18] (3318.56s)
push process. So like now there's
[55:21] (3321.36s)
continuous integration at Facebook. At
[55:23] (3323.20s)
the time there wasn't. If you broke
[55:25] (3325.36s)
something and it shipped to production
[55:28] (3328.16s)
and you needed a fix like the pushing
[55:30] (3330.96s)
team like would not generally be happy
[55:33] (3333.84s)
and you have to like negotiate with them
[55:36] (3336.08s)
in a sense and if you break things too
[55:38] (3338.64s)
much they don't trust you and they will
[55:40] (3340.64s)
not accept your changes. They might even
[55:42] (3342.64s)
push back on your normal changes. So
[55:44] (3344.72s)
that hurts a coding machine. So, I have
[55:47] (3347.04s)
to like build a relationship with the
[55:49] (3349.36s)
pushing team so they really trust me.
[55:52] (3352.32s)
And more than once I've said like this
[55:55] (3355.12s)
needs to get in and if it breaks the
[55:57] (3357.28s)
site I will resign like quote unquote.
[55:59] (3359.44s)
I've said that
[56:01] (3361.36s)
because I burned credibility before like
[56:04] (3364.08s)
the day before shipping something too
[56:05] (3365.92s)
fast. I had to be very sure, so sure
[56:08] (3368.88s)
with the fix that I would like you can
[56:11] (3371.68s)
fire me if it breaks things and like
[56:14] (3374.32s)
those types of like things to build that
[56:16] (3376.08s)
that trust and credibility like another
[56:18] (3378.32s)
engineer who just shows up and writes a
[56:19] (3379.76s)
lot of code probably would not be able
[56:21] (3381.04s)
to get away with it because they didn't
[56:22] (3382.80s)
have the years of building that up. So
[56:24] (3384.88s)
it's a that that is really important.
[56:26] (3386.96s)
It's not only the raw it's like much
[56:28] (3388.96s)
more than the raw output there.
[56:30] (3390.48s)
Would you have resigned if you if you
[56:32] (3392.72s)
broke broke it again and you said you
[56:35] (3395.28s)
would? Yeah, I think I would have.
[56:38] (3398.40s)
It's like this weird maybe it's a
[56:39] (3399.60s)
personality trait, but it's like it puts
[56:41] (3401.04s)
that saying that puts so much pressure
[56:42] (3402.88s)
on me that I will like make sure that it
[56:45] (3405.84s)
does not break. You know, like
[56:48] (3408.48s)
I will like I will like triple check
[56:50] (3410.80s)
every line. I will think about every
[56:52] (3412.64s)
weird case that could possibly happen.
[56:55] (3415.44s)
You talked about taste and judgment when
[56:58] (3418.32s)
it comes to code and software
[57:00] (3420.32s)
engineering. What does that mean? Like
[57:02] (3422.40s)
people who cook with like cast iron
[57:04] (3424.24s)
pans, they talk about building a patina
[57:06] (3426.64s)
where you have to like build up layers
[57:08] (3428.48s)
of like history and it gets burned into
[57:12] (3432.40s)
the pan and it has a a profile. Um
[57:16] (3436.08s)
that's to me is like taste. There are
[57:18] (3438.64s)
some people who who naturally have
[57:21] (3441.60s)
instincts for maybe it comes from this
[57:24] (3444.24s)
the way they grew up and their past
[57:25] (3445.76s)
experiences they have and the the
[57:27] (3447.52s)
context they're in. and they're they
[57:28] (3448.96s)
have stronger taste faster, but
[57:31] (3451.92s)
generally it just requires like
[57:33] (3453.60s)
experience in some way. Like you might
[57:36] (3456.08s)
have experience outside of code that
[57:39] (3459.20s)
might build up you might do lots of like
[57:41] (3461.84s)
dancing and you build up all this like
[57:43] (3463.76s)
intuition and muscle memory about
[57:47] (3467.12s)
dancing or sport. Other sports and stuff
[57:49] (3469.92s)
too are similar. Um, it's kind of like
[57:51] (3471.60s)
that but in the coding context of you
[57:53] (3473.68s)
might read a book on how to be the best
[57:56] (3476.56s)
like uh the fastest speed skater. You
[57:59] (3479.84s)
read the book and you just got to put
[58:01] (3481.28s)
the skates on and you just have all the
[58:03] (3483.04s)
ambition and you just want to be the
[58:04] (3484.56s)
fastest. You know you can do it. It's
[58:06] (3486.08s)
like you're you you have to like spend
[58:08] (3488.56s)
years doing it and really like feel it
[58:10] (3490.88s)
like building up every aspect of the
[58:13] (3493.36s)
muscle memory, every like movement on
[58:16] (3496.08s)
the ice, the feel of the ice under
[58:18] (3498.00s)
different temperatures and altitudes and
[58:20] (3500.00s)
pressures and like the sharpness of
[58:22] (3502.48s)
different skates. You'll be able to feel
[58:24] (3504.08s)
the difference between like a skate that
[58:25] (3505.92s)
was used once versus twice. Like it's
[58:27] (3507.92s)
like every detail you will over time
[58:30] (3510.72s)
accumulate by putting in the time and
[58:32] (3512.64s)
gaining that experience. Um, and I see
[58:35] (3515.36s)
far too many people rushing early on
[58:37] (3517.20s)
where in their careers where they're
[58:38] (3518.80s)
trying to like jump ahead. They're
[58:41] (3521.04s)
they're trying to enter the Olympics as
[58:42] (3522.40s)
a speed skater and they have not like
[58:44] (3524.72s)
they haven't built that yet. And that's
[58:46] (3526.56s)
okay. Like you can't build it overnight.
[58:48] (3528.48s)
And there's nothing wrong with you. And
[58:50] (3530.40s)
I advise people to like put in the the
[58:53] (3533.84s)
practice and the reps. And I mean at
[58:56] (3536.56s)
formation it's really important to get
[58:58] (3538.32s)
feedback because if you just do this
[58:59] (3539.92s)
without feedback then you don't improve.
[59:02] (3542.08s)
If you kind of set yourself up to do
[59:04] (3544.96s)
practice, get feedback, iterate, and
[59:07] (3547.60s)
really have the grit to keep go
[59:09] (3549.28s)
following through on that, then you can
[59:10] (3550.96s)
get to that super top tier stage of I
[59:14] (3554.72s)
think like any any skill.
[59:16] (3556.72s)
So when you say taste, are you saying uh
[59:20] (3560.40s)
like your intuition behind how you
[59:22] (3562.56s)
design software or are you talking about
[59:25] (3565.68s)
problem taste like which problems are
[59:27] (3567.76s)
worth solving for the business? Which
[59:29] (3569.84s)
code matters more? both for different
[59:32] (3572.24s)
people like a product and a product
[59:34] (3574.00s)
manager is their taste is probably more
[59:35] (3575.92s)
in terms of prioritizing what products
[59:38] (3578.24s)
features to build and they probably buil
[59:40] (3580.64s)
they build that up through building lots
[59:42] (3582.64s)
of products failing failing building
[59:44] (3584.88s)
something doesn't work building
[59:46] (3586.00s)
something doesn't work all the junior
[59:47] (3587.28s)
product managers super ambitious they
[59:49] (3589.60s)
just need to keep shipping things and
[59:51] (3591.20s)
seeing what doesn't work and they build
[59:52] (3592.56s)
that up um and then you see the like
[59:55] (3595.04s)
exceptional product managers like 90% of
[59:57] (3597.52s)
the stuff they shipped was like not good
[59:59] (3599.36s)
at or failed for some
[60:01] (3601.28s)
Um, and that's why they're so good is
[60:02] (3602.72s)
because they learned all they learned
[60:04] (3604.00s)
each step of the way and then they made
[60:06] (3606.24s)
changes and grew from it. So I'm talking
[60:09] (3609.60s)
about that for an engineer that applies
[60:12] (3612.56s)
to like or for me at least that applies
[60:14] (3614.56s)
to code itself and writing code and the
[60:17] (3617.92s)
strategies to moving really fast and
[60:19] (3619.68s)
stuff like that. Yeah. you mentioned
[60:21] (3621.68s)
about uh changing other people's code or
[60:25] (3625.20s)
the social norms around touching code
[60:28] (3628.48s)
that other people own and you know you
[60:31] (3631.52s)
said something about landing a bug in
[60:33] (3633.76s)
that codebase kind of really could blow
[60:36] (3636.00s)
up in your face. So did you ever get
[60:38] (3638.48s)
feedback from other teams because it
[60:40] (3640.56s)
sounds like you were kind of touching
[60:42] (3642.24s)
everyone's code and how did you handle
[60:44] (3644.00s)
that feedback? Like I think there were
[60:46] (3646.00s)
some times where like you know going
[60:48] (3648.08s)
into a codebase replacing some old like
[60:51] (3651.68s)
framework that on like the live version
[60:54] (3654.80s)
of their tool the team's tool um and
[60:57] (3657.68s)
they were already building a newer tool
[61:00] (3660.32s)
and maintaining like carefully
[61:02] (3662.24s)
maintaining backwards compatibility and
[61:04] (3664.96s)
they have lots of like diffs and pull
[61:07] (3667.84s)
requests in play that were like they had
[61:10] (3670.48s)
like their thing going and by like just
[61:12] (3672.64s)
showing up refactoring at some some
[61:15] (3675.36s)
stuff in the old tool and then leaving
[61:17] (3677.44s)
it like made their it caused a lot of
[61:19] (3679.68s)
merge conflicts for all their stuff in
[61:21] (3681.28s)
progress and they like weren't happy
[61:22] (3682.48s)
about it. um and they wanted to like
[61:24] (3684.48s)
revert the change from the code because
[61:26] (3686.96s)
they didn't want to have to deal with
[61:28] (3688.08s)
like merging that into their complex uh
[61:30] (3690.64s)
change, right? Um and that's feedback to
[61:33] (3693.68s)
be careful for that stuff like I would I
[61:35] (3695.68s)
would didn't pay attention to that. So
[61:36] (3696.96s)
it's like okay that is one one use case
[61:39] (3699.44s)
where you got to be careful is if teams
[61:40] (3700.96s)
are working on complex longer term thing
[61:43] (3703.84s)
migrations already like be careful in
[61:46] (3706.16s)
that area of the code.
[61:47] (3707.36s)
What about the case of ownership? So,
[61:50] (3710.96s)
you know, software isn't just about
[61:53] (3713.76s)
creating it, but there's all this
[61:55] (3715.68s)
management and maintenance burden after
[61:58] (3718.00s)
it's created. Did any team get upset? I
[62:01] (3721.12s)
said, "Hey, you add this feature, great,
[62:02] (3722.80s)
but who's owning this thing now? Who's
[62:05] (3725.68s)
going to actually maintain it?" That
[62:08] (3728.32s)
didn't come up for me. And I don't know
[62:10] (3730.48s)
if it's the philosophy. I don't know if
[62:12] (3732.80s)
it's still the case, but the philosophy
[62:14] (3734.88s)
back then was like every line of code
[62:16] (3736.96s)
you wrote, you're responsible for. Um
[62:19] (3739.60s)
Kent Beck talked about this recently
[62:21] (3741.60s)
that yeah he was like it's a really
[62:24] (3744.00s)
strong sense of ownership. So like if
[62:25] (3745.92s)
you if you are okay being woken up at
[62:29] (3749.52s)
3:00 a.m. and you're going to respond
[62:31] (3751.12s)
and fix some bug in your code any time
[62:34] (3754.24s)
of the day anywhere then like do what
[62:38] (3758.56s)
you want with like you know don't write
[62:40] (3760.80s)
tests then go ahead as long as you're
[62:43] (3763.52s)
maintaining it. If you don't want that
[62:45] (3765.28s)
and you want to work nine to five, then
[62:47] (3767.04s)
you might want to write more tests to
[62:48] (3768.64s)
make sure that your code's stable when
[62:51] (3771.04s)
you're not around. Um, so I think if I
[62:53] (3773.36s)
like I I didn't just like touch code,
[62:55] (3775.12s)
didn't refactor code and forget it. I
[62:57] (3777.04s)
was responsible if there was any bugs
[62:59] (3779.04s)
and then in the future like sometimes
[63:01] (3781.92s)
two years later there's like something
[63:03] (3783.60s)
that I get an automatic bug assigned to
[63:06] (3786.48s)
me because it's like you touched this
[63:07] (3787.84s)
code last and I'm like oh man, I don't
[63:10] (3790.32s)
even remember doing this. Um, but then I
[63:12] (3792.32s)
would fix the bug because even though I
[63:14] (3794.08s)
didn't cause the bug, it was just like
[63:15] (3795.36s)
that is now my code. Um, now I didn't I
[63:18] (3798.00s)
didn't have any territorial conflicts
[63:19] (3799.60s)
because I don't I don't know why I I
[63:21] (3801.84s)
didn't I just didn't really come up. Um,
[63:25] (3805.12s)
I never I didn't like step on people's
[63:27] (3807.12s)
product
[63:28] (3808.72s)
judgment. I mean, this is part of the
[63:30] (3810.72s)
the judgment calls I guess that you're
[63:32] (3812.40s)
building up. Like it it's kind of like
[63:35] (3815.20s)
performing a surgery and you're not
[63:36] (3816.72s)
really like you got to be really careful
[63:38] (3818.80s)
about what you're changing. You don't
[63:40] (3820.56s)
want to impact.
[63:42] (3822.48s)
Like I said, I learned maybe learned the
[63:44] (3824.24s)
hard way from making some mistakes early
[63:45] (3825.84s)
on and being a bit too aggressive in
[63:47] (3827.60s)
certain areas. Like you start to learn
[63:49] (3829.68s)
where that line is between
[63:52] (3832.32s)
um like messing up people's day-to-day
[63:56] (3836.00s)
not and still getting the refactoring or
[63:59] (3839.28s)
the cleanup done. One thing that I'm
[64:01] (3841.60s)
curious about you, as you become a more
[64:03] (3843.76s)
senior engineer, it's very common to get
[64:05] (3845.76s)
pulled into more and more meetings.
[64:09] (3849.76s)
miscellaneous overhead. How did you
[64:12] (3852.64s)
manage your your focus as you got
[64:14] (3854.56s)
promoted to be a coding machine? You
[64:16] (3856.56s)
must have had a lot of focus time even
[64:18] (3858.64s)
as IC7.
[64:19] (3859.76s)
I really try to minimize my meetings. If
[64:21] (3861.76s)
someone like just added I don't know if
[64:23] (3863.44s)
this still happens, but people would
[64:24] (3864.64s)
like just make meetings, add you to the
[64:26] (3866.16s)
calendar, there's no context. It's just
[64:27] (3867.84s)
like something something like sync.
[64:30] (3870.96s)
You're like, I don't know what this is.
[64:32] (3872.40s)
I like would ask like what is this? Um,
[64:34] (3874.96s)
which I think people maybe I don't know
[64:36] (3876.64s)
if it's still like the the norms have
[64:38] (3878.24s)
changed, but I would push back on a lot
[64:40] (3880.32s)
of meetings. Um, I generally didn't do
[64:43] (3883.68s)
like go to standups unless it was like
[64:45] (3885.92s)
relevant. Like there's a we're working
[64:48] (3888.08s)
really hard to ship to something in a
[64:49] (3889.60s)
month. I need to go to the standup every
[64:51] (3891.76s)
day because it's like important to be on
[64:54] (3894.40s)
pace. But if there was like a standup
[64:56] (3896.48s)
that was more like just social chitchat
[64:58] (3898.40s)
like cuz the team I don't know some
[65:01] (3901.04s)
standups end up being that way. I don't
[65:02] (3902.56s)
know if you've seen them, but like it
[65:03] (3903.76s)
happens and I would not generally go to
[65:05] (3905.84s)
those. Um, but yeah, so just being
[65:08] (3908.48s)
pretty pretty strict about time and then
[65:10] (3910.40s)
also like having the manager support was
[65:12] (3912.16s)
like pretty important. like I wouldn't I
[65:14] (3914.56s)
was pretty choosy and I like went on
[65:16] (3916.64s)
very I made very conscious team changes
[65:20] (3920.08s)
when I whenever I did change teams and
[65:22] (3922.32s)
the manager was like very like in tune
[65:24] (3924.56s)
with like managers at Meta um like their
[65:29] (3929.20s)
job is to make their reports perform
[65:33] (3933.20s)
exceptionally well. I think I don't know
[65:34] (3934.88s)
if that's how you would summarize it in
[65:36] (3936.24s)
one sentence, but like um like if your
[65:40] (3940.24s)
if your reports get promoted and have a
[65:42] (3942.40s)
lot of impact, like that's what makes
[65:44] (3944.16s)
you a recognized as a high performing
[65:47] (3947.12s)
manager too. And so my managers are
[65:50] (3950.72s)
generally trying to pro like protect me
[65:54] (3954.24s)
and manage me so that I can have the
[65:57] (3957.44s)
most impact possible, which means not
[66:00] (3960.00s)
getting pulled into a lot of meetings
[66:02] (3962.00s)
where unnecessary. But I also I think I
[66:05] (3965.28s)
was too arrogant sometimes and that's
[66:08] (3968.08s)
like one of the things I would tell my
[66:09] (3969.36s)
older self. Um like sometimes I I I
[66:12] (3972.48s)
definitely remember walking out on a
[66:13] (3973.84s)
meeting or two where I was just like I
[66:15] (3975.44s)
don't think this meeting is useful for
[66:16] (3976.56s)
me anymore. I'm leaving. I'm just
[66:18] (3978.32s)
leaving.
[66:18] (3978.64s)
You you said that?
[66:19] (3979.92s)
Yeah. Like I just remember this
[66:21] (3981.84s)
happening a couple times and I'm like
[66:23] (3983.12s)
wow that was like not like good
[66:25] (3985.92s)
behavior.
[66:28] (3988.40s)
like I wouldn't like I I I like almost
[66:31] (3991.60s)
feel really bad because like the person
[66:34] (3994.24s)
running the meeting probably felt really
[66:35] (3995.84s)
bad and now I feel like really really
[66:39] (3999.44s)
Yeah. Yeah. Did HR ever reach out and
[66:41] (4001.92s)
say, "Hey, you're you're productive, but
[66:45] (4005.20s)
can you be nicer and stuff like that?"
[66:48] (4008.64s)
Uh, no. I don't I mean I I don't because
[66:51] (4011.60s)
I wasn't like mean. It wasn't like a
[66:53] (4013.84s)
flip the table type thing. It was like
[66:55] (4015.68s)
very and I would talk to the like I had
[66:57] (4017.36s)
a good relationship with most like I
[66:59] (4019.28s)
think all the PMs I worked with I had a
[67:01] (4021.60s)
pretty good relationship with because I
[67:03] (4023.28s)
built stuff really fast. I fix bugs
[67:05] (4025.36s)
really fast. Like not even my own bugs.
[67:07] (4027.52s)
Just like if they h the PMs like the PMs
[67:10] (4030.16s)
that a lot of the PMs that I mean Meta
[67:12] (4032.64s)
is very high performing company. Almost
[67:14] (4034.88s)
everybody's very strong who works there.
[67:16] (4036.40s)
And like the PMs are like they want to
[67:17] (4037.92s)
like get stuff moving fast. They pay
[67:20] (4040.32s)
attention to every pixel and they're
[67:21] (4041.60s)
like, "Oh no, this is like broken. This
[67:23] (4043.04s)
this test wasn't configured right." And
[67:24] (4044.72s)
there's like things that I was very
[67:26] (4046.32s)
helpful to PM. So they actually like
[67:28] (4048.00s)
liked me a lot. Um, and if I like walked
[67:30] (4050.64s)
out of me, if I like had to leave a
[67:32] (4052.24s)
meeting, it was like they would almost
[67:34] (4054.24s)
like give me permission like yeah, like
[67:36] (4056.48s)
Michael, you don't really you're not
[67:37] (4057.68s)
needed for this next part of the
[67:38] (4058.80s)
meeting, you can go. Like it was not as
[67:40] (4060.88s)
jerkish as it sounds. But I just
[67:42] (4062.72s)
remember being like that cutthroat where
[67:44] (4064.72s)
it was just like like I don't want to
[67:47] (4067.20s)
spend times in meetings that I can't be
[67:49] (4069.92s)
coding. Like it was like that that uh
[67:53] (4073.52s)
that vi that that level of like
[67:55] (4075.52s)
strictness. I would say
[67:57] (4077.36s)
you mentioned that your productivity
[67:59] (4079.84s)
over your whole career was was high and
[68:02] (4082.48s)
it didn't change that much. It just what
[68:04] (4084.64s)
changed was what you wrote code about
[68:07] (4087.28s)
and the problems that you solved. How
[68:09] (4089.68s)
did you like grow that skill of project
[68:13] (4093.84s)
taste or picking problems that mattered
[68:16] (4096.56s)
so that the code was more impactful? I I
[68:19] (4099.36s)
don't think that so first of all I don't
[68:20] (4100.64s)
think that I'm like great great at it
[68:23] (4103.20s)
necessarily. I generally picked and I'm
[68:25] (4105.76s)
still not good at pri prioritizing in
[68:27] (4107.92s)
general. I pick things that I like know
[68:30] (4110.64s)
how to do if that makes sense. All
[68:32] (4112.48s)
right. I pick things where I see the
[68:34] (4114.24s)
answer in my head and um it's just how
[68:38] (4118.72s)
fast can I like type or like get this
[68:42] (4122.40s)
into the code. Um, and which is also why
[68:45] (4125.36s)
LLMs particularly are helping me be
[68:47] (4127.52s)
personally so much more efficient
[68:48] (4128.88s)
because it's like I have what I want to
[68:50] (4130.48s)
do in my head and I need to get it out
[68:52] (4132.24s)
fast and LLM can really help with that.
[68:54] (4134.56s)
Yeah. So, sometimes like it might not be
[68:56] (4136.96s)
the most impactful thing but it's like a
[68:59] (4139.20s)
tricky thing and I have the idea in my
[69:01] (4141.28s)
head on how to do it. I might just do it
[69:03] (4143.84s)
even though it's not as important as
[69:05] (4145.60s)
like another thing. Honestly, this is
[69:07] (4147.28s)
probably one of the things that held me
[69:08] (4148.64s)
back career-wise. And it was also
[69:11] (4151.12s)
frustrating for my managers if they did
[69:13] (4153.12s)
try to communicate like, "Hey, this
[69:15] (4155.20s)
thing's very important. Can you do
[69:16] (4156.72s)
that?" And I'm like, I don't see the
[69:18] (4158.56s)
answer to it. Like, it's not I don't I
[69:20] (4160.80s)
don't have it. If I don't have it in my
[69:22] (4162.32s)
head, I can't do that like super fast. I
[69:24] (4164.40s)
like need to have I need to like see the
[69:26] (4166.96s)
answer, you know, in a sense. Um, so I'm
[69:29] (4169.28s)
going to work on B. It's like, can you
[69:30] (4170.72s)
please work on A? It's like I have to do
[69:32] (4172.80s)
B C D E F G H. It's like, okay, that's
[69:37] (4177.20s)
like a lot of work and that's like
[69:38] (4178.80s)
helpful, but like A would be really
[69:40] (4180.56s)
good. And I just like I that was like
[69:41] (4181.92s)
and I think that that's one of the
[69:43] (4183.36s)
things that probably held me back in
[69:45] (4185.68s)
general because that limit like if A
[69:48] (4188.48s)
really really was so important and I and
[69:51] (4191.20s)
it was not done, you know, it's like you
[69:53] (4193.28s)
get a passing grade for doing all the
[69:54] (4194.96s)
other stuff and it's appreciated, but
[69:57] (4197.20s)
like the company would overall impact
[69:59] (4199.92s)
would probably be higher by doing a if I
[70:02] (4202.00s)
was able to do it. But um I'm somewhat
[70:04] (4204.24s)
limited by like what I can figure out
[70:06] (4206.48s)
how to do. I frame it as a weakness. But
[70:08] (4208.96s)
that's interesting. So you always
[70:10] (4210.48s)
optimize rather than business value
[70:14] (4214.08s)
fully. You your rank ordered list of
[70:16] (4216.56s)
priorities was what can I just crank out
[70:19] (4219.60s)
instantly.
[70:20] (4220.56s)
Yeah. And if you crank out enough stuff,
[70:22] (4222.08s)
it adds up and it can have a huge amount
[70:24] (4224.08s)
of impact. But it is definitely
[70:26] (4226.00s)
definitely like a a different way of
[70:28] (4228.48s)
thinking of work, I think. Yeah. So once
[70:31] (4231.04s)
you got promoted to IC7 I think you had
[70:33] (4233.76s)
shared that you were added to an IC7
[70:38] (4238.24s)
plus only group and I'm curious was
[70:41] (4241.68s)
there anything interesting you learned
[70:43] (4243.20s)
by being a part of that group or was
[70:44] (4244.80s)
there anything common among all the IC7
[70:47] (4247.04s)
plus engineers? There's a certain there
[70:48] (4248.88s)
was a certain kind of bar that everyone
[70:51] (4251.76s)
had regardless of if they were a coding
[70:53] (4253.84s)
machine, regardless of if they were a
[70:56] (4256.08s)
specialist or a fixer, these different
[70:59] (4259.92s)
uh reasons why they're there. Um,
[71:02] (4262.40s)
everyone had like certain traits that
[71:04] (4264.80s)
were common like extremely strong
[71:07] (4267.52s)
diligence and conscientiousness.
[71:10] (4270.80s)
Um, and very uh I wouldn't say fast or
[71:14] (4274.72s)
quick. I don't know the right word, but
[71:16] (4276.56s)
like very like sharp. Sharp is the word
[71:18] (4278.64s)
I'm looking for. If uh if this group was
[71:21] (4281.60s)
even me as someone who I feel like I'm
[71:24] (4284.08s)
not I was a very strong student in
[71:26] (4286.48s)
school. I was like straight A student. I
[71:28] (4288.48s)
think I'm a pretty smart person, but the
[71:30] (4290.72s)
most of these people are still are like
[71:32] (4292.40s)
smarter. Like these are exceptionally
[71:34] (4294.40s)
smart people who I would who I have to
[71:37] (4297.12s)
like acknowledge might be smarter than
[71:38] (4298.56s)
me. Um, but we all could be in the same
[71:42] (4302.16s)
room and talk about something like very
[71:45] (4305.04s)
and very quickly move through the
[71:46] (4306.88s)
concepts. So like here's this new
[71:48] (4308.72s)
proposed protocol and instead of like
[71:51] (4311.20s)
having an hourong presentation on it and
[71:53] (4313.36s)
discussing it, everyone would be pretty
[71:55] (4315.04s)
sharp sharply be like, "Oh, what about
[71:57] (4317.36s)
ABCD?" And like the qu follow-up
[71:58] (4318.96s)
questions would happen very quickly. Um,
[72:01] (4321.68s)
very sharp fast conversations. Um, and
[72:05] (4325.28s)
very high attention to detail. Some
[72:07] (4327.76s)
people like were really like earlier in
[72:09] (4329.76s)
their career accelerated very fast. They
[72:11] (4331.68s)
had these traits. Maybe their
[72:12] (4332.96s)
personality traits. Like for me, these
[72:14] (4334.64s)
are more personality traits. I would say
[72:16] (4336.80s)
like it's like leveraging like OCD and
[72:19] (4339.44s)
like a way a productive way to be like
[72:22] (4342.96s)
obsessed about every detail of the
[72:24] (4344.80s)
product instead of like things that are
[72:26] (4346.64s)
not productive. For other people, they
[72:28] (4348.80s)
had like their 25 years of experience
[72:31] (4351.04s)
and they kind of built these things
[72:32] (4352.80s)
through different ways, but like
[72:34] (4354.40s)
everyone kind of had that. Um whereas
[72:37] (4357.12s)
when a lot of conversations with junior
[72:40] (4360.00s)
people there's a lot less cont there's
[72:41] (4361.76s)
context missing. There's not necess like
[72:44] (4364.72s)
the follow-up questions are not
[72:46] (4366.00s)
necessarily as like sharp and on super
[72:49] (4369.20s)
fast. It takes a little longer to get
[72:51] (4371.60s)
things out. Usually the projects are
[72:53] (4373.12s)
smaller in scope as a result and stuff
[72:55] (4375.44s)
like that.
[72:56] (4376.08s)
One thing I want to go over is kind of
[72:57] (4377.68s)
like a set of topics on just how do you
[73:01] (4381.44s)
how do you land code fast? Like let's
[73:03] (4383.20s)
say you're I'm a you know new software
[73:06] (4386.72s)
engineer.
[73:08] (4388.24s)
I want to absorb your your coding
[73:10] (4390.72s)
machine's abilities. Is there a you know
[73:13] (4393.52s)
top 20% of tips that get is going to
[73:16] (4396.16s)
give me 80% of the benefit to become
[73:19] (4399.12s)
more productive? The general advice is
[73:22] (4402.88s)
you have to move move you can say it
[73:26] (4406.32s)
just in the shortest possible just like
[73:28] (4408.08s)
do something like write code. A lot of
[73:30] (4410.56s)
people I I who ask me for advice or
[73:33] (4413.52s)
questions like they're like thinking too
[73:36] (4416.08s)
much about what to do and not doing
[73:38] (4418.08s)
enough. Um so like step one is like do
[73:41] (4421.12s)
something just do anything. Um and then
[73:44] (4424.64s)
step two which is critical is getting
[73:46] (4426.40s)
feedback from
[73:49] (4429.60s)
uh like respected people or or people
[73:52] (4432.80s)
who who have that experience and taste
[73:56] (4436.32s)
and judgment or further down the line
[73:58] (4438.08s)
and getting feedback from them. and then
[74:00] (4440.40s)
actioning that um and then repeating. I
[74:04] (4444.08s)
thought that my manager hated me because
[74:06] (4446.16s)
I was writing so much code so fast that
[74:08] (4448.40s)
was like so bad and he was writing he
[74:11] (4451.44s)
was doing code reviews and his code
[74:12] (4452.96s)
reviews he was like he was like very
[74:15] (4455.20s)
frustrated because he was spending like
[74:16] (4456.64s)
all day reviewing my code because I was
[74:18] (4458.32s)
writing so much code and it had so many
[74:20] (4460.56s)
problems and he was just like please
[74:22] (4462.32s)
follow the style conventions like there
[74:24] (4464.08s)
were please like like these kind of
[74:25] (4465.60s)
things right and like it sounds like
[74:27] (4467.60s)
that's annoying but that's like step one
[74:29] (4469.12s)
is you got to get like the raw the raw
[74:31] (4471.52s)
gears turning and then once the gears
[74:32] (4472.96s)
are turning getting the feedback and
[74:34] (4474.24s)
then iterating. So if you're if you get
[74:36] (4476.08s)
feedback like follow the style
[74:37] (4477.52s)
guidelines, then you actually have to do
[74:40] (4480.08s)
that next time and then there'll be
[74:43] (4483.04s)
something else wrong and then you
[74:44] (4484.24s)
improve it. And that cycle like that
[74:46] (4486.80s)
compounds exceptionally quickly. If
[74:48] (4488.88s)
you're writing a lot and you're getting
[74:50] (4490.40s)
the getting feedback from experienced
[74:53] (4493.12s)
people and you actually action it, it
[74:55] (4495.92s)
works really well. The like the biggest
[74:57] (4497.68s)
mistakes people make are there's uh
[75:00] (4500.56s)
three mistakes I think. The first one
[75:02] (4502.40s)
like not turning the gears and not doing
[75:04] (4504.96s)
anything like I said earlier. The second
[75:07] (4507.12s)
one is not getting feedback from the
[75:09] (4509.68s)
right people. So, if you get feedback
[75:11] (4511.92s)
from like if you're a boot camp grad and
[75:15] (4515.36s)
you're getting feedback from another
[75:17] (4517.44s)
boot camp grad who graduated like six
[75:19] (4519.36s)
months before you who's like the
[75:21] (4521.12s)
instructor now and they're giving you
[75:23] (4523.04s)
feedback like as the instructor like
[75:25] (4525.68s)
that feedback is probably it doesn't
[75:28] (4528.32s)
you're not you you can't it doesn't
[75:29] (4529.84s)
encapsulate that experience and taste
[75:31] (4531.92s)
and that judgment that you want to learn
[75:34] (4534.32s)
from that you're trying to learn from in
[75:35] (4535.76s)
this process. it encapsulates the
[75:38] (4538.08s)
judgment of someone who's like a little
[75:40] (4540.72s)
tiny bit further ahead of you. Um, so
[75:42] (4542.96s)
you want to get feedback from people who
[75:44] (4544.72s)
have that the judgment and taste that
[75:46] (4546.88s)
you aspire to. And then the third
[75:49] (4549.12s)
mistake is, and this is a mistake that I
[75:51] (4551.36s)
made a lot that I would tell myself to
[75:54] (4554.08s)
not do. Um, but is not actioning the
[75:57] (4557.92s)
feedback and taking it more like
[75:59] (4559.60s)
judgment and approval rather than
[76:01] (4561.44s)
feedback. So if someone gives you
[76:04] (4564.32s)
feedback and you're taking it as like a
[76:06] (4566.08s)
judgment or an approval, you want to
[76:08] (4568.32s)
pass the test and it's like you failed
[76:09] (4569.60s)
and you want to pass it and you're not
[76:11] (4571.52s)
actually reflecting on the feedback.
[76:13] (4573.12s)
You're just taking as approval. You're
[76:14] (4574.56s)
not going to iterate fast enough. You're
[76:16] (4576.08s)
not going to make enough changes. You
[76:18] (4578.24s)
might change the wrong things because
[76:19] (4579.68s)
you're not accepting the feedback. So if
[76:23] (4583.44s)
you do all that, I think you can and and
[76:25] (4585.36s)
you do it fast, you can accelerate your
[76:27] (4587.92s)
your progress so much. You're saying uh
[76:31] (4591.52s)
basically shorten the cycle time and
[76:34] (4594.32s)
then make sure you get good feedback and
[76:36] (4596.32s)
then internalize it and just that's
[76:38] (4598.24s)
going to compound. Just shorten that
[76:39] (4599.60s)
loop and just keep going, keep going,
[76:40] (4600.80s)
keep going.
[76:41] (4601.68s)
I see.
[76:42] (4602.40s)
Let's say I am I'm outputting a ton of
[76:45] (4605.76s)
code. I'm already a code machine, but
[76:47] (4607.60s)
I'm uh I want to get better. Do you have
[76:50] (4610.48s)
any advanced tips on how to take it to
[76:52] (4612.80s)
that next level? Let's say I'm pretty
[76:54] (4614.96s)
productive already. I would be
[76:58] (4618.08s)
ambitious, more ambitious probably if
[77:00] (4620.72s)
you're like if you have like your coding
[77:03] (4623.12s)
machine thing going like take on
[77:05] (4625.52s)
something ambitious that is pushing
[77:08] (4628.32s)
yourself a little bit outside of your
[77:11] (4631.60s)
normal scope of wherever you're you are
[77:14] (4634.40s)
you're in the code or um like this is
[77:18] (4638.80s)
very specific to Facebook and Meta
[77:20] (4640.64s)
though in general because your impact is
[77:24] (4644.40s)
somewhat judged by like breadth and
[77:27] (4647.20s)
scope and like
[77:29] (4649.68s)
the wider the umbrella, the bigger the
[77:32] (4652.80s)
umbrella kind of the more higher level
[77:34] (4654.88s)
you are and the more recognition you
[77:37] (4657.04s)
get. So like in that environment like if
[77:39] (4659.12s)
you're a coding machine on your
[77:41] (4661.04s)
department like you got to push beyond
[77:44] (4664.08s)
the department and p push your comfort
[77:46] (4666.40s)
zone a bit. My advice to my like
[77:48] (4668.96s)
something like I saying I'm not good at
[77:50] (4670.88s)
accepting prioritization from leaders
[77:53] (4673.76s)
but that's actually the advice I would
[77:55] (4675.28s)
give though if you're stuck is to ask
[77:57] (4677.68s)
like talk like ask your I don't know I
[78:01] (4681.28s)
had many many one-on- ones with like the
[78:03] (4683.76s)
seauite at Facebook where I was just
[78:06] (4686.00s)
like hey Chris Cox like I need I want to
[78:08] (4688.64s)
talk to you about this thing and have a
[78:11] (4691.60s)
15-minute one-on-one and just if you're
[78:14] (4694.40s)
a coding machine that has credibility
[78:16] (4696.24s)
already and you're stuck stuck like
[78:18] (4698.08s)
reaching out to more senior people in
[78:20] (4700.88s)
different areas and trying to get some
[78:22] (4702.48s)
ideas of those wider scoped projects if
[78:26] (4706.24s)
you're really stuck um can be a step
[78:28] (4708.16s)
forward. Coming to the end of the
[78:30] (4710.80s)
interview just want to do some you know
[78:33] (4713.04s)
career reflections and stuff like that
[78:35] (4715.84s)
and you were at Meta for quite a while
[78:39] (4719.20s)
and you had a lot of success. I'm
[78:41] (4721.12s)
curious why why did you leave Meta and
[78:43] (4723.92s)
what was your thinking behind the career
[78:45] (4725.52s)
planning there? So Meta got like quite
[78:48] (4728.24s)
big quite fast. Um, and there was like
[78:50] (4730.64s)
this turning point I six years,
[78:53] (4733.12s)
threequarters the way time through there
[78:54] (4734.64s)
where I felt like when I was all in on
[78:56] (4736.64s)
on Facebook, I felt like it had my back
[78:59] (4739.36s)
like 100%. I had their back 100%. It was
[79:03] (4743.52s)
like a little bit like culty maybe like
[79:07] (4747.12s)
vibes. Um, and then it felt more like a
[79:09] (4749.12s)
company, like a business, like a
[79:10] (4750.88s)
business relationship. Um, it was
[79:12] (4752.72s)
changing. So, that was kind of like the
[79:14] (4754.96s)
first sign where I was like open to
[79:17] (4757.60s)
leaving. Um, and then I won't go into
[79:20] (4760.56s)
all of the details about the vesting
[79:22] (4762.00s)
cycles, but there were some vesting
[79:25] (4765.20s)
logistics.
[79:26] (4766.72s)
Certain years they like had some longer
[79:28] (4768.72s)
grants for various reasons and the
[79:31] (4771.52s)
vesting cycles and overlapping and
[79:33] (4773.44s)
stuff. there was like a very strong
[79:35] (4775.92s)
point where it was like your
[79:37] (4777.44s)
compensation your take-home pay is going
[79:39] (4779.12s)
to drop like 80% in a month like in a
[79:41] (4781.68s)
certain over a certain period.
[79:43] (4783.76s)
So I was kind of like okay you know like
[79:46] (4786.08s)
this is maybe the time to like ramp
[79:48] (4788.56s)
down. So
[79:49] (4789.92s)
I think after the previous performance
[79:51] (4791.92s)
review cycle when that was coming up I
[79:55] (4795.04s)
basically said like I'm going to be
[79:58] (4798.00s)
leaving in three months. Um, and then I
[80:01] (4801.04s)
did a little farewell tour on Messenger
[80:03] (4803.04s)
for kids to be like my manager was like,
[80:05] (4805.36s)
"Okay, like do you want one last
[80:06] (4806.72s)
harrah?" And then they did this project
[80:08] (4808.32s)
worked on this project. Um, and I kind
[80:10] (4810.16s)
of like slowly ramped down over that
[80:12] (4812.48s)
period. Um, and I was like taking home
[80:15] (4815.12s)
stuff from my desk every day like slowly
[80:17] (4817.36s)
slow ramp down. Um, but it was
[80:19] (4819.36s)
definitely it was just kind of that like
[80:21] (4821.60s)
at formation now. I mean obviously I'm a
[80:23] (4823.76s)
founder so it's also I have more control
[80:26] (4826.80s)
over the the that but um it's really
[80:29] (4829.52s)
like an all in I'm like allin or not
[80:31] (4831.52s)
allin and that allinness like broke like
[80:34] (4834.96s)
somewhere threequarters of the time
[80:36] (4836.64s)
through through meta as it got bigger
[80:38] (4838.16s)
and bigger and I like needed to put that
[80:40] (4840.88s)
somewhere else that that dedication
[80:42] (4842.72s)
somewhere else.
[80:43] (4843.52s)
Yeah. I mean getting a 80% pay cut is uh
[80:47] (4847.04s)
coupled with the cultural changes you
[80:49] (4849.76s)
know makes seems like a good timing to
[80:51] (4851.68s)
leave. So when it comes to the highest
[80:54] (4854.64s)
levels of performance in IC's, what's
[80:57] (4857.60s)
your take on how much of it is talent
[81:00] (4860.24s)
and how much of it is hard work and
[81:02] (4862.40s)
growth?
[81:03] (4863.04s)
There is talent. Some people have more
[81:05] (4865.04s)
talent than others. Some of it is maybe
[81:07] (4867.52s)
your biology. Some of it's just how you
[81:10] (4870.40s)
grew up and opportunities you had and
[81:13] (4873.92s)
some of it is you have raw talent that's
[81:16] (4876.40s)
not discovered yet. there's like all
[81:18] (4878.00s)
kinds of views on talent, but it is a
[81:20] (4880.88s)
thing and it does come into play. Um, so
[81:23] (4883.76s)
there is an aspect of things that are
[81:26] (4886.24s)
talent in quotes. If you feel like
[81:28] (4888.72s)
you're like, "Oh, no, I'm not talented."
[81:30] (4890.40s)
Like you might actually be talented and
[81:31] (4891.68s)
it hasn't been discovered yet or you
[81:33] (4893.60s)
might be like talented at something that
[81:35] (4895.44s)
isn't your day job right now and you
[81:37] (4897.12s)
should figure out what that is. And
[81:38] (4898.24s)
that's actually like at formation that's
[81:40] (4900.56s)
our like big long-term vision is is we
[81:44] (4904.32s)
want and why I do what I do every day
[81:46] (4906.24s)
now is like we want people doing the
[81:48] (4908.88s)
work that is the most impactful work
[81:52] (4912.40s)
they can do and we want to help them
[81:54] (4914.40s)
find that work because not everyone grew
[81:56] (4916.48s)
up the same way with able to explore and
[82:00] (4920.00s)
find what that thing is and they might
[82:01] (4921.36s)
have not found it yet. We want like, you
[82:03] (4923.20s)
know, I feel I feel like everyone has
[82:05] (4925.36s)
some kind of talent or something that
[82:07] (4927.60s)
they're better than most other people
[82:09] (4929.36s)
at. And if you find out what that is,
[82:11] (4931.92s)
that is a big piece of the high
[82:13] (4933.20s)
performance. And you might not have that
[82:15] (4935.36s)
at your day job right now, and it might
[82:17] (4937.44s)
limit your performance a little bit.
[82:19] (4939.68s)
It's not it's not the whole thing, but
[82:20] (4940.96s)
it might limit it. On the other hand, um
[82:23] (4943.92s)
hard work is within your control. Um my
[82:26] (4946.96s)
friend Philip Zoo talks about this a
[82:28] (4948.56s)
lot. Um, but he says like talent is
[82:30] (4950.88s)
something outside of your control and
[82:33] (4953.20s)
luck is outside of your control, which
[82:34] (4954.80s)
is another thing that comes into play
[82:36] (4956.32s)
sometimes. But, uh, hard work is the one
[82:38] (4958.64s)
thing that's within your control. And if
[82:41] (4961.36s)
you maybe aren't you're in a place that
[82:43] (4963.04s)
you're you're good at your job, it's
[82:44] (4964.48s)
maybe not your like natural talent, but
[82:46] (4966.40s)
you're good at it and you like it and
[82:48] (4968.88s)
you want to keep your job and you want
[82:50] (4970.16s)
to do better, um, you can outwork people
[82:52] (4972.72s)
who are similar to you and you will
[82:54] (4974.48s)
probably be recognized more
[82:56] (4976.48s)
performance-wise as well. What percent
[82:58] (4978.88s)
of your career growth would you say is
[83:01] (4981.28s)
of the growth? Um I think it's 5050 in I
[83:05] (4985.84s)
came from Canada. I when I showed up on
[83:07] (4987.92s)
my first day of Facebook they gave me I
[83:10] (4990.64s)
like grabbed my laptop and left the
[83:13] (4993.12s)
onboarding room and they like called me
[83:15] (4995.44s)
back because they said that I didn't
[83:16] (4996.88s)
have my phone and I didn't know what
[83:18] (4998.56s)
they were talking about. It was like
[83:19] (4999.60s)
phones like they give you a cell phone
[83:21] (5001.04s)
and they gave us like all these
[83:22] (5002.72s)
accessories and like this bundle like it
[83:24] (5004.64s)
was like they were like red carpet. And
[83:26] (5006.08s)
I was like, "What is all this stuff?"
[83:27] (5007.36s)
Like, "I just need a computer." Like, it
[83:29] (5009.92s)
I came from a place that was a lot more
[83:32] (5012.00s)
of like the things you hear about tech
[83:34] (5014.16s)
and the way that engineers are like
[83:36] (5016.08s)
treated and compensated now is very was
[83:38] (5018.48s)
very weird. Um, so if I had like stayed
[83:42] (5022.32s)
in Canada and worked at a company, I
[83:44] (5024.08s)
would probably be doing quite well, but
[83:45] (5025.92s)
like I wouldn't have had the same
[83:47] (5027.68s)
acceleration.
[83:49] (5029.20s)
Um, the lock was really landing at at
[83:51] (5031.76s)
Facebook at the time that I did and it
[83:54] (5034.96s)
being like the perfect fit for my
[83:58] (5038.24s)
personality at the time and the values
[84:02] (5042.00s)
were extremely aligned. Code was like
[84:04] (5044.72s)
aligned with what I could handle and
[84:07] (5047.76s)
that part is like pure luck. So, I would
[84:10] (5050.80s)
maybe just say 50/50. I've seen a lot of
[84:13] (5053.68s)
people who don't have the same like
[84:15] (5055.52s)
drive and got the luck piece and they're
[84:18] (5058.72s)
also doing very well. But like either
[84:20] (5060.72s)
one of those could work out and be okay.
[84:22] (5062.56s)
But I think I got both of those and that
[84:24] (5064.72s)
worked out very well for me personally.
[84:27] (5067.60s)
Last question. Um if you could speak to
[84:30] (5070.72s)
yourself when you just graduated and
[84:33] (5073.28s)
give yourself some advice knowing
[84:34] (5074.88s)
everything that you know now, what would
[84:36] (5076.96s)
you say? I think going back to what I
[84:39] (5079.04s)
said earlier, um I was very much and I
[84:42] (5082.64s)
see this a lot with people preparing for
[84:45] (5085.36s)
interviews at formation nowadays seeking
[84:47] (5087.68s)
too much approval for like uh like pats
[84:50] (5090.96s)
on the back approval. They want to pass
[84:53] (5093.28s)
the test. They want to submit their leak
[84:54] (5094.80s)
code and see a green check mark. They
[84:56] (5096.48s)
want to um I was that person. I wanted
[84:58] (5098.72s)
to get the highest grades and I didn't
[85:00] (5100.48s)
really like know what I was learning
[85:02] (5102.24s)
even. I just wanted to get like an A+ or
[85:05] (5105.12s)
100%. And because of that, I was not
[85:08] (5108.00s)
accepting feedback as feedback to
[85:10] (5110.64s)
improve. I was accepting feedback as
[85:13] (5113.68s)
grade to judge myself and put pressure
[85:17] (5117.36s)
on myself to get 100% next time. But I
[85:20] (5120.16s)
wasn't putting pressure on myself to
[85:21] (5121.68s)
actually improve. So my advice to people
[85:24] (5124.72s)
who are ambitious and who want to get
[85:26] (5126.64s)
those like perfect scores and check off
[85:28] (5128.56s)
all the boxes is to really reflect on
[85:31] (5131.28s)
feedback on how you can improve and try
[85:34] (5134.56s)
to push your comfort zone there instead
[85:36] (5136.72s)
of trying to look at it as a a judgment
[85:39] (5139.12s)
or a a grade.
[85:40] (5140.64s)
Awesome. Well, thanks so much for your
[85:42] (5142.72s)
time, Michael. I I was really looking
[85:44] (5144.64s)
forward to talking to you and, you know,
[85:46] (5146.56s)
hopefully the audience got something
[85:48] (5148.24s)
helpful out of this as well.
[85:49] (5149.84s)
Yeah. And if anyone has any follow-up
[85:52] (5152.00s)
questions, I'm like very very
[85:54] (5154.00s)
approachable. You can ping me on
[85:55] (5155.60s)
LinkedIn or Reddit or whatever and happy
[85:57] (5157.92s)
to happy to chat. Hey, thanks for
[85:59] (5159.68s)
watching the show. I don't sell anything
[86:01] (5161.28s)
or do sponsorships, but if you want to
[86:03] (5163.52s)
support, you can subscribe on YouTube or
[86:06] (5166.48s)
you can leave a review on Spotify. And
[86:08] (5168.64s)
I'm always looking for new guests to
[86:10] (5170.16s)
interview. So if anyone comes up who you
[86:12] (5172.24s)
think you really want to hear their
[86:14] (5174.00s)
career story, uh, let me know and I'll
[86:16] (5176.56s)
try to reach out to them and get them on
[86:18] (5178.08s)
the show. Thanks for listening as always
[86:19] (5179.92s)
and I'll see you next time.