Implement tag matcher and filesystem
Company: Harvey
Role: Backend Engineer
Category: Coding & Algorithms
Difficulty: medium
Interview Round: Onsite
This interview reportedly included two coding problems:
1. **Tag matching in text**
Given a sentence and a list of tags or keywords, return the tags that appear in the sentence as **whole-word matches**. Matching may be treated as case-insensitive, but partial-word matches do **not** count. For example, if the sentence contains `blueprint`, the tag `blue` must **not** be considered a match. Be prepared to clarify how punctuation, duplicates, and output ordering should be handled.
2. **In-memory file system**
Design and implement an in-memory file system that supports common operations such as:
- creating directories,
- listing directory contents,
- writing file contents,
- reading file contents.
Be prepared to discuss path parsing, internal data structures, and edge cases such as nested directories, creating missing parents, and appending to an existing file.
Quick Answer: This combined prompt evaluates string-processing and parsing skills for tag matching and design/implementation skills for an in-memory file system, measuring competencies in exact whole-word matching, case normalization, punctuation and duplicate handling, path parsing, hierarchical data structures, and file API behaviors.