In this module — 4 sections
  1. How to use it
  2. The one rule
  3. Index
  4. The process, in one table

Prep — Google Senior Software Engineer

Study material for the Senior Software Engineer, Localization on AI Answers process (the scope comes from the recruiter's prep email).

The scope is set by the prep email of 2 September 2026 — summarised in ../google-swe-prep-topicos.md.

Everything here is written in English on purpose. The interview is in English, and reading the material in the language you will speak builds the vocabulary passively, which is the cheapest kind of practice there is.

How to use it

  1. Open the path and start at the step you are on.
  2. Before solving any problem, read the interview protocol. Google assesses how you solve, not only the result — solving a problem in silence scores nothing.
  3. Record every problem you solve in progresso.md, with the time spent and what got you stuck. The pattern in your mistakes is more useful than the problem count.
  4. The code runs: cd code && python -m pytest test_all.py -q

The one rule

Always out loud, always in English. Solving 200 problems in silence prepares you worse than solving 60 while narrating. The interview is a conversation with code in it, not a written exam.

Index

Cross-cutting fundamentals

File Topic
00-percurso.md Start here. The dependency-ordered path, with the criterion for moving on at each step
91-protocolo-entrevista.md The 45-minute script, ready-made English, and Google Drawings
99-cartao-de-referencia.md Every surviving table, for the night before
90-padroes-de-problemas.md The ~15 patterns that cover most questions, plus problems by pattern

Modules by topic (in the order of the prep email)

File Topic Your level
01-complexidade.md Big O, amortised analysis 🟡 fair
02-ordenacao.md Quicksort, merge sort, heaps, binary search 🟡 fair
03-hash-tables.md Implementing one from scratch with arrays 🔴 gap
04-arvores.md Binary, n-ary, tries, AVL and red-black 🟡 / 🔴 (AVL, tries)
05-grafos.md Representations, BFS/DFS, topological sort, union-find 🟡 fair
05b-dijkstra-astar.md Dijkstra, A*, Bellman-Ford 🟡 / 🔴 (A*)
06-np-completude.md TSP, knapsack, spotting the disguise 🟡 fair
07-so-concorrencia.md HIGH WEIGHT — threads, locks, deadlock, scheduling 🔴 main gap
08-python-entrevista.md The Python details an interviewer pushes on 🟢 solid
09-recursao-inducao.md Recursion, backtracking, proof by induction 🟢 solid
10-matematica-discreta.md Combinatorics, probability, n-choose-k 🔴 gap
11-system-design.md The ten-minute sheet, for the night before 🔴 gap
11b-system-design-completo.md HIGH WEIGHT — the full manual (52 pages): NALSD, distributed fundamentals, reliability, AI/ML, ten worked cases 🔴 gap
12-googleyness-leadership.md STAR, and the signals being assessed 🔴 gap

Runnable code (code/)

Commented implementations of everything the email asks you to be able to write from scratch. Each file runs on its own with a demo; python3 code/test_all.py runs the 14 tests.

File What is in it
hashtable.py chaining and open addressing, with tombstones and resizing
avl.py AVL with the four rotations, an invariant checker, and the red-black comparison
trie.py a trie with autocomplete, wildcards, and delete with pruning
sorts.py merge, quicksort (random pivot, O(log n) stack), quickselect, counting
heap.py a heap from scratch, O(n) heapify, top-k, streaming median
graphs.py BFS/DFS, topological sort, Dijkstra, A*, Bellman-Ford
unionfind.py path compression plus union by rank
concorrencia.py demonstrates a race condition, a monitor, a deadlock, an RWLock, and the GIL measured

The study site (site/)

python3 tools/build_site.py --serve      # http://localhost:8000

A static site built from these same .md files: readable on a phone, light and dark themes, four text sizes, an accordion index with an intro per topic, and one page per problem pattern with a plan of attack for every problem in the bank.

Concept cards — spaced repetition for the theory

python3 harness/drill.py conceitos

170 cards covering every module, on the same SM-2 schedule as the problems. Answer out loud, in English, before revealing. Ten minutes a day, and it trains the two axes the problems do not touch.

Auditing the material

python3 harness/auditoria.py --breve

There are two harnesses, asking different questions.

python3 harness/pedagogia.py --breve    # can anyone learn from this?

pedagogia.py scores each module on the properties that predict retention: table density, prose ratio, whether it opens with a high-level map, whether it ends in retrieval, card coverage, and reading budget.

auditoria.py checks the whole body of material against the scope of the prep email and against Google's high-frequency patterns: coverage, structure, links, tests, stale PDFs — and how much you have actually trained. Details in harness/README.md.

PDFs (pdf/)

Every module has a PDF version in pdf/, for reading away from the editor.

./tools/make_pdf.sh                         # rebuild all of them
./tools/make_pdf.sh 07-so-concorrencia.md   # rebuild one

After editing a .md, run that so the PDF does not go stale.

The process, in one table

Round Interviews Duration
First 2× Programming, Data Structures & Algorithms 45 min each
Second 1× Programming, DS & Algorithms 45 min
1× SWE System Design 60 min
1× Googleyness & Leadership (non-technical) 45 min

First-round results arrive in one to two weeks, with no detailed feedback.

Only coding and DSA come up in the first round. System design and G&L only matter after you pass it. That is why the schedule prioritises DSA through week 8.