Michael Novati spent eight years at Meta (2009–2017), rising from intern to E7 (principal engineer equivalent) in just six years, and became the company’s #1 code committer in some years. He is now co-founder and CTO of Formation, a remote software engineering fellowship. This episode explores the “coding machine” archetype he inspired at Meta, the company’s engineering-first culture, how its hiring committee works, and practical advice for engineers navigating today’s tougher job market.
The “coding machine” archetype at Meta
Meta uses archetypes for performance reviews and promotions at senior IC levels (E6+). These are modeled after real engineers already at those levels and serve as a fairness mechanism: upcoming engineers are pattern-matched against them to ensure consistent leveling.
The archetypes reflect a pro sports team analogy: every player at the pro level is broadly competent, but each has a specialty. Examples include “fixer” (someone who writes very little code but saves millions with a few lines) and “tech lead” (someone who drives technical direction).
The coding machine archetype was created specifically for Michael because none of the existing archetypes captured his impact. The challenge was defining what separates a senior coding machine from a junior engineer who simply writes a lot of code.
The key differentiator is impact: is the code moving projects forward, unblocking teams, enabling one engineer to do the work of five to ten, or refactoring large codebases so quickly that new engineers never have to deal with legacy libraries?
The archetype was championed by Tom Allison (head of the Facebook app at the time), who worked with other VPs to formalize it. Michael still identifies as a coding machine today at Formation, where he routinely makes 20+ commits in a single morning.
Michael’s career trajectory and day-to-day work at Meta
Michael was promoted four times in six years: intern → E3 (new grad) → E4 → E5 (senior) → E6 (staff) → E7 (senior staff/principal).
As an intern on his second or third day, he rewrote Facebook’s internal org chart tool without asking permission, changing it from a vertical scrolling layout to a horizontal one with Zuckerberg on the left. It was immediately shipped and well received because the horizontal layout flattened the hierarchy, symbolically placing interns on the same line as the CEO.
He worked on product teams including internal tools, Facebook Groups, the first version of Facebook Workplace, News Feed, Facebook Groups for schools and colleges, and Messenger for Kids.
His typical time split was roughly 30% on his local product team (contributing as a senior engineer: leading projects, mentoring, breaking down work) and 70% on massive cross-codebase refactorings and cleanups. This outsized impact beyond his local team is what justified his E7 level.
Two factors drove his rapid promotion:
Trust-based manager relationships: His managers were blunt with him about feedback (e.g., “you’re causing too many bugs in this area”), and he was non-defensive. He also helped his managers succeed, creating a mutually supportive dynamic.
A running work log: He kept a notepad of accomplishments (emergency bug fixes, side projects, etc.) and used it during performance reviews and one-on-ones to bucket his work and map it to the next level’s requirements. This is similar to what others call a “brag document.”
Meta’s engineering-first culture and internal tools
Meta treated internal tools as products, built on the same codebase as user-facing features but deployed to employees. This meant internal tools moved faster (serving ~700–900 employees vs. hundreds of millions of users) and were seen as exciting product work, not drudgery.
Because Meta built all its infrastructure from scratch (no cloud providers existed at the time; they even built their own servers), they needed custom tools for everything: version control (SVN backbone with Mercurial locally), code review, build systems (Buck), experimentation (Gatekeeper/StatSig), and more.
Many of these internal tools seeded companies founded by former Meta employees, including StatSig (experimentation platform) and Graphite (stacked diffs for code review).
Mark Zuckerberg said in a 2009/2010 Y Combinator talk that he wanted Facebook to be known for training people to build great products and potentially become great founders. Michael initially found this odd (he wanted to train people to stay at Facebook forever) but later recognized that Facebook was exceptionally good at taking ambitious young engineers and building their execution abilities.
Even small tools like a meeting room scheduling system were built in-house and maintained by dedicated teams, something that surprised Gergely given how rare it is for companies to staff and budget for such tools.
Tensions between ICs and management at senior levels
At Meta, there was rough parity between M1 (first-level manager) and E6 (staff engineer) in compensation, scope, and influence. The ratio of senior managers to junior managers was also similar to E7-to-E6 ratios.
However, beyond that (director/D1 and E8+), there were far more directors than principal/distinguished engineers. Michael pushed back on this, wanting “infinite” IC progression, but came to understand that there is a natural ceiling on IC impact: no matter how productive one engineer is, they cannot replace the coordinating influence of a manager overseeing thousands of people.
At the E7+ level, there was a visible tension between internal lifers (promoted quickly, deeply ingrained in Facebook values like “move fast and break things” and “be bold”) and external hires (who brought different perspectives from Google, Microsoft, etc. but struggled to align with Facebook’s culture and often left). The strength of Facebook’s values—where breaking things from moving fast was tolerated and bold bets were rewarded even if they failed—made it harder for external senior hires to have impact.
The French flag profile picture outage
Michael built a photo overlay feature as a prototype in about a week, allowing users to place a template (like a flag) over their profile picture. After the Paris terrorist attacks, Facebook released a French flag template for users to show support.
The system used a graph data model where objects (profiles, templates, photos) were federated across tens of thousands of databases, connected by edges. Michael used a two-way edge between the template and profiles (rather than one-way) because it made the prototype simpler: counting edges directly gave usage metrics without building separate logging.
When ~100 million people applied the French flag overlay within a day or two, 100 million edges were written to the single database node hosting the French flag template object. Writes are far more expensive than reads, and that node (which also hosted other objects like profiles, groups, and events) crashed, causing cascading failures across the system.
The fix: Michael removed the two-way edge (making it one-way), and the DB infrastructure team handled rebooting and replaying SQL logs. The feature was then productionized with proper logging. This is a textbook example of a fan-out problem, similar to Twitter’s “fail whale” outages during high-traffic events.
Two things that throw candidates off at Meta specifically: whiteboarding-style coding (no compiling/running code; interviewers want to see clean thought processes) and almost no small talk (interviewers jump straight into the problem).
The hiring committee met twice a week and was effectively open-door. Michael started attending uninvited out of concern that Meta would lower its hiring bar as it scaled.
A recruiter presents a packet to a quorum of at least three director-or-VP-level engineering leaders. The packet includes:
All interview feedback
Interviewers’ own interview histories and rating histograms (are they binary strong yes/strong no, or do they lean yes/no?)
How experienced each interviewer is and how many times they’ve asked their questions
The committee’s main focus is level calibration: is this person truly senior or midlevel? Are they being leveled consistently with peers of similar scope? They look for flags and inconsistencies. The default at this stage is usually to hire; the committee is checking for reasons not to.
Michael’s presence in these sessions gave him unique insight that now helps him coach candidates at Formation, including reassuring those who performed well but weren’t selected that rejection doesn’t necessarily mean failure.
Interview preparation and the current job market
Meta’s interview style (LeetCode-style, stack-agnostic problem solving) is shared across most top tech companies (Google, OpenAI, etc.) because it tests core logic and problem-solving skills independent of specific frameworks or languages. Companies that don’t use this style are typically smaller (wanting specific stack expertise) or non-tech companies.
At Formation, some clients return two years after getting a job to re-prepare for another move, treating interview prep like working out with a personal trainer: you may have been in shape before, but career transitions require getting back into form, especially since day-to-day work can leave you strong in some areas (your current stack) and rusty in others (DSA, system design).
The job market is more competitive than before. New friction points include:
Team matching processes (Meta recently added this; Google has had it for years), where candidates pass the on-site but then wait in limbo until they match with a team.
Online assessments (CodeSignal, HackerRank) used as initial filters, which catch experienced engineers off guard if they’ve never used those tools.
Michael’s advice: find the right role rather than just trying to clear the highest bar. Not getting into Meta doesn’t mean you’re a bad engineer; it may just mean misalignment.
Rapid fire
Most productive year: thousands of diffs (code changes), likely 5,000–10,000 per year, competing first with other engineers and then with the automated release bot.
Primary language at Meta: Hack (PHP evolved into Hack), with almost no JavaScript.
Primary language now: TypeScript (both frontend and backend), which he had to learn almost from scratch after leaving Meta.
Favorite language: TypeScript. He used to code in Vim with no IDE or autocomplete, relying on having the codebase in his head. TypeScript has grown on him because it catches bugs and forces him to think more carefully about function signatures and data structures, without significantly slowing him down.
Impactful book: Histories by Herodotus. Many stories don’t seem factually true, but the book showed Michael the power of storytelling as a way to communicate, influence, and share experiences—whether or not every detail is literally accurate.