THE DEV BENCH
🧩

Config drills

The configuration languages that run modern infrastructure — JSON, YAML, TOML, JSON Schema, Terraform HCL, and Azure Bicep — learned the only way that sticks: by writing and fixing real config. Every drill is graded live in your browseragainst the actual parsers and validators (JSON.parse, js-yaml, Ajv, and purpose-built TOML/HCL/Bicep parsers). No AI, no autocomplete — type it until it's reflex.

Why this matters:Kubernetes manifests, CI pipelines, Docker Compose, and Terraform/Bicep templates are all config. These five languages underlie the vast majority of it — and the classic traps (a quoted number, the YAML “Norway problem,” a too-loose schema, single-vs-double quotes in HCL/Bicep) are exactly what break real deployments.

🧾

JSON

0/5 done

The lingua franca of APIs and config — strict syntax, no comments, no trailing commas.

📄

YAML

0/6 done

Kubernetes, CI, and Compose all speak YAML — indentation is structure, and the type traps are real.

📑

TOML

0/8 done

The config format behind pyproject.toml and Cargo.toml — INI-like [tables] with real types, quoted strings, and bare numbers/bools.

✔️

JSON Schema

0/13 done

Write the rules that validate config — the contract behind Kubernetes CRDs, API request validation, and IaC linting.

1. Require an object with a string fieldWrite a JSON Schema (draft-07) that describes an OBJECT with a property "name" that must be a string, and mark "name" as required.easy2. Two required fields with typesWrite a schema for an object with "name" (string) and "age" (integer), BOTH required.medium3. Constrain a number's rangeWrite a schema for an object with a required "port" that is an integer between 0 and 65535 (inclusive).medium4. An array of stringsWrite a schema for an object with a required "tags" property that is an array of strings with at least 1 item.medium5. Restrict to a set of values (enum)Write a schema for an object with a required "level" that must be exactly one of: "debug", "info", "warn", "error".hard6. Validate a nested objectWrite a schema for an object with a required "server" property that is ITSELF an object with a required "host" (string) and a required "port" (integer). Anything missing host or port inside server must be rejected.hard7. One of two shapes (oneOf)Write a schema for an object with a required "id" that may be EITHER a string OR an integer — but nothing else (no boolean, no object). Use oneOf.hard8. Match a string pattern (regex)Write a schema for an object with a required "sku" string that must match the pattern: lowercase letters, a hyphen, then digits — e.g. "web-01". Reject "Web01" and "web".hard9. Forbid unknown fields (additionalProperties)Write a strict schema: an object with a required "name" (string) and NO other properties allowed. A doc with an extra key like "extra" must be rejected.hard10. Reuse a definition with $refDefine an "address" shape ONCE and reuse it twice. Write a schema for an object with required "billing" and "shipping", where EACH is an object with a required "street" (string) and "city" (string). Put the address shape in "definitions" and point at it with "$ref": "#/definitions/address".hard11. Validate a string format (email)Write a schema for an object with a required "email" that is a string in valid EMAIL format, and an optional "website" that is a string in valid URI format. Reject a malformed email and a malformed URL.medium12. Conditional rules (if / then)Write a schema for a payment object with a required "method" that is either "card" or "cash". IF method is "card", THEN "cardNumber" (a string) must also be present. A cash payment needs no card number.hard13. Constrain every value of a free-form mapYou have a "weights" map with arbitrary keys, but EVERY value must be a number that is 0 or greater. Write a schema (for the map object itself) where any property is allowed by name, but each value must be a number ≥ 0. Reject a negative number and a string value.hard
🌍

HCL (Terraform)

0/6 done

The language Terraform speaks — blocks, attributes, and references that provision cloud infrastructure everywhere.

💪

Bicep (Azure)

0/5 done

Azure's own infrastructure-as-code language — params, resources, and objects that deploy to Azure Resource Manager.