# “The Coding Machine” at Meta with Michael Novati

An episode of [The Pragmatic Engineer](https://invisiblenetwork.ai/podcast/1769051199), 15 Jan 2025, 1 h 16 min.

Audio: https://api.substack.com/feed/podcast/154788317/7f8b4cf01b0d79db1a13d4ec6d43c760.mp3

Supported by Our Partners • Vanta — Automate compliance and simplify security with Vanta. • WorkOS — The modern identity platform for B2B SaaS. — In today’s episode of The Pragmatic Engineer, I’m joined by Michael Novati, Co-founder and CTO of Formation. Before launching Formation, Michael spent eight years at Meta, where he was recognized as the top code committer company-wide for several years. The “Coding Machine” archetype was modeled after Michael at the company. In our conversation, we talk about what it was like working at Meta and dive into its engineering culture. Michael shares his journey of quickly climbing the ranks from intern to principal-level and gives level-headed advice on leveling up your career. Plus, we discuss his work at Formation, where he helps engineers grow and land roles at top tech companies. In this episode, we cover: • An overview of software architect archetypes at Meta, including “the coding machine” • Meta’s org structure, levels of engineers, and career trajectories • The importance of maintaining a ‘brag list’ to showcase your achievements and impact • Meta’s engineering culture and focus on building internal tools • How beating Mark Zuckerberg in a game of Risk led to him accepting Michael’s friend request • An inside look at Meta’s hiring process • Tips for software engineers on the job market on how to do better in technical interviews • And more! — Timestamps (00:00) Intro (01:45) An explanation of archetypes at Meta, including “the coding machine” (09:14) The organizational structure and levels of software engineers at Meta (10:05) Michael’s first project re-writing the org chart as an intern at Meta (12:42) A brief overview of Michael’s work at Meta (15:29) Meta’s engineering first culture and how Michael pushed for even more for ICs (20:03) How tenure at Meta correlated with impact (23:47) How Michael rose through the ranks at Meta so quickly (29:30) The engineering culture at Meta, including how they value internal tools (34:00) Companies that began at Meta or founded by former employees (36:11) Facebook’s internal tool for scheduling meetings (37:45) The product problems that came with scaling Facebook (39:25) How Michael became Facebook friends with Mark Zuckerberg (42:05) The “Zuck review” process (44:30) How the French attacks crashed Michael’s photo inlay prototype (51:15) How the photo inlay bug was fixed (52:58) Meta’s hiring process (1:03:40) Insights from Michael’s work at Formation (1:09:08) Michael’s advice for experienced engineers currently searching for a job (1:11:15) Rapid fire round — The Pragmatic Engineer deepdives relevant for this episode: • Inside Meta’s engineering culture: https://newsletter.pragmaticengineer.com/p/facebook • Stacked diffs (and why you should know about them) https://newsletter.pragmaticengineer.com/p/stacked-diffs • Engineering career paths at Big Tech and scaleups: https://newsletter.pragmaticengineer.com/p/engineering-career-paths • Inside the story of how Meta built the Threads app: https://newsletter.pragmaticengineer.com/p/building-the-threads-app — See the transcript and other references from the episode at https://newsletter.pragmaticengineer.com/podcast — Production and marketing by https://penname.co/. For inquiries about sponsoring the podcast, email podcast@pragmaticengineer.com. Get full access to The Pragmatic Engineer at newsletter.pragmaticengineer.com/subscribe

## Transcript

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

Shows are listed from Apple Podcasts' charts and directory, and Podcast Index where it is used. Every show and episode belongs to its publisher and plays from the publisher's own feed; this site hosts none of them.
