Meta·Software Engineer·Onsite - System Design / Architecture
May 2026
Meta SWE design round, focused entirely on an in-memory file system with per-user quotas. The problem kept growing with each new operation they asked me to add, which was a bit exhausting but also kind of interesting once I got into it.
- Design an in-memory file system where each file has a name, size, and owner. Implement add_user, add_file_by, and add_file operations with per-user capacity enforcement.
- Add a copy_file operation that duplicates a file under a new name, preserving the original owner and size, and fails if the owner's quota would be exceeded.
- Implement get_n_largest, which filters files by a name prefix and suffix, then returns the top N by size descending (ties broken by name ascending), formatted as 'name(size)'.
- Implement update_capacity, which changes a user's storage cap and, if their current usage exceeds the new cap, deletes their largest files until usage fits within the new limit.
- Add compress_file and decompress_file operations. Compressing halves the file size and renames it with a fixed suffix. Decompressing reverses this, doubling the size and restoring the original name, but fails if the owner would exceed capacity.
“The base setup felt straightforward, a couple of hashmaps and some bookkeeping.” The rest of the author's notes on Software Engineer interview at Meta, Onsite - System Design / Architecture round, covers how they worked through the question, what the panel pushed back on, and what they would do differently.
View Post