Amazon Leadership Principles for AI/ML Roles
Amazon's behavioral interviews are entirely structured around their 16 Leadership Principles (LPs). For AI/ML roles, interviewers expect answers that demonstrate both LP alignment and deep technical context. Each question below targets a specific LP with an AI/ML-flavored STAR answer. These patterns also apply to other companies with explicit values frameworks (Google's "Googleyness," Meta's cultural values).
Q1: Customer Obsession — Tell me about a time you made a model decision based on customer impact rather than technical metrics.
Situation: Our search autocomplete model had two versions in A/B testing. Version A had 3% higher character-level prediction accuracy. Version B had lower accuracy but completed full query suggestions that matched user intent better, even if the character-level match was imperfect.
Task: I needed to recommend which version to ship. The ML team favored Version A because it scored higher on our standard metrics. But I suspected the standard metrics did not capture what customers actually cared about.
Action: I went beyond the automated metrics and studied actual customer behavior. I analyzed 10,000 search sessions for each version, focusing on what happened AFTER autocomplete: Did users find what they were looking for? How many additional queries did they need? What was the task completion rate? Version A's higher character accuracy led users to accept suggestions that were literally accurate but contextually wrong ("python snake" when they meant "python programming"). Version B's suggestions were less character-precise but led to 22% higher search task completion because the suggestions matched intent. I also read 200 customer support tickets related to search to understand qualitative pain points. I presented my findings with the framework: "Accuracy measures what the model gets right. Customer success measures what the customer gets right. They are not the same thing."
Result: We shipped Version B. Search task completion improved by 22%, support tickets related to "search not working" dropped by 35%, and customer satisfaction scores for search increased by 18 points. I updated our evaluation framework to include downstream task completion as a standard metric alongside model accuracy. This became the team's default approach: always measure customer outcomes, not just model performance.
Q2: Ownership — Tell me about a time you took responsibility for an ML system outside your immediate scope.
Situation: I discovered that our recommendation system was serving stale predictions for 15% of users due to a caching bug in a microservice owned by another team. The bug was not in my team's code, and the other team was focused on a different priority and did not plan to fix it for 3 weeks.
Task: I could have filed a ticket and waited. But 15% of users getting stale recommendations meant approximately $180,000/month in lost revenue, and I felt ownership for the user experience even though the bug was not in my code.
Action: I first confirmed the impact by correlating the stale cache with conversion rate drops for affected users. Then I reached out to the other team's lead, shared my analysis, and offered to help fix it. When they could not prioritize it, I read through their caching service code (which I had never worked on before), identified the TTL configuration error, wrote a fix, and submitted a pull request with comprehensive tests. I did not just fix the bug — I also added a monitoring alert that would detect cache staleness in the future, so neither team would be blind to this failure mode again. I was careful to communicate transparently: I told the other team lead what I was doing before submitting the PR, framing it as "I want to help" not "I am doing your job."
Result: The fix was merged within 24 hours (the other team reviewed and approved it). Recommendation freshness improved immediately, and the revenue impact was recovered within a week. The monitoring alert I added caught 2 subsequent caching issues before they affected users. The other team's lead thanked me and said the cross-team fix set a good precedent for ownership culture.
Q3: Invent and Simplify — Tell me about a time you found a simpler solution to an ML problem that others were overcomplicating.
Situation: Our team spent 4 weeks building a complex deep learning pipeline for document classification — a multi-headed attention model with custom embeddings, data augmentation, and ensemble training. It was achieving 89% accuracy but required 3 GPUs for training and 1 GPU for inference, costing $6,000/month to run.
Task: I was asked to optimize the system for cost. But when I looked at the problem with fresh eyes, I questioned whether we needed this complexity at all.
Action: I started by analyzing the error patterns of the complex model. I discovered that 85% of documents could be classified correctly using just 3 keywords or phrases (e.g., documents containing "invoice" and "payment due" were always in the "billing" category). I built a simple rule-based classifier for these obvious cases and a lightweight TF-IDF + logistic regression model for the remaining 15% of ambiguous documents. Total development time: 2 days. I presented both approaches to the team with a side-by-side comparison: the simple approach achieved 87% accuracy (only 2% less than the deep learning model), ran on a single CPU ($50/month), had zero warm-up time, and was fully explainable. I was careful not to dismiss the deep learning work — I acknowledged that the team had built impressive technology and that the DL approach would be the right choice if accuracy requirements were higher or document types became more complex.
Result: We deployed the simple approach, reducing infrastructure costs by 99% ($6,000 to $50/month). The 2% accuracy difference was acceptable for the business use case. The team redeployed the GPUs to a project where deep learning was genuinely needed. I established a team norm: before building a complex ML solution, always benchmark against a simple baseline. If the simple approach gets you 90% of the way there, question whether the complexity is justified.
Q4: Bias for Action — Tell me about a time you made a quick decision in an ML context with limited data.
Situation: On Black Friday morning, our pricing recommendation model started suggesting prices 30–40% below cost for several popular product categories. The on-call engineer alerted me at 6 AM. We were losing money on every sale in those categories, and Black Friday traffic was 10x normal volume.
Task: I needed to decide whether to disable the ML pricing model (reverting to static prices that might not be competitive), try to debug and fix the model in real-time, or find a middle ground — all within minutes, not hours.
Action: I made three decisions in rapid succession. First (within 5 minutes): I disabled ML pricing for the 3 affected categories and reverted to the previous day's static prices as a floor. This was a reversible decision that stopped the bleeding immediately. Second (within 30 minutes): I did a quick root cause analysis and identified that a data pipeline had ingested competitor prices incorrectly overnight — a third-party price scraping API had returned prices in a different currency for those categories, making competitors appear 30–40% cheaper. Third (within 2 hours): I fixed the currency normalization bug, validated the corrected data, and re-enabled ML pricing for those categories with an additional guardrail: any suggested price below cost would automatically be flagged and capped at cost-plus-minimum-margin. Throughout, I communicated status updates every 30 minutes to the VP of Commerce and the on-call channel.
Result: Total exposure was limited to approximately $12,000 in below-cost sales during the 30-minute window before I disabled the model. Without quick action, the estimated loss would have been $200,000+ over Black Friday weekend. The price floor guardrail I added has prevented similar issues 4 times since then. The lesson: in production ML, bias for action means having reversible kill-switches ready and acting on imperfect information when the cost of waiting exceeds the cost of being wrong.
Q5: Dive Deep — Tell me about a time you dug into the details of an ML system to find a non-obvious issue.
Situation: Our fraud detection model's precision had been slowly declining over 3 months — from 92% to 84%. The team attributed it to "natural model drift" and planned to retrain on schedule. Something felt off to me because the decline was too steady and consistent to be random drift.
Task: I wanted to understand the root cause before retraining, because if we were just retraining on the same flawed pipeline, the problem would recur.
Action: I spent a full day diving deep into the data. I sliced the precision decline by every dimension available: transaction type, merchant category, customer segment, time of day, and device type. The decline was concentrated in mobile transactions from a specific payment processor. I then examined the raw feature values for these transactions and found the issue: 3 months ago, the payment processor had changed their transaction metadata format. A field we used for "transaction location" now contained a hashed value instead of a geographic code. Our feature engineering pipeline silently converted the hash to a numeric value (since it looked like a number), creating a meaningless feature that added noise. The model was not drifting — it was being fed garbage for one of its top-5 features for a specific transaction segment.
Result: After fixing the feature parsing and retraining, precision jumped back to 93% (exceeding the original 92% because the retrained model benefited from 3 months of additional data). The issue would never have been found by simply retraining on schedule. I added schema validation to all external data feeds that would alert us within 24 hours if any field's format changed. The broader lesson for the team: "model drift" is often a symptom, not a diagnosis. Always dive into the data before assuming the model is the problem.
Q6: Learn and Be Curious — Tell me about a time you applied a technique from outside your domain to solve an ML problem.
Situation: Our time-series forecasting model for server capacity planning was consistently underperforming during holiday periods and product launches — events that caused dramatic, non-linear spikes in traffic. Traditional ARIMA and Prophet models could not handle these regime changes.
Task: I needed to find a forecasting approach that could handle both normal steady-state patterns and sudden, extreme traffic spikes driven by external events.
Action: I had recently read a paper on change-point detection in epidemiology — how epidemiologists model disease outbreaks as regime changes in time series data. The parallel struck me: traffic spikes during product launches were essentially "outbreaks" in our infrastructure. I adapted the Bayesian change-point detection approach to our problem. I built a two-regime model: a standard forecasting model for steady-state traffic, combined with an "event-aware" model that activated when the system detected a regime change. The event model was trained on historical launch and holiday data, using features like marketing calendar events, email campaign schedules, and social media mention velocity as leading indicators. I also incorporated ideas from financial risk modeling (specifically, extreme value theory) to better estimate the magnitude of traffic spikes, since standard models consistently underestimated peak loads.
Result: The hybrid model reduced peak traffic prediction error from 45% to 12%, which translated to $300,000/year in saved over-provisioning costs (we could provision more precisely instead of adding massive buffers). The cross-domain approach became a talking point in our team's research presentations. I now make it a practice to read papers from adjacent fields (epidemiology, physics, economics) specifically looking for techniques that could transfer to our ML problems.
Q7: Earn Trust — Tell me about a time you had to admit a mistake on an ML project.
Situation: I had confidently presented to leadership that our new personalization model would improve conversion rates by 15–20%, based on offline evaluation. After 4 weeks of A/B testing, the actual improvement was only 3% — a meaningful gap between my projection and reality.
Task: I needed to communicate this underperformance honestly, explain why my projection was wrong, and maintain leadership's confidence in the ML team's ability to deliver value.
Action: I did not wait for someone to ask about the results. I proactively scheduled a meeting with the VP who had sponsored the project. I started by clearly stating the gap: "I projected 15–20% and we achieved 3%. I want to explain why I was wrong and what I have learned." My analysis revealed three factors: (1) Our offline dataset over-represented power users who respond most to personalization, inflating the expected lift, (2) I had not accounted for the "novelty effect" washout — initial improvement was 12% in week 1 but decayed as users habituated, and (3) Our A/B test had a selection bias because the model performed differently for logged-in vs. anonymous users, and our test population skewed toward anonymous users. I presented a corrected projection methodology and proposed specific fixes: stratified offline evaluation, longer A/B test durations to account for novelty decay, and separate models for logged-in and anonymous users. I also acknowledged the organizational lesson: "I should have presented my projection as a range with confidence intervals rather than a point estimate."
Result: The VP appreciated the transparency and the actionable analysis. She told me: "I trust you more now than if the project had simply hit the target, because I know you will give me honest assessments." The corrected methodology was adopted team-wide, and subsequent projections were within 10% of actual results. The separate logged-in/anonymous models eventually achieved a combined 11% conversion improvement — not 20%, but a more honest and sustainable gain.
Q8: Deliver Results — Tell me about an ML project where you had to overcome significant obstacles to deliver on time.
Situation: We committed to delivering a customer churn prediction system by end of Q3 for a critical retention campaign. Midway through the project, our primary data engineer left the company, our GPU cluster had a hardware failure that reduced training capacity by 70%, and the business team changed the churn definition (from "no purchase in 90 days" to "no engagement in 30 days"), invalidating our existing training data.
Task: I needed to deliver a working churn prediction system by the original deadline despite losing a team member, losing compute resources, and having to relabel our entire training dataset.
Action: I triaged ruthlessly. First, I re-scoped the project: instead of the planned deep learning model, I chose a gradient-boosted tree that trained faster and did not require GPUs. This eliminated the compute constraint entirely. Second, I automated the data relabeling: instead of manually re-annotating, I wrote a script that applied the new churn definition to our historical data programmatically (since the new definition was based on timestamps we already had). This turned a 2-week manual task into a 2-hour automated one. Third, I reallocated responsibilities: I took over the data pipeline work myself and focused my remaining ML engineer on model development and evaluation. I communicated the scope change to the business team: "We will deliver an accurate churn predictor on time. It will use a simpler model architecture. If it meets accuracy targets, we ship it. If not, the deep learning upgrade will follow in Q4." I also cut one planned feature (churn reason classification) and moved it to a fast-follow.
Result: We shipped on time. The gradient-boosted model achieved 84% precision on the new churn definition, exceeding the 80% threshold needed for the retention campaign. The campaign identified 12,000 at-risk customers and recovered an estimated $2.8M in annual revenue through targeted interventions. The deep learning upgrade in Q4 only improved precision by 3%, validating that the simpler model was the right call under the constraints.
Q9: Think Big — Tell me about a time you proposed an ambitious ML initiative that went beyond your team's current scope.
Situation: Our company had 6 different product teams, each building their own ML models independently. Each team had its own feature engineering code, training pipelines, and model serving infrastructure. I estimated that 60% of the ML code across teams was duplicated, and teams were repeatedly solving the same problems (feature computation, model deployment, A/B testing) from scratch.
Task: I wanted to propose a company-wide ML platform that would centralize shared infrastructure and enable teams to build models 3x faster, but this was far beyond my team's scope and would require significant organizational change.
Action: I built the case bottom-up. I interviewed ML leads from all 6 teams to catalog their infrastructure, identify shared pain points, and estimate time spent on undifferentiated work. I found that teams spent an average of 45% of their time on infrastructure and only 55% on actual modeling. I wrote a 6-page proposal (Amazon style) covering: the problem (duplicated effort, inconsistent quality), the vision (a shared ML platform with feature store, model registry, and automated deployment), the phased approach (start with the feature store since 4 teams independently asked for one), the investment required (2 dedicated platform engineers for 6 months), and the expected ROI (40% reduction in time-to-model across all teams). I presented to the VP of Engineering, but I also built grassroots support first by sharing the draft with ML leads from each team and incorporating their feedback. When I presented, 4 of 6 team leads had already endorsed the proposal.
Result: The VP approved the initiative. Phase 1 (shared feature store) was built in 4 months and immediately eliminated duplicate feature computation that was costing $40,000/month in redundant compute. Within a year, the platform reduced average model development time from 8 weeks to 3 weeks. I was promoted to ML platform lead. The key lesson: thinking big is not just about having a grand vision. It is about building a concrete, phased plan with clear ROI and grassroots support from the people who will use what you build.
Q10: Have Backbone; Disagree and Commit — Tell me about a time you disagreed with a decision but committed to it anyway.
Situation: Our VP of Product decided to launch a generative AI chatbot for customer service using GPT-4 via API, with minimal fine-tuning and no retrieval-augmented generation (RAG). I believed this was premature — the hallucination rate on our product-specific questions was 12%, which I considered unacceptable for customer-facing interactions.
Task: I needed to voice my technical concerns clearly, but if the decision stood, I needed to commit fully and make the launch as successful as possible rather than undermining it or saying "I told you so."
Action: I documented my concerns in a written memo (not a casual Slack message) with specific data: hallucination rates by question category, examples of incorrect responses that could damage customer trust, and the estimated cost of building RAG (3 additional weeks). I presented the memo in a team meeting and made my case clearly: "I believe we should add RAG before launching. Here is the data showing the risk." The VP acknowledged the concern but decided that the competitive pressure to launch an AI chatbot outweighed the risk, and that we would add RAG as a fast-follow. Once the decision was made, I committed fully. Instead of passive resistance, I focused on maximizing the quality of the non-RAG launch. I built the best possible system prompt with guardrails, added a confidence-based escalation to human agents for low-confidence responses, implemented real-time hallucination monitoring, and created a feedback loop where agents could flag incorrect AI responses for immediate correction.
Result: The chatbot launched on time. My guardrails reduced the effective hallucination rate from 12% to 4% (by routing uncertain queries to humans). Customer satisfaction was acceptable at 3.8/5, though below the human agent baseline of 4.3/5. The monitoring data I collected during the first 2 weeks provided compelling evidence for the RAG follow-up, which was prioritized immediately. After RAG was added, hallucination dropped below 1% and satisfaction rose to 4.1/5. The VP told me he appreciated that I made my case on data, accepted the decision gracefully, and then worked to make the launch succeed rather than waiting for it to fail.
Amazon LP Quick Reference for AI/ML
Here is how to connect each major LP to AI/ML contexts in your stories:
- Customer Obsession: Measure customer outcomes, not just model metrics. Start with the user problem, not the ML technique.
- Ownership: Own the full ML lifecycle. Fix problems even outside your team's code when they affect your system.
- Invent and Simplify: Always benchmark against simple baselines. The best solution is often the simplest one that works.
- Bias for Action: Have kill-switches for production ML. Act on incomplete information when cost of delay exceeds cost of being wrong.
- Dive Deep: "Model drift" is a symptom, not a diagnosis. Always investigate root causes in the data before retraining.
- Learn and Be Curious: Cross-pollinate from adjacent fields. Stay current in a rapidly evolving field.
- Earn Trust: Present honest projections with uncertainty ranges. Admit mistakes proactively with corrective actions.
- Deliver Results: Triage ruthlessly under constraints. Choose simpler approaches that ship over perfect approaches that do not.
- Think Big: Identify cross-team leverage. Build platforms, not just models.
- Have Backbone; Disagree and Commit: Voice concerns with data. When overruled, commit fully and work to make the decision succeed.
Lilly Tech Systems