DBDelve
Dive deep into your data. A fast, native, multi-engine database client written in Rust. Free and open source, no telemetry.
翻译准备中
A private practice space built around your work: learn what you don't know, relearn what you know, and keep your skills sharp. Your own AI agent writes the questions; real tests grade them.
翻译准备中
正在加载完整 README。
查看完整 README ↗Skills need three kinds of care, and Whetstone gives all three:
Built around you. Your agent already knows you from the work you've done together: what you build, your stack and experience, where you're headed, and what it now writes for you. It drafts your profile from that, and from your GitHub activity if you agree, so there's nothing to fill in. You only check the draft. Every question is then written for you: a scenario from your world, at the step you're ready for, explained the way you learn.
Real problems from real interviews. The question bank is grounded in 2,771 interview reports from 397 companies, organised into 271 modules and 78 systems to build. The problems are practical: ledgers that must balance, retries that must not charge twice, rate limiters, caches and schedulers. There are no throwaway puzzles. That makes Whetstone good interview preparation too: filter by the companies you're aiming for, practice system design on a whiteboard, and ask your agent for a mock interview.
Your AI as reviewer and interviewer. The same agent that writes your questions also reviews your solutions like a staff engineer, nudges you one step at a time when you're stuck without giving the answer away, pairs with you in the editor's margin, and runs mock interviews.
Private by design. Whetstone runs on your machine. Your profile, your questions and your progress never leave it. There's no account and no telemetry, and it runs on the AI subscription you already have.
Three engineers ask their agents for the next question in the rate limiter module. Each one practices the same idea, a token bucket, in the world they work in:
| The learner | The question their agent writes |
|---|---|
| A payments engineer | Throttle the webhook sender. Card networks accept 50 calls a second per merchant. Queue the rest instead of dropping them, and never let one busy merchant starve the others. |
| A trading engineer | Stay under the exchange's order limit. The venue rejects a burst over 200 orders a second and bans you for a minute. Smooth a burst at the open without losing the order. |
| An LLM platform engineer | Share a token budget across model providers. Each provider allows a number of tokens a minute. Spend the budget across many users fairly, and fall back when one provider is full. |
You pick the world, too. When you press Prepare, choose your own work, a company you're preparing for, or a domain such as payments or trading. Before an interview at Uber, the same rate limiter question can come back set in Uber's world, built on the questions Uber candidates report.
[!NOTE] Whetstone has no AI of its own. Your agent (Claude Code, Codex, Cursor or another) writes the questions on the subscription you already pay for, and Whetstone checks and grades them on your machine.
| What your AI does for you | What you practice in Whetstone |
|---|---|
| Writes the code | Build questions: the problem comes first; the lesson opens after your first try |
| Explains code you didn't write | Predict questions: read working code and say what it does before you run it |
| Finds the bug | Fix questions: a bug report with symptoms, never the cause |
| Reviews its own pull request | Review questions: find the defects planted in plausible AI-written code |
| Writes the tests | Tests questions: your tests must catch hidden bugs you never see |
| Sketches the architecture | Design questions: draw it on a whiteboard, and your agent grades it against a rubric |
| Works through a whole task with you | AI-allowed rounds: a small codebase, solved in stages with the AI tool you use at work, like the interview rounds that allow one. Then, with the AI closed, you say what your code returns |
| Writes the one-liner | Terminal questions: text pipelines, jq and git rescues in a real shell, with no network and nothing else to break. Your script is replayed on copies of the scenario you never saw |
You need Docker and an AI coding agent that can run commands in a folder.
git clone https://github.com/boffti/whetstone && cd whetstone
cp .env.example .env
docker compose up -d --build # then open http://localhost:8000
claude # or codex, or open the folder in Cursor
Open http://localhost:8000 in a browser pane next to your agent, such as the built-in browser in Claude's desktop app, or in any browser tab. Then tell your agent: "Set up my Whetstone profile." If something doesn't work, run bin/whetstone doctor: it checks your setup and says how to fix each problem.
The exercises are Python 3.12 today. Building a question takes your agent a few minutes. To update Whetstone, run git pull && docker compose up -d --build.
flowchart LR
P["Your profile"]:::clay --> W["Your agent<br/>writes a question"]:::steel
W --> C["Whetstone<br/>checks it"]:::steel
C --> S["You solve it,<br/>tests grade it"]:::green
S --> R["It comes back<br/>days and weeks later"]:::clay
R --> W
classDef clay fill:#B8572F,stroke:#9C4526,color:#FFFFFF
classDef steel fill:#2F6497,stroke:#244C77,color:#FFFFFF
classDef green fill:#2E7A4D,stroke:#245F3C,color:#FFFFFF
以上为 README 的开头部分。其余内容请阅读原文。 查看完整 README ↗