kompanion.sh
kompanion.sh joins the question, lab, evaluation, and review in one observable interview session. I designed and built the product and its platform architecture around a simple contract: assess the infrastructure state a candidate produces, rather than a prescribed sequence of commands.
The problem at the seams
When the question, lab, scoring, and review live in separate tools, interviewers do setup work and candidates operate through abstractions that do not resemble a real system. The assessment loses context as it moves between those tools.
The product keeps that context together while giving each actor a distinct responsibility.
One assessment session
- InterviewerAssign
Challenge + private session
- CandidateRepair
Terminal + scoped environment
- EvaluatorValidate
State + acceptance criteria
- InterviewerReview
Outcome + preserved evidence
View the original product overview

One session, explicit boundaries
Each assessment is a short-lived session. A browser terminal connects through a session gateway to a scoped runtime. Provisioning creates the challenge resources; evaluation reads the resulting state; teardown removes the session.
Browser terminal
Session gateway
Scoped runtime
Identity · lifetime · routing
Candidate input stays in the least-trusted boundary. Identity, lifetime, and routing remain session-control responsibilities. Provisioning and evaluation use narrower control-plane privileges and do not depend on a candidate following an expected command path.
Evaluate the state
Different valid repairs should be able to reach the same accepted outcome. Kubernetes challenges inspect readiness, reachability, or configuration; Terraform challenges inspect managed state and resource attributes.
The scoring contract is the resulting infrastructure state, not the command history.
The trade-off is explicit lifecycle ownership. Isolated sessions need provisioning, bounded retries, evaluation, and cleanup. State-based grading moves work from comparing commands to defining observable acceptance criteria.
Follow one repair
The recorded public verification on 22 July 2026 followed challenge selection, private assignment, terminal work, state validation, and interviewer evidence. It described a Kubernetes workload moving from CrashLoopBackOff to Running, with acceptance criteria reported as met.

Design for the paths that fail
The happy path ends with evidence. The operational model also needs an answer for each interrupted transition:
- Partial provisioning: bound retries and remove partially created resources.
- Dropped terminal: preserve or deliberately end the session.
- Boundary crossing: deny access outside the session scope.
- Partial evaluation: retry or report an inconclusive result.
- Failed teardown: detect leaked resources and escalate cleanup.
Shared, long-lived labs were a poor fit for clean state and fault containment. Keystroke-diff grading would reject alternative valid repairs. Human-only review would make the outcome slower and less repeatable. Scoped sessions and state checks fit the behavior being assessed.
What shipped
The public workflow connects assignment, repair, validation, and review. The next useful evidence would concern the quality of those boundaries under failure, rather than another screenshot of the happy path.