Get In touch
Feel free to email me at hi@riteshr.com.np for counsuting work, and I'll get back to you.
A self-service kiosk application built for a vendor providing kiosk banking services across roughly 40% of the country's coverage, designed to be secure enough for public deployment while supporting advanced features like AI-powered cheque deposit — all from a platform flexible enough for individual clients to configure their own feature set.
The system was built to address a problem specific to public-facing financial infrastructure: a kiosk sitting in a public place is a physically exposed endpoint into a bank's systems, and it has to be secured, monitored, and made intelligent enough to handle real financial tasks — like reading a handwritten cheque — without a human present.
Kiosk banking exists to extend banking access into public spaces without the cost of a full branch — but that convenience comes with a security trade-off a branch doesn't have: the machine itself is physically exposed, unattended, and reachable by anyone. For a vendor deploying kiosks across a large share of the country, that risk wasn't isolated to one machine — it was multiplied across every unit in the field.
At the same time, the value of a kiosk depends on how much it can actually do without a teller present. A kiosk that can only dispense cash isn't much more useful than an ATM. Supporting something like cheque deposit — traditionally a task requiring a person to read and verify handwriting — meant the kiosk needed real intelligence built in, not just a scanner and a slot.
And because this was a platform serving multiple client banks rather than one institution, it also needed to be flexible enough that different clients could adopt different subsets of functionality, rather than every deployment being a fixed, one-size-fits-all build.
The core challenge wasn't building a kiosk interface — it was building a platform that could be trusted with financial transactions in an unsecured physical environment, extend that trust down to individual field devices via certificate-based authentication, run AI-based cheque processing reliably, and stay configurable across different clients and deployments.
This meant the system needed to:
In effect, the system needed to function less like a single kiosk application and more like a distributed, security-first platform — with intelligence and control concentrated at the switch, and the kiosk itself treated as an untrusted edge device until proven otherwise.
I was responsible for the architecture and development of the platform, with ownership spanning security, the cheque deposit AI pipeline, and the configurable feature architecture.
My work included:
The key architectural responsibility was making sure that no matter how exposed a kiosk was physically, the platform's actual trust and intelligence lived in places that couldn't be tampered with in the field — the application layer and the switch, not the kiosk itself.
A kiosk deployed in a public space can't be trusted the way an internal system can — anyone can access it physically. Designing mTLS authentication for this context meant treating every kiosk as a potentially hostile endpoint until it proved otherwise through certificate-based identity, and building the system so that even a compromised kiosk couldn't act with more authority than the backend explicitly granted it.
Managing certificates at the proxy layer is simpler in the short term, but it means trust logic lives somewhere the application itself doesn't control. Moving certificate configuration to the application level meant the system that actually needed to make trust decisions could manage them directly — new certificates could be configured without depending on a separate infrastructure layer being updated in sync, and trust logic stayed auditable within the application itself.
Cheque scanning hardware sitting physically inside the kiosk creates an obvious temptation to let the kiosk drive it directly — it's simpler. But that would have meant a compromised kiosk could operate the scanner independently of the backend. Routing scanner control through the switch instead meant the physical hardware only did what a trusted backend told it to do, even though it was sitting inside an untrusted physical device.
OCR on printed text is a solved problem; reliably extracting fields from handwritten cheques is not. Integrating a TrOCR transformer-based pipeline meant building a system that could handle the variability of real handwriting while still being conservative enough not to auto-accept a low-confidence or ambiguous read as a confirmed deposit — the validation layer around the AI extraction was as important as the extraction itself.
Serving multiple client banks off one platform meant resisting the pull toward building bespoke, one-off versions of the kiosk for each client. Designing cheque deposit and other advanced features as integratable components, rather than hard-coded into the core platform, meant new clients could adopt the features relevant to them without the platform splintering into divergent codebases per deployment.
This project changed how I think about designing systems for physically exposed environments. It's tempting to design a kiosk as if it were just another client application talking to a backend. In reality, a publicly deployed kiosk needs to be treated as an adversarial environment by default — every design decision, from where certificates live to who controls the scanner, has to assume the device itself could be tampered with.
The AI side of the project reinforced a related lesson: automating something like handwriting recognition isn't valuable on its own if the system blindly trusts the output. The real engineering work was in pairing the AI pipeline with validation rigorous enough to justify trusting it with money. Between the security model and the AI validation layer, this project shaped how I think about building systems that have to extend trust carefully outward into places — and inputs — that can't fully be controlled.
Feel free to email me at hi@riteshr.com.np for counsuting work, and I'll get back to you.