cswork / libraryOpen practice workspace

Articles · Meta

Meta E6 Software Engineer Interview Guide 2026: Coding, System Design, Leadership, and Leveling

Prepare for Meta E6 interviews with coding invariants, a worked ingestion design, capacity estimates, staged migration and a candid project retrospective.

For a Meta E6 interview, prepare to explain how a technical decision survives contact with several teams, an imperfect migration and a changed requirement. A clean diagram helps. Clear ownership, numerical constraints and a credible recovery plan make the diagram worth discussing.

Candidates commonly use E6 for a Staff software engineering target. Meta's public preparation material describes the general SWE loop; it does not publish an E6 scoring formula or a guaranteed sequence for that level. Confirm the target role, design track, interview tools and allowed resources with your recruiter.

Start with three outputs: a correct implementation you can verify, an architecture decision you can defend, and an honest project retrospective that separates your contribution from the team's result. The worked case below is an original preparation exercise, not a reported Meta interview question or an internal rubric.

What should you confirm before the Meta E6 loop?

Meta's current official SWE preparation download covers coding, design and behavioral interviews. Your Career Profile and recruiter instructions determine your actual schedule. Ask for the design track and any role-specific preparation before building a study plan around someone else's experience.

Recruiter questionWhy the answer mattersPreparation output
Which design track applies?Systems Design and Product Architectural Design emphasize different decisions.One mock tailored to the confirmed track.
What coding tools and assistance are allowed?The standard guide prohibits unauthorized outside assistance, including AI tools.Practice under the actual rules.
What scope does this role own?Team implementation and shared technical direction need different examples.Projects with precise ownership boundaries.
What happens after the loop?Evaluation, team matching and an offer can be separate conversations.A written list of next steps and open questions.

Do not assume that a specialist or AI-enabled interview applies because another candidate had one. If your invitation explicitly describes a different mode, clarify its permitted tools. Use AI during preparation only where appropriate; do your own work in an interview governed by the standard restrictions.

How do you make coding answers easy to evaluate?

Start by resolving an ambiguity that can change the answer. For merging intervals, ask whether touching intervals merge and whether the intervals are closed or half-open. Then state the invariant before implementing it: the output is sorted and disjoint, and its union equals the union of all processed intervals.

For a closed-interval merge, the next interval joins the current interval when its start is at most the current end. For half-open intervals, adjacency may remain separate if that is the required contract. Neither convention is universally correct; consistency with the agreed contract is the point.

Test an empty input, a single interval, nesting, duplicates, disjoint intervals and touching endpoints. Explain sorting's O(n log n) cost and the linear scan. If the input is already sorted, identify which work disappears. If it is a stream, ask whether ordering is guaranteed before proposing a bounded-memory solution.

Useful retained practice topics include merging overlapping intervals and producing asymmetric side views of a binary tree. For the tree exercise, define the traversal order, compare DFS with BFS, and test a skewed tree. Solve the basic problem cleanly before stretching it into an architecture discussion. Staff preparation still needs reliable implementation.

Worked design: migrate a shared event ingestion platform

Fictional brief: three product teams each operate an event pipeline. They want a shared ingestion service while preserving existing reports, deletion semantics and consumer APIs. You own the technical proposal; the teams retain their product logic. A separate platform team operates storage. The initial goal is compatibility and safe migration, not a redesign of every downstream application.

Agree on these illustrative constraints:

  • 100,000 events per second normally, with a possible sustained rise to 140,000.
  • Average stored event size of 1,000 bytes, before additional indexing or compression effects.
  • Three replicas and 72 hours of log retention.
  • Ordering within one entity, not a global order across all entities.
  • Recovery from a one-hour processing backlog within two hours.
  • Deleted entities must not reappear through replay.

Specify the write contract before choosing a queue. An accepted event needs a stable event ID, entity ID, entity sequence, schema version, event time and received time. Acknowledgment means the durable log has accepted it under the agreed replication policy. It does not mean every report has updated. Publish consumer watermarks so users can distinguish an accepted event from a fully applied one.

Calculate the constraint that changes the design

At 100,000 events/second × 1,000 bytes, raw ingestion is 100 MB/second, or 8.64 TB/day in decimal units. Three days with three replicas require 77.76 TB for the retained payload alone. Indexes, protocol overhead, temporary shadow copies and operational headroom add to that estimate. Compression might reduce storage, but it must be measured rather than assumed.

One hour of backlog contains 360 million events, or 360 GB of raw payload. A processor capable of 160,000 events/second does not clear that backlog at 160,000 while new traffic continues:

Live arrival rateProcessing capacityNet backlog drainTime for 360 million events
100,000/s160,000/s60,000/s100 minutes
140,000/s160,000/s20,000/s300 minutes
140,000/s190,000/s50,000/s120 minutes

The changed load makes the original capacity miss the recovery target. Even 190,000/s leaves no margin against the two-hour boundary under these simplifying assumptions. Reserve additional capacity, reduce lower-priority work or negotiate a different recovery target. Explain which option you choose and which owner pays for it. These figures are arithmetic estimates, not a benchmark of a real Meta service.

Make ordering and deletion behavior explicit

Partition by entity ID so one entity has a consistent processing path. An idempotency record keyed by event ID prevents a retry from creating a second logical effect. An entity sequence prevents an older update from replacing a newer one. Specify how a sequence gap is detected and repaired; simply rejecting every gap can halt a partition permanently.

A deletion is a versioned state change, not merely a missing row. If entity X has a tombstone at sequence 12, a replayed update at sequence 11 must not restore it. A later sequence 13 is still not automatically permission to recreate X: define whether re-creation requires a new identity or an explicit authorized operation. Retain deletion information for the full period during which old events or snapshots can return. Coordinate eventual removal with the owners of backups and replay, rather than guessing that 72-hour log retention solves every deletion case.

For product architecture, expose this through API behavior and user-visible freshness. For systems design, go deeper on partition skew, persistence, catch-up capacity and failure isolation. Both tracks need a complete path from accepted input to observable outcome.

Defend the rejected alternatives

AlternativeWhy it is temptingWhy this proposal rejects or limits it
One global event orderEasy description of consistency.Adds coordination beyond the stated per-entity requirement.
Independent dual writesQuick way to feed both pipelines.Partial success creates disagreement without a repair protocol.
Switch all consumers togetherShort migration calendar.Couples unrelated failures and creates a large recovery surface.
Compare only row countsCheap migration check.Equal counts can hide wrong values, duplicates and missing deletions.

Use one durable event log as the migration input where feasible. If introducing that log is itself a migration, describe its cutover separately; it cannot be assumed trustworthy from day one. Preserve legacy readers through explicit compatibility adapters with owners and removal dates. Otherwise the shared platform can accumulate permanent conversion work without delivering shared ownership.

How would you roll this out and roll it back?

Start with the old pipeline serving production and the new pipeline processing a shadow copy. Compare outputs at the same applied watermark. Comparing a fresh old report with a lagging new report produces misleading differences. Check semantic values, deletion behavior, duplicate effects, lag and resource use. A checksum is useful only if canonicalization and the fields being checked are defined.

Next, cut over one low-risk consumer with its owner present. Keep the old path supplied from the same input during the observation window. Increase scope only when agreed correctness and operational checks pass. Define who can stop the migration, which errors block expansion, and how long the fallback remains available.

Rollback has a precondition: the old path must be caught up to a suitable watermark and must still implement the current contract. Routing traffic back to a stale reader can lose visible updates. If bad data has already reached downstream systems, changing a routing flag is insufficient; stop the affected propagation, identify the contaminated range and repair or replay it. Write that procedure before the first production cutover.

Meta's public ingestion migration article provides a useful real engineering reference for shadow operation, correctness checks and reversible transitions. Its Tulip article also illustrates compatibility and consumer migration work. Use those engineering lessons to ask better questions; do not claim that these publications reveal an interview scoring rule.

What does cross-team leadership look like in a retrospective?

Use the same fictional migration to practice structure, then replace it with your own experience. A polished borrowed story cannot support follow-up questions about a project you did not do.

Weak version: “I led the migration, aligned stakeholders and improved reliability.” It names outcomes without explaining any decisions.

More useful fictional version: “I owned the migration contract and the proposal. Analytics wanted stable report definitions; the product teams wanted faster schema changes. I wrote two competing compatibility plans and used replayed fixtures to expose where they produced different results. We agreed to keep existing report semantics for the first phase and move schema evolution into a separate proposal. The platform owner approved the capacity budget; each consumer owner signed off on its comparison results. I ran the first cutover review. Another engineer implemented the replay worker. When the first consumer showed a deletion mismatch, I stopped expansion and added a tombstone check to the shared migration gate.”

The second version makes personal contribution, disagreement, evidence and team contribution visible. It still needs a result. Use actual counts and dates from your project: how many consumers migrated, how long the fallback stayed active, what incident or cost changed, and whether the result persisted after handoff. If the measurement is incomplete, say so. “No incidents during a short observation window” does not prove a permanent reliability improvement.

For reflection, explain a decision you would change. In this mock, the deletion check should have been part of the first acceptance contract. The durable improvement is that later migrations inherit the check and a named owner, not merely that one engineer became more careful.

A self-review for scope, influence, depth and outcomes

This is an editorial preparation aid, not Meta's rubric. Mark each row as missing, partial or clear; do not combine it into a purported hiring score.

DimensionEvidence that makes it clearFollow-up to rehearse
ScopeInterfaces, affected teams, constraints and non-goals.Why did this require shared direction?
InfluenceA real disagreement, alternatives and changed decisions.Who disagreed, and what evidence mattered?
Technical depthOne risky mechanism with invariants and failure behavior.What breaks under the changed load?
Durable outcomeMeasured result, ownership and continuing adoption.What remained after you moved on?

Precise smaller impact is stronger than inflated scope. Distinguish driving a decision, implementing it, contributing analysis and inheriting an existing plan. Prepare more than one project so architecture, failure and conflict answers do not all depend on the same event.

Five practice prompts to connect the skills

These are retained practice topics, not predictions of your Meta questions. Use the linked company collection near the opening to find relevant exercises.

Practice topicExtension to rehearse
Merge overlapping intervalsChoose endpoint semantics and verify the union invariant.
Produce asymmetric side views of a binary treeCompare traversals and test a skewed tree.
Design an Instagram-like photo-sharing platformExplain APIs, privacy, hot creators and staged growth.
Design an ad click aggregation serviceHandle duplicates, late events, reconciliation and freshness.
Handle priority conflicts, setbacks and initiativesShow actual disagreement, personal ownership and a changed decision.

A seven-day preparation plan with concrete outputs

DayWorkOutput to review
1Confirm schedule, track, tools and role scope.Recruiter questions and a tailored practice plan.
2Run two coding mocks under confirmed constraints.Correct solutions, boundary tests and a short error log.
3Practice intervals and tree traversal.Invariants, complexity and one changed requirement each.
4Design one product and one infrastructure system.Requirements, end-to-end path and rejected alternatives.
5Add migration and recovery to one design.Watermarks, owners, capacity estimates and rollback conditions.
6Rehearse real project retrospectives.Personal contribution, disagreement, result and reflection.
7Run a mixed mock and repair the weakest evidence.One improved answer with observable changes.

Frequently asked questions

Is there a fixed Meta E6 interview process?

The public SWE guide is general preparation, not an E6-specific contract. Use the recruiter schedule for your exact conversations, track and tools. Avoid treating anonymous experiences as a guaranteed sequence.

How should I prepare for system design versus product architecture?

Practice an end-to-end design for both. Emphasize scaling and operational mechanisms for Systems Design; emphasize API contracts, usability and product behavior for Product Architectural Design. Confirm your assigned track and go deep on its highest-risk decision.

Can I use ChatGPT during coding?

The standard current guide prohibits unauthorized outside assistance, including AI tools. Follow your interview's explicit instructions. A separately described AI-enabled exercise requires its own confirmed rules.

Does targeting E6 guarantee that level?

No public preparation guide guarantees a hiring outcome or level. Clarify what role is being evaluated and ask the recruiter about any remaining evaluation or matching steps. Do not infer a formal decision from a positive informal comment.

When should I follow up after the interview?

The official guide permits following up if you have not heard within a week. That is a follow-up suggestion, not a promised decision deadline. Use the timeline your recruiter provides and ask which step remains.

Sources and further reading

Checked October 8, 2026. The worked design, estimates, retrospective and self-review above are original preparation material.