Symptom-only tickets
Every other course names the topic before the exercise, which is the one thing a real ticket never does. Here the customer describes what they see, and deciding where to look is your job.
A customer writes to you. They tell you what they see, because that is all they know. Nobody tells you which layer broke.
Account: Northwind Freight (enterprise) Impact: all users, complete outage Started: shortly after the 09:14 release
Nobody on our team can load the customer dashboard. It spins for a while and then times out. It was working fine yesterday afternoon and we have not changed anything on our side. We have a board review at 14:00 and this is the data we present from. Please treat as urgent.
Your job
Working notes
The service is expected on http://127.0.0.1:8100. The customer workflow is
GET /customers. Runtime configuration lives in
labs/docker/_stack/compose.override.yaml. After editing it, run tse apply
to recreate the services, then tse check.
Real output, captured by running these commands against the broken system and checked against it on every build. It shows you what the evidence looks like. It cannot fix anything, and it will not tell you what is wrong.
Type a command you would reach for, or help.
Try docker inspect on the database. It comes back healthy, and the
customer still cannot load anything.
Learning to say exactly what that proves, and just as importantly what it does not, is the entire course.
Symptom-only tickets
Every other course names the topic before the exercise, which is the one thing a real ticket never does. Here the customer describes what they see, and deciding where to look is your job.
The grader shows its evidence
A check never just says pass or fail. It prints the assertion, the command it ran, and the raw output it evaluated, so being wrong teaches you something.
The writing is graded
Support is half communication. Customer updates and escalation notes are assessed work here, not an afterthought at the end of a lesson.
Built for difficult days
Uniform structure, a stated time cost on every exercise before you start, and a minimum viable day that still counts as progress.
Open the repository in a GitHub Codespace, wait for the container to build, and pick up your first ticket:
tse start docker/01Investigate with ordinary tools. When you think you have fixed it:
tse checkRunning locally instead needs Docker and Python 3.9 or newer. There is nothing
to build, and tse doctor tells you what is missing, grouped by which track
needs it.
Can I prove which resource actually ran out?
Can I prove which account the process is actually running as?
Can I prove the application started at all?
Can I prove the application can reach its database?
Can I prove why the database refused the connection?
Can I prove what the server is presenting, rather than that it is up?
Can I prove the server is refusing the name rather than the caller?
Can I prove how far the connection got before it failed?
Can I prove whether the workload was ever able to start?
Can I prove why a container never started, when it has produced no output?
Can I prove whether the application crashed or was killed?
Can I prove whether the Service is actually routing to any pods?
Can I prove why a running pod is being excluded from its Service?
Can I prove whether the caller is unknown, unauthenticated, or no longer permitted?
Can I prove this is a permissions failure rather than an authentication failure?
Can I prove the route the customer is calling still exists?
Can I prove the failure depends on request rate rather than on the data?
Can I prove the report is asking for what the customer thinks it asks for?
Can I prove which of the two numbers is the wrong one?
Can I prove how the database is finding the rows, not just how long it took?
Can I prove what this customer is seeing, rather than what everyone is seeing?
Can I prove where the identifier the customer holds stops?
Can I prove to the customer what happened without them having to trust me?
Can I hand this to an engineer without them needing to gather the evidence again?
Can I prove the customer's requests are reaching the application at all?
Can I prove the request was understood, rather than merely accepted?