Sign in with the email your instructor gave you
Where: the/login page, from the link in your welcome emailYour instructor or admin creates your account. You receive a set-password email from the simulator; follow its link, choose a password, and you land back on the sign-in page. Sign in with that email and password.
- No email arrived? Check spam, then ask your instructor to resend it. They can do that from the admin dashboard.
- Forgot your password? Use Forgot password? on the sign-in page. A reset link goes to the same email.
- See "Create challenger account"? Only use it if your instructor told you to self-register. Otherwise sign in with the account they made, so your sessions are assigned to the right person.
Settings: your name and, optionally, your own keys
Where: Settings on your dashboardThree cards. Only the first is required.
| Card | What it does | Do you need it? |
|---|---|---|
| Display name | How instructors see you in the directory and in replays. | Yes. Set it once. |
| Groq API key | The personas and the grader run on a language model. The classroom has a shared key; if you add your own, your sessions use yours instead, so a busy class never slows you down. | Optional. Recommended if your instructor asks, or if replies feel slow. |
| GitHub token | Only used by build scenarios that read a repo you pushed. Interview scenarios never touch GitHub. | Not for interviews. Skip it unless you are later assigned a build scenario. |
| GitLab token | Appears only when your class uses its own GitLab (for example labs.gauntletai.com). Same job as the GitHub token, for projects hosted there. | Not for interviews. Only if a build scenario's starter lives on that GitLab. |
Getting a Groq key
- Open console.groq.com/keys and sign in (free account).
- Press Create API Key, give it a name such as flight-sim, and copy the key. It starts with
gsk_and is shown once. - Back in Settings, paste it into Groq API key and press Save key. The simulator checks it against Groq immediately, then stores it encrypted. It is never displayed again; Remove key deletes it.
Connecting GitHub (build scenarios on the hosted server)
Build scenarios on the hosted server work from a repo you fork and push to. Open the Workspace app: it shows the starter to fork, the clone commands, and a box for your own repo URL. Paste it once; Files then browses what you have pushed (press Refresh after each push) and grading reads your commits.
To edit in the browser instead of pushing every change: press Connect GitHub in Workspace. It shows a short code; enter it at github.com/login/device and approve. From then on the Files app edits your fork directly: every Save is a commit, and What changed shows your diff against the starter. Disconnect revokes it here (and you can revoke the app under GitHub → Settings → Applications). Pasting a token in Settings never unlocks editing; only Connect does, and the classroom's own token can never write to your repo.
Connecting GitLab (when the starter lives on your class's GitLab)
If the starter link points at your class's own GitLab, a second card appears in the Workspace app: Connect GitLab. It works the same way: a short code, approve it on the GitLab page that opens, and Files can then commit to your project. The link box accepts either a GitHub URL or a project URL on that GitLab, and the simulator works out which host to read. GitLab sign-ins expire after a couple of hours; the simulator renews them quietly in the background, and if that ever fails you just press Connect again.
Getting a GitLab token (read-only alternative)
- On your class's GitLab open your avatar → Preferences → Access tokens (the address is
/-/user_settings/personal_access_tokens). GitLab's own walkthrough is at Personal access tokens. - Create a token with the read_api scope. That is enough for browsing and grading; it cannot write to anything.
- Paste it into GitLab token in Settings and press Save token. Checked against the instance, encrypted, never shown again.
Getting a GitHub token (read-only alternative)
- Open github.com/settings/tokens. GitHub's own walkthrough is at Managing your personal access tokens.
- Create a token. No scopes or permissions are needed: the simulator only reads public repos, the token just raises your API rate limit. A 90-day expiry is fine.
- Paste it into GitHub token and press Save token. Same treatment as the Groq key: checked, encrypted, never shown again.
Open your session and meet the workstation
Where: Your sessions → OpenEach assigned session has an Open button. It takes you to the workstation: a desktop with a dock of apps along the bottom. The desktop's subtitle tells you which kind of scenario you are in. For an interview it reads: ask the interviewer clarifying questions, write DESIGN.md in Files, Submit it, then defend your decisions with the assessor.
DESIGN.md and TICKETS.md are already there, plus a brief in docs/.Read the brief in Team Chat, and notice how little it says
Where: Team Chat, the interviewer's conversationThe moment the session starts, the interviewer posts the problem. It is deliberately short. Each interview has its own interviewer (Sol in the parking-garage one below); the assessor is always Rowan. Here is the parking-garage brief:
Everything you need to design well is missing on purpose: how big, how fresh, what happens when sensors fail, who reads the numbers. The interviewer has those facts and will hand them over only when you ask the right question. That is the first thing you are graded on.
Ask clarifying questions until the constraints are on the table
Where: Team Chat, about the first 5 minutesThe interviewer answers with facts and never with architecture. Ask about scale, freshness, failure, and who consumes the output. Each good question unlocks a little more; the chat shows a signal line when that happens.
Questions that usually pay
- Scale. How many users, items, events per second? Peak versus average?
- Freshness and consistency. How stale can a read be? Does anyone need exactly-once?
- Failure. What breaks in the real world (sensors lie, networks drop, clients retry)?
- Consumers and reports. Who reads this, on what schedule, and what do they do with it?
- Non-goals. What is explicitly out of v1?
Write DESIGN.md in the Files editor
Where: Files. Save with Ctrl+S (⌘+S on a Mac); it also autosavesOpen Files. DESIGN.md opens automatically in an editor with syntax highlighting. It already carries the section headings the assessor and grader expect; fill them in, in your own words, from the facts you extracted.
| Section | What goes there |
|---|---|
| 1. Problem | The brief restated in your words, with the constraints you uncovered. |
| 2. Clarifying questions | What you asked and the answers you are designing against. |
| 3. Requirements | Functional, non-functional (scale, latency, consistency, availability), and non-goals for v1. |
| 4. Capacity sketch | Rough numbers: QPS, storage, payload size. Show the arithmetic. |
| 5. API | Endpoints or messages, with shapes. |
| 6. High-level architecture | Components and how a request flows. When you submit, the simulator draws a diagram of your design from the document (it never adds components you did not name). |
| 7. Data model | Tables, keys, indexes, retention. |
| 8. Key decisions and trade-offs | Each decision, the alternative you rejected, and why. This is what the assessor will probe. |
- Preview opens a live rendering beside the editor that updates as you type: headings, tables, code, and any
```mermaidblock drawn as a real diagram, so you can sketch your own architecture picture. It opens by itself forDESIGN.mdon a wide screen; Hide preview gives the editor the full width. - A gold dot on the tab means unsaved changes. Save writes to your workspace; the server also keeps a copy, so a refresh or a dropped connection does not lose your work.
- What changed in the Files toolbar shows everything you have altered since the starter as a diff, one block per file, so you can check your work before you submit.
- Editor shortcuts: Ctrl+F find, Ctrl+H replace, Ctrl+B / I bold and italic, Ctrl+K a link (⌘ on a Mac). Insert diagram drops a starter mermaid block, the status bar counts your words, and the divider between editor and preview drags.
- The status line at the bottom confirms each save and shows the workspace revision.
Optional: write implementation tickets for extra credit
Where:TICKETS.md in Files, or the Tickets boardThe Tickets board is seeded with one ask: write tickets so an engineer who has only the tickets, not DESIGN.md, could implement this system. If you have time after the design, do it in TICKETS.md or as tickets on the board. Each ticket needs context, the interface or data shape, and acceptance criteria.
Extra credit is scored separately and can lift your total by up to 15 percentage points. It never lowers it. Whoever grades chooses whether to include it with the tickets extra credit toggle.
Submit DESIGN.md
Where: Submit → Submit DESIGN.mdThe Submit app has one button for interview scenarios. It reads DESIGN.md (and TICKETS.md if you wrote one) from your workspace as they are right now, records the submission, and draws a diagram of your architecture. The drawing appears at the top of Team Chat under Design diagram, and your instructor sees the same picture in their replay. Save first if the tab still shows a gold dot.
- You can submit again after edits; the latest submission is the one the assessor and grader read.
- "DESIGN.md is empty" means the file has no content yet. Write it in Files first.
- Telling the interviewer "I'm done" in chat is fine, but it does not submit. Only the Submit button does.
The moment the submission lands, the assessor joins Team Chat.
Defend your decisions with the assessor
Where: Team Chat, the assessor's conversation (unread badge)The assessor has read your document and the diagram drawn from it, and asks one probing question at a time about something you wrote. They do not propose a better design, teach the textbook answer, or reveal constraints you never asked about. They are checking two things: that you made the decision, and that you can defend it.
- 🔈 Voice in the Team Chat header reads each reply aloud with your browser's own voice, so an interview can feel spoken; it is off by default and remembers your choice.
- Answer from your document. "In section 4 I estimated …" is a strong opening.
- A defensible alternative is fine. "I chose X over Y because Z" beats guessing what they want.
- If you realise something is wrong, say so and say what you would change. That is graded as communication, not as failure.
- Vague answers get "point me at where your document covers that." Have it open in Files while you talk.
- Every probe you answer counts: the grader is told how many of the assessor's questions you answered and how long your answers ran, under the communication criterion. Do not leave a probe hanging.
Grade the run and read the feedback
Where: Team Chat → Grade run (top right)Grading reads the whole transcript (your questions and the defense), your submitted design, the diagram, and the tickets if the toggle is on. It scores four criteria and cites evidence for each. The last grade is kept, so it is still there when you reopen the session; your instructor can regrade after reviewing the replay.
| Criterion | Weight | What it measures |
|---|---|---|
| Discovery | 2.0 | Did your questions extract the real constraints without being fed the answer? |
| Scoping | 2.0 | Detail, correctness, and whether a staff engineer could understand the document. |
| Stakeholders | 1.0 | Did you treat it as a real system: API, data, scale, consistency, failure, a v1 cut? |
| Communication | 2.0 | Do the assessment answers show you wrote and can defend this design? |
| Tickets | extra | Could an engineer implement from the tickets alone? Up to +15 points on top. |
The engineer level your instructor set (intern through distinguished) changes how demanding the personas are and how the criteria are weighted. A senior-level session expects a v1 cut and explicit trade-offs; an intern-level one rewards asking and clear thinking.
When something looks wrong
Quick fixes before you ask for helpTeam Chat shows "Disconnected" or replies never arrive
Wait a moment: the chat reconnects by itself (it says connection lost — reconnecting…, then reconnected) and replays anything you missed. If it does not come back within a minute, refresh the page. If replies are slow but arriving, the classroom key is busy; adding your own Groq key in Settings gives your session its own lane.
The assessor will not talk to me
They join only after a submission. Open Submit and press Submit DESIGN.md; if it reports the file is empty, write it in Files first.
Save failed in Files
Your text is still in the editor. Check the status line for the reason (a very large file is refused, and paths inside .git are managed for you), then save again. The tab keeps its gold dot until a save succeeds.
Files says "No workspace yet"
That message belongs to build scenarios. For an interview the workspace appears on its own; if it does not, refresh and open Files again. If it still fails, the server could not create your folder and your instructor needs to look at it.
"Your sign-in has expired"
Sign in again from /login; you return to the same session. Nothing you saved is lost.