← Intuit Interview Insights

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

SeniorPrefer not to say
Jun 2026Remote

Summary

System design round at Intuit for a software engineer role. The whole thing was one big open-ended problem about building a future best-seller prediction system for an e-commerce category page, end to end. Pretty intense scope for a single session.

Questions Asked (10)

Q1

Design a system that predicts future best-sellers in a product category for a user-specified time window (anywhere from 24 hours to 90 days out), returning a ranked top-K list with low latency on high-traffic category pages.

System DesignTechnical Trade-offsProduct Strategy
Author's notes

This one is massive.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements: define 'best-seller' (e.g., sales volume, revenue, or velocity), the acceptable latency (e.g., <100ms), and the scale (QPS, number of categories). Then propose a two-tier architecture: an offline pipeline that trains time-series forecasting models (e.g., gradient boosting or deep learning) on historical sales data, and an online serving layer that caches precomputed top-K lists per category and time window, with a fallback to a lightweight real-time model for freshness. Finally, discuss trade-offs between accuracy, latency, and cost, and how to handle cold-start and data sparsity.

Pro tip: Emphasize that the system should be designed for incremental updates and A/B testing, because predicting best-sellers is inherently uncertain and you'll need to continuously validate and refine the model in production. Also, mention that you'd start with a simple heuristic (e.g., recent sales velocity) as a baseline before investing in complex ML.

1. Clarify Requirements and Constraints

Ask questions to understand what 'best-seller' means (e.g., units sold, revenue, or growth rate), the expected traffic (QPS), latency SLA, and the number of categories. Also clarify the time window granularity (e.g., 24h, 7d, 30d, 90d) and whether predictions should be personalized.

2. High-Level Architecture

Propose a two-part system: an offline training pipeline that periodically (e.g., daily) computes predictions for each category and time window, and an online serving layer that stores these precomputed lists in a low-latency cache (e.g., Redis) and serves them via an API. Include a fallback mechanism for real-time adjustments if needed.

3. Data and Feature Engineering

Discuss data sources: historical sales, user interactions (views, clicks, add-to-cart), seasonality, promotions, and external factors (e.g., holidays). Outline key features: time-series aggregates (moving averages, growth rates), product attributes, and category-level trends.

4. Modeling Approach

Choose a model suitable for time-series forecasting and ranking. Consider gradient boosting (e.g., XGBoost) for tabular data or deep learning (e.g., LSTM, Transformer) for sequential patterns. For ranking, use learning-to-rank or simply sort by predicted sales. Mention handling cold-start with content-based features.

5. Serving and Scalability

Design the serving layer to handle high traffic: use a distributed cache (e.g., Redis) with replication, precompute top-K lists per category and time window, and serve via a stateless API. Ensure low latency by avoiding on-the-fly model inference; if real-time inference is needed, use a lightweight model or approximate methods.

6. Evaluation and Iteration

Define offline metrics (e.g., NDCG, precision@K) and online metrics (e.g., CTR, conversion). Set up A/B testing to compare models. Plan for monitoring and retraining frequency, and discuss how to handle feedback loops and data drift.

Key Points to Mention

  • Two-tier architecture: offline batch prediction + online caching for low latency.
  • Trade-offs between model complexity, accuracy, and serving cost; start with a simple baseline.
  • Handling cold-start and sparse data using content-based features or hierarchical models.
  • Precomputation and caching strategies (e.g., Redis) to meet <100ms latency at scale.
  • Evaluation metrics: offline (NDCG, MAP) and online (CTR, conversion) with A/B testing.
  • Scalability considerations: sharding by category, read replicas, and CDN for static assets.

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

Q2

How would you define 'best seller' for ranking purposes: units sold, revenue, or some blended demand score? And does the business care about absolute volume or rising momentum?

Product Sense & IdeationProduct Analytics & Metrics
Author's notes

I fumbled this a bit by just saying 'units sold' without pushing back.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the business goal behind the ranking (e.g., maximizing revenue, user engagement, or discovery) and the specific context (e.g., product listing, search results). Then propose a blended demand score that combines units sold, revenue, and momentum metrics, and explain how to weight them based on the objective. Finally, discuss the trade-offs and suggest A/B testing to validate the chosen metric.

Pro tip: Emphasize that the 'best seller' definition should align with the company's north star metric and that a blended score can balance absolute popularity with rising trends, but always validate with experiments to avoid unintended consequences.

1. Clarify Business Objective

Ask or infer what the ranking aims to achieve: is it to drive revenue, increase user engagement, promote new products, or something else? This determines the primary metric.

2. Evaluate Metric Options

Compare units sold (popularity), revenue (profitability), and blended demand score (combines multiple signals). Discuss pros and cons of each in terms of business impact and user perception.

3. Propose a Blended Demand Score

Suggest a weighted formula that includes units sold, revenue, and momentum (e.g., recent growth rate). Explain how weights can be tuned based on business priorities.

4. Address Absolute Volume vs. Momentum

Discuss whether the business values steady bestsellers or rising stars. Momentum can help surface new trends, but absolute volume ensures reliability. A blended score can incorporate both.

5. Validate and Iterate

Recommend A/B testing different ranking algorithms to measure impact on key metrics (e.g., conversion, revenue, user satisfaction) and iterate based on results.

Key Points to Mention

  • Alignment with business goals and north star metric
  • Trade-offs between units sold, revenue, and blended score
  • Importance of momentum for discovery and freshness
  • Potential biases (e.g., popularity bias, rich-get-richer effect)
  • Need for A/B testing and data-driven validation
  • Scalability and real-time computation considerations for software engineers

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

Q3

Should the ranked list be global across all users viewing a category, or personalized per user? How does that choice affect your precompute strategy?

System DesignTechnical Trade-offs
Author's notes

Global vs personalized is a huge architectural fork.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the product requirements and user experience goals, then compare global vs. personalized ranking in terms of relevance, latency, and infrastructure cost. Explain how each choice impacts your precompute strategy, including data partitioning, update frequency, and storage/compute trade-offs, and propose a hybrid approach if appropriate.

Pro tip: Mention that personalization often requires per-user precomputation, which can explode storage and compute costs, so consider a two-stage approach: precompute global rankings and apply lightweight per-user re-ranking at query time. This shows you balance relevance with scalability.

1. Clarify Requirements

Ask about the product goals: Is personalization critical for user engagement? What are the latency and freshness requirements? This determines whether global or personalized ranking is needed.

2. Compare Trade-offs

Discuss global ranking (simpler, cheaper, but less relevant) vs. personalized ranking (more relevant, but complex and costly). Consider factors like user base size, item catalog size, and update frequency.

3. Design Precompute Strategy

For global: precompute one ranked list per category, update periodically. For personalized: precompute per-user lists, which may require distributed storage and incremental updates. Consider hybrid: precompute global lists and personalize on-the-fly.

4. Address Scalability

Explain how to handle scale: sharding by user or category, using approximate algorithms (e.g., ANN) for personalization, and caching strategies to reduce latency.

5. Recommend and Justify

Based on requirements, recommend an approach (e.g., start global, evolve to personalized) and justify with expected impact on metrics like CTR, latency, and cost.

Key Points to Mention

  • Latency vs. relevance trade-off: personalized ranking can improve relevance but may increase latency if computed on-the-fly.
  • Precompute cost: global lists are cheap to store and update; per-user lists require significant storage and compute, especially with large user bases.
  • Update frequency: global lists can be updated less frequently; personalized lists may need frequent updates to reflect user behavior.
  • Hybrid approach: precompute global rankings and apply per-user re-ranking using lightweight models at query time.
  • Data partitioning: shard precomputed data by category for global, or by user for personalized, to distribute load.
  • Fallback strategy: if personalized precompute fails, fall back to global rankings to ensure availability.

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

Q4

Walk through the write path: how do raw orders and clickstream events become model-ready features and eventually materialized forecasts?

System DesignData Modeling
Author's notes

Kafka for streaming, feature aggregation into a feature store, scheduled retraining jobs writing per-item per-day demand estimates to a key-value store.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Structure your answer as an end-to-end data pipeline, starting from raw ingestion and progressing through transformation, feature engineering, and model serving. Emphasize data contracts, idempotency, and how batch and streaming paths converge to produce consistent, materialized forecasts.

Pro tip: Highlight the importance of point-in-time correctness and backfill strategies to avoid training-serving skew, and mention how you'd monitor data quality and drift in production.

1. Ingestion & Raw Storage

Describe how raw orders and clickstream events are ingested (e.g., via Kafka, CDC, or batch uploads) and stored immutably in a data lake (e.g., S3, HDFS) with schema-on-read.

2. Cleaning & Transformation

Explain how raw data is cleaned, deduplicated, and enriched (e.g., joining orders with clickstream) using batch (Spark) or stream (Flink) processing to create conformed datasets.

3. Feature Engineering & Storage

Detail how features are computed (e.g., aggregations, windowed metrics) and stored in a feature store (e.g., Feast, Tecton) with versioning and point-in-time correctness for training and serving.

4. Model Training & Forecast Generation

Describe how features are used to train models (batch or online) and generate forecasts, ensuring reproducibility and tracking with ML metadata (e.g., MLflow).

5. Materialization & Serving

Explain how forecasts are materialized into a low-latency store (e.g., Redis, DynamoDB) and served via APIs, with monitoring for freshness, accuracy, and drift.

Key Points to Mention

  • Data contracts and schema evolution to handle changing event structures
  • Idempotency and exactly-once processing to avoid duplicates in orders and clickstream
  • Batch vs. streaming trade-offs and lambda/kappa architecture considerations
  • Feature store benefits: consistency, reuse, and point-in-time joins
  • Backfill and reprocessing strategies for model retraining
  • Monitoring and alerting for data quality, model drift, and forecast accuracy

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

Q5

How do you serve a (category, window) request under 500ms p95 given tens of millions of items and bursty traffic?

System DesignTechnical Trade-offs
Author's notes

The whole answer is precomputation.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the requirements: what does (category, window) mean, what is the expected query pattern, and what are the consistency and freshness needs? Then propose a layered architecture: precompute and cache the top results for each category-window combination, use a fast in-memory store like Redis for serving, and fall back to a distributed query engine with aggressive caching for less common combinations. Emphasize trade-offs between latency, cost, and freshness, and discuss how to handle bursty traffic with autoscaling and load shedding.

Pro tip: Quantify the scale: tens of millions of items means you cannot scan all items per request; you must pre-aggregate or index. Also, mention that p95 latency is about tail management, so you need to monitor and optimize the slowest 5% of requests, not just the average.

1. Clarify requirements and constraints

Ask about the definition of (category, window), expected QPS, data freshness, consistency requirements, and whether results can be approximate or must be exact.

2. Design data model and precomputation

Propose precomputing and storing top-N results for each category-window combination in a fast storage layer, updated periodically or incrementally.

3. Choose serving architecture

Use a multi-tier cache (e.g., CDN, Redis) with a fallback to a distributed query engine (e.g., Elasticsearch, Druid) for cache misses, ensuring sub-500ms p95.

4. Handle bursty traffic and scale

Implement autoscaling, request coalescing, and load shedding to maintain latency under sudden spikes, and use async processing for non-critical updates.

5. Discuss trade-offs and monitoring

Explain trade-offs between latency, cost, and freshness, and describe how to monitor p95 latency and iterate on bottlenecks.

Key Points to Mention

  • Precomputation and caching of top results per category-window to avoid scanning tens of millions of items per request.
  • Use of in-memory data stores (e.g., Redis) and CDN for low-latency serving.
  • Fallback to a distributed query engine (e.g., Elasticsearch, Druid) with query result caching for cache misses.
  • Autoscaling and load shedding to handle bursty traffic without violating p95 latency.
  • Trade-offs between data freshness (staleness) and latency, and how to choose update frequency.
  • Monitoring and optimizing tail latency (p95) rather than just average latency.

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

Q6

How do you handle cache invalidation and what's your fallback if the cache misses or a downstream service times out?

System DesignRoot Cause Analysis
Author's notes

TTL tied to forecast refresh cadence, version key bumped when taxonomy or forecasts update.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by outlining a cache invalidation strategy (e.g., TTL, write-through, event-driven) and then describe fallback mechanisms for cache misses and downstream timeouts, emphasizing resilience and data consistency. Use a concrete example to illustrate trade-offs and how you monitor and adjust the approach.

Pro tip: Mention that you always design for failure by combining multiple invalidation strategies and using circuit breakers with graceful degradation, and that you measure cache hit ratio and invalidation latency to continuously tune the system.

1. Explain cache invalidation strategies

Describe common techniques like TTL, write-through, write-behind, and event-based invalidation, and when to use each based on consistency and performance needs.

2. Detail fallback for cache misses

Explain how you handle a cache miss: fetch from the source of truth, possibly with request coalescing or a short-lived lock to prevent stampede, and then repopulate the cache.

3. Detail fallback for downstream timeouts

Describe using timeouts, retries with exponential backoff, circuit breakers, and fallback responses (e.g., stale cache, default values) to maintain availability.

4. Discuss trade-offs and monitoring

Highlight the balance between consistency, latency, and availability, and mention key metrics (hit ratio, invalidation lag, error rates) to monitor and alert on.

5. Provide a real-world example

Walk through a specific scenario (e.g., user profile cache) showing how you applied these strategies and what you learned.

Key Points to Mention

  • TTL and event-driven invalidation for balancing freshness and performance
  • Cache stampede prevention using locks or request coalescing
  • Circuit breaker pattern to avoid cascading failures
  • Graceful degradation with stale data or default responses
  • Monitoring cache hit ratio and invalidation latency
  • Idempotency and retry safety for downstream calls

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

Q7

How would you evaluate this system, both offline before launch and in production?

A/B Testing & ExperimentationProduct Analytics & Metrics
Author's notes

Two layers: forecast accuracy (WAPE or quantile loss via backtesting) and ranking quality (NDCG@K comparing predicted top-K to actual top-K in held-out windows).

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Structure your answer around a two-phase evaluation: offline before launch and online in production. For each phase, describe the metrics, methods, and tools you would use, emphasizing how offline validation informs and de-risks the production experiment.

Pro tip: Tie your evaluation to business outcomes and mention guardrail metrics to show you understand the balance between innovation and risk. Also, highlight the importance of pre-registering hypotheses and success criteria to avoid p-hacking.

1. Define Objectives and Hypotheses

Clearly state what the system aims to achieve and formulate testable hypotheses. Identify primary success metrics (e.g., conversion rate) and guardrail metrics (e.g., latency, error rate).

2. Offline Evaluation

Use historical data, simulations, or A/A tests to validate the system's logic and estimate potential impact. Employ techniques like cross-validation, backtesting, or replaying past traffic to measure performance without live users.

3. Design Production Experiment

Plan an A/B test or phased rollout with proper randomization, sample size calculation, and duration. Ensure metrics are instrumented correctly and consider network effects or interference.

4. Monitor and Analyze Production Results

Track metrics in real-time, check for novelty effects, and use statistical tests to determine significance. Segment results by user cohorts to uncover heterogeneous treatment effects.

5. Decide and Iterate

Based on results, decide whether to launch, iterate, or roll back. Document learnings and feed insights back into the product development cycle.

Key Points to Mention

  • A/B testing methodology and statistical significance
  • Guardrail metrics to monitor unintended consequences
  • Offline evaluation techniques like backtesting and simulation
  • Sample size and power analysis for production experiments
  • Segmentation and heterogeneous treatment effects
  • Business impact and alignment with company goals

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

Q8

An item goes viral at 2pm and starts selling fast. Your forecast refresh is nightly. How does your system surface it before the next batch run?

System DesignRoot Cause Analysis
Author's notes

This follow-up caught me.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Acknowledge the batch limitation and propose a real-time or streaming layer that detects anomalies (e.g., sudden spikes in sales velocity) and triggers an immediate forecast update. Emphasize a hybrid architecture: batch for accuracy, streaming for responsiveness, with clear fallbacks and monitoring.

Pro tip: Mention the trade-off between freshness and accuracy: real-time updates may be noisier, so use a confidence threshold or human-in-the-loop for high-impact changes. Also, highlight the importance of idempotency and exactly-once processing to avoid double-counting.

1. Detect the anomaly

Use a streaming pipeline (e.g., Kafka, Kinesis) to monitor sales events in real-time. Apply simple rules or ML models to detect a sudden spike in demand (e.g., sales rate > threshold).

2. Trigger an incremental forecast update

Upon detection, invoke a lightweight forecasting service that adjusts the current forecast based on the new data, without waiting for the nightly batch. This could be a simple exponential smoothing or a pre-trained model.

3. Propagate the update

Push the updated forecast to downstream systems (e.g., inventory, pricing) via a low-latency channel (e.g., pub/sub). Ensure consistency and idempotency to avoid race conditions.

4. Reconcile with batch

At the next nightly batch, reconcile the incremental updates with the full recomputation. Use the batch to correct any drift or errors from the real-time updates.

5. Monitor and alert

Set up monitoring for the real-time pipeline (latency, error rates) and alerting for anomalies. Also, track the impact of real-time updates on forecast accuracy to continuously improve.

Key Points to Mention

  • Streaming architecture (Kafka, Flink, Spark Streaming) for real-time event processing
  • Anomaly detection techniques (thresholds, statistical process control, ML)
  • Incremental forecasting vs. full recomputation
  • Idempotency and exactly-once semantics to avoid double-counting
  • Trade-off between latency and accuracy; confidence thresholds
  • Integration with existing batch system and reconciliation

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

Q9

A user requests a 90-day forecast window. Error compounds over time. How do you communicate uncertainty in the ranking, and would you cap the window?

Product Sense & IdeationTechnical Trade-offs
Author's notes

Honestly a question I wasn't fully prepared for.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Acknowledge the user's need for a 90-day forecast while explaining that uncertainty grows with time, so rankings should include confidence intervals or probabilistic scores. Propose capping the window at a point where forecast reliability drops below an acceptable threshold, and offer alternative solutions like rolling forecasts or scenario-based rankings.

Pro tip: Frame the cap as a product decision that balances user value with trust: 'We can provide a 90-day view, but we'll clearly mark the confidence level and recommend re-forecasting every 30 days to maintain accuracy.' This shows you prioritize long-term user trust over short-term feature completeness.

1. Acknowledge the trade-off

Validate the user's request for a 90-day window while explaining that error compounding is a fundamental limitation of time-series forecasting.

2. Quantify uncertainty

Describe how you would measure and communicate uncertainty, such as using prediction intervals, confidence scores, or error bars that widen over time.

3. Adjust ranking methodology

Explain how rankings would incorporate uncertainty, e.g., by ranking based on lower confidence bounds or by grouping items into confidence tiers.

4. Evaluate capping the window

Discuss criteria for capping (e.g., when error exceeds a threshold) and propose a cap with clear communication, or offer a degraded mode for longer horizons.

5. Propose alternatives and next steps

Suggest solutions like rolling forecasts, user-configurable windows, or scenario analysis, and outline how to validate the approach with user feedback.

Key Points to Mention

  • Error compounding in time-series forecasting and its impact on ranking reliability
  • Methods to quantify and visualize uncertainty (e.g., prediction intervals, confidence scores)
  • Ranking strategies that account for uncertainty (e.g., risk-adjusted ranking, confidence tiers)
  • Criteria for capping the forecast window (e.g., error threshold, user trust)
  • Alternative approaches like rolling forecasts or scenario-based planning
  • Communication strategies to set user expectations and maintain trust

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

Q10

If you had to incorporate an LLM or agent pipeline to improve cold-start accuracy using reviews and external trend signals, exactly where in the architecture does it live, and how do you keep it off the latency-critical path?

System DesignTechnical Trade-offs
Author's notes

Offline, full stop.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the cold-start problem and the existing architecture, then propose an offline or nearline pipeline that ingests reviews and trend signals to generate features or embeddings, which are stored in a feature store or cache. Emphasize that the LLM/agent runs asynchronously, and the online serving path only reads precomputed results, ensuring low latency.

Pro tip: Highlight the importance of a fallback mechanism: if the feature store is unavailable or stale, the system should gracefully degrade to a default model or heuristic, maintaining user experience.

1. Clarify the cold-start problem and constraints

Ask questions to understand what 'cold-start' means here (new users, new items, or both), what data is available, and what latency requirements exist. This ensures your solution is tailored.

2. Design the offline/nearline pipeline

Propose a pipeline that periodically (e.g., hourly/daily) processes reviews and external trend signals using an LLM or agent to extract features, embeddings, or predictions. Store outputs in a feature store or low-latency database.

3. Integrate with online serving

Explain how the online model or service reads precomputed features from the store at request time, keeping the LLM off the critical path. Use caching and precomputation to ensure sub-100ms latency.

4. Address freshness and fallback

Discuss how to handle stale features (e.g., TTL, versioning) and provide a fallback to a default model or heuristic if the feature store is unavailable, ensuring reliability.

5. Monitor and iterate

Mention the need for monitoring pipeline health, feature freshness, and model performance, with A/B testing to validate improvements in cold-start accuracy.

Key Points to Mention

  • Separation of offline and online concerns to keep LLM off latency-critical path
  • Use of a feature store (e.g., Feast, Tecton) or low-latency cache (Redis) for precomputed features
  • Asynchronous processing of reviews and trend signals via batch or stream processing (e.g., Spark, Kafka)
  • Fallback mechanisms and graceful degradation for high availability
  • Monitoring and A/B testing to measure impact on cold-start accuracy
  • Cost and scalability considerations of running LLMs periodically

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