← HarveyAI Interview Insights

HarveyAI·Software Engineer·Technical Phone Screen·Intermediate

IntermediatePrefer not to say
Jun 2026

Summary

One round at HarveyAI for a software engineer role, just a single coding question that I knocked out fast and then spent the rest of the time in awkward small talk with the interviewer.

Questions Asked (1)

Q1

Design and implement a file system.

System DesignAlgorithms & Data Structures
Author's notes

Recognized it from a forum almost immediately, which helped a lot.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and scope with the interviewer, then design a hierarchical file system using a tree data structure with nodes representing files and directories. Implement core operations like create, read, write, delete, and list, and discuss trade-offs for scalability, persistence, and concurrency.

Pro tip: Demonstrate maturity by proactively discussing edge cases (e.g., permissions, symbolic links, concurrent access) and how you would test and iterate on the design, rather than jumping straight to code.

1. Clarify Requirements

Ask questions to understand scope: in-memory vs. persistent, single-user vs. multi-user, expected operations, and performance constraints. This ensures you design the right system.

2. Design Data Structures

Propose a tree structure with nodes for files and directories, including metadata like name, size, timestamps, and permissions. Consider using a map for children to enable fast lookup.

3. Define Core Operations

Outline algorithms for create, read, write, delete, move, and list, specifying time and space complexity. Discuss how to handle path resolution and directory traversal.

4. Address Scalability and Persistence

Discuss how to scale (e.g., sharding, caching) and persist data (e.g., serialization, database). Mention trade-offs between in-memory and disk-based storage.

5. Handle Edge Cases and Concurrency

Cover permissions, symbolic links, concurrent access (locking), and error handling. Explain how you would test the implementation.

Key Points to Mention

  • Tree data structure with nodes for files and directories
  • Path resolution and normalization (absolute vs. relative paths)
  • Time and space complexity of operations (e.g., O(1) for direct child lookup with hash map)
  • Persistence strategies (e.g., serialization, database, journaling)
  • Concurrency control (e.g., read-write locks, versioning)
  • Edge cases: permissions, symbolic links, large files, and error handling

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