Case 01 · 2023
E‑Jam A test bench for network switches, spread across many machines.
The problem
A switch is the box every packet in an office passes through, and a new one has to prove it can carry full traffic without dropping or delaying anything. The proof is a standard set of measurements at several frame sizes, each repeated many times. Run by hand, one full pass cost an engineer more than two hours, and the hand was the slow part.
What we built
E‑Jam spreads the work across as many machines as you give it. On each one, C++ generators fire traffic at the switch and verifiers check what comes back out, every process in its own container. Their statistics stream home over Apache Kafka, typed against a schema registry, and the client charts them while the test is still running.
My part
The repository calls it the Admin Client, and it is one path: something happens on a node and it has to reach a chart. I worked on all three pieces of it. Center Point, a Rust service on Actix Web, whose REST API drives every stream, device and process through explicit state machines. The Kafka layer that carries every node's statistics home, Avro-typed against a schema registry. And the Flutter client that configures a run and draws the results live.
What changed
- One full test pass, from an afternoon to a coffee break.
- 2 h+down to~10minCV · E‑Jam
- Tests that were run by hand now run themselves and grade the result.
- 5+casesCV · E‑Jam
- Commits, the largest share in a team of five.
- 256/ 548GitHub · contributors