Get in touch
Want to work on something together?
Just want to chat? Hit me up.
Want to work on something together?
Just want to chat? Hit me up.
Self-ordering kiosks fail in public. A guest cannot check out. A line forms. Someone calls the account manager and the story arrives already decided: "your platform is down."
Sometimes that story is true. Often it is incomplete. The payment provider timed out. The store Wi‑Fi dropped mid-request. The device never reached our API. From the counter it all looks the same: the screen failed, so it must be us.
Without a shared trail across the fleet, we spent too long arguing with symptoms instead of reading a path.
We support thousands of kiosks across multiple countries. Volume is high. So is the number of moving parts: device software, our backends, third-party payment APIs, local networks that were never designed for this.
Clients report what they see. That is fair. Support and engineering inherit the urgency. The hard part is not caring. The hard part is answering a simple question with evidence:
Where did this request actually fail?
If you cannot answer that, every outage becomes your outage in the conversation, even when the fix lives somewhere else. You waste cycles on our services while the real break sits on a provider error or a dead uplink. You also lose trust, because "we're looking into it" without a timeline feels like dodge.
Before centralized logging, visibility meant stitching scraps:
That works for a handful of machines. It does not work for a fleet. Incidents stretched because the first hour was archaeology: find the kiosk, find the request, find whether we ever saw it, find what the provider returned.
Worse, client calls stayed emotional instead of factual. We could not calmly walk through a timeline. We could only promise to dig.
We built a centralized logging platform aimed at operational visibility across the kiosk fleet. The goal was not pretty charts for their own sake. The goal was a place where a failure could be followed from the device through our services and out to an external call, with enough correlation to stop guessing.
I am skipping the vendor tour on purpose. The useful part was the contract we enforced for ourselves:
Once that trail existed, incident response changed shape. We still had hard nights. We did not start those nights blind.
The shift clients felt was not "we never fail." It was "we can show what happened."
When a report came in, we could often separate cases that used to blur together:
That last mile matters. Diplomatic does not mean soft. It means precise. We still own our bugs completely. We also stop treating every failed checkout as proof that the platform is down.
With evidence, the conversation becomes collaborative: here is the path, here is what we will fix, here is what to check on connectivity or with the provider. Support stops improvising. Engineering stops thrashing the wrong layer.
Centralized visibility cut a lot of the scavenger hunt. On our side, incident response time dropped by roughly 40%. That number only means something next to the old workflow: less time locating logs, more time fixing or escalating the real break.
The quieter win was cultural. Logging stopped being "an eng tool" and started being infrastructure for client trust. If you sell reliability to restaurants and retailers, evidence is part of the product.
Log for the support conversation, not only for debuggers. If a PM cannot follow a failure path, you will rebuild the story from Slack every time.
Correlate across the edge. Device, API, and provider need a shared thread. Three perfect log piles with no join key are still a guess.
Separate "we failed" from "we never got the chance." Both need action. Only one should make you rewrite your service.
Stay honest in the write-up. Observability does not make you blameless. It makes blame accurate.
I still care about APIs, payments, and retries. This logging work taught me something adjacent: in a distributed product that sits on someone else's floor, clarity is a feature. Clients do not only need uptime. They need a partner who can show where the break actually was.