← Amazon Interview Insights

Amazon·Data Scientist·Technical Phone Screen·Senior

Senior
May 2026

Summary

Technical screen for a Data Scientist role at Amazon. The whole thing was basically a deep dive into BI tooling internals, Tableau architecture, and how it maps to QuickSight. More niche than I expected for a DS interview.

Questions Asked (4)

Q1

In Tableau, what are the trade-offs between a Live connection and an Extract when your fact table has over 100 million rows? Walk through refresh cadence, query pushdown, extract size, and when you'd choose one over the other.

Technical Trade-offsSystem DesignData Modeling
Author's notes

I started with the obvious stuff: live hits the DB every time, extract is a snapshot.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by framing the core trade-off: Live connections prioritize real-time data and avoid extract storage but push query load to the source, while extracts offer faster performance and reduced source load at the cost of data latency and storage. Then systematically address each dimension—refresh cadence, query pushdown, extract size—and conclude with clear decision criteria based on use case, data volatility, and infrastructure constraints.

Pro tip: Quantify the impact: mention that extracts can reduce query time from minutes to seconds for large datasets, but if the source is a high-concurrency warehouse like Redshift, live connections might be throttled; always align your choice with SLAs and cost budgets.

1. Define the trade-off dimensions

Briefly outline the key factors: data freshness, performance, source system load, storage, and maintenance overhead. This sets the stage for a structured comparison.

2. Analyze refresh cadence and data latency

Discuss how live connections provide real-time data but may strain the source, while extracts require scheduled refreshes (e.g., daily, hourly) and introduce latency. Consider the business need for up-to-the-minute data.

3. Evaluate query pushdown and performance

Explain that live connections push queries to the source database, leveraging its compute but risking contention; extracts use Tableau's Hyper engine for fast local queries but may not support all database-specific functions.

4. Assess extract size and storage implications

For 100M+ rows, extracts can be large (GBs to TBs), impacting storage and refresh times. Discuss options like incremental refresh, filtering, or aggregation to manage size.

5. Provide decision criteria and recommendations

Conclude with when to choose each: live for real-time, low-latency needs with a robust source; extract for performance-critical dashboards with acceptable data latency. Mention hybrid approaches like using extracts for development and live for production if needed.

Key Points to Mention

  • Data freshness requirements: live for real-time, extract for scheduled updates
  • Source system impact: live connections can overload the database, extracts offload to Tableau
  • Performance: extracts use Hyper for fast queries; live depends on source optimization
  • Extract size management: incremental refresh, filters, and aggregations to handle 100M+ rows
  • Query pushdown: live leverages source compute but may not support all functions; extracts may require custom SQL
  • Cost and maintenance: extracts require storage and refresh schedules; live may incur higher warehouse costs

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

Q2

Explain Tableau's order of operations and how it affects the behavior of data source filters, context filters, dimension and measure filters, TOP N, table calculations, and LOD expressions like FIXED, INCLUDE, and EXCLUDE.

Data ModelingTechnical Trade-offs
Author's notes

This is the kind of question that sounds manageable until you're actually talking through it live.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by outlining Tableau's order of operations as a sequence of filter stages, then explain how each filter type (data source, context, dimension, measure, TOP N, table calc, LOD) fits into that sequence and affects the data available downstream. Use a concrete example to illustrate how filter order changes results, especially for LOD expressions and table calculations.

Pro tip: Emphasize that context filters create a temporary table that affects subsequent filters and LOD calculations, and that FIXED LODs are computed before dimension filters but after context filters—this nuance often trips up even experienced users.

1. Outline the order of operations

List the sequence: data source filters, context filters, dimension filters, measure filters, TOP N filters, table calculations, and LOD expressions (FIXED, INCLUDE, EXCLUDE). Explain that this order determines which data is available at each stage.

2. Explain each filter type's role and timing

Describe how data source filters reduce data before extraction, context filters create a subset for subsequent filters, dimension filters operate on dimensions, measure filters on aggregated measures, and TOP N filters limit based on rank. Clarify that table calculations and LODs operate after filters.

3. Detail LOD expression behavior

Explain that FIXED LODs are computed before dimension filters (but after context filters), INCLUDE LODs after dimension filters, and EXCLUDE LODs after dimension filters but before measure filters. This affects how filters interact with LODs.

4. Illustrate with a concrete example

Walk through a scenario where changing filter order (e.g., using a context filter vs. a dimension filter) changes the result of an LOD or table calculation, demonstrating the practical impact.

5. Summarize implications for analysis

Conclude with best practices: use context filters to optimize performance and control LOD behavior, be cautious with measure filters and table calculations, and always validate results when combining filters with LODs.

Key Points to Mention

  • Data source filters are applied first and can improve performance by reducing data volume.
  • Context filters create a temporary table and affect subsequent filters and LOD calculations.
  • Dimension filters are applied after context filters but before measure filters and table calculations.
  • Measure filters are applied after dimension filters and can affect the results of table calculations.
  • TOP N filters are a type of dimension filter that limits data based on rank.
  • Table calculations are computed after all filters, so they operate on the filtered data.
  • FIXED LOD expressions are computed before dimension filters but after context filters, while INCLUDE and EXCLUDE LODs are computed after dimension filters.

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

Q3

What are your go-to performance tuning strategies in Tableau? Specifically around using context filters, extract filters, table calculation cost, and the decision between denormalizing data versus using joins or relationships.

Technical Trade-offsSystem DesignData Modeling
Author's notes

Felt okay here.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by framing performance tuning as a systematic process: profile first, then optimize the biggest bottlenecks. Walk through each area (context filters, extract filters, table calculations, data modeling) with concrete examples and trade-offs, emphasizing how you measure impact and decide between denormalization and joins/relationships based on query patterns and data volume.

Pro tip: Always quantify the impact of each optimization (e.g., 'reduced load time from 30s to 5s') and mention that you validate changes with Tableau's Performance Recording to avoid premature optimization.

1. Profile and identify bottlenecks

Use Tableau's Performance Recording and query logs to pinpoint slow operations (e.g., extracts, calculations, filters). Prioritize optimizations that affect the most users or largest data volumes.

2. Optimize filters: context vs. extract

Explain that context filters create a temporary table and can improve performance by reducing data before other filters, but they can also slow down if overused. Extract filters reduce data at the source and are best for large datasets or when you need offline access.

3. Manage table calculation cost

Discuss how table calculations are computed after aggregation and can be expensive if they involve complex partitioning or addressing. Recommend minimizing their use, precomputing in the data source when possible, and using them only for dynamic calculations.

4. Decide between denormalization and joins/relationships

Denormalize when you need maximum performance and can accept data redundancy, especially for extracts. Use joins/relationships when you need flexibility, data integrity, or live connections, but be aware of potential performance hits from complex joins.

5. Validate and iterate

After each change, re-measure performance and ensure correctness. Document trade-offs and communicate them to stakeholders, especially when balancing speed vs. flexibility.

Key Points to Mention

  • Context filters create a temporary table and can improve performance by reducing data early, but they can also cause slowdowns if applied to large datasets or used excessively.
  • Extract filters reduce data at the source and are ideal for large datasets, but they limit interactivity and require refresh schedules.
  • Table calculations are computed after aggregation and can be costly; precompute in the data source or use LOD expressions when possible.
  • Denormalization improves performance by reducing joins but increases data redundancy and storage; use for extracts or when query patterns are predictable.
  • Relationships (Tableau's new data model) are more flexible than joins and can improve performance by avoiding unnecessary joins, but they may not be supported in all scenarios.
  • Always measure performance with Tableau's Performance Recording and consider the user experience (e.g., load time, interactivity) when making trade-offs.

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

Q4

How do Tableau's concepts map to Amazon QuickSight? Specifically SPICE versus direct query, row-level security, and filter behavior. And what's one real pitfall you'd watch out for when migrating a Tableau workbook to QuickSight?

Technical Trade-offsSystem Design
Author's notes

SPICE as the QuickSight analog to extracts was easy.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Structure your answer by first mapping each Tableau concept to its QuickSight equivalent, then highlight key differences in behavior and performance. Finally, discuss a real-world pitfall you've encountered or researched, emphasizing its impact and mitigation. This demonstrates both technical depth and practical experience.

Pro tip: Mention that QuickSight's SPICE is an in-memory engine optimized for performance, but unlike Tableau extracts, it has specific refresh limitations and data size constraints. Also, note that QuickSight's row-level security is implemented via datasets and user groups, which can be more complex to set up than Tableau's user filters.

1. Map SPICE vs. Direct Query

Explain that Tableau's extracts are similar to QuickSight's SPICE, while live connections map to direct query. Highlight that SPICE is an in-memory optimized engine, but has size limits and refresh schedules, whereas direct query hits the underlying database in real-time.

2. Compare Row-Level Security

Describe how Tableau's row-level security uses user filters or data source filters, while QuickSight uses dataset-level RLS with rules based on user or group attributes. Note that QuickSight RLS is enforced at query time and can be more centralized.

3. Analyze Filter Behavior

Discuss that Tableau filters are applied at the worksheet or data source level with context filters, while QuickSight filters are applied at the visual or dataset level. Mention that QuickSight's filter behavior can differ in terms of aggregation and order of operations.

4. Identify a Real Pitfall

Choose a specific pitfall, such as performance degradation due to SPICE refresh failures or RLS misconfiguration leading to data leakage. Explain why it occurs and how to avoid it, showing awareness of migration challenges.

Key Points to Mention

  • SPICE is an in-memory engine similar to Tableau extracts, but with different refresh and size constraints.
  • Direct query in QuickSight is analogous to Tableau live connections, but may have performance implications.
  • QuickSight RLS uses dataset rules and user groups, which can be more complex but scalable.
  • Filter behavior differs: Tableau context filters vs. QuickSight visual-level filters.
  • A common pitfall is SPICE refresh failures due to data source changes or size limits.
  • Another pitfall is RLS misconfiguration causing unintended data exposure.

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