Each card is a prompt to paste into an AI assistant, with what a good answer contains so you can reject a bad one. An AI can be wrong; check its claims against the lesson.
Lesson 1: Level and tier
1 card.
Code, 16 lines
Act as a hiring-committee member levelling a software engineer in India. Use four rows: scope (what I own), ambiguity (how vague the problems I am handed are), influence (whose work changes because of me) and execution (what I deliver, and with how much help). My years of experience: [ ]. Current title and company type: [ ]. My last two years, one item per line, with numbers where I have them: [projects, on-call, designs, mentoring, migrations] 1. Put each item in one row and say which level it reads like: SDE-1, SDE-2, Senior or Staff. Quote my words as the evidence. 2. Give the level most rows support, and its neighbour. 3. Translate both to an Indian product company, a global firm's India centre and an IT services firm, saying these mappings are approximate and not any company's official map. 4. Name the row with the weakest evidence and what would move it. 5. Flag any place where my years, not my evidence, did the work. Do not quote salary figures.
A good answer contains: each item in a row with your words quoted; a level and a neighbour, not one verdict; cross-tier names hedged as approximate; the weakest row with a concrete action; and a line saying years are not evidence. Test it on Asha first (the years-against-scope table in lesson 1): a good answer reads SDE-2 with a case for Senior, influence the gap. If it calls her Senior for her years, or prints a pay band, do not trust it with yours.
Next stop: Lesson 2: Money, once, 2 min
Lesson 2: Money, once
1 card.
Code, 20 lines
Act as a careful payroll checker in India for tax year 2026-27 (Income-tax Act, 2025). Use only these rules unless I say otherwise. New regime: nil to 4 lakh, then 5, 10, 15, 20, 25% in 4-lakh steps to 24 lakh, 30% above; standard deduction 75,000; rebate up to 60,000 if taxable income is 12 lakh or less, marginal relief above; no HRA, PF or professional-tax deduction. Old regime (under 60): nil to 2.5 lakh, 5% to 5 lakh, 20% to 10 lakh, 30% above; standard deduction 50,000; deduct professional tax, my PF (cap: check the current rule) and the deductions I list; rebate up to 12,500 at 5 lakh or less. HRA exemption, old regime only: least of HRA, rent minus 10% of basic, and 50% of basic in Mumbai, Kolkata, Delhi, Chennai, Hyderabad, Pune, Ahmedabad or Bengaluru, else 40%. Cess 4% on tax in both regimes. My facts, per year: basic [ ], HRA [ ], special allowance [ ], other allowances [ ], employer PF [ ], gratuity provision [ ], my PF [ ], professional tax [ ], rent paid [ ], city [ ], other old-regime deductions with amounts [ ]. Show each step in a table, then my in-hand a year and a month under each regime. List every assumption you made, and say if any rule you used dates from before April 2026.
A good answer contains: gross as earnings only, with employer PF and the gratuity provision kept out of taxable salary; the new-regime steps slab by slab, with rebate or marginal relief and cess; all three HRA figures with the smallest picked; professional tax and your PF deducted in the old regime only; in-hand as gross minus your PF, professional tax and tax; and a list of assumptions. A weak answer uses four cities, gives HRA or PF deductions in the new regime, or offers one number with no steps.
Next stop: Lesson 3: Resume and calls, 2 min
Lesson 3: Resume and calls
3 cards.
Code, 7 lines
Play a sceptical senior interviewer at a product company in India. For each bullet below, ask me the first two follow-up questions you would ask, then tell me which number or fact in it I must be ready to defend and what evidence would satisfy you. Do not rewrite the bullets. Bullets: [paste your bullets, one per line]
A good answer contains: questions of the kinds "measured how, over what window?", "what was your part?" and "what alternative did you reject?"; a flag on every number with no stated basis; and a flag on every "led" or "we" that hides who did what. Judge yourself, not the model: for each follow-up, do you have a true answer you could give in two sentences?
Code, 7 lines
Play three people in turn: a recruiter who skims my top third for 20 seconds, a hiring manager who reads every bullet, and a referee-caller who rings my former manager. My target is an SDE-3 role. For each, ask me three questions and say what you would write about me. Focus on decisions, people beyond me, and the number a year later. Do not rewrite my bullets. My bullets: [paste]. My stints and gaps: [paste].
A good answer contains: nine questions, three notes in the three voices, a flag on every number with no stated basis, and one line for any bullet that shows a task but no decision. A partner can run the same card: read each voice aloud, time the recruiter to 20 seconds, and hand back the notes. As one of three mock loops, run this one, the recruiter-call card in lesson 4 and the bullet card above, in that order, on three different days.
Code, 12 lines
Act as a recruiter in India using a candidate database. Your client brief: [stack keywords], [experience range], [city], notice up to [N] days, salary [range] LPA. My profile fields: headline [ ]; experience [ ]; city [ ]; notice period [ ]; current CTC [ ]; expected CTC [ ]. 1. Would I appear in your search? Name each field that would remove me. If it depends on whether the salary filter reads current or expected CTC, say so; do not assume which. 2. Which words of my headline match your keywords, and which search words are missing from it? 3. If a field is true and still removes me, which other routes could reach this client?
A good answer contains: the field that filters you out, usually notice or salary; a plain statement that it cannot know whether the salary filter reads current or expected CTC; headline words matched and missing; referrals and direct messages as the routes round a true long notice; and no suggestion to change a field so it no longer matches your documents. If it tells you to shorten your notice in the field, discard the answer.
Next stop: Lesson 4: The recruiter call, 4 min
Lesson 4: The recruiter call
4 cards.
Code, 17 lines
You are a corporate recruiter at an Indian software company screening me for the level I name below. Ask me the nine questions and two probes below, one at a time, then the three pushes, and after each answer write the one line that the hiring manager would see on the form. Then tell me the one answer that would make you drop me. Questions: background, current CTC, expected pay, notice period, relocation and office days, other processes, reason for change, level, process and timeline. Probes: rate me 1 to 10 on my main skill, and why this company. Pushes: "we go up to 30 per cent on current", "we don't share bands", and "will you join if we match?". Once, say your budget is below my ask. My facts: [level I want, current CTC components, notice period per letter, location, other processes, reason for change, my ask, the job posting]. Keep my floor out of the facts. If I am SDE-3 or above, once push me one level down and see whether I ask for the higher loop.
A good answer contains: the questions in order, one form line per answer, and a flag on any answer that invents an offer, promises a date you cannot keep, gives a rating with no evidence, names a hike percentage, or puts a floor in writing. Check any figure it gives against your own payslip.
Code, 11 lines
Play a recruiter at an Indian product company screening me for an SDE-3 role. Run three loops. Loop 1: the nine questions in order, one form line per answer. Loop 2: push me toward SDE-2 once, ask about my 14-month stint [or my gap or layoff], and ask if I would stay for a counter-offer. Loop 3: say the band is mostly stock and ask me to compare it with my current pay, then say this opening's budget is below my ask. After each loop name the one answer that would make you drop me and the signal you wrote for the hiring manager. My facts: [fixed, variable, RSUs granted/vested/to vest, notice per letter, the stint or gap, the level I want and why].
A good answer contains: three loops, the senior pushes in the right loops, a form line each time, and a flag if I named a date I do not control or invented an offer. A partner can do the same job from this card: read the questions aloud, tick the six rubric lines on cheat sheet C1, and swap roles. Treat its numbers as unchecked until compared with your own papers.
Code, 13 lines
Play the hiring manager for the team I am interviewing with, in a 45-minute screen. You have my resume, pasted below. Ask me to walk you through [my main system] and stop me at three minutes. Then ask one follow-up per bullet: why I chose the design over the obvious alternative, how I de-risked the change, what broke, what a number in the bullet means, what I would change, and how I grew the people I name. Then ask how hands-on I am, a disagreement with a peer, a time the brief was unclear, and one push on ordering or duplicates in my system. After each answer, write the one line you would put in your notes and the follow-up a sceptical manager would ask next. At the end, name the bullet I defended worst. My resume: [paste, with phone and email removed].
A good answer contains: a cut-off at three minutes, one follow-up per bullet, a note line for each answer, and at least one question that sets two of your own bullets against each other (Meera's was dual writes against dual publishing). Hold your answers to Meera's bar in lesson 4: the disagreement and the unclear brief in two sentences each, ending in a measure or a trade, as in her people paragraph; the push on duplicates or ordering named where it lands and what catches it, as in her "What broke?" answer. If it accepts a number you cannot explain, it is being too kind; ask it to press harder.
Code, 10 lines
Play a search-firm partner calling me about a [Staff or Principal] seat at an Indian company you do not name at first. Open with "Tell me about yourself in a minute." Then answer my questions only as far as a real search partner would. Once, ask for my resume before naming the client; once, ask for my current manager as a reference; once, say the panel is calibrated at Senior. After each of my turns, write the line you would send the client. My facts: [my scope, the cross-team result in numbers, the people I grew, whether my search is confidential].
A good answer contains: a pitch at org scope with a number and who did the work; lesson 4's four search-call questions (client, approved headcount, reporting line, who decides) asked before any resume goes out; the resume held until the client is named; no current-manager reference before you resign; and the Senior calibration questioned, not accepted. Flag it if the AI names a real company or treats a seat as approved without saying who approved it.
Next stop: Lesson 5: Prep plan, 1 min
Lesson 5: Prep plan
1 card.
Code, 5 lines
I am preparing for a [Java 21] coding round. Give me one problem in the [pattern] family, without the solution, and wait for my attempt. When I send my code and a spoken explanation, score it on: the state I named, the transition, the complexity, and the one edge case I missed. Do not show the solution until I ask.
A good answer contains: the problem alone, with the solution held back; a score on each of the four named items; and the one edge case it saw in your text. It does not invent a retention percentage.
Next stop: Lesson 6: The coding round, 2 min
Lesson 6: The coding round
3 cards.
Paste these into an AI assistant with your own facts filled in; each says what a good answer contains. Do not accept a model's claim about how often a problem is asked at any company: no such number is in this lesson's sources.
Code, 8 lines
Here is a problem: [paste]. Do not solve it yet. List the cues in the wording that point to a pattern from this list: two pointers, sliding window, prefix sums, intervals, monotonic stack, BFS/DFS, topological sort, union-find, binary search on the answer, heaps (including two-heap median), backtracking, DP, tries, bit tricks, Dijkstra / 0-1 BFS, sweep line, Fenwick or segment tree, quickselect. Name the one you would try first, say what would make it fail, and say what changes if the input is too big for memory or arrives as a stream.
A good answer contains: the exact words it relied on, quoted from your problem; a second candidate pattern; and a condition under which the first would break (for example a sliding window fails when the window rule is not monotone). Reject any answer that names a pattern with no quoted cue.
Code, 4 lines
Here is my code: [paste]. Take the input [a small list you choose, four elements, one repeated]. Write a table of every variable after each loop iteration. Then say whether the output matches what the problem asks, and name the single line that would fail if the input were empty.
A good answer contains: a table with one row per iteration using your own variable names, and a concrete empty-input failure, not a generic warning. Check the table yourself on paper, because a model can write a table that is wrong.
Code, 3 lines
My solution is [paste code]. Derive its time and space complexity from the code, one loop at a time, in two sentences a reviewer could follow. Then say what a brute-force version would cost and what it wastes.
A good answer contains: each loop accounted for (what it counts over and whether the inner pointer restarts), the brute-force cost, and the waste named (repeated scanning, repeated sorting). Reject a bare "O(n log n)" with no derivation.
Next stop: Lesson 7: Machine coding and low-level design, 1 min
Lesson 7: Machine coding and low-level design
3 cards.
Next stop: Lesson 7: machine coding, 1 min
Lesson 7: machine coding
Code, 4 lines
I am practising a 90-minute machine-coding round on a parking lot. Here is my class list: [paste]. Ask me, one question at a time, which requirement would change each class. Do not write code. After my answers, tell me which class has two reasons to change.
A good answer contains: questions about pricing, vehicle sizes and concurrency; one class named by its reasons to change; no code.
Code, 3 lines
Here is my leave method: [paste]. Check whether it changes any state before every check has passed. List each line that mutates state and each check, in order.
A good answer contains: the checks and the mutations listed in order; any mutation that comes before a raise flagged; no rewrite of the method unless you ask.
Code, 3 lines
Give me a flat-rate, a weekend-rate and a monthly-pass pricing class that all satisfy this interface: [paste]. Then tell me whether any of them needs a change to ParkingLot.
A good answer contains: a flat-rate class that needs no edit to the lot. Against lesson 7's fee(vehicle, minutes), the finding that a weekend rate and a monthly pass do not fit, because the rule sees no entry time and no plate. The fix it names: fee takes the ticket, which carries the plate and the entry time, so park, its callers and every rule change (lesson 7, "Now add X").
Next stop: Lesson 8: System design, 1 min
Lesson 8: System design
3 cards.
Next stop: Lesson 8: system design, 1 min
Lesson 8: system design
Code, 5 lines
I am practising a 45-minute system design round at Senior level. Prompt: design a URL shortener. Here are my assumptions and my estimate: [paste]. Check my arithmetic, using 86,400 seconds in a day. For each number, tell me whether my "so" follows from it. Do not redesign the system.
A good answer contains: a recomputed rate for each of my numbers, any rounding error with its direction and size, a note on each line that has no consequence, and no new design.
Code, 5 lines
Play a strict interviewer for a news feed design. Ask me one question at a time about failure: the queue redelivers, the timeline cache is lost, a celebrity posts, a region is down. After each answer say whether I named the user-visible effect and a mitigation with a cost. Do not give me the answer first.
A good answer contains: one question per turn, a verdict on whether the effect and the mitigation were both stated, and a pointer to the building block that covers any gap, without writing the answer for me.
Code, 5 lines
I am designing a payments ledger. My design: [paste]. Find three places where a retry, a timeout or a partial failure could move money twice or lose it. For each, name the mechanism that prevents it (idempotency key, transaction, outbox, reversal) and tell me which assumption I have not stated.
A good answer contains: three concrete failure sequences in order, the prevention mechanism for each, the unstated assumption (for example that the bank supports an idempotency key, or the key lifetime versus my retry window), and no claim that any company does it this way.
Next stop: Lesson 9: The AI-allowed round, 1 min
Lesson 9: The AI-allowed round
1 card.
Code, 12 lines
Act as the interviewer in a 60-minute AI-assisted coding round. Write a three-file Java 21 service, about 150 lines, with one failing test and one hidden bug that compiles. Show only the code; under it, write the bug's cause in ROT13. Do not solve it. Ask me first to explain the failure. Then answer my requests as a typical assistant would, including one plausible mistake, such as a changed rounding rule. At minute 60, score me 0 to 2 on: hypothesis first, rule clarified, prompts a reader can follow, a separating test, the diff reviewed, ownership aloud, a close inside the time. Quote my words, and say whether I caught your mistake and how.
A good answer contains: a wait for your diagnosis before any help; the cause written in ROT13 under the code; a subtle planted mistake, such as a changed rounding rule, not a syntax error; a 0 to 2 score on each of the seven rubric lines with your words quoted; and no invented company rubric.
Next stop: Lesson 10: The behavioural round, 2 min
Lesson 10: The behavioural round
2 cards.
Code, 15 lines
You are an interviewer scoring a behavioural answer on four
levels: outstanding, solid, borderline, poor. Criteria:
1 headline and stakes in the first two sentences
2 "I" for decisions
3 one option rejected with its cost
4 a number with a baseline and how it was measured
5 one reflection I have acted on
6 whether the story holds up after two probes ("what exactly
did you do?" and "how did you know?")
Score each criterion with one line of evidence quoted from my
text, then say what would move it up one level.
My role and level: [paste]
My story: [paste]
A good answer contains: a quote from your text for every score; no invented facts; one named change per criterion. Reject any answer that rates a number you have not measured as outstanding, and any figure about "how often this scores" that names no source and date.
Code, 19 lines
Act as a behavioural interviewer at my level. Ask me one question at a time from this list and wait: [paste 5 questions: led without authority, lost a disagreement, a failure that cost, a half-finished project, why this company]. After each answer ask the next probe from this ladder, one only: what exactly did you do / what did the others do / where did the number come from / what did you reject / who disagreed / what happened six months on / what would you change / what if they had said no. Never help or praise during the answer. At the end, score each answer on the seven rows (headline, "I", option rejected, number, reflection, two probes, scope at my target level) as outstanding, solid, borderline or poor, quoting my words for each, and name the single row to fix first. Flag any number I did not say how I measured. My level: [Intern, SDE-1, SDE-2, SDE-3, Staff or Principal] (Staff and Principal: add "a bet that failed" (lesson 12) to the list). My stories: [paste]
A good answer contains: one probe at a time and no coaching until the end; a quote for every score; no invented facts about my work; the weakest row named per answer. Reject a scorecard that praises without a quote.
Next stop: Lesson 11: The hiring manager round, 2 min
Lesson 11: The hiring manager round
2 cards.
Code, 8 lines
Act as an engineering manager. Ask me one "how would you approach it" question about a project like [my last project, two lines, no confidential names]. Let me answer in seven parts, one at a time: clarify, success measure and limits, the shape with one rejected option, rollout with a rollback, risks and what I would measure, team and cost, my question back. After each part, say in one line what you would write in your notes. Do not invent facts about my employer or your own company.
A good answer contains: one part per turn; a note line that quotes my words; a push-back when I name a technology before the goal; no invented company process.
Code, 14 lines
Act as the hiring manager for a [level] seat on a team that owns [one line, no confidential names]. I will walk you through one project of mine in ten minutes. Then ask these probes one at a time, waiting for each answer: why not the option I rejected; how much of it was mine; what breaks at ten times the load; someone I grew, then "how do you know?"; a launch date one third shorter than I need. Push back once on a number I give. At the end, score me on seven boxes, each seen or not, quoting my words: seat, level and gap asked; two decisions with a rejected option and its cost; credit exact; a before-and-after number; the ten-times answer from today's load; the push-back conceded with a test; the doubt asked for. Do not invent facts about my employer.
A good answer contains: one probe per turn; a push-back on a real number I gave, not a generic one; a score per box with my quoted words as the evidence; "not seen" where I did not do it, with no partial credit.