Welcome! This is a proctored, hands-on technical screening.
- Launch a GitHub Codespace on the
mainbranch (Code › Codespaces › Create codespace onmain). Every tool you need is pre-installed on launch. - Do all of your work in the Codespace, on the
mainbranch. You do not need to commit, push, or open a pull request — your work is reviewed live. - All you need to participate is repository access and a web browser.
- No AI assistants. Copilot, ChatGPT, Claude, Cursor, and similar tools are
not allowed. The Codespace's AI tooling is configured to decline while you
are on
main. - Web search is allowed — official documentation, Stack Overflow, and the like.
- Camera on and screen shared at all times for the duration of the session.
Now go get Bonkey and show your skills!
Surgically refactor live infrastructure: relocate a resource between Terraform modules without destroying or recreating a thing — state stays pristine. Start Exercise 1 →
Build it, run it, break into it: containerize a web app, debug it from the inside, and fix a misbehaving Docker Compose stack. Start Exercise 2 →
Two quick automation puzzles — calculate a hypotenuse and template a config file — in Bash, Python, or whatever language you reach for first. Start Exercise 3 →
Stand up a full observability stack, build CPU dashboards, wire up an alert, then stress the box and watch it fire. Start Exercise 4 →
Run HashiCorp Vault end to end: store a secret, craft a least-privilege policy, mint a scoped token, and read it back from Python. Start Exercise 5 →
Drive the core Terraform workflow and bend its templating engine — loop a list into a rendered file and make the plan do exactly what you intend. Start Exercise 6 →
Author a workflow that runs on a weekly schedule, guards on a file's presence, and fetches the latest matching release straight from the GitHub API. Start Exercise 7 →
Teach a workflow to edit the repo itself: update a tracked file from a workflow variable and prove the change. Start Exercise 8 →
Chain your jobs together: pass a value out of one job and consume it in the next, the way real pipelines hand off state. Start Exercise 9 →
Put it all together with Ansible: run a playbook, render a Dockerfile from a template, fix a compose stack, and loop a role over a list of images. Start Exercise 10 →
Deploy a Flask app to Kubernetes (Minikube), then diagnose and fix what keeps it from coming up — image pull policy, probes, Service wiring — and validate it in-cluster. Start Exercise 11 →
Read an unfamiliar Go reverse proxy and make it behave: diagnose three runtime defects from their symptoms — a routing 404, a data race, and a connection leak — then extend it with safe identity-header injection and proper request context propagation. Start Exercise 12 →
Package and deploy the bonkey app two ways: fix a broken Helm chart and install it with a values override, then complete a Kustomize overlay — and validate both. Start Exercise 13 →
An auth-proxy path like the Grid Migration Proxy: validate a JWT against the IdP's JWKS, hand the upstream a signed identity, and fix Envoy's ext_authz wiring so the path is secure end to end. Start Exercise 14 →
