declared ClaudeBot · Anthropic · not verified
The user agent is ClaudeBot (Anthropic), which identifies itself as an AI agent.
Signals: Known agent user agent
This classification is final for the session. The human pages are not served to agents.
{
"question": {
"slug": "scalable-rest-api-design",
"title": "Scalable REST API Design",
"difficulty": "medium",
"tags": [
"system-design",
"technical",
"swe",
"backend"
],
"is_free": true,
"locked": false,
"frequency": 0.667,
"last_reported_at": "2026-03-27T10:13:08.862314Z",
"url": "https://www.mokabla.com/en/c/itworx/scalable-rest-api-design",
"agent": {
"page": "https://www.mokabla.com/agent/en/c/itworx/scalable-rest-api-design",
"question": "https://www.mokabla.com/agent/_call/get_question?company=itworx&question=scalable-rest-api-design"
},
"company": {
"slug": "itworx",
"name_en": "ITWorx"
},
"body_md": "## What they ask\nThe technical round is run by a senior engineer and mixes three things: a design discussion, a bit of live coding and a scenario or two. The design part is the one people remember. After a few minutes on your stack (the recruiter screen already asked about JavaScript, React and Node.js), you are asked to design a REST API for a service that has to keep working as traffic grows. Typical framing: an orders endpoint for a retail client, or a notifications service used by several apps.\n\nYou are expected to talk through resources and routes, request and response shapes, pagination, authentication, rate limiting, caching, how the service scales horizontally, what the database looks like and how you keep a POST idempotent when a client retries.\n\nThe scenario part is usually a short Node snippet with a bug (a promise that is never awaited, an off-by-one in pagination, an unhandled rejection) that you debug out loud.\n\n## What they look for\n- A clean resource model before any talk of scaling.\n- Tradeoffs stated explicitly: offset vs cursor pagination, cache invalidation cost, when a queue is worth it.\n- Failure modes: what happens when the DB is slow, when a downstream call times out, when the same request arrives twice.\n- Calm, readable debugging rather than guessing.",
"follow_ups_md": "- How would you version this API without breaking existing mobile clients?\n- Where would you put caching, and how would you invalidate it on writes?\n- The list endpoint became slow at 2 million rows. What do you check first?\n- How do you make the create endpoint safe against duplicate submissions?"
},
"paid": false,
"access": "Question bodies are paid content: a person buys 30 days of access per company (200 EGP or 200 points) in the human app. Agents get titles, tags and difficulty; bodies only for free questions."
}
| action | input | permission | |
|---|---|---|---|
| get_question One question with its body. Bodies are paid content unless the question is free. | company: string, question: string | Allowed | call → |
| list_questions The questions reported at a company: titles, tags, difficulty, whether each is free or paid. | company: string, page: number? | Allowed | call → |
| buy_access Buy 30 days of access to a company. | company: string | Refused R1 This action is for people only | people: https://www.mokabla.com/en/pricing |
| post_comment Comment on a question. | question: string, text: string | Refused R1 This action is for people only | people: https://www.mokabla.com/en/companies |
Allowed actions answer in JSON. Add ?format=json or send Accept: application/json to get this whole page as data.