Anthropic·Machine Learning Engineer·Onsite - System Design / Architecture
- Design a cluster status tracker with methods to record node status updates (possibly out-of-order or duplicated), retrieve the current status of a node, retrieve the status at a specific point in time, and return a summary of node counts by status at a given time. Use last-write-wins conflict resolution by timestamp and nodeId. Aim for O(log n) per operation and support up to 100k nodes and 10M updates per day.
- How would you extend the tracker to support range queries, such as getting per-minute node status counts over the last K minutes, efficiently?
- How would you make the update and read operations thread-safe under high concurrency? Discuss sharding and locking strategies.
“This one took me a while to structure.”