PracHub
QuestionsPremiumCoachesLearningGuidesInterview Prep
|Home/System Design/Amazon

Design a basic task management system

Last updated: Mar 29, 2026

Quick Overview

This question evaluates a candidate's ability to design a simple task management service, covering competencies in data modeling, API and class design, storage selection, concurrency and consistency control, ID generation strategies, performance considerations (indexing, pagination), and testing approaches.

  • medium
  • Amazon
  • System Design
  • Software Engineer

Design a basic task management system

Company: Amazon

Role: Software Engineer

Category: System Design

Difficulty: medium

Interview Round: Technical Screen

Design a simple task management system that supports: ( 1) Add a new task with a unique ID and description, ( 2) Mark a task as completed by ID, ( 3) Get all incomplete tasks, ( 4) Get all completed tasks, and ( 5) Get a task by ID. Specify the data model and core APIs/classes, choose in-memory vs. persistent storage, and describe how you'd ensure thread safety and consistency. Discuss ID generation strategies (auto-increment, UUID, or timestamp plus attributes hash) and their trade-offs (ordering, collisions, sharding). Outline performance considerations and a brief testing strategy.

Quick Answer: This question evaluates a candidate's ability to design a simple task management service, covering competencies in data modeling, API and class design, storage selection, concurrency and consistency control, ID generation strategies, performance considerations (indexing, pagination), and testing approaches.

Related Interview Questions

  • Design a Log Collection System - Amazon (medium)
  • Design Human Avoidance for Warehouse Robots - Amazon (medium)
  • Design a High-Availability Load Balancer - Amazon (hard)
  • Design a Ride-Hailing Matching System - Amazon (medium)
  • Design a cloud database write path and recovery - Amazon (hard)
Amazon logo
Amazon
Sep 6, 2025, 12:00 AM
Software Engineer
Technical Screen
System Design
6
0

Design a Simple Task Management Service

Requirements

Design a simple task management system that supports:

  1. Add a new task with a unique ID and description.
  2. Mark a task as completed by ID.
  3. Get all incomplete tasks.
  4. Get all completed tasks.
  5. Get a task by ID.

What to Deliver

  • Data model (entities, fields, and indexes).
  • Core APIs/classes (language-agnostic or your preferred language).
  • Choose in-memory vs. persistent storage and justify.
  • How you ensure thread safety and consistency.
  • ID generation strategies (auto-increment, UUID, timestamp-based/Snowflake-like): trade-offs for ordering, collisions, and sharding.
  • Performance considerations (time/space complexity, pagination, indexing).
  • Brief testing strategy (functional, concurrency, and performance).

Assume this is a single service used by multiple threads/clients. You may make minimal assumptions explicit to keep the design coherent.

Solution

Show

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...

Browse More Questions

More System Design•More Amazon•More Software Engineer•Amazon Software Engineer•Amazon System Design•Software Engineer System Design
PracHub

Master your tech interviews with 8,000+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities
  • Student Access

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.