PracHub
QuestionsPremiumLearningGuidesInterview PrepNEWCoaches
|Home/System Design/Microsoft

Design an image upload/download service

Last updated: Mar 29, 2026

Quick Overview

This question evaluates a candidate's competency in system design, distributed storage and processing, API design, scalability, security, reliability, and observability for production-grade services.

  • hard
  • Microsoft
  • System Design
  • Software Engineer

Design an image upload/download service

Company: Microsoft

Role: Software Engineer

Category: System Design

Difficulty: hard

Interview Round: Onsite

Design an image upload and download service for web and mobile clients. Specify: ( 1) APIs (e.g., POST /images for single and multipart uploads, GET /images/{id}, GET /images/{id}/variants; support presigned URLs); ( 2) storage choices (object storage vs. block/file, metadata schema, IDs, deduplication); ( 3) processing pipeline (asynchronous resizing/thumbnailing, queues/workers, EXIF handling, virus scan, idempotency, retries); ( 4) delivery (CDN, caching, range requests, ETag/versioning, cache invalidation); ( 5) security and compliance (authN/Z, rate limits/quotas, signed URLs, encryption in transit/at rest, content validation, PII considerations); ( 6) reliability and consistency (multipart uploads, checksums, retries, eventual consistency handling, disaster recovery/backups); ( 7) scalability and cost (throughput estimates, partitioning/sharding, storage tiering); ( 8) observability and SLOs (metrics, logs, traces, alerts); ( 9) edge cases (partial/failed uploads, duplicate files, hot objects, very large images, deletions/retention). Provide a high-level architecture diagram description, data models, and key trade-offs.

Quick Answer: This question evaluates a candidate's competency in system design, distributed storage and processing, API design, scalability, security, reliability, and observability for production-grade services.

Related Interview Questions

  • Design A Scalable Web Crawler - Microsoft (medium)
  • Design User Re-engagement Notifications - Microsoft (medium)
  • Design a typeahead search service - Microsoft (hard)
  • Design a Secure Copilot API - Microsoft
  • Design a URL Shortener - Microsoft (hard)
Microsoft logo
Microsoft
Sep 6, 2025, 12:00 AM
Software Engineer
Onsite
System Design
7
0

System Design: Image Upload and Download Service

Context

Design a production-grade image service used by web and mobile clients. The service must support secure, scalable image uploads and fast downloads of originals and resized variants. Assume multi-tenant use, public/private access controls, and global users.

Requirements

Specify the following:

  1. APIs
  • Define REST endpoints for: single and multipart uploads; metadata retrieval; variant listing; deletes; and presigned URL flows (direct-to-storage PUT/GET).
  1. Storage choices
  • Choose object vs. block/file storage. Define metadata schema, ID strategy, deduplication approach.
  1. Processing pipeline
  • Asynchronous resizing/thumbnailing. Use queues and workers. Handle EXIF, antivirus scanning, idempotency, and retries.
  1. Delivery
  • CDN integration, caching headers, range requests, ETag/versioning, and cache invalidation strategy.
  1. Security and compliance
  • Authentication/authorization, rate limits/quotas, signed URLs, encryption in transit/at rest, content validation, and PII/privacy considerations.
  1. Reliability and consistency
  • Multipart uploads, checksums, retries/backoff, eventual consistency handling, disaster recovery/backups.
  1. Scalability and cost
  • Throughput estimates, partitioning/sharding, lifecycle/tiering to optimize cost.
  1. Observability and SLOs
  • Metrics, logs, traces, and alerts. Define SLOs.
  1. Edge cases
  • Partial/failed uploads, duplicate files, hot objects, very large images, deletions/retention.

Also provide:

  • High-level architecture diagram description (textual).
  • Data models (metadata schemas).
  • Key trade-offs and alternatives.

Solution

Show

Comments (0)

Sign in to leave a comment

Loading comments...

Browse More Questions

More System Design•More Microsoft•More Software Engineer•Microsoft Software Engineer•Microsoft System Design•Software Engineer System Design
PracHub

Master your tech interviews with 7,500+ 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.