Amazon New Grad Applied Scientist Interview Experience — A Month of Recruiter Ghosting Before One Chaotic Phone Screen

Amazon·Applied Scientist·Apr 2026
Technical ScreenNew GradRejectedhard

3/13 - recruiter call scheduled, system email assigned recruiter 1
3/15 - rejected, me: ???
3/16 - recruiter call with recruiter 2, very nice person, said I could set up a mock interview with them, we scheduled a time, then they ghosted
3/17-4/13 - I kept providing my availability, kept hearing "does not meet team calendar," this kept repeating...
4/14 - recruiter 2 was out of office, recruiter call with recruiter 3, said they'd send detailed information, then also ghosted
4/28 - phone screen

The interviewer let me choose between "science" or "coding" - I picked science.

  • What's the assumption of linear regression? Why squared loss?
  • What is logistic regression? Why use log?
  • What is random forest? How is the set of features selected?
  • Explain Adam, pros and cons compared to SGD
  • Two neural nets, both two layers, one with just a few neurons and one with many neurons - which one is easier to get trapped in a local minimum?

For that last question the interviewer said that out of the roughly 100 people they've interviewed with it, only one or two got it right. I got it right and explained it, and then we happily moved on to a DP problem the interviewer made up themselves.

Implement bucket batching. Suppose we have K documents and G GPUs, find the optimal batching that minimizes the padding needed. Constraints: 0 <= K < G.

I'd run into this problem before, back in my PhD - I knew the idea was to bucket inputs of similar length into the same batch, but I didn't actually know the algorithm. The interviewer hinted at considering the G = 2 case and I still couldn't work it out. In the end they said honestly, if your coding is strong you could just brute force it.

Claude's solution:

def optimal_buckets(lengths, G):
    L = sorted(lengths)
    K = len(L)
    INF = float('inf')
    dp   = [[INF]*(G+1) for _ in range(K+1)]
    par  = [[0]*(G+1) for _ in range(K+1)]
    dp[0][0] = 0
    for i in range(1, K+1):
        for g in range(1, min(G, i)+1):
            # last batch is L[j..i-1], cost (i-j) * L[i-1]
            for j in range(g-1, i):
                c = dp[j][g-1] + (i - j) * L[i-1]
                if c < dp[i][g]:
                    dp[i][g] = c
                    par[i][g] = j
    # reconstruct
    buckets, i, g = [], K, G
    while g > 0:
        j = par[i][g]
        buckets.append(L[j:i])
        i, g = j, g-1
    return buckets[::-1], dp[K][G]

Overall the whole process felt really chaotic and the experience was bad. The recruiter had told me the phone screen would just be ML fundamentals, some light leadership, and LC easy-medium, so I wasn't expecting a DP problem - especially one the interviewer came up with on their own. Probably failed.

Published

Curated and edited by PracHub

Practice the questions from this interview

Discussion

Sign in to join the discussion. The author is notified of every comment.

Loading comments…

Interview at a glance

Company
Amazon
Role
Applied Scientist
Level
New Grad
Rounds
Technical Screen
Outcome
Rejected
Difficulty
hard
Interview date
Apr 2026
Questions from this interview
2 questions

Real Amazon interview experiences

First-hand reports from Amazon candidates — the rounds, the questions they were asked, and how it went.

All 154 Amazon interview experiences