← Back to Directory

Glean interview notes, page 2 of 3

Mid-sized

Most of these Glean write-ups come from Software Engineers (15), then Machine Learning Engineers (7) and Data Scientists (4). The most reported rounds are the technical phone screen (23), the system design round (2), the behavioral / leadership round (1) and the take-home assignment (1).

27 interview notes · updated Jul 2026

Glean·Software Engineer·Technical Phone Screen

May 2026
Glean SWE interview with a search/autocomplete coding problem that looked straightforward but had a memory constraint twist that forced me to think more carefully about the data structure tradeoffs.
  • You have a static list of suggestion objects, each with an ngram string, a department ID, and a score. Implement a function that takes a query string, a user's department, and a number k, and returns the top k suggestions where the query is a prefix of the ngram and the department matches, ranked by score descending. The catch: the suggestion list already takes up roughly half of available server memory, so your solution needs to be optimized for fast lookup without blowing memory.

“I jumped straight to trie and the interviewer immediately asked about memory.”

View Post

Glean·Machine Learning Engineer·Onsite - System Design / Architecture

May 2026
ML system design round at Glean for an MLE role. The whole interview was a single deep-dive on building an employee similarity/distance system, which sounds contained but sprawls fast once you get into privacy, scale, and the five different use cases that all want different things from the same score.
  • Design an employee-to-employee distance system for a large company. It should power people search, internal networking recommendations, collaboration discovery, org insights, and onboarding suggestions. Walk through what 'distance' means, what data you'd use, how you'd model it, how you'd serve it at scale, and how you'd handle privacy and fairness.
  • A new hire has almost no collaboration history. How does your system avoid returning a useless result where everyone looks equally far away on day one?
  • Two different viewers querying the same pair of employees should potentially see different distance scores based on what each viewer is authorized to know. How do you make that work without recomputing everything per viewer?
  • Same-team employees almost always dominate the top of recommendation lists. How would you detect this over-ranking and actually surface useful cross-functional connections?
  • Low-cardinality signals like 'two co-attended meetings' can reveal who met with whom even if you never expose raw calendar data. How do you prevent that kind of inference attack?

“I started by trying to collapse everything into one score and the interviewer pushed back almost immediately, which was fair.”

View Post

Glean·Software Engineer·Technical Phone Screen

May 2026
Glean software engineer interview with an algorithms problem involving two sorted arrays. Pretty clean problem statement, nothing too tricky on the surface, but the edge cases are where things get interesting.
  • You're given two sorted arrays and an integer k. Find the kth largest element across both arrays combined, counting duplicates separately.

“My first instinct was to just merge and sort, which works but feels lazy.”

View Post

Glean·Data Scientist·Technical Phone Screen

May 2026
SQL-heavy technical screen for a DS role at Glean. Two questions, both around user activity metrics, and the follow-ups pushed into territory I hadn't fully prepped for.
  • Write a SQL query to compute Daily Active Users (distinct logins per calendar day) over a date range, making sure every date in the range appears in the output even if there were zero logins that day. How would you generate a date spine in PostgreSQL if you don't have a calendar table?
  • Extend the DAU query to compute a rolling 30-day MAU for each calendar date, where MAU is defined as distinct users who logged in within the 30 days ending on and including that date. Then discuss: if the product sees little to no weekend usage, what problems does this L30D window create and what alternative definitions might work better?

“The zero-login days requirement is what trips people up here and I almost missed it.”

View Post

Glean·Software Engineer·Onsite - Behavioral / Leadership

May 2026
QA-focused interview at Glean for a software engineer role, centered almost entirely on how you handle testing under deadline pressure. The questions pushed hard on prioritization logic and communication, less on pure coding.
  • You're embedded in a product team days before a release, there's more testing work than time, and dev is still merging fixes. Walk me through how you'd decide what to test, sequence the work, and communicate risk to the team.
  • It's the night before release and you find a critical, reproducible bug in a core user flow. What do you do in the next hour?
  • How do you decide whether to recommend shipping with a known defect versus pushing the release date?
  • After a crunch release, what concrete changes would you propose so the team doesn't end up in the same situation next cycle?
  • How do you keep your prioritization honest when an engineer or PM is pressuring you to just sign off on a release?

“This was the main event and it ate up most of the interview.”

View Post

Glean·Machine Learning Engineer·Technical Phone Screen

May 2026
Coding round for an MLE role at Glean. The problem was building a rate-limited Wikipedia crawler with some prioritization logic baked in. AI coding tools were allowed, which was a nice change, though you still had to own and explain everything you wrote.
  • Design and implement a rate-limited Wikipedia crawler that starts from a given page, extracts outgoing links, and prioritizes crawling pages whose starting letter hasn't been visited yet. Once all 26 letters are covered, fall back to random selection from the frontier. Handle deduplication, configurable rate limits, and common failure cases.

“The alphabetical prioritization was the part I kept second-guessing myself on.”

View Post

Glean·Machine Learning Engineer·Take-home Assignment

May 2026
Glean gave me a 75-minute AI-assisted coding assignment to build a Wikipedia crawler with some specific prioritization logic. The tool choice felt off and I spent most of the session trying to decipher code I didn't fully trust.
  • Build a Wikipedia crawler that prioritizes pages whose title starts with a letter not yet visited. Once all 26 letters are covered, fall back to random crawling. Must respect a rate limit. You can use AI coding tools.

“The logic itself isn't that bad once you map it out.”

View Post

Glean·Data Scientist·Technical Phone Screen

Jun 2026
Interviewed for a data scientist role at Glean and got a probability/stats question that felt more like a grad school exam than a job interview. Nothing too wild but it made me realize how rusty I was on the covariance stuff.
  • Given two random variables X and Y with finite means and variances, how do you derive the expectation and variance of X + Y? Walk through the general formulas, explain where covariance fits in, and cover the independent case.

“I knew E[X+Y] = E[X] + E[Y] cold, linearity of expectation, no issues there.”

View Post

Glean·Software Engineer·Technical Phone Screen

Jun 2026
Interviewed at Glean for a Software Engineer role and got a Selenium coding question that looked straightforward until I started thinking through all the ways it could break on a JS-heavy page. More of a practical reliability exercise than a pure algorithms problem.
  • Write a Python function using Selenium WebDriver that extracts visible text from two specific elements on a JavaScript-rendered page. Explain your locator strategy, how you handle timing issues, and how you make the code resistant to flakiness.
  • The element's text updates asynchronously after it first appears. How do you wait for the final value instead of catching an intermediate one?
  • One of the elements is inside an iframe. What do you change in your approach?
  • How would you restructure this code into a Page Object pattern so locators aren't duplicated across tests?
  • The selector is correct but the test still fails roughly once every fifty runs. How do you diagnose and fix that?

“My first instinct was to just call find_element and grab .text, which the interviewer immediately pushed back on.”

View Post

Glean·Machine Learning Engineer·Onsite - System Design / Architecture

Jun 2026
Did an ML design round at Glean for an MLE role. One question, 60 minutes, focused on computing distances between employees. Interesting problem space but the session left me with a lot of unanswered questions about what they actually wanted.
  • Design a system that computes a distance or similarity score between any two employees in an organization.

“This is the kind of question that sounds deceptively scoped until you realize you need to define what 'distance' even means before writing a single line of pseudocode.”

View Post