← HarveyAI Interview Insights

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

Senior
Apr 2026

Summary

System design round at HarveyAI for a software engineer role. The prompt was a data room product, basically Google Drive but PDF-only, with the main focus being ACL design at the organization level. Niche enough that I wasn't sure how deep to go on the storage layer versus the permissions model.

Questions Asked (1)

Q1

Design a data room product similar to Google Drive but restricted to PDFs by default. Focus specifically on how you'd implement access control lists at the organization level.

System DesignData ModelingTechnical Trade-offs
Author's notes

I spent too long on the file storage side and had to scramble when they steered me toward ACLs.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements: multi-tenant orgs, PDF-only storage, and ACLs at org, group, and user levels. Then propose a hierarchical role-based access control (RBAC) model with inheritance and overrides, and discuss how to enforce it at the API and storage layers with audit logging.

Pro tip: Emphasize that ACLs must be evaluated at the document level but inherited from the org hierarchy, and mention the need for efficient permission checks using caching or materialized paths to avoid recursive queries.

1. Clarify Requirements and Constraints

Ask about scale (number of orgs, users, documents), permission granularity (view, edit, share), and compliance needs (audit logs, data residency). Confirm that PDFs are the only allowed file type and that access control is the core focus.

2. Design the Data Model for ACLs

Propose a schema with organizations, users, groups, roles, and permissions. Use a hierarchical model where permissions can be assigned at org, group, or document level, with inheritance and explicit deny overrides.

3. Define Permission Evaluation Logic

Explain how to compute effective permissions: traverse from org down to document, combining roles and overrides. Discuss caching strategies (e.g., Redis) and materialized paths to optimize frequent checks.

4. Enforce Access Control at API and Storage Layers

Describe middleware that checks permissions before serving PDFs, and storage-level encryption with per-document keys. Mention audit logging for all access attempts and changes to ACLs.

5. Address Trade-offs and Scalability

Discuss trade-offs between fine-grained and coarse-grained permissions, latency vs. consistency in permission checks, and how to handle cross-org sharing securely. Mention sharding by org for scalability.

Key Points to Mention

  • Role-Based Access Control (RBAC) with hierarchical inheritance
  • Explicit deny overrides and permission precedence
  • Efficient permission checks using caching and materialized paths
  • Audit logging and compliance for sensitive documents
  • Multi-tenancy isolation and cross-org sharing
  • PDF-specific constraints: content scanning, watermarking, and download restrictions

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