← Google Interview Insights

Google·Software Engineer·Onsite - System Design / Architecture·Senior

Senior
May 2026

Summary

Got a system design question for a data engineer role at Google. Just the one question but it had a lot of surface area and I don't think I covered it as well as I should have.

Questions Asked (1)

Q1

Design a data warehouse schema for Amazon.

Data ModelingSystem DesignTechnical Trade-offs
Author's notes

I went straight for a star schema with a fact table for orders and dimensions for products, customers, time, and sellers.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the business requirements and scope (e.g., which Amazon domain: retail, AWS, etc.) and key use cases (sales analytics, inventory management, etc.). Then propose a dimensional model (star schema) with fact and dimension tables, explaining how it supports those use cases. Finally, discuss trade-offs (e.g., normalization vs. denormalization, batch vs. real-time) and scalability considerations.

Pro tip: Demonstrate awareness of Amazon's scale and data variety by mentioning how you'd handle slowly changing dimensions (SCDs) and partitioning strategies for large fact tables. Also, tie your design to concrete business metrics like customer lifetime value or inventory turnover.

1. Clarify Requirements and Scope

Ask questions to understand the business domain (e.g., retail, AWS), key stakeholders, and analytical needs. Identify the main use cases and metrics (e.g., sales, customer behavior, supply chain).

2. Choose a Modeling Approach

Decide between dimensional modeling (star schema) and normalized modeling (3NF) based on query patterns and performance needs. Justify your choice with trade-offs.

3. Design Fact and Dimension Tables

Identify fact tables (e.g., sales, orders) with measures and foreign keys. Define dimension tables (e.g., customer, product, time) with attributes and hierarchies. Consider grain of fact tables.

4. Address Scalability and Performance

Discuss partitioning, indexing, and distribution keys for large datasets. Mention how to handle slowly changing dimensions and late-arriving data.

5. Discuss Trade-offs and Alternatives

Compare your design with alternatives (e.g., Data Vault, snowflake schema) and explain why your approach fits Amazon's needs. Highlight trade-offs in storage, query performance, and maintenance.

Key Points to Mention

  • Star schema vs. snowflake schema and when to use each
  • Grain of fact tables and importance of defining it clearly
  • Slowly changing dimensions (SCD) types and implementation strategies
  • Partitioning and clustering for large fact tables (e.g., by date, region)
  • Handling real-time vs. batch data ingestion
  • Trade-offs between normalization and denormalization for query performance

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.