Shopping Cart & Order System
DynamoDB powers Amazon's shopping cart persistence, order history, and checkout flow—handling billions of items and millions of transactions during Prime Day with single-digit millisecond latency.
Real-Time Ride Matching
DynamoDB stores driver availability, rider requests, and trip state for real-time ride matching across millions of daily trips with strict latency requirements.
Ephemeral Message Storage
High-throughput DynamoDB infrastructure for storing and expiring billions of messages, stories, and engagement data with TTL-based automatic cleanup.
Learning Progress System
DynamoDB powers user progress tracking, streak management, and personalization for 50M+ daily active learners with complex access patterns and real-time updates.
What DynamoDB Developers Actually Build
Before defining your role, understand what DynamoDB work looks like at companies pushing real scale:
Serverless Applications & Mobile Backends
Airbnb uses DynamoDB to power their mobile app experience:
- User session management and preferences
- Real-time messaging between hosts and guests
- Booking state machines and status tracking
- High-availability during peak travel seasons
Snapchat relies on DynamoDB for ephemeral data patterns:
- Message and story metadata storage
- User relationship graphs
- High-throughput writes for engagement data
- TTL-based automatic data expiration
E-Commerce & Marketplaces
Amazon Retail (DynamoDB's birthplace) uses it for:
- Shopping cart persistence across sessions
- Product catalog metadata
- Order tracking and history
- Customer preference storage
- Prime Day scale events (millions of requests per second)
Lyft handles ride-sharing infrastructure:
- Real-time driver and rider matching data
- Trip state management
- Location history and routing metadata
- Surge pricing calculations at scale
Gaming & Real-Time Systems
Epic Games (Fortnite) uses DynamoDB for:
- Player profile and inventory storage
- Leaderboards and match history
- In-game event data
- Millions of concurrent players during live events
Duolingo manages learning progress:
- User streak and progress tracking
- Lesson state and completion data
- Achievement and badge systems
- Personalization data for 50M+ daily users
DynamoDB vs MongoDB vs Cassandra: What Recruiters Should Know
This comparison comes up constantly. Here's the practical difference for hiring:
When Companies Choose DynamoDB
- AWS-native architectures: Deep integration with Lambda, API Gateway, IAM
- Serverless requirement: Zero operational overhead, automatic scaling
- Predictable latency: Single-digit millisecond response times guaranteed
- Variable traffic patterns: On-demand pricing scales to zero when idle
- Strong AWS ecosystem: Already using other AWS services extensively
When Companies Choose MongoDB
- Flexible schemas: Need frequent schema evolution without planning
- Rich query language: Complex aggregations, text search, geospatial
- Multi-cloud: Want to avoid AWS lock-in
- Developer familiarity: Teams already know MongoDB
- Self-hosted options: Need on-premises deployment
When Companies Choose Cassandra
- Multi-region writes: True multi-master replication globally
- Time-series data: Optimized for append-heavy workloads
- Operational control: Teams want to manage their own infrastructure
- Open-source requirement: No vendor lock-in concerns
- Specific write patterns: Very high write throughput with eventual consistency
What This Means for Hiring
DynamoDB expertise is most valuable for AWS-native applications and serverless architectures. A candidate with strong DynamoDB skills likely understands NoSQL patterns, access pattern design, and cloud-native thinking. However, MongoDB developers often have broader query experience, and Cassandra developers may have deeper distributed systems knowledge. The "best" database depends on your architecture—understand yours before hiring.
The Modern DynamoDB Developer (2024-2026)
DynamoDB has evolved significantly. Modern expertise looks different from five years ago.
Single-Table Design Revolution
The biggest shift in DynamoDB thinking is single-table design—storing multiple entity types in one table using carefully designed partition and sort keys:
PK: USER#123 SK: METADATA → User profile
PK: USER#123 SK: ORDER#456 → User's order reference
PK: ORDER#456 SK: METADATA → Order details
PK: ORDER#456 SK: ITEM#789 → Order line item
PK: PRODUCT#ABC SK: METADATA → Product info
This pattern enables efficient queries ("Get user with all their orders in one request") but requires upfront access pattern planning. Developers who understand single-table design are significantly more valuable than those who treat DynamoDB like a relational database.
DynamoDB Streams & Event-Driven Architecture
Modern DynamoDB applications are event-driven:
- DynamoDB Streams capture item-level changes
- Lambda triggers process changes in real-time
- Event sourcing patterns for audit trails
- Cross-region replication via Global Tables
Strong candidates understand how to build reactive systems, not just CRUD applications.
Cost Optimization Awareness
DynamoDB pricing is nuanced:
- On-Demand mode: Pay per request, scales automatically
- Provisioned mode: Reserved capacity, more cost control
- Reserved Capacity: Discounts for predictable workloads
- GSI costs: Each index doubles storage costs
Experienced DynamoDB developers can design cost-efficient systems—this is increasingly important as cloud bills grow.
Skill Levels: What to Test For
Level 1: Basic DynamoDB (Every AWS Backend Developer)
- Create tables and understand basic concepts
- Perform basic CRUD operations (PutItem, GetItem, Query)
- Understand primary keys (partition key, sort key)
- Use DynamoDB SDK in their language
- Basic understanding of NoSQL vs SQL
Red flag: Never used DynamoDB or any NoSQL database
Level 2: Competent DynamoDB User
- Designs effective table schemas with access patterns in mind
- Writes efficient queries and understands why Scan is expensive
- Implements Global Secondary Indexes (GSI) for alternative access patterns
- Uses DynamoDB Streams and Lambda triggers
- Handles conditional writes and transactions
This is the minimum for backend developers using DynamoDB in production.
Level 3: DynamoDB Expert
- Designs complex single-table models for multiple entity types
- Optimizes partition keys for even distribution and scale
- Understands capacity modes and cost implications deeply
- Handles large-scale migrations and data modeling challenges
- Knows when DynamoDB fits vs alternatives (and can explain why)
- Uses advanced features: Global Tables, DAX caching, PartiQL
This is Database Engineer or AWS Solutions Architect territory.
Recruiter's Cheat Sheet: Spotting Great Candidates
Conversation Starters That Reveal Skill Level
| Question | Junior Answer | Senior Answer |
|---|---|---|
| "How do you design a DynamoDB table?" | "Create columns like SQL" | Explains access patterns first, then designs partition/sort keys, considers GSIs |
| "What's a hot partition?" | "I don't know" | Explains uneven data distribution, partition key design, solutions like write sharding |
| "When would you use DynamoDB vs PostgreSQL?" | "DynamoDB is faster" | Explains use case fit, access patterns, query complexity, ACID requirements, cost considerations |
| "How do you handle many-to-many relationships?" | "Create a join table" | Explains item collections, GSI overloading, adjacency list pattern |
Resume Signals That Matter
✅ Look for:
- Specific DynamoDB features used (GSIs, Streams, TTL, Global Tables, DAX)
- Production scale experience ("Managed DynamoDB tables with 1B+ items")
- Mentions single-table design or access pattern optimization
- Serverless/AWS architecture experience (Lambda, API Gateway, Step Functions)
- Cost optimization experience ("Reduced DynamoDB costs by 40%")
- Mentions of handling hot partitions or write sharding
🚫 Be skeptical of:
- Only lists "DynamoDB" without specifics
- No mention of data modeling or access patterns
- Claims DynamoDB expertise but treats it like SQL
- No production environment experience
- "Expert in all databases" without specifics
GitHub/Portfolio Green Flags
- Single-table design examples with clear access patterns
- DynamoDB Streams to Lambda pipeline implementations
- Cost analysis or capacity planning documentation
- Experience with DynamoDB Local for testing
- Understanding of eventually consistent vs strongly consistent reads
Common Hiring Mistakes
1. Testing Basic CRUD Only
Knowing how to PutItem/GetItem doesn't differentiate candidates. Fizz-buzz level DynamoDB tests reveal nothing. Test data modeling, query design, and understanding of DynamoDB's strengths and limitations.
Better approach: Give them a use case (e-commerce orders, social media feed) and ask them to design the table structure. Watch whether they ask about access patterns first.
2. Ignoring Single-Table Design Knowledge
DynamoDB's single-table design pattern is the biggest differentiator between basic users and experts. Many developers struggle with this pattern—they want separate tables for Users, Orders, and Products like in SQL. Test their understanding of composite keys and item collections.
Instagram's approach: Their database interviews focus on modeling real scenarios with multiple entity types and access patterns.
3. Not Understanding Partition Key Design
Hot partitions are the #1 performance issue in DynamoDB. Good candidates understand that a partition key like "date" or "status" can create massive imbalances. Test their strategies for even distribution.
Ask: "You have 1 million users but 10 users generate 90% of the traffic. How do you handle this?"
4. Overlooking Cost Awareness
DynamoDB pricing can surprise teams who don't plan for it. On-demand vs provisioned, GSI costs, and reserved capacity decisions significantly impact bills. Candidates should understand cost implications of their design choices.
5. Conflating DynamoDB with Relational Databases
The biggest red flag: candidates who try to normalize data, ask about joins, or expect complex query support. DynamoDB requires different thinking. Test whether they understand the fundamental paradigm shift.
When to Use DynamoDB (And When Not To)
DynamoDB Excels At
- Serverless applications: Lambda + DynamoDB is the default pattern
- Known access patterns: When you can define your queries upfront
- High-scale, predictable latency: Millions of requests with consistent response times
- AWS-native architectures: Deep integration with IAM, CloudWatch, Lambda
- Variable workloads: On-demand pricing scales down to zero
- Simple item lookups: Key-value access patterns
DynamoDB Struggles With
- Ad-hoc queries: Unknown query patterns at development time
- Complex analytics: Aggregations, GROUP BY, complex joins
- Full-text search: Need Elasticsearch/OpenSearch instead
- Complex transactions: Multi-table ACID transactions (though single-table transactions work)
- Relational data: Heavy foreign key relationships
- Teams new to NoSQL: Steep learning curve without SQL fallback
The Honest Assessment
DynamoDB is exceptional for what it does well, but it's not a general-purpose database. Good candidates understand this trade-off. Be wary of developers who say DynamoDB is always better—or always worse—than relational databases. The answer is always "it depends," and they should be able to explain on what.
DynamoDB Concepts Every Recruiter Should Recognize
Tables, Items, and Attributes
- Table: Container for items (like a database table)
- Item: Collection of attributes (like a row)
- Attribute: Key-value pair (like a column)
Primary Keys
- Partition Key (PK): Determines which physical partition stores the item
- Sort Key (SK): Optional, determines item order within partition
- Composite Primary Key: PK + SK combination enabling hierarchical data
Access Patterns
- Query: Efficient retrieval using partition key (required) and optionally sort key
- Scan: Reads entire table (expensive, avoid when possible)
- GetItem: Retrieves single item by exact primary key
Indexes
- Global Secondary Index (GSI): Different partition and sort keys, stored separately
- Local Secondary Index (LSI): Same partition key, different sort key (must be defined at table creation)
Capacity Modes
- On-Demand: Pay per request, auto-scaling, no capacity planning
- Provisioned: Specify read/write capacity units, more cost control for predictable workloads
Understanding these terms helps recruiters have informed conversations and evaluate candidates more effectively.