← Meta Interview Insights

Meta·Software Engineer·Onsite - System Design / Architecture·Senior

Senior
Jun 2026

Summary

Meta data engineering interview, data modeling round centered entirely on the Private Account feature. One big open-ended question that kept branching into sub-problems. Dense but interesting if you like schema design.

Questions Asked (1)

Q1

Design a data model for a Private Account feature. Walk through the relevant entities and their attributes, define the relationships and cardinalities between them, and identify the analytical dimensions an analyst would care about (things like privacy state, request state, time, geography, device). Then decide whether you'd go with a normalized OLTP schema or a star/snowflake analytics schema and justify why. Also explain how you'd handle schema evolution and track historical state when an account switches between public and private.

Data ModelingSystem DesignTechnical Trade-offs
Author's notes

This was basically five questions stitched into one.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the scope and requirements of the Private Account feature, then model the core entities and relationships. Discuss analytical dimensions and justify the choice between OLTP and OLAP schemas. Finally, explain strategies for schema evolution and historical state tracking.

Pro tip: Demonstrate awareness of Meta's scale by discussing sharding, denormalization for performance, and the trade-offs between consistency and availability in a distributed system.

1. Clarify Requirements and Scope

Ask questions to understand the feature's goals, scale, and constraints. Identify key use cases such as toggling privacy, requesting to follow private accounts, and analytics needs.

2. Identify Entities and Attributes

List core entities like User, AccountPrivacySetting, FollowRequest, and PrivacyAuditLog. Define their attributes, such as user_id, privacy_state, request_status, timestamps, and device info.

3. Define Relationships and Cardinalities

Specify how entities relate: one-to-one between User and AccountPrivacySetting, one-to-many between User and FollowRequest, and one-to-many between User and PrivacyAuditLog. Note cardinalities and optionality.

4. Choose Schema Type and Justify

Decide between normalized OLTP for transactional integrity and star/snowflake for analytics. Justify based on read/write patterns, performance, and scalability needs.

5. Address Schema Evolution and History

Explain how to handle changes like adding new privacy states or attributes. Discuss techniques for tracking historical state, such as audit logs, temporal tables, or event sourcing.

Key Points to Mention

  • Analytical dimensions: privacy state, request state, time, geography, device, and user demographics.
  • Normalized OLTP schema for transactional consistency and star/snowflake for analytical query performance.
  • Schema evolution strategies: backward-compatible changes, versioning, and schema registry.
  • Historical state tracking: audit logs, temporal tables, or event sourcing with change data capture.
  • Scalability considerations: sharding, partitioning, and denormalization for high-traffic features.
  • Trade-offs between consistency, availability, and performance in distributed systems.

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.