Latest / The Pragmatic Engineer / “The Coding Machine” at Meta with Michael Novati
Transcript
- 0:00SPEAKER_0: What does a coding machine mean?
- 0:01SPEAKER_0: It's very controversial because anyone can write a lot of code in theory.
- 0:05A junior engineer could sit down and just press the keyboard all day and write
- 0:07a lot of code.
- 0:08SPEAKER_0: The zoomed out thing is impact.
- 0:10SPEAKER_0: So, what is the code doing?
- 0:12SPEAKER_0: Writing a lot of code all day long, but is it moving projects forward?
- 0:16Is it helping launch a product that might need a team of 5 to 10 engineers that
- 0:20just one engineer can do?
- 0:22SPEAKER_0: Is it unblocking a lot of people by just pushing a lot of things forward?
- 0:25Is it refactoring a lot of code extremely quickly and fast so that new
- 0:30engineers don't even have to deal with old libraries?
- 0:32These are the type of examples that make a coding machine a coding machine.
- 0:35SPEAKER_0: I'm still a coding machine to this day at Formation.
- 0:37SPEAKER_0: I'm writing code all day long.
- 0:39SPEAKER_0: I think I have 20 commits today already.
- 0:41SPEAKER_1: Oh, wow.
- 0:41SPEAKER_1: And it's just a morning.
- 0:43Michael Novati spent eight years working at Meta from 2009 to 2017,
- 0:46where in some years he was the number one code committer across the whole company.
- 0:51He started as an intern and in just six years was promoted four times getting
- 0:55to the E-7 level,
- 0:56which is the equivalent of principal engineering level at other tech companies.
- 0:59Michael is now the co-founder of Formation,
- 1:01our remote software engineering fellowship program.
- 1:04In today's episode,
- 1:04we go into what the coding machine archetype is as Meta for staff plus
- 1:08engineers and how Michael became the first ever coding machine at Facebook.
- 1:12Meta's engineering culture and why the company built so many custom
- 1:15internal tools.
- 1:16How the hiring committee works at Meta and how they make hiring decisions?
- 1:20And a lot more advice for doing well on tech interviews and additional
- 1:23stories from Michael's time at Meta.
- 1:25If you enjoy the show,
- 1:26please subscribe to the podcast on any podcast platform and on YouTube.
- 1:31SPEAKER_1: Michael, welcome to the podcast.
- 1:33SPEAKER_0: Hi, I am happy to be here.
- 1:34SPEAKER_0: Thanks for inviting me.
- 1:36So,
- 1:38let's start with something really surprising and interesting about you.
- 1:42SPEAKER_1: At Meta, there's these things called archetypes.
- 1:45They're used for performance reviews and promotions as I've learned when I
- 1:48researched the company,
- 1:49things like fixer text lead and there's something called the coding machine,
- 1:53which apparently came about because of you.
- 1:58SPEAKER_1: Can you talk about that?
- 2:00SPEAKER_0: Yeah, sure.
- 2:01I can talk a little bit about the coding machine,
- 2:03so it's back in maybe 2015 or so.
- 2:08So in general about the archetypes,
- 2:11there's two purposes for them at Meta.
- 2:15SPEAKER_0: Overall, fairness is really important at Meta.
- 2:19So the archetypes are these examples of what an engineer who's at the
- 2:25principal senior staff level would look like,
- 2:29and the archetypes are modeled after existing engineers who are there.
- 2:33So they're a way for the company to pattern match upcoming engineers against
- 2:39these existing engineers and try to have a fair system for who's at this level
- 2:44and who's not.
- 2:45And the reason why there's not just one or two,
- 2:50and there's a handful of them,
- 2:51is that Meta has this...
- 2:53They don't use this analogy a lot internally,
- 2:55but I've always found this a natural analogy is the pro sports team analogy.
- 3:01When you have a professional sports team,
- 3:02you have a bunch of baseball players say,
- 3:05or basketball players,
- 3:06and each person has a different position that they play.
- 3:09SPEAKER_0: But all of those people at the pro level are pretty good.
- 3:12SPEAKER_0: They're all quite good at every position.
- 3:14SPEAKER_0: They can throw baseballs, throw basketballs, etc.
- 3:17SPEAKER_0: Steph Curry is the best three point shooter I think.
- 3:21I don't know that much about basketball,
- 3:22and in the analogy of the archetypes,
- 3:24there's similarly people have specialties.
- 3:27So everyone,
- 3:28once you're at that level,
- 3:29you can do all the basic things engineers to do or on a daily basis,
- 3:33but there becomes these different specialties where you're exceptional or
- 3:37one of the best in the company or even best in the industry at.
- 3:41So the coding machine is something that it was invented for me,
- 3:48and I won't go into all the history of the back and forth of how it happened,
- 3:52but generally speaking,
- 3:53there wasn't really an archetype for what I was doing already.
- 4:00So this was a case where they had to sit down,
- 4:03compare me to people who are already at these E-7 plus levels,
- 4:08zoom out and focusing on impact.
- 4:10That's like the word you'll hear a lot when you talk to Facebook people about
- 4:15performance reviews is impact.
- 4:17And they try to say,
- 4:18they notice that overall Michael is impacting the company very similarly to
- 4:23other E-7s,
- 4:24but there isn't an archetype that he fits into.
- 4:26SPEAKER_0: I'm not a specialist or a fixer is a really good example.
- 4:32I don't write one line of code to save $10 million,
- 4:34simple cut,
- 4:34dry,
- 4:36easy,
- 4:36[inaudible 00:04:37].
- 4:37SPEAKER_1: So see that's what a fixer is.
- 4:38SPEAKER_0: Yeah.
- 4:39I have a friend who's a fixer and he writes a few lines of code a year and they're
- 4:43extremely impactful because he's spending most of his time talking to
- 4:47people and deep diving into these really weird intersections of issues.
- 4:51SPEAKER_0: And that's pretty easy to quantify.
- 4:53SPEAKER_0: It's easy to understand the impact on the business.
- 4:58SPEAKER_0: So, some of those archetypes are a little easier.
- 5:00SPEAKER_0: Now with coding machine it's a little harder.
- 5:02It's very controversial because anyone can write a lot of code in theory,
- 5:07like a junior engineer could sit down and just press the keyboard all day and
- 5:11write a lot of code.
- 5:12SPEAKER_0: So, what does a coding machine mean to be at this level?
- 5:16SPEAKER_0: And the zoomed out thing is impact.
- 5:21SPEAKER_0: So, what is the code doing?
- 5:24SPEAKER_0: Writing a lot of code all day long, but is it moving projects forward?
- 5:29Is it helping launch a product that might need a team of 5 to 10 engineers that
- 5:34just one engineer can do?
- 5:37SPEAKER_0: Is it unblocking a lot of people by just pushing a lot of things forward?
- 5:42Is it refactoring a lot of code extremely quickly and fast so that new
- 5:47engineers don't even have to deal with old libraries?
- 5:51So these are the type of examples that make a coding machine a coding machine.
- 5:58Now,
- 5:59how they created this,
- 6:00there's maybe the story behind that is just a lot of back and forth.
- 6:03It's an executive who really sponsored me,
- 6:08his name's Tom Allison and I think that he's head of Facebook,
- 6:12"Theproduct"now-
- 6:15SPEAKER_1: Wow.
- 6:15SPEAKER_0: ... or the app they call it, I think.
- 6:17Yeah,
- 6:18he was really championing me and working with the other VPs at the time to
- 6:24connect the dots and make this happen.
- 6:26SPEAKER_0: Yeah.
- 6:27SPEAKER_0: And I'm still a coding machine to this day at Formation.
- 6:30SPEAKER_0: I'm writing code all day long.
- 6:31SPEAKER_0: I think I have 20 commits today already.
- 6:34SPEAKER_0: This is a busy day.
- 6:36SPEAKER_1: Oh wow.
- 6:36SPEAKER_1: And it's just the morning.
- 6:38SPEAKER_0: Yeah, just this morning.
- 6:42SPEAKER_0: Yeah.
- 6:42I would say,
- 6:43in terms of going back to that professional sports analogy,
- 6:48that's my thing that I'm the top 1% at.
- 6:51On the professional sports team,
- 6:52it's like we need to move this new prototype forward insanely quickly.
- 6:58Then I might be the go-to person,
- 6:59or we need to refactor a lot of code really fast,
- 7:02I'm the one person you would go to and the whole company to talk to about doing that.
- 7:06SPEAKER_0: And that's what justified me being at that level.
- 7:09SPEAKER_1: Trust isn't just earned, it's demanded.
- 7:12Whether you're a startup founder,
- 7:13navigating your first audit or seizing security professional skill in your
- 7:17governance risk and compliance program,
- 7:19proving your commitment to security has never been more critical or more complex.
- 7:23SPEAKER_1: That's where Vanta comes in.
- 7:25Vanta can help you start or scale your security program by connecting with
- 7:29auditors and experts to conduct your audit and set up your security program quickly.
- 7:33Plus,
- 7:34with automation and AI throughout the platform,
- 7:36Vanta gives your time back so you can focus on building your company.
- 7:40Businesses use Vanta to establish trust by automating compliance needs
- 7:43across over 35 frameworks like SOC2 and ISO 27001.
- 7:48With Vanta,
- 7:48they centralize security workflows,
- 7:50complete questionnaires up to five times faster and proactively manage
- 7:53vendor risk.
- 7:55Join over 9,000 global companies to manage risk and prove security in real time.
- 7:59For a limited time,
- 8:00my listeners get $1,000 off Vanta at vanta.com/pragmatic.
- 8:05SPEAKER_1: That is V-A-N-T-A.com/pragmatic for $1,000 off.
- 8:11SPEAKER_1: This episode is brought to you by WorkOS.
- 8:13If you're building a SaaS app,
- 8:14at some point your customers will start asking for enterprise features like
- 8:17SAML authentication,
- 8:18skin provisioning and fine-grained authorization.
- 8:21That's where WorkOS comes in,
- 8:23making it fast and painless,
- 8:24add enterprise features to your app.
- 8:26Their APIs are easy to understand and you can ship quickly and get back to
- 8:29building other features.
- 8:31WorkOS also provides a free user management solution called AuthKit for up
- 8:35to 1 million monthly active users.
- 8:37It's a drop-in replacement for Auth0,
- 8:39income standard with useful features like domain verification,
- 8:42rule-based access control,
- 8:43bot protection and MFA.
- 8:45SPEAKER_1: It's powered by Radix, which means zero compromises in design.
- 8:49You get limited customizations as well as modular templates designed for
- 8:52quick integrations.
- 8:54Today,
- 8:54hundreds of fast-growing startups are powered by WorkOS,
- 8:57including ones you probably know,
- 8:58like Cursor,
- 8:59Vercel,
- 9:00and Perplexity.
- 9:01SPEAKER_1: Check it out at workos.com to learn more.
- 9:04SPEAKER_1: That is workos.com.
- 9:07Do I understand correctly that A,
- 9:09this happened when you were at E-7 level,
- 9:11which is a very senior level,
- 9:12I think equivalent of senior staff or principal engineer at companies that
- 9:16do have levels.
- 9:19And then B,
- 9:21can you give an example of what type of work you were doing at the time?
- 9:24SPEAKER_1: Just give us an example of what your week-to-week looked like.
- 9:27SPEAKER_1: Because you mentioned refactoring or doing impactful stuff.
- 9:31SPEAKER_0: Yeah.
- 9:32So the conversations start when you're at the E-6 level,
- 9:36which is generally considered staff.
- 9:41Three is junior,
- 9:42four is mid-level,
- 9:44five is senior,
- 9:45six is staff,
- 9:46and then seven is senior staff.
- 9:48I mean,
- 9:48getting 3,
- 9:484,
- 9:485 is your more standard common traits between those levels.
- 9:55And at six,
- 9:56you start to think about what makes me a little different than others.
- 9:59You're participating at a higher level and then that's when you have the
- 10:02conversation to get to 7.
- 10:04SPEAKER_0: I was a coding machine from day one in unofficially.
- 10:08Literally as an intern,
- 10:10the first thing I did on my second or third day was I just noticed that the org
- 10:17chart tool looked really...
- 10:18It was a handmade tool at Facebook and looked really,
- 10:22really janky.
- 10:23SPEAKER_0: [inaudible 00:10:24].
- 10:24SPEAKER_1: This is internal tool where you can look up the org thing?
- 10:29SPEAKER_0: Yeah.
- 10:30I feel most companies have their own if they're not using something like
- 10:33Workday these days,
- 10:33but a lot of them build it,
- 10:34right?
- 10:35SPEAKER_1: Clearly, Meta [inaudible 00:10:36].
- 10:36SPEAKER_0: Yeah, and I don't know why.
- 10:38SPEAKER_0: I mean, Facebook built all their own tools, so I guess I know why.
- 10:41But it was just weird,
- 10:42like it showed two levels,
- 10:44it did lots of scrolling.
- 10:45SPEAKER_0: It's really weird.
- 10:45SPEAKER_0: So, I'm just going to rewrite this.
- 10:47SPEAKER_0: And the vertical height was weird, so I just made it horizontal.
- 10:52So Mark Zuckerberg was on the left and his reports were to the right and their
- 10:56reports were vertically below them.
- 10:58SPEAKER_0: So, it was like a horizontal layout and I just shipped this.
- 11:02SPEAKER_0: I wrote it, my manager approved the PR.
- 11:04It was second,
- 11:05third day as an intern,
- 11:06shipped it,
- 11:07and didn't get permission or anything like that,
- 11:09just drove it out the door.
- 11:10Didn't even really know what I was doing socially or social norms wise at the time.
- 11:17SPEAKER_0: I just thought it was like, "Cool, let's do this.
- 11:18SPEAKER_0: Let's crank out this code."
- 11:20SPEAKER_0: And that was really well received and [inaudible 00:11:23].
- 11:23So you ship this on,
- 11:24I don't know,
- 11:24second or third day,
- 11:25same day landing,
- 11:26and then suddenly the internal tool that everyone at the company is using,
- 11:29it just completely changed the visual design?
- 11:33And people thought it was fantastic because the horizontal nature,
- 11:37which was actually just a judgment call because the page was too tall vertically.
- 11:43SPEAKER_0: If it was a vertical layout, it was just too much scrolling.
- 11:46SPEAKER_0: But people loved it because it flattened the hierarchy.
- 11:48It showed that anyone can have influence across at any and on a horizontal line,
- 11:55like an intern is at the same line as Mark Zuckerberg.
- 11:59SPEAKER_0: And people love this.
- 12:00SPEAKER_0: So, it reinforced this idea that, wow, this is just how things work here.
- 12:06I can write as much code as I want and ship it as fast as I want and we'll see what happens.
- 12:09SPEAKER_1: Wow.
- 12:10And then there's lots of adventures after that,
- 12:11which [inaudible 00:12:13].
- 12:12SPEAKER_1: And this is like 2009, how big was the company roughly?
- 12:16It was about 220-ish,
- 12:20I'd say,
- 12:20about 200 engineers and about 700 employees at the time.
- 12:24SPEAKER_0: So relatively small, yeah.
- 12:26SPEAKER_0: Still in downtown Palo Alto scattered across the couple offices.
- 12:30SPEAKER_0: Yeah.
- 12:31SPEAKER_0: Sorry, that was a bit of a side track there.
- 12:35SPEAKER_1: What a story.
- 12:35SPEAKER_1: I love it.
- 12:36We were talking about what I did on a day-to-day basis I think as a coding machine.
- 12:40SPEAKER_0: So, I called myself a product engineer.
- 12:43SPEAKER_0: I was always officially allocated to a product team.
- 12:46I started off on internal tools,
- 12:48which is a product team at Meta,
- 12:51and then I worked on Facebook groups.
- 12:54And the first version of Facebook workplace,
- 12:56I worked on News Feed,
- 12:58I worked on Facebook groups for schools and colleges.
- 13:02SPEAKER_0: I worked on Messenger for kids.
- 13:04SPEAKER_0: That was one of the last things I worked on.
- 13:07So I was always on a product team,
- 13:10but I was always doing a lot of refactoring and code cleanup on this,
- 13:15"Ontheside."
- 13:16So a typical day was,
- 13:17I would say,
- 13:19contributing as a E-5 senior engineer locally on the team that I was on.
- 13:26Someone who's working on a pretty small team of 5 to 10 engineers leading projects,
- 13:32helping break things down,
- 13:34helping mentor,
- 13:35and then that was like I would do that in 30% of my time and spend the rest of my
- 13:40time on this massive refactorings and cleanups and these code base wide efforts.
- 13:49SPEAKER_1: Wow.
- 13:49So in 30% of your time,
- 13:51you did the work that for an E-5 or E-6 that would spend,
- 13:55I don't know,
- 13:4960,
- 13:4970,
- 13:4980% of their time depending on how you look at it?
- 13:59SPEAKER_0: Yeah.
- 13:59SPEAKER_1: Wow.
- 13:59SPEAKER_1: Impressive.
- 14:00SPEAKER_0: Yeah.
- 14:01But that's also why the coding machine progression is hard because it's if
- 14:07I'm acting like that role on a team,
- 14:10it's like if I spent that 33% of the time multiplied it by three and I just did
- 14:17replace three senior engineers,
- 14:19that probably wouldn't be enough to justify getting to the E-7 plus level at Meta.
- 14:25So that had to be weighed in with this outsized other impact that I was having.
- 14:32SPEAKER_0: Yeah, I don't know if that makes sense.
- 14:36And the concept of archetypes,
- 14:38it's super interesting that first of all,
- 14:40someone championed you.
- 14:41SPEAKER_1: Was it your manager at the time?
- 14:43SPEAKER_0: It was actually my skip level manager.
- 14:46Your skip level,
- 14:47but your skip level champion saying,
- 14:48"All right,
- 14:49here we have this IC doing great work,
- 14:52but they don't really have an archetype.
- 14:54SPEAKER_1: And let's create one to recognize and help them grow professionally."
- 14:58But it's taking a step back,
- 14:59the concept of archetypes is very unique to Facebook or Meta these days.
- 15:05I haven't seen it at many other companies,
- 15:07but what I do see is there's a glass ceiling of people being stuck unless you
- 15:14become a tech lead or more of...
- 15:16Usually,
- 15:16it's a tech lead where you go on and you have an impact.
- 15:20You've now with your current business,
- 15:25you have window into how other companies operate and how they interview and
- 15:28how to get in.
- 15:29Why do you think this is,
- 15:30that Meta still seems to be one of the few companies that has come up with this
- 15:34concept of career progression for very senior software engineers on the IC
- 15:38track with archetypes?
- 15:40SPEAKER_0: Yeah, I think it's a good question.
- 15:42SPEAKER_0: I think it reflects the company's culture.
- 15:46SPEAKER_0: It's an engineering first culture.
- 15:48There was tremendously talented individual contributors that I worked
- 15:53with early on in their careers,
- 15:55and Meta wanted to support those people and break through that idea that you
- 16:01have to be a manager to progress,
- 16:04so they wanted these people to be empowered.
- 16:06SPEAKER_0: And it's not just the levels.
- 16:08I feel like nowadays the companies are so large,
- 16:11people are...
- 16:13Maybe the way that IBM felt to me early 10 years ago is maybe how people might
- 16:18start looking at the structures of these big tech companies now,
- 16:21they just have tens of thousands of employees.
- 16:23SPEAKER_0: It's a lot more rigid.
- 16:26But Meta really wanted to have these individual contributors be superstars
- 16:32that were socially influential to at the company.
- 16:36And you would see at all hands,
- 16:39you wouldn't just see a presentation from the vice president of a department,
- 16:43you would see a presentation from the highest ranking individual
- 16:48contributing engineer as well.
- 16:50SPEAKER_0: And they had this equal presence.
- 16:52But I raised a lot of,
- 16:53or flipped a lot of tables,
- 16:55you could say,
- 16:56about this at the time.
- 16:57Because I felt like there still wasn't even enough support of ICs at the
- 17:01senior levels.
- 17:03At the more junior levels of management,
- 17:07there was about parity more or less between a first level manager and a staff engineer,
- 17:14the M1 and E-6,
- 17:15they were roughly equal percentages normalized and stuff.
- 17:19SPEAKER_0: But once you got the direct-
- 17:21I'm sorry,
- 17:22just to click on that,
- 17:24when you say roughly equal,
- 17:25do you mean in terms of influence,
- 17:27scope,
- 17:28compensation,
- 17:30expectations,
- 17:31that kind of stuff?
- 17:32SPEAKER_0: Yeah, compensation, like scope, all that stuff was roughly equal.
- 17:37And the ratio of senior managers to junior managers was roughly the same as
- 17:44E-7 to E-6,
- 17:45which are the parallel levels.
- 17:49And then once you got beyond that to the director level,
- 17:53which was D-1 and E-8,
- 17:54there was 10 x more directors or something like that.
- 17:57SPEAKER_0: I mean, there was like 10 E-8s at-
- 18:00SPEAKER_1: Uh-huh, I see what you mean.
- 18:00SPEAKER_1: Yep.
- 18:01SPEAKER_0: ... the company at the time.
- 18:03SPEAKER_0: There was like 20, 30 directors.
- 18:04And then that's when I started asking the question,
- 18:06okay,
- 18:06so there's this great career progression for ICs compared to all other
- 18:10companies that I know,
- 18:13but there is still this limit.
- 18:16SPEAKER_0: And I was really pushing back on that.
- 18:18SPEAKER_0: I wanted the infinite limit.
- 18:20I wanted to know why there weren't equal numbers of directors and principal
- 18:25engineer or whatever this partner engineers,
- 18:28I don't know,
- 18:28whatever the titles got beyond that,
- 18:30there isn't really titles.
- 18:33So I pushed a lot on that,
- 18:34and at the time the reasons weren't necessarily super clear,
- 18:40so I was really pushing on it.
- 18:41And in retrospect zooming out,
- 18:42I really see that there's a limit that an IC can have in terms of impact as an IC
- 18:49without having this manager behaviors.
- 18:57Even if you write 10 x the code or a hundred x the code,
- 19:01you cannot replace 30,000 engineers with one engineer.
- 19:05SPEAKER_0: So, you can be a VP of engineering though overseeing 30,000 engineers.
- 19:11So,
- 19:11no matter how multiply it out,
- 19:14I don't know,
- 19:15it's like some anime analogies where these characters get super jacked up.
- 19:24They can only get so powerful though as an IC,
- 19:27and managing all of those...
- 19:29If you're the manager of 10 of these superstars,
- 19:32you still have more influence/impact over the direction of those people in
- 19:39the company.
- 19:41So,
- 19:42I still don't have the best articulation of that,
- 19:46but I do understand now more once you start getting to those extremely senior
- 19:51levels that you can't really get past a certain point as an IC,
- 19:55but yeah.
- 19:57Is it fair to say that for these really senior IC roles,
- 20:01the E-8s,
- 20:02the principal distinguished partner engineers.
- 20:06Tenure becomes really important because I would assume that it's really
- 20:09hard to come from the outside and have this outside influence.
- 20:13Whereas if you've been there for a long time,
- 20:14you've helped build some of these systems,
- 20:16you know them very deeply,
- 20:17you have a super strong network,
- 20:18it's just a lot easier to have that outside influence.
- 20:21SPEAKER_1: Is this a fair observation?
- 20:23It's an excellent observation in question and point and discussion topic,
- 20:28for sure.
- 20:29Because this was actually one of the most interesting tensions I started
- 20:34observing when I got to that level.
- 20:38Anyone who's an E-7 plus,
- 20:40there's a private group for those people to interact.
- 20:44SPEAKER_0: That's like back channel, maybe sink on thing, whatever.
- 20:49SPEAKER_0: [inaudible 00:20:50].
- 20:50SPEAKER_1: This is probably at most companies probably by the way.
- 20:53SPEAKER_0: Yeah.
- 20:54And there's a in-person event too that they were doing at the time,
- 20:58and there was basically two groups of people in this bucket.
- 21:01SPEAKER_0: There's the outside people and the inside people, and very different.
- 21:06SPEAKER_0: Those aren't the right words because it sounds like [inaudible 00:21:09].
- 21:09SPEAKER_1: Yeah, but I understand what you're saying.
- 21:12External people who joined Facebook externally at a high level,
- 21:15and people who grew there from a low level.
- 21:17SPEAKER_0: And there was definitely a tension.
- 21:19SPEAKER_0: Like the Facebook culture is so strong, the values are so strong.
- 21:23The people who rose internally were generally promoted extremely quickly,
- 21:28similar trajectories to me.
- 21:31SPEAKER_0: And they had a very Facebook ingrained behaviors.
- 21:38People who came externally at these really high levels,
- 21:41they brought different perspectives from their previous companies.
- 21:45So,
- 21:45a lot of extremely senior people from Google and Microsoft brought their perspectives,
- 21:51but they definitely did not immediately align to the Facebook values the
- 21:57same way the internal people had built up over the years.
- 22:01SPEAKER_0: So there was definitely this difference.
- 22:05And generally speaking,
- 22:07the people who joined externally had a harder time having impact at those levels.
- 22:14And not a lot of them were at Facebook for a very long time,
- 22:20and a lot of them left.
- 22:22I don't know if this has changed in recent years,
- 22:25I would probably expect it would've changed.
- 22:27But at the time when there was only about a hundred of people at these levels,
- 22:31there was definitely that difference.
- 22:36I think it's a testament to how strong Facebook's values were actually meant
- 22:41something and were not something on paper.
- 22:44SPEAKER_0: If you were move fast and break things was a value.
- 22:47And if you moved really,
- 22:48really fast and you broke something,
- 22:51you were almost...
- 22:55Rewarded is not the right word,
- 22:56but it was not a bad thing.
- 22:58You were not fired for breaking something because you were trying so hard to
- 23:02live the values.
- 23:02Or if you were making a really bold bet because be bold was a value,
- 23:07and you were really pushing the limits of what people thought or pushing
- 23:13people to think differently.
- 23:15Like that was really rewarded even if your idea wasn't great for the business
- 23:20at first and it never worked out.
- 23:23SPEAKER_0: So I think that's why that happened.
- 23:25I can't speak to today though what happened since then,
- 23:28if that's still the case.
- 23:30In the AI talent wars that are starting,
- 23:34there's a lot of extremely senior people in AI who are being brought in from
- 23:38external who have unique skill sets that are that irreplaceable.
- 23:44And there's a lot of stuff going on there that might change that,
- 23:46but yeah.
- 23:47So,
- 23:48I'm interested in your story because when you told me that in six years you
- 23:52went from intern to E-7,
- 23:54which means you went intern,
- 23:56which I don't know is E-0 or something,
- 23:59E-3,
- 23:59a new grad,
- 24:00E-4,
- 24:02E-5 senior,
- 24:03E-6 staff,
- 24:04E-7,
- 24:05I think that's like four...
- 24:06I counted four promotions,
- 24:07and increasingly difficult ones.
- 24:09Usually a career path like this would take at least a decade if you're on a
- 24:14strong trajectory.
- 24:15Can you talk about what happened,
- 24:16how you basically rolled through the ranks so quickly and what you learned
- 24:22doing this?
- 24:24I was known at the company,
- 24:25company-wise being like the single-handed most all-in on Facebook person
- 24:30that you could imagine.
- 24:32When Facebook rolled out public facebook.com email addresses for all users,
- 24:38I shut down all my other email accounts and only used that one.
- 24:41SPEAKER_0: It was just like, all really all-in.
- 24:44And people were just like,
- 24:45"You don't have a Gmail account,
- 24:46thisiscrazy."
- 24:48But anyways,
- 24:49in terms of the progression,
- 24:52so I would say one level at a time.
- 24:55I have not afraid of heights but if you're doing a hike or something and it's
- 25:01really steep cliffs.
- 25:03If you zoom out and look at the cliff,
- 25:06you're like,
- 25:06"Oh my god," no one could walk on that path or climb that cliff.
- 25:11SPEAKER_0: This is impossible.
- 25:12But if you go there,
- 25:14look down and just focus on the next step,
- 25:16you can get there and you might realize that it looks a little different than
- 25:20when you were zoomed out.
- 25:22So,
- 25:22I really took one step at a time and was focused just on what's the next level,
- 25:30what are the requirements,
- 25:30am I doing this yet,
- 25:32et cetera.
- 25:33And there's two key things though that I think worked really well for me and
- 25:40they're very different things.
- 25:43SPEAKER_0: But the first one was my manager relationship.
- 25:48I don't mean this,
- 25:51you should be friends with your manager or I was friends with my manager.
- 25:55SPEAKER_0: In fact, I was a very difficult person to manage.
- 25:57And I don't know my managers liked me that much just because I'm a little impulsive,
- 26:01and I'm very passionate when I'm doing my work,
- 26:03and it's a little hard to wrangle me sometimes when I'm really in there.
- 26:08What I mean by the manager relationship was there was a lot of trust and
- 26:12transparency both ways.
- 26:14So my managers knew who they were working with,
- 26:17and I trusted that they knew who I was and that we were on the same page about
- 26:25putting me in the right spot to work on things.
- 26:28SPEAKER_0: And it goes both ways.
- 26:30SPEAKER_0: So, I also felt like I could help my manager do well at their job.
- 26:35So,
- 26:36if maybe they're a little overloaded with junior people on the team,
- 26:39helping to mentor those people.
- 26:42And having that more trusting,
- 26:46supportive relationship both ways I think really helped progress.
- 26:50My manager could be really blunt with me like,
- 26:53"Michael,
- 26:54I'm getting feedback.
- 26:55SPEAKER_0: You're causing too many bugs on this area of the code.
- 26:59SPEAKER_0: It's bothering this team, that's going to hold you back.
- 27:02SPEAKER_0: Work on that and [inaudible 00:27:04]."
- 27:03SPEAKER_0: I'm like, not defensive.
- 27:05SPEAKER_0: And I'm like, "Got it, I will work on that, but I will not slow down."
- 27:07SPEAKER_0: And we got that relationship.
- 27:09That's really important for me because it really helped me just move through
- 27:14the system.
- 27:16On the second thing,
- 27:17completely unrelated,
- 27:18I always had a notepad of things I was doing that might be useful in
- 27:23performance reviews or in summarizing my work later on.
- 27:27So if things happened in the moment,
- 27:29I don't know,
- 27:32fixed a really weird bug that was emergency bug that was flagged at the
- 27:36company level and I jumped in and fixed it.
- 27:38SPEAKER_0: I might just put a note on my notepad that I did that.
- 27:40And then when it comes around to performance review time or one-on-ones with
- 27:44my manager,
- 27:45I could go over these things I was doing and bucket them and be like,
- 27:48"I'm doing a lot of work that a lot of these things are contributing to the
- 27:53requirements of the next level.
- 27:54SPEAKER_0: So what else am I missing to get to this level?"
- 27:57SPEAKER_0: And then working on those things.
- 27:59SPEAKER_0: So, that really helped me.
- 28:01It's funny that you say this because this concept went viral when Julia Evans
- 28:07blogged about,
- 28:08she called it a Brag Document in my book,
- 28:10the software engineers guidebook.
- 28:11It's one of the best advices I gave to people who are focused on the career.
- 28:16SPEAKER_1: I called it a work log.
- 28:17It doesn't matter what you call it,
- 28:18but I've gotten feedback from people saying,
- 28:20"Oh,
- 28:20I did this one thing," that they heard about from somewhere from online and it
- 28:25made such a big difference.
- 28:26And it's such a small thing,
- 28:27but especially when you're doing a lot of unrelated things or here and there.
- 28:31SPEAKER_1: By the way, as a manager, when I used to be a manager, I loved it.
- 28:34SPEAKER_1: I loved it when people just brought this to me because I was like, "oh."
- 28:38As a manager,
- 28:38I didn't know about 90% of this stuff that was not the main project,
- 28:43and it was just really pleasant surprise.
- 28:46I'm assuming your manager's view shifted on you as well and knowing,
- 28:51"Oh,
- 28:52you're doing all these other things," which sounds like Meta.
- 28:55SPEAKER_1: Appreciated this as well, Facebook.
- 28:57SPEAKER_0: Yeah, exactly that.
- 28:59SPEAKER_0: Yeah.
- 28:59SPEAKER_0: It's a little tied in.
- 29:01I said they were unrelated,
- 29:02but it is tied into the manager relationship because if your manager trusts
- 29:05you and knows how to interpret your words and you give them this document,
- 29:10they know how exactly how to turn that into the right thing and what that means
- 29:16for calibrations and performance reviews and stuff.
- 29:19SPEAKER_0: And so, I plus one to that for sure.
- 29:22And speaking about Facebook's engineering culture,
- 29:24back then it was called Facebook.
- 29:26SPEAKER_1: Now it's called Meta so I'm going sometimes back and forth.
- 29:29SPEAKER_1: But what was it like, and starting with that, can you share?
- 29:34Like we know Facebook had internal tools,
- 29:36but what kind of internal tools were they?
- 29:40SPEAKER_1: Imagine if someone went back in time, what would you describe to them?
- 29:43SPEAKER_1: What did you see?
- 29:45Yeah,
- 29:45this is a good question because I started off on the internal tools team.
- 29:47SPEAKER_1: [inaudible 00:29:49].
- 29:48SPEAKER_0: I was originally going to go to grad school and do a PhD.
- 29:53And I really wanted to work on social networking things,
- 30:00but for companies.
- 30:02And not just companies,
- 30:03just like work,
- 30:04because social networks were really connecting people in a way never seen personally.
- 30:09And I was like,
- 30:10that would be really cool if our work was also similarly connected if we could
- 30:16just as easily find co-workers of co-workers and message them and stuff like that.
- 30:21SPEAKER_0: Which now seems like an obvious, but at the time it was not obvious.
- 30:27SPEAKER_0: It was very different.
- 30:28So something that's really cool about Facebook at the time was that internal
- 30:35tools were products.
- 30:37So they were products just like user-facing tools built on the exact same
- 30:41code base deployed to an employee subset of Facebook rather than the public
- 30:50website obviously.
- 30:51SPEAKER_0: So, it was internal tools were seen as product building.
- 30:56SPEAKER_0: They weren't seen as these annoying things that the company has to do.
- 31:01A lot of tools were seen at the time,
- 31:03it's like no one wants to be on the tools team,
- 31:06it's the slow moving boring team.
- 31:08But at Meta,
- 31:09it was our Facebook at the time,
- 31:10it was probably the most exciting team because you could build product at a
- 31:16speed for...
- 31:17Building product for 7,
- 31:088,
- 31:08900,000 people,
- 31:19it was very much faster than building product for at the time,
- 31:23I think it was like 200 million people publicly.
- 31:26SPEAKER_0: So that was really, really exciting.
- 31:30Meta still,
- 31:31I think to this day has a culture of building a lot of tools from internal tools
- 31:35from scratch.
- 31:39One of the main reasons is they built all their infrastructure from scratch.
- 31:42There was no cloud providers at the time,
- 31:44so they had all their own infrastructure.
- 31:47They even built their own servers and eventually hardware for servers themselves.
- 31:53So,
- 31:54that mentality resulted in really custom tools to work with all this custom
- 32:00stuff that really just didn't make sense outside of it.
- 32:02But yeah,
- 32:06I think because of that,
- 32:07because all these tools were treated like products though,
- 32:10there was definitely this engineering product ecosystem the whole company
- 32:16has had as a result.
- 32:18Even if you weren't working on these tools or you were using these tools,
- 32:22you really felt like Facebook was a technology company that was solving even
- 32:27itsinternalfinancesusinginternaltoolsand-
- 32:31SPEAKER_1: Wow.
- 32:32SPEAKER_0: ... site integrity.
- 32:33It really felt like no matter what job you had at Facebook,
- 32:36it was a product engineering company.
- 32:40SPEAKER_0: And I think that's still stuck through to this day too.
- 32:44So then just to be concrete,
- 32:46there was a custom version control,
- 32:50it wasn't GitHub or something like that.
- 32:52SPEAKER_1: Custom code review, custom build tool.
- 32:54I know Facebook also open sourced some of this or at least release some of this,
- 32:58like the build tool.
- 32:59SPEAKER_1: I think was it Buck and Fabricator?
- 33:02They also released for some,
- 33:03but everything was just completely custom or internally built to work
- 33:09however you want it to work.
- 33:11Yeah,
- 33:12I think maybe in terms of everything you said except for source control,
- 33:17they were using SVN as the backbone and then people used at the time.
- 33:23I can't remember if they used Git first,
- 33:25but they basically jumped to using Mercurial locally on people's machines
- 33:31to manage their local branches.
- 33:33SPEAKER_0: But then you would always merge using SVN to the main branches and repos.
- 33:41And the reason they chose Mercurial was because it was a lot easier to work
- 33:47with the open source team to hack into it things that they wanted.
- 33:52SPEAKER_0: So it was still the same ethos, even though it was not everything.
- 33:56SPEAKER_0: The Git people were not as open to making some of those changes.
- 34:03SPEAKER_0: Yeah, building all those tools, the code review tools.
- 34:06SPEAKER_0: A lot of these tools have seeded, like the companies of their own now.
- 34:13SPEAKER_0: I think Statsig and Sentry, and I think there's some others.
- 34:18SPEAKER_1: So Statsig is experimentation, right?
- 34:19SPEAKER_1: Or it was seeded by the experimentation platform?
- 34:24SPEAKER_0: Yeah, Gatekeeper internally.
- 34:24SPEAKER_0: I mean, these are not like people [inaudible 00:34:29].
- 34:28SPEAKER_1: No, no, no, what I want but... I also know Graphite.
- 34:31They're a team,
- 34:33five Meta founders who are bringing the concept of stacked diffs to production.
- 34:38Again,
- 34:40inspired by this,
- 34:41it feels like there's a lot of teams who saw Facebook has something really
- 34:45cool that worked really well at a large company,
- 34:48but it just doesn't exist outside.
- 34:49And now they're productionizing it,
- 34:51and it seems like there's demand for it.
- 34:55Mark Zuckerberg said in,
- 34:55it's like a Y Combinator Startup School talk,
- 34:59I think it was 2009 or 2010,
- 35:02he said that he wanted Facebook to be the place that was known for training
- 35:07people how to build really good product and training people to potentially
- 35:13be really good founders.
- 35:15And I thought it was a bit weird at the time because...
- 35:17He also didn't talk that much publicly at the time.
- 35:19And I was like,
- 35:20"Oh,
- 35:20but what about training people to be really good engineers at Facebook to
- 35:24stayatFacebookforever?"
- 35:25And I guess it was the audience,
- 35:27it was a startup audience,
- 35:28but it got me thinking a little bit.
- 35:30And when you zoom out and look,
- 35:31it's like Facebook was exceptionally good at taking passionate,
- 35:36ambitious young engineers who don't have much experience,
- 35:40and building extremely strong abilities for them to execute and deliver.
- 35:46And we're seeing a lot of those products now being really robust,
- 35:50strong products that are coming out and helping people be on Facebook now too.
- 36:00One question I have,
- 36:00is it true that there was an internal tool just for booking meeting rooms and
- 36:06that it was awesome as well?
- 36:08SPEAKER_1: Someone told me.
- 36:12SPEAKER_0: Yeah, yeah, there was.
- 36:12My intern project when I started was also,
- 36:16it was a meeting scheduling tool because it was like,
- 36:20you just wanted to click on three people,
- 36:22find a meeting for them or find a time they can meet,
- 36:25find a meeting room,
- 36:25done.
- 36:26SPEAKER_0: So, I actually built that tool, yeah.
- 36:29SPEAKER_0: But that was-
- 36:31When I first heard this,
- 36:31I just had such a hard time believing because Facebook was already a lot
- 36:34bigger that A,
- 36:36someone would build this,
- 36:37B people would also use it,
- 36:39and C,
- 36:39there will be a team maintaining it.
- 36:41And somehow that all happened,
- 36:43because it sounded like anyone could build this in any company.
- 36:45SPEAKER_1: But maintenance would be a pain, the funding.
- 36:49Most companies would have a lot of politics in terms of like,
- 36:51"Okay,
- 36:51we need staffing for this team,
- 36:53we need budget,
- 36:54we need to justify.
- 36:54And in the end,
- 36:55and a few years later,
- 36:56"Oh,
- 36:56let'sbuyavendorsolutionorsomething."
- 37:00So it really surprised me that even for a relatively small but really
- 37:03important thing,
- 37:04it kind of happened there.
- 37:11SPEAKER_0: Yeah.
- 37:11When you talk about it now,
- 37:12it sounds like a...
- 37:13I don't know,
- 37:15Wild West place but...
- 37:17Or there's no problems,
- 37:20there's these things are just...
- 37:21It's like the best place for engineers,
- 37:25but there are those challenges too when you start to grow and scale.
- 37:28It's one of the reasons why as Facebook got bigger,
- 37:31I was less...
- 37:35That was not my thing,
- 37:36you could say.
- 37:36SPEAKER_0: The meeting rooms for example, right?
- 37:39So that was one of 40 tools that I worked on when I started was the tool to help
- 37:43people find and schedule meetings.
- 37:49SPEAKER_0: It was just a very quick, I don't know, fast thing.
- 37:52SPEAKER_0: It worked, did 90% of what was needed.
- 37:55SPEAKER_0: It was that vibe.
- 37:58And then as the company got physically bigger and physically had way more
- 38:01meeting rooms and you start diving to the next level of product problems,
- 38:06what if people book the room and don't show up?
- 38:10SPEAKER_0: Do you free the room?
- 38:11SPEAKER_0: What if someone else wants to use it?
- 38:12What if someone's sitting there and not doing a meeting,
- 38:15but they're just sitting there for fun?
- 38:18There's all those problems that you start...
- 38:20Just like I was saying,
- 38:20product problems even though they're internal.
- 38:26So now you start getting into,
- 38:26"Okay,
- 38:26doweneedtohavesensorsintheroomstoknowifsomeone'sactuallythere?"
- 38:30And then if we need to buy those sensors,
- 38:31we do need a budget for it,
- 38:33and then we need to install them and we need to install them across 20
- 38:36different offices.
- 38:37And then some offices have restricted floors for external people and you
- 38:43can't put them in those ones.
- 38:44SPEAKER_0: And you do end up getting into all those details too.
- 38:48SPEAKER_0: And I really love the product details.
- 38:50I think it's like,
- 38:51I love going to every single detail of a product and really ironing those out.
- 38:55But I do not like the budgeting side or the convincing other people that this
- 38:59is worth the budget side.
- 39:00SPEAKER_0: I'm just like, "Give me the keyboard and let me code."
- 39:04SPEAKER_0: That's me.
- 39:07SPEAKER_1: Yeah.
- 39:07So you did a lot of coding,
- 39:07but you were a pretty early employee at Facebook relatively.
- 39:12SPEAKER_1: Did you get to work with Mark Zuckerberg?
- 39:14Because I know a lot of early employees do have either collaboration or some
- 39:19stories of interacting or working with him.
- 39:23SPEAKER_1: What is yours?
- 39:26SPEAKER_0: Yeah, for sure.
- 39:26So yeah,
- 39:27I'm actually friends with him because I was there early and I did cross paths a
- 39:32lot and got to know him a little bit over the years.
- 39:35I mean,
- 39:37I can tell the story of how we became Facebook friends,
- 39:39that's kind of a thing.
- 39:42SPEAKER_1: Oh, okay.
- 39:42SPEAKER_1: All right.
- 39:43SPEAKER_0: I started as an intern.
- 39:44SPEAKER_0: I serve as an intern, like it's all these interns from school.
- 39:47Even though Mark was two years older than everyone or something,
- 39:51he was a college dropout.
- 39:54It wasn't like he was industry veteran,
- 39:58but he was well known and all the interns friend request him on their first day
- 40:06and hopefully he'll accept it.
- 40:10And it was interesting,
- 40:11the way that we became friends was he used to play Risk the board game.
- 40:18I think it was once a week people would get together,
- 40:21it was like four or five people and he would show up often and I really liked Risk.
- 40:27I would always play Risk as a kid for whatever reason,
- 40:29I don't even know why.
- 40:31And one day we're down to the final three people and it was me,
- 40:35him and I was losing.
- 40:38Mark was in second place,
- 40:40the leader [inaudible 00:40:43] was taking over.
- 40:43So I did a really,
- 40:44let's say,
- 40:48delicate strategic maneuver where I made an alliance with him to share
- 40:52resources to all go after the first place person.
- 40:56SPEAKER_0: So he went all in against the first place person.
- 40:59SPEAKER_0: My turn's next, I did not go all in against the first place person.
- 41:03SPEAKER_0: I took over Mark's remaining resources.
- 41:06SPEAKER_0: He just dwindled going after the first place person.
- 41:10SPEAKER_0: And he accepted my friend request very shortly that evening, I think.
- 41:20It's weird because I basically backstabbed him in the game really bad
- 41:28blatantly into his face.
- 41:31SPEAKER_0: But it's the game, that's what Risk is, and it's a strategy game.
- 41:33And I think that he appreciated the strategy that I had that it made him feel
- 41:40more like he could trust me even though I backstabbed him,
- 41:42he knows where my strategic thinking is coming from.
- 41:46That's something I've seen with Mark over the years with in product reviews,
- 41:50both myself doing product reviews and also product reviews with other people.
- 41:54SPEAKER_0: He asks a lot of questions.
- 41:56SPEAKER_0: He's very detail focused.
- 41:58SPEAKER_0: He really dives into trying to figure out the exact-
- 42:03Can you tell us what the product review is,
- 42:03because I don't think it's as common outside of Facebook.
- 42:08Yeah,
- 42:08it was called the Zuck Review at the time because he was the only person doing them.
- 42:11There was maybe 10,
- 42:1120 product teams of 5 to 10 people at the time roughly.
- 42:19And once a week they would do a Zuck Review,
- 42:22like a 15-minute presentation kind of thing.
- 42:25Usually,
- 42:25the PM or the eng manager would do them and sometimes members of the team would
- 42:31join if it was relevant.
- 42:33SPEAKER_0: It's like a doctor's office.
- 42:35SPEAKER_0: There's a waiting room of the teams, because they're so short.
- 42:39And one team would go in,
- 42:41do their Zuck Review,
- 42:41they would come out and you would see they got good news or bad news and you
- 42:45would see the expression on their face.
- 42:50Zuck would just give lots of feedback and steer the direction,
- 42:53and they're really short so it's very efficient feedback.
- 42:57SPEAKER_0: Yeah, those were so interesting.
- 43:01The more junior PMs would really stress about these because it was their
- 43:04FaceTime with the leader of the company.
- 43:06And I was just saying about the Risk story,
- 43:11Mark is judging constantly,
- 43:14does he trust you?
- 43:15SPEAKER_0: Does he trust your judgment?
- 43:17SPEAKER_0: Trying to read the situation.
- 43:18So it was a little stressful for junior PMs going in there and they would really...
- 43:23Sometimes the night before be trying to think of all different angles and
- 43:26they're like,
- 43:26"I got this backup slide in case Mark asked this question,
- 43:29andthisotherbackupslideincasethisone."
- 43:31And then you'd go into the review and you would interrupt in the first slide
- 43:35and just go into a completely different direction.
- 43:39SPEAKER_0: You would see that sometimes in the nicest way possible.
- 43:42SPEAKER_0: He is very not mean, not aggressive person.
- 43:46At the end of the day,
- 43:47it was about everyone delivering really good product and wanting to build
- 43:52the best product,
- 43:53and really trying all the hardest they could as individuals to get there and
- 43:59not sugar-coating anything,
- 44:01not patting on the back for no reason.
- 44:04We just all got to be really honest about what this product looks like and how
- 44:07do we make it better.
- 44:08SPEAKER_0: And yeah.
- 44:13You mentioned you try to work hard to build the best product,
- 44:16but you also wrote tons of code.
- 44:18So I'm going to assume you must have cost some outages because it just happens
- 44:21and move fast and break things.
- 44:23SPEAKER_1: What was your worst outage or worst bug?
- 44:28SPEAKER_0: There was this product that I don't know what the inspiration was.
- 44:30I didn't come up with a product idea,
- 44:32but we wanted to allow people to upload a photo template on top of their
- 44:39profile picture.
- 44:40So nowadays we see that on LinkedIn all the time with open to work or hiring,
- 44:45that kind of thing.
- 44:46This didn't really exist at the time,
- 44:48and they wanted to let people at Facebook do that.
- 44:50It would help increase engagement and people who haven't changed their
- 44:54profile photos for five years might use this to spruce it up a bit or something.
- 45:01So I built this prototype of this thing really fast in a week or something
- 45:09after it was handed to me.
- 45:11And then unfortunately,
- 45:12there was some terrorist attacks in Paris and a lot of people were expressing
- 45:19support on social media for the people who are impacted and trying to hope for
- 45:27good recovery.
- 45:28And using this new system,
- 45:32we released a template of the French flag that people could overlay over top
- 45:36of their profile picture to show support.
- 45:41What we didn't expect was a hundred million people to do that within a day or two,
- 45:45literally.
- 45:47SPEAKER_1: wow.
- 45:47SPEAKER_0: And this was a prototype.
- 45:48SPEAKER_0: So this is an interesting thing.
- 45:50I basically,
- 45:53the way that I built this is you have a template object,
- 45:56a photo object,
- 45:58all these things are federated across tens of thousands of databases.
- 46:01SPEAKER_0: So each object has a home database.
- 46:06So we need some way to tell this relationship between profile object,
- 46:11photo object and...
- 46:13Or sorry,
- 46:14template object.
- 46:15SPEAKER_0: So there's an edge concept to connect the two.
- 46:20And you can have a one-way edge that just goes from one to the other or a two-way
- 46:24edge where you go in both directions.
- 46:25You can go in both directions starting at the profile to the template or
- 46:29starting at the template to the profile.
- 46:32So sounds simple,
- 46:34sounds like systems design 101...
- 46:35It's systems design interview that at Formation we're helping people with
- 46:40all the time.
- 46:41SPEAKER_0: It's a classic problem.
- 46:47And then the system would just fetch these two objects and combine them or something,
- 46:48right?
- 46:49SPEAKER_0: Yeah.
- 46:49And typically at Facebook,
- 46:49most things start with the profile,
- 46:52like a person logs in and that's the root of all queries so to speak.
- 46:57SPEAKER_0: You start with the profile, then you get the profiles friends.
- 46:59It kind of edges,
- 47:00it's like a graph and you're jumping in at the profile and then crawling
- 47:06through the graph from there.
- 47:07And if the profiles are all federated across tens of thousands of databases,
- 47:11you can crawl out through a nicely distributed system without overloading
- 47:18any particular node.
- 47:20But when you have this template,
- 47:23which is an object in the system just like a profile,
- 47:26if you have an edge from that to the profiles and there's a hundred million of
- 47:30those written in a day,
- 47:32you have a hundred million edges going on that one node,
- 47:35one database that that [inaudible 00:47:39] single French flag template is
- 47:39stored on being written constantly.
- 47:41And rights are a lot more expensive in a system in at least Facebook system.
- 47:49And that node is one machine or virtual machine or something behind it,
- 47:51basically?
- 47:52SPEAKER_0: Yeah.
- 47:53SPEAKER_0: Exactly, yeah.
- 47:54SPEAKER_0: I mean, there's a lots of other objects on that machine too.
- 47:57There could be other profiles,
- 47:58it could be groups,
- 47:59there could be notes,
- 48:00there could be events,
- 48:01all kinds of stuff on that machine.
- 48:02SPEAKER_0: It's just the federation is generally not by object type.
- 48:09SPEAKER_0: So that machine basically melted.
- 48:12SPEAKER_0: I don't know, physically, I didn't hear if it may have physically melted.
- 48:17SPEAKER_0: No, probably not.
- 48:19So that machine crashed and then A,
- 48:22if...
- 48:23I'm trying to grab my friends,
- 48:24and my friends on that machine like that fails.
- 48:26SPEAKER_0: So, it causes cascading effects if that kind of thing can happen.
- 48:30SPEAKER_1: Wow.
- 48:32SPEAKER_0: Yeah, so it's interesting.
- 48:32SPEAKER_0: Now the interesting thing is it's a really bad bug.
- 48:35It's interesting because at Formation,
- 48:36we're helping people with systems design all the time.
- 48:38It's one of the most common things we're helping people prepare for in interviews.
- 48:43And when you talk about these things,
- 48:45this sounds like the most basic systems design system.
- 48:49You have federation is a common,
- 48:53and partitionings are very common topics.
- 48:56And this sounds like an obvious thing,
- 48:58like why would you potentially have a two-way edge on a system where one of the
- 49:06nodes might be super heavy?
- 49:08This is not an exact example,
- 49:11but Twitter had a lot of outages with the fail whales back then because they
- 49:16had a system that was similarly vulnerable when Justin Bieber tweeted or something.
- 49:22SPEAKER_0: They had a similar system where that was-
- 49:25SPEAKER_1: Yeah, they had the fan out problem, right?
- 49:27SPEAKER_0: Yeah.
- 49:27SPEAKER_0: So similar, yeah.
- 49:27SPEAKER_0: I mean, these are known problems.
- 49:30And it's interesting because I see so many people preparing when they're
- 49:35thinking about systems design interviews and stuff.
- 49:36They're thinking about the textbook answers for all these different things
- 49:41that can happen.
- 49:42And this is just one really simple situation that talking through why,
- 49:46like why did I make this two-way?
- 49:48SPEAKER_0: Because was I ignorant or was it not?
- 49:51SPEAKER_0: And the reason I did it was that this was a prototype.
- 49:55And when you're productionizing something,
- 49:57you need to put a lot of logging in for performance,
- 50:01for collecting metrics,
- 50:04for analyzing,
- 50:05like is this working,
- 50:06is it not?
- 50:06SPEAKER_0: All these behavioral metrics, all these things that you would do.
- 50:09You have to put a lot of time and effort into thinking about what are those things?
- 50:14Where do we log them,
- 50:16how do we log them,
- 50:17how do I explain to the PM how to do it?
- 50:20And if we just use the raw data model itself to store some of that,
- 50:23and we keep that two-way edge,
- 50:25it gives us more information.
- 50:26It lets us just count the number of edges as the number of people who have used this.
- 50:31SPEAKER_0: It's simpler for a prototype and we don't have to build all this stuff.
- 50:36SPEAKER_0: If we don't ship it, I don't want to rip out all this logging.
- 50:38I don't want to have wasted time explaining to the PM how the logging is working,
- 50:43those kinds of things.
- 50:45SPEAKER_1: Yeah.
- 50:45SPEAKER_1: Totally, yeah.
- 50:46SPEAKER_0: Not simpler, reasonable.
- 50:46SPEAKER_0: That's why the decision was made.
- 50:47SPEAKER_0: And then the second this machine melted, we knew exactly what to do.
- 50:50SPEAKER_0: And we [inaudible 00:50:53] that.
- 50:53SPEAKER_1: So how did you solve this outage, right?
- 50:54Because now,
- 50:54you actually had a problem,
- 50:55which sounded like it's at a data level.
- 50:57SPEAKER_1: And usually with an outage, the best way is to roll back the change.
- 51:03SPEAKER_1: Clearly not an option here.
- 51:05How did you fix it so that actually people could start to use those profiles?
- 51:12SPEAKER_0: Yeah.
- 51:12SPEAKER_0: So this actually was beyond my area, the DB.
- 51:17SPEAKER_0: There's a DB infrastructure team that stepped in.
- 51:20SPEAKER_0: I removed the edge, so we made it a one way edge.
- 51:24Due to the success of this feature,
- 51:26we also productionized it and addressed those more logging and things like
- 51:31that that we lose by chopping off that edge.
- 51:34Yeah,
- 51:36so the infrastructure team handles the rebooting the databases,
- 51:41the replaying of SQL logs that might be necessary because of lost
- 51:44transactions and things like that.
- 51:46SPEAKER_0: They handle that level.
- 51:48As a product engineer,
- 51:49you need to be aware of what's going on and maybe send over a six-pack of beer or
- 51:56a cake or cookies to the people afterwards to build up the reputation or...
- 52:04I'm assuming it was not the first time for them,
- 52:05like someone adding an edge and overloading a few nodes.
- 52:09Let's just say that the site reliability team had one of the most well stocked bars,
- 52:17like alcohol bars in the entire company.
- 52:23SPEAKER_1: They just kept arriving.
- 52:23SPEAKER_1: Thank you for this.
- 52:24SPEAKER_1: Thank you for that.
- 52:26SPEAKER_0: Yeah.
- 52:26SPEAKER_0: I'm actually not joking.
- 52:28SPEAKER_0: It was extremely well stocked.
- 52:30SPEAKER_0: I don't know if that's still allowed or if they [inaudible 00:52:35].
- 52:34SPEAKER_0: Yeah.
- 52:37SPEAKER_1: Yeah.
- 52:38SPEAKER_1: No, but lots of favors there.
- 52:39SPEAKER_1: That's a good one.
- 52:40So something interesting you told me before this one is that when it came to hiring,
- 52:48Facebook has this concept of the hiring committee,
- 52:50but it was also open door.
- 52:51So you could go in and you could shadow and sometimes...
- 52:55And you did shadow multiple times and then you participated.
- 52:58Can you explain to us the ones who...
- 53:00We were not at Facebook,
- 53:03what was this hiring committee meeting like?
- 53:07SPEAKER_1: I understand these were when they decided on the hire, no hire decisions.
- 53:13SPEAKER_1: How did they go?
- 53:14SPEAKER_1: What was it like to listen in, and what was it like to participate?
- 53:17And what does this tell about Facebook's hiring process for software engineers?
- 53:23SPEAKER_0: Yeah, maybe just a really quick recap of how you get to hiring committee.
- 53:25The Meta or Facebook interview process starts with a lightweight recruiter screen,
- 53:30get to know you,
- 53:33and then you'll jump into a coding interview.
- 53:36SPEAKER_0: It's called the technical screen.
- 53:38SPEAKER_0: It's like a 45-minute interview, usually two questions.
- 53:42If everything goes well,
- 53:43you'll go to the on-site where for most people,
- 53:47you'll do two more coding interviews,
- 53:49a behavioral interview and a systems design interview.
- 53:52SPEAKER_0: There's some subtle variations there you might do more-
- 53:57SPEAKER_1: They used have cool names, right?
- 53:57SPEAKER_1: These used to have cool names, I remember they were Jedi-
- 54:00SPEAKER_0: Jedi, Pirate, and Ninja.
- 54:04SPEAKER_0: And then, this is [inaudible 00:54:09].
- 54:09Ninja was a coding,
- 54:10Pirate with system design,
- 54:11and Jedi was the soft skills,
- 54:13behavioral.
- 54:14SPEAKER_0: Yeah, behavioral.
- 54:14SPEAKER_0: At the time it was half behavioral, half coding still.
- 54:15SPEAKER_0: They really wanted the coding signal.
- 54:17SPEAKER_0: And now I think it's all behavioral, but yeah.
- 54:23Because this is what we do at Formation all the time,
- 54:26two critically interesting things about Meta's interviews,
- 54:30specifically the technical ones that really throw people off to are the,
- 54:35they're whiteboarding style and there's almost no small talk.
- 54:39SPEAKER_0: And these two things can throw people off in the technical interviews.
- 54:44A lot of the times,
- 54:45you have 45 minutes,
- 54:46you're expected to code up solutions to two problems.
- 54:50So you jump in and sometimes the interviewer will just be like,
- 54:53"Hi,
- 54:53my name is blah,
- 54:54nice to meet you.
- 54:55SPEAKER_0: Here's a problem."
- 54:56And it can throw people off a bit because some people are...
- 54:59Well,
- 54:59everyone's nervous.
- 55:00I don't know anyone who's not nervous in interviews,
- 55:02but it can be a bit like you want to settle in,
- 55:05build a rapport.
- 55:07SPEAKER_0: Maybe if I screw up the question, they'll like me.
- 55:08SPEAKER_0: No, not for the coding interviews.
- 55:10SPEAKER_0: You just got to write the code.
- 55:12SPEAKER_0: So that's why one thing.
- 55:13SPEAKER_0: And then the second thing is whiteboarding style.
- 55:16SPEAKER_0: Now that things are remote, I don't even think you can compile the code.
- 55:19SPEAKER_0: They either block it or they tell you not to.
- 55:21So you can't just guess and check and enter to run your code to see if it works.
- 55:26They want to see you walking through a clear and clean thought process,
- 55:31problem solving process for how you're approaching the problem,
- 55:35how you're solving the problem.
- 55:36SPEAKER_0: They want to see your code being cleaned.
- 55:38They don't care if it has some minor syntax issues or you forgot a built-in
- 55:43functions signature and you just guessed it for the interview type thing.
- 55:49SPEAKER_0: Anyways, those are two things that are specific to their interviews.
- 55:55But anyway,
- 55:55you do your on-site,
- 55:56you do your technicals,
- 55:57your behavioral,
- 55:57your systems design,
- 55:58or maybe two systems design.
- 56:01And then if everything goes fairly well or better,
- 56:07then you'll go to hiring committee.
- 56:14There'll be a quick debrief with the people,
- 56:16so...
- 56:17With the interviewers,
- 56:18I mean.
- 56:18SPEAKER_0: So the interviewers will quickly sync sometimes over email even.
- 56:23SPEAKER_0: Were there any red flags?
- 56:24SPEAKER_0: Were there any strong no's?
- 56:26SPEAKER_0: You might just end the process there.
- 56:29So usually,
- 56:30teleformation all the time if you do a Meta interview and you don't hear back
- 56:35really quickly,
- 56:36then it's usually a good sign you were not quickly [inaudible 00:56:42]1.
- 56:40SPEAKER_0: You at least have a chance.
- 56:42So people get nervous when they're like,
- 56:43"Oh no,
- 56:43Ididn'thearbackinaweek."
- 56:44SPEAKER_0: And that's not a bad thing.
- 56:45SPEAKER_0: It's an okay thing or maybe even a good thing.
- 56:49SPEAKER_0: So anyways, you'll end up in hiring committee.
- 56:51At the time they met when I was there in the mid-2010s,
- 56:57they were meeting twice a week I think?
- 57:01And it was open,
- 57:03and this was really...
- 57:04I don't even know if it was officially open or I just went.
- 57:09SPEAKER_0: It wasn't publicly open, but it wasn't closed.
- 57:13There was a public calendar for engineering recruiting and it was on there.
- 57:19And all the recruiters who were representing a candidate to try to get
- 57:25approval for hiring would bring their candidate there with a packet.
- 57:28So,
- 57:29people were going in and out and I showed up and I was just started going to all them.
- 57:36SPEAKER_0: And I would have to figure out where they were.
- 57:38SPEAKER_0: And it was like a secret handshake, not figuring out what door to go to.
- 57:44Sometimes it would move last minute and figure out where it was sometimes.
- 57:49SPEAKER_0: But if you found it, you walk in and sit down at the table.
- 57:51SPEAKER_0: So what happens in hiring committee is a recruiter will present a packet.
- 57:57SPEAKER_0: This is actually pretty interesting.
- 57:59Very few engineers talk about this topic,
- 58:01by the way,
- 58:02of the hiring committee.
- 58:03Recruiters definitely would be able to,
- 58:06but I haven't seen a lot of them talking about it,
- 58:08so I won't give any secret sauce away but just the general process.
- 58:13A recruiter presents a packet to a quorum of leaders,
- 58:20and there had to be at least three director or VP engineering people there at
- 58:24the time.
- 58:25I don't think,
- 58:26it's not a legal constitutional number,
- 58:29but that was just they wanted a quorum of decision makers.
- 58:35SPEAKER_0: And recruiter would present the packet to them.
- 58:38SPEAKER_0: A packet has a bunch of information.
- 58:41SPEAKER_0: It has all your interview feedback.
- 58:47This is super,
- 58:47super interesting,
- 58:47but it has the interview history of the interviewers themselves.
- 58:52SPEAKER_0: It has the histogram of the interviewers feed of past ratings.
- 58:58SPEAKER_0: So is this interviewer super binary?
- 59:00SPEAKER_0: Their either strong yes, strong no, historically.
- 59:03SPEAKER_0: Are they lean yes or lean no.
- 59:05SPEAKER_0: So it helps the reviewers kind of calibrate, interpret people's feedback.
- 59:11SPEAKER_1: Feedback, nice.
- 59:11Are they a really experienced interviewer or are they a brand interviewer?
- 59:15It would have the questions they asked,
- 59:17it would have how many times they asked those questions.
- 59:19Did this interviewer ask this question for the first time,
- 59:22or have they asked it 150 times?
- 59:26It has a lot of information in the packet that was presented to the directors,
- 59:31and the directors would read it over,
- 59:34look for anything,
- 59:35any flags.
- 59:36Usually at this point,
- 59:37the default would be that someone would more than likely be hired.
- 59:41SPEAKER_0: So they're looking more for flags or I think inconsistencies.
- 59:48I can give tons of examples of what those are,
- 59:49which are...
- 59:49This is one of the things at Formation,
- 59:52one of the reasons why people work with us is getting to some of these nuances
- 59:57and stuff are pretty important,
- 59:59but might take hours.
- 1:00:00So I won't go into all of them,
- 1:00:02but yeah,
- 1:00:03they're looking for flags and different things.
- 1:00:05SPEAKER_0: The most common thing that they're looking for is level.
- 1:00:09I reiterate the fairness and consistency that Meta wants to have in its
- 1:00:14hiring process,
- 1:00:16and they want to bring in someone at appropriate level where they're an
- 1:00:21appropriate level consistent with other people who perform or have similar
- 1:00:26scopes of responsibility.
- 1:00:27SPEAKER_0: So they want to make sure that your level's right.
- 1:00:30And that was probably the biggest thing that was discussed was like,
- 1:00:35is this person a senior?
- 1:00:37SPEAKER_0: Are they mid-level?
- 1:00:38SPEAKER_0: If they're a mid-level, do they have too much experience?
- 1:00:43Is there career progression a little bit slower than we wanted for mid-level?
- 1:00:45And maybe we'll reject or are they actually at the senior level and this is simple?
- 1:00:52Or did they interview and appear with some of the traits that a senior
- 1:01:00engineer might have,
- 1:01:01but they're clearly mid-level from their background and they want to make
- 1:01:05the call on where does the offer end up?
- 1:01:07SPEAKER_0: Stuff like that.
- 1:01:08SPEAKER_0: They're working through all those things.
- 1:01:12SPEAKER_0: So, why did I go is maybe an interesting question.
- 1:01:16SPEAKER_0: This sounds boring maybe, but I was very interested in-
- 1:01:20SPEAKER_1: Oh, let's get into it.
- 1:01:21...
- 1:01:21making sure that...
- 1:01:21I was paranoid that that Facebook would lower its hiring bar as they scaled.
- 1:01:28Even now,
- 1:01:29I don't really like saying lowering the bar because I think that...
- 1:01:32Especially working at Formation and the secret sauce,
- 1:01:37I think to interviewing and finding a job is finding the right job now.
- 1:01:42So,
- 1:01:43just because you didn't "Meet the bar for Meta" does not mean that you're a bad
- 1:01:47engineer and not hireable,
- 1:01:49it just means that there wasn't some alignment.
- 1:01:53SPEAKER_0: It might be them, it might be you.
- 1:01:58There's too many ways to overthink it,
- 1:02:00but finding that right role is way more important than just checking out the
- 1:02:04boxes and passing the interview and feeling great that you got the offer.
- 1:02:07SPEAKER_0: Yeah.
- 1:02:10In the time though,
- 1:02:13at the time I was just paranoid,
- 1:02:15I don't understand how the company can grow 10x and not lower the bar accidentally,
- 1:02:22or I'm paranoid about this.
- 1:02:24SPEAKER_0: Like I want an extra check.
- 1:02:25So I was going to these things to see who's being hired and seeing if I had any flags.
- 1:02:29And I would chip in occasionally with my 2 cents,
- 1:02:32and sometimes it had some impact,
- 1:02:37sometimes it didn't.
- 1:02:39SPEAKER_1: Well, I guess, look at how things work out now.
- 1:02:41It turns out those sessions were pretty helpful now doing what you're doing
- 1:02:45at Formation,
- 1:02:46right?
- 1:02:48SPEAKER_0: Yeah.
- 1:02:48SPEAKER_0: Really uniquely [inaudible 01:02:50].
- 1:02:49Coaching people,
- 1:02:49helping people,
- 1:02:49the fact that you were in the room is a big difference.
- 1:02:55SPEAKER_0: Yeah.
- 1:02:59Even if it's just to reassure them if they don't get selected,
- 1:03:04but they thought they did really well.
- 1:03:08You can say things with words,
- 1:03:10but I really have the experience there to help people get that it might not be
- 1:03:19that they failed or that it's just could be a lot of reasons.
- 1:03:25So in terms of interview processes,
- 1:03:26you are intimately familiar with Meta's,
- 1:03:28but of course because of what you do at Formation,
- 1:03:31you're familiar with a lot of other big techs.
- 1:03:33What company do you think has the most similar recruitment process for
- 1:03:39software engineers as Meta has these days,
- 1:03:42if any?
- 1:03:46SPEAKER_0: Yeah.
- 1:03:47So,
- 1:03:47I think the lineage is pretty interesting because the interview processes
- 1:03:54are fairly similar to a lot of the top companies and there are some
- 1:03:59differences here and there,
- 1:04:00and some things have changed a bit over the years.
- 1:04:02SPEAKER_0: But generally speaking, LeetCode wasn't a thing.
- 1:04:05SPEAKER_0: It didn't exist as a word until 2012 I think was when they were founded.
- 1:04:10SPEAKER_0: And the problems haven't changed.
- 1:04:13The interview styles haven't changed since before LeetCode,
- 1:04:16since after LeetCode.
- 1:04:18SPEAKER_0: It's pretty consistent style that has been around.
- 1:04:22And Facebook didn't invent these things,
- 1:04:26they kind of borrowed a little bit from Yahoo.
- 1:04:28Yahoo was one of the big "Successful companies" that was on the shrinking
- 1:04:34side at that time when Facebook was growing.
- 1:04:37SPEAKER_1: Oh, interesting.
- 1:04:38SPEAKER_0: So they borrowed some things from Yahoo, from Microsoft, from Google.
- 1:04:42SPEAKER_0: Google was the preeminent place to work at the time too.
- 1:04:45SPEAKER_0: And Google borrowed from other companies.
- 1:04:47And now we see a lot of the AI companies like OpenAI has a fairly Facebook ish
- 1:04:58process and vibe.
- 1:05:03Yeah,
- 1:05:03we're seeing this,
- 1:05:05and ultimately I think the reason why this is the case is that these interviews,
- 1:05:11especially the...
- 1:05:12We call them the LeetCode interview,
- 1:05:14but at Formation,
- 1:05:16we don't like pigeonholing the naming to being about doing a problem,
- 1:05:25clicking a button and something saying you passed or that kind of thing.
- 1:05:29The point of these interviews is to test stack agnostic and language
- 1:05:33agnostic problem-solving skills.
- 1:05:35SPEAKER_0: And that has always been the point.
- 1:05:36That's like what engineers do,
- 1:05:38and these interviews haven't changed as stacks have evolved.
- 1:05:44They're really trying to take away any biases that might come from being a
- 1:05:47JavaScript programmer or a C++ programmer.
- 1:05:50SPEAKER_0: Just focus on the core logic, the problem-solving process.
- 1:05:57SPEAKER_0: And that's what they're trying to do and that's what engineers do.
- 1:05:59So,
- 1:06:00it's very understandable that many truly technology and engineering
- 1:06:04companies use these processes.
- 1:06:07And the companies that don't are generally smaller companies because they
- 1:06:13do actually want expertise in specific stacks or specific experiences or
- 1:06:18non-tech companies that don't really have the same ethos.
- 1:06:26SPEAKER_0: But yeah, so we actually see it pretty variations of these.
- 1:06:31SPEAKER_0: Some companies do some more practical non-DSNA style stuff, but... Yeah.
- 1:06:40Yeah,
- 1:06:40it sounds like it's smart if you want to get into one of these companies,
- 1:06:43just go through,
- 1:06:44prepare,
- 1:06:45because it's useful everywhere,
- 1:06:46right?
- 1:06:48SPEAKER_1: You master it once and it is useful probably for years or even beyond.
- 1:06:54SPEAKER_0: Yeah, yeah.
- 1:06:54One of the interesting things that Formation that we've seen that shocked us
- 1:06:57is we actually see people coming back after...
- 1:07:01They come to Formation,
- 1:07:02we'll help them with prepare for these data structure algorithms,
- 1:07:06systems design interviews.
- 1:07:07They get a job and then two years later they come back and do it again and pay us again.
- 1:07:12SPEAKER_0: It was one of those surprising things.
- 1:07:13I mean,
- 1:07:15from a business point of view,
- 1:07:16that'sthedreamisyouwanttohaveservicethat-
- 1:07:19SPEAKER_1: Yeah, recurring customers.
- 1:07:23Yeah,
- 1:07:23service that's useful to people for their entire lives is way more valuable
- 1:07:27as a business than a service that's useful at once.
- 1:07:30SPEAKER_0: So, that's actually pleasantly surprising to us.
- 1:07:35I mean,
- 1:07:37we're going on a little bit of tangent about interviewing now,
- 1:07:39but I think the interview preparation process,
- 1:07:44I draw a lot of analogies to like a personal trainer like you want to get in shape.
- 1:07:49SPEAKER_0: You might've been in amazing shape 10 years ago.
- 1:07:52You remember what it was like to have the habits to be in shape,
- 1:07:56to eat well,
- 1:07:57to do your exercise.
- 1:07:58And you can do it again,
- 1:08:00but you're not in shape now and you need to maybe get in shape again.
- 1:08:04And whether you've got a gym membership or a personal trainer or you just do it yourself,
- 1:08:11there is this recurring pattern of getting ready for these interview processes.
- 1:08:19There's infinitely many stacks and combinations of frameworks that an
- 1:08:22engineer can work with.
- 1:08:23And when you work with your frameworks and your stacks for years and years,
- 1:08:29it's like you're working out,
- 1:08:31but you're only doing leg exercises,
- 1:08:32so maybe your legs are really strong and your upper body's not as strong
- 1:08:36because you haven't been doing that.
- 1:08:37And you have these different transformations that you make just from your
- 1:08:41day-to-day job.
- 1:08:42So,
- 1:08:43check when you're making a career transition to a new job,
- 1:08:46like getting back in shape again,
- 1:08:47it makes a lot of sense.
- 1:08:51SPEAKER_1: Yeah.
- 1:08:51And I know people complain about how interviewing is different than the job,
- 1:08:53but it is,
- 1:08:54and it's how it is.
- 1:08:56SPEAKER_1: I think you can either fight it or accept it.
- 1:09:01But speaking of this topic,
- 1:09:04what advice would we have for more experience software engineers who are
- 1:09:07interviewing right now,
- 1:09:08just in the sense that we know that the job market is a bit tougher than before.
- 1:09:13What kind of tactics have you seen or strategies that help people land offers
- 1:09:19at some of these better known companies?
- 1:09:22SPEAKER_1: What are things that are more important than before?
- 1:09:26SPEAKER_0: Yeah, it's definitely changed over time.
- 1:09:30I mean,
- 1:09:30when I joined at a school,
- 1:09:31it was like,
- 1:09:33I think there were so few engineers.
- 1:09:35I know people who are trying to get H-1B Visa's were just being handed them
- 1:09:40becausetheyhadsuchasurplus-
- 1:09:44SPEAKER_1: Wow.
- 1:09:44SPEAKER_1: Completely different time.
- 1:09:45And now there's 20x oversubscription of people trying to get tech jobs in the
- 1:09:49US and specifically as the one example.
- 1:09:52There was a different vibe back then I would say,
- 1:09:55but now it is more competitive.
- 1:09:57There's a new team matching process that we're seeing a lot of companies have.
- 1:10:01SPEAKER_0: Google's had this for a long time.
- 1:10:04SPEAKER_1: Oh, interesting.
- 1:10:05SPEAKER_0: Google's had this process for a long time.
- 1:10:06SPEAKER_0: Meta's more recently added the team matching process.
- 1:10:08We're seeing a couple of other companies,
- 1:10:10smaller companies,
- 1:10:11but not do this.
- 1:10:14It's like you pass the onsite,
- 1:10:16but now there's another...
- 1:10:17You're in limbo for a while until you actually match to get the offer.
- 1:10:23Yeah,
- 1:10:24so we are seeing that competition be distributed across a couple of
- 1:10:30different places,
- 1:10:33adding a couple extra layers,
- 1:10:35a little bit more filtering on the front end.
- 1:10:36We're seeing more companies give online assessments right off the bat
- 1:10:42instead of jumping into the technical interview to filter more people there.
- 1:10:47So we see a lot of people who have 10 years of experience,
- 1:10:50they've never used the tool like CodeSignal or HackerRank and they fail one,
- 1:10:55and they're like,
- 1:10:55"What is going on?
- 1:10:56SPEAKER_0: I've never seen this tool before."
- 1:10:57SPEAKER_0: And we're like, "You have to practice that."
- 1:11:00SPEAKER_0: Yeah.
- 1:11:00Definitely seeing that the competition's definitely distributed across
- 1:11:03each level of this process,
- 1:11:05for sure.
- 1:11:08SPEAKER_1: Nice.
- 1:11:08SPEAKER_1: All right.
- 1:11:09SPEAKER_1: Can we wrap up with some rapid questions?
- 1:11:13SPEAKER_0: Yeah, sounds good.
- 1:11:14SPEAKER_1: All right.
- 1:11:14SPEAKER_1: So let's wrap the questions.
- 1:11:15I just ask the question and then you just fire out whatever comes to your mind
- 1:11:21or the one that you can recall.
- 1:11:24I've been wanting to really ask this,
- 1:11:25how many diffs did you close or code in your most productive year when you were
- 1:11:29a coding machine?
- 1:11:30SPEAKER_1: Did you keep track of that?
- 1:11:35SPEAKER_0: I did keep track of it because I was in a competition.
- 1:11:36SPEAKER_0: At first, I was competing with other people.
- 1:11:38Sorry,
- 1:11:38it was rapid,
- 1:11:39but I was competing with other people to try to get more code than them.
- 1:11:42Once I surpassed everyone,
- 1:11:44Iwascompetingwiththisreleasebotthatreleaselike-
- 1:11:49SPEAKER_1: The release bot, no.
- 1:11:52SPEAKER_0: Yeah.
- 1:11:52And then after that,
- 1:11:54I think I stopped counting,
- 1:11:57but it was a lot in the thousands.
- 1:11:59SPEAKER_0: I honestly write more code now though even after leaving Facebook app.
- 1:12:02SPEAKER_0: At Formation, I'm writing a lot of code, so yeah.
- 1:12:06SPEAKER_1: Yeah.
- 1:12:06SPEAKER_1: So multiple diffs per day basically.
- 1:12:09SPEAKER_0: For sure.
- 1:12:09Yeah,
- 1:12:09it's probably around 5 to 10,000 a year in the double digits per day,
- 1:12:13but that doesn't really mean that much.
- 1:12:16SPEAKER_0: Some are small, some are gigantic.
- 1:12:17SPEAKER_0: It's hard to... Yeah.
- 1:12:21SPEAKER_1: Yeah.
- 1:12:21But your code actually did meaningful work that was part of why you got promoted,
- 1:12:24the difference.
- 1:12:27SPEAKER_0: Yeah.
- 1:12:27SPEAKER_0: I mean-
- 1:12:28Which language did you write the most code in when you were at Meta,
- 1:12:29and which one do you write the most code in now?
- 1:12:34SPEAKER_0: So then Hack, which PHP evolved into Hack which is their version of it.
- 1:12:40SPEAKER_0: Hardly any JavaScript.
- 1:12:41And then after leaving,
- 1:12:42I had to learn JavaScript as almost like a junior,
- 1:12:47and react and get up to speed on that.
- 1:12:49SPEAKER_0: And now I'm a very all JavaScript, yeah.
- 1:12:53SPEAKER_0: Front end and back end.
- 1:12:56SPEAKER_1: And which one's your favorite programming language and what's the reason?
- 1:12:59So it's grown on me,
- 1:13:01but I would say TypeScript specifically,
- 1:13:04which I don't really call it a language,
- 1:13:06but...
- 1:13:07So,
- 1:13:07at Meta I wrote...
- 1:13:10I sound like telling the long time ago stories as a grandparent or something,
- 1:13:16but I wrote all my code in VIM with no IDE,
- 1:13:21no syntax completion.
- 1:13:22SPEAKER_0: All I had was syntax coloring.
- 1:13:24SPEAKER_0: I almost had the code base in my head to code.
- 1:13:28SPEAKER_1: Wow.
- 1:13:30And now that I've slowly warmed up to TypeScript,
- 1:13:32I actually really like it because it helps me catch a lot.
- 1:13:34It hardly any guardrails,
- 1:13:37I still can code almost as fast as I would with no types,
- 1:13:40but it actually catches bugs,
- 1:13:43helps catch things,
- 1:13:45also helps me be a little less lazy if I'm just going to throw some parameters
- 1:13:50onto a function to think a little more about do I type?
- 1:13:54SPEAKER_0: How do I type these, do I move them into a structure, that type of thing.
- 1:13:58SPEAKER_0: But yeah.
- 1:14:00SPEAKER_1: And what's a book that you read that had an impact on you?
- 1:14:04SPEAKER_0: I think it was called Histories.
- 1:14:06SPEAKER_0: It's by Herodotus, the Greek historian.
- 1:14:11And the reason why it really sticks with me is a lot of the stories in there
- 1:14:16don't seem to make a lot of sense factually,
- 1:14:19and I'm a very factual,
- 1:14:20literal person.
- 1:14:22And when I read this,
- 1:14:22I'm like,
- 1:14:22"Wow,
- 1:14:23these stories don't seem to be real,
- 1:14:25buteveryone'strustingthese."
- 1:14:27And it showed me that storytelling is really important to try to communicate
- 1:14:31things that are happening,
- 1:14:32whether you're literally saying things that happened or not.
- 1:14:37The point is that to influence and to share and to be human,
- 1:14:42we have to be able to communicate stories.
- 1:14:45SPEAKER_0: So that showed me the power of storytelling, historical events.
- 1:14:53SPEAKER_1: Thanks very much for being on the podcast.
- 1:14:53SPEAKER_1: This was very, very informative and lots of fun.
- 1:14:59SPEAKER_0: Yeah, thanks for having me.
- 1:14:59It was a great time to revisit some old stories and yeah,
- 1:15:02had a great time.
- 1:15:03SPEAKER_0: Thanks.
- 1:15:05Thanks to Michael for sharing his thinking stories and how a coding machine
- 1:15:07thinks about things.
- 1:15:08SPEAKER_1: You can find Michael on LinkedIn and Reddit with links in the show notes.
- 1:15:12For more details about Meta's engineering culture and how hiring processes
- 1:15:15work at various tech companies,
- 1:15:17see deep dives from the pragmatic engineer also linked to the show notes.
- 1:15:21If you will enjoy this podcast,
- 1:15:22please do subscribe on your favorite podcast platform and on YouTube,
- 1:15:25it helps the podcast a lot.
- 1:15:27SPEAKER_1: Thanks, and see you in the next one.