Telestion: ground station software in a few lines
How developer experience work kept one of the most complex software domains out of the developer's way.
The challenge
Ground station and mission control software is about as complex as domains get: live telemetry, many services, hardware at the other end and a mission at stake.
What I did
I led Telestion's developer experience end to end. The goal was simple to state: keep the domain's complexity out of the developer's way.
- API design, so that everyday tasks read as short, plain code
- Docs and quickstart, from the first steps to the reference
- Examples and samples developers can copy and build on
- Tooling and onboarding for new team members and users
- YouTube videos about the framework
The result
A service that watches telemetry and raises a warning reads like this:
const { messageBus } = await startService();
const telemetry = messageBus.subscribe('telemetry');
for await (let packet of telemetry) {
const data = telemetrySchema.parse(packet);
if (data.altitude < 10_000) {
sendWarning(`Low Altitude: ${data.altitude}`);
}
}Sample from telestion.wuespace.de.
A task as complex as ground station software can come down to a code sample of about five lines.
That's what good developer experience looks like from the outside: you read the code and understand it, without learning the whole framework first.
Credits
Telestion is a team effort by the Telestion team at WüSpace. I led the developer experience work.