I started with chunked uploads and felt okay about that part.
Start by clarifying requirements and scale, then design the high-level architecture covering storage, metadata, and APIs. Dive into the critical components: large file uploads/downloads with chunking and resumability, folder hierarchy, permission model, and security measures. Discuss trade-offs and justify your choices.
Pro tip: Emphasize how you would handle large files efficiently with chunked uploads, parallel transfers, and integrity checks, and discuss how permissions propagate through the folder hierarchy without sacrificing performance.
Ask about expected user base, file sizes, upload/download patterns, and security/compliance needs. Define functional and non-functional requirements.
Outline core components: client apps, API gateway, metadata service, blob storage, and CDN. Explain how they interact for uploads, downloads, and metadata operations.
Describe chunked, resumable uploads with parallel chunks and integrity checks. For downloads, discuss range requests, CDN caching, and parallel downloads.
Explain how to model folders and files in a database (e.g., adjacency list, materialized path) and handle operations like move, copy, and list efficiently.
Design a permission model (e.g., ACLs, RBAC) with inheritance, and cover encryption at rest/in transit, authentication, and audit logging.
AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.