← All work
Infrastructure · 2017–18

Service-Terminal Hardware RPC with NFC & Local Persistence

An airport self-service retail/kiosk platform

Overview

The hardware RPC service that backs the operator unloading/service terminal. It mixes Node.js and Python to drive NFC hardware, persist data locally, and expose device operations to the service app.

Why It Exists

Servicing a kiosk requires reading contactless cards/tags and recording actions reliably on a machine that may be offline. This service provides that hardware and persistence layer behind a local RPC/REST interface.

What We Built

A Node.js Restify service (rpc.js) alongside Python scripts for NFC handling (nfc.py, nfc2.py, cript.py) connected through zerorpc. Local state is kept in SQLite (sqlite3), with a .migration for schema setup, and supervisord keeps the processes running. A sofer (“driver”) module and assorted test/utility scripts round out the device layer.

Technologies & Approach

Node.js + Restify for the API, Python + ZeroRPC for NFC device control, SQLite for offline-capable local persistence, and Supervisord for process management. The polyglot design let each part use the best tooling, JS for the API/UI bridge, Python for hardware.

Outcome / Impact

Delivered the on-device backend for the service terminal: contactless reads, local record-keeping and supervised, restart-safe operation in the field.

Capabilities Demonstrated

  • Controlling NFC/contactless hardware from Python
  • Cross-language Node-to-Python RPC with ZeroRPC
  • Offline-capable local persistence with SQLite
  • Process supervision for reliable unattended operation
More work See all →