PracHub
QuestionsLearningGuidesInterview 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 Scalable Metrics Monitoring System - Amazon (medium)
  • Design a Personalized Weekly Deals Service - Amazon (medium)
  • Design an Amazon Locker Service - Amazon (easy)
  • Architect an AI Chatbot for Enterprise Users - Amazon (medium)
  • Design a Scalable News Feed - Amazon (easy)
|Home/System Design/Amazon

Design a basic task management system

Amazon logo
Amazon
Sep 6, 2025, 12:00 AM
mediumSoftware EngineerTechnical ScreenSystem Design
8
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.

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

Your design canvas — auto-saved

PracHub

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

Product

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

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • AI Coding 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.