Glean Software Engineer interview questions

15 Software Engineers have shared notes from their Glean interviews, with the questions they were asked in each round. That is 56% of the 27 Glean interview notes on Screna AI.

15 Software Engineer interview notes

Glean·Software Engineer·Technical Phone Screen

Jul 2026
Coding round at Glean for a software engineer role. The main problem was implementing the movement logic for 2048, which sounds straightforward until you actually have to get the merge semantics right under interview pressure.
  • Implement the core move logic for a 2048 board. Given an n x n grid, write a method that slides and merges tiles in a given direction (up, down, left, right) according to standard 2048 rules.
  • Follow-up: implement an isGameOver() check that returns true when no legal move remains, without necessarily simulating all four full moves.
  • How would you signal to the caller that the board actually changed after a move, so the game knows when to spawn a new tile?
  • How would you unit test the movement logic? What invariants always hold across any valid move?

“I started by trying to write separate logic for all four directions and immediately saw how messy that gets.”

View Post

Glean·Software Engineer·Technical Phone Screen

Jul 2026
Interviewed for a software engineer role at Glean and got hit with a BPE tokenizer implementation question. It's the kind of problem that looks like a coding exercise on the surface but really tests whether you understand how modern NLP tooling actually works under the hood. Took me a while to wrap my head around the non-overlapping pair counting logic.
  • Implement a Byte Pair Encoding tokenizer class with train, encode, and decode methods. The train method should learn merge rules from a string by repeatedly merging the most frequent adjacent token pair above a given threshold, using lexicographic order to break ties. Encode applies those learned rules in order, and decode reconstructs the original string from token ids.

“This one genuinely surprised me.”

View Post

Glean·Software Engineer·Technical Phone Screen

Jul 2026
Glean software engineering interview that leaned heavily on open-ended test design. The main question was a big ambiguous one about testing a leaf-counting system, which sounds quirky but is actually a pretty serious exercise in how you structure a testing strategy from scratch.
  • How would you design a testing strategy for a black-box system that takes a tree image or scan as input and outputs a leaf count? Walk through how you'd scope it, what test categories you'd use, how you'd define correctness, and what edge cases or non-functional properties you'd cover.
  • How would you build a ground-truth dataset at scale when no human can realistically count every leaf on a large tree?
  • The system is ML-based and gets retrained periodically. How do you build an automated regression suite that catches accuracy drops without producing false alarms every time the model updates?
  • How would you test that two nearly identical photos of the same tree produce similar leaf counts, and what would you do if they don't?
  • If the spec only guarantees accuracy within plus or minus ten percent, how do you design pass/fail criteria that are meaningful without being flaky?

“This one took me a minute to even figure out where to start.”

View Post

Glean·Software Engineer·Technical Phone Screen

Jul 2026
Glean SWE interview with a simulation-heavy coding problem. Two-part question that starts reasonable and then gets extended mid-interview, which I was not expecting.
  • You have m parallel indexers and a stream of documents, each with an arrival time and a processing duration. Each document has a preferred indexer based on its index mod m. If that indexer is busy, scan forward (wrapping around) and assign to the first available one. If none are free, drop the document. Implement this simulation and return the total documents processed and the indexer that handled the most.
  • Extend the simulation to find the top k indexers by documents processed, and compute what percentage of all documents (including dropped ones) those k indexers handled.

“The base assignment logic is fine, just modular arithmetic.”

View Post

Glean·Software Engineer·Technical Phone Screen

Jun 2026
Glean coding round, one question the whole time, and it was one of those problems that looks manageable until you actually have to implement it cleanly under pressure. The scheduling logic wasn't hard to reason about but the implementation details piled up fast.
  • Build a priority-based job scheduler that processes a stream of jobs with arrival times, durations, and priorities. The processor runs jobs to completion without preemption, picking the highest-priority available job at each step. Ties go to the job that arrived earliest. Return each job's start time, finish time, and wait time.

“I knew I needed a min-heap and figured out the key ordering pretty quickly (-priority, arrival_time).”

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·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·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·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·Software Engineer·Technical Phone Screen

May 2026
Glean SWE interview that included Word Search II as a follow-up problem. Not a lot of context to go on, but it sounds like the coding round leaned into harder graph/backtracking territory.
  • Solve Word Search II: given a board of characters and a list of words, find all words that can be formed by sequentially adjacent cells on the board.

“This was a follow-up, so I was already a bit drained.”

View Post