Senior Software Engineer – Back End
Listed on 2026-07-10
-
Software Development
Backend Developer, Software Architect, Java Developer, Software Engineer
Role:
Senior Software Engineer – Back End
Hybrid Role, MUST BE BASED IN SAN DIEGO, CA
About TillsterTillster, headquartered in the USA, is the global leader in digital ordering and customer engagement solutions. For over a decade we have developed revolutionary self‑service, ordering and payments solutions – for mobile, tablet, online, kiosk, call center, and more – creating personalized interactions based on consumer preferences, language, and currency. Our platform is compatible with 15+ unique POS systems, representing over 90% coverage in multi‑unit restaurants.
We offer one platform; one scalable, enterprise class solution – to create world‑class digital engagement solutions.
Our mission and passion are one in the same:
Empower restaurants and consumers to engage and transact anywhere, anytime, and from any device - one consumer at a time, one order at a time, billions of times over. In doing so, together we are transforming e-commerce in restaurants and make the till grow for Tillster and our customers.
We are looking for a Senior Engineer (bordering on Architect) to own and evolve the payment‑terminal platform behind our kiosks: a layer of 40+ integrations spanning card‑present terminals, semi‑integrated and cloud processors, and cash automation. You will re‑architect this into a modular, pluggable SDK so internal teams and external/third‑party developers can build new integrations against a stable, versioned contract without forking the core, and you will stay hands‑on, implementing new integrations down to the wire‑level protocol.
WhatYou’ll Do (architecture and ownership)
- Own the payments domain end to end on the kiosk platform: authorize, capture, void, refund, reversal, settlement (EOD), and reconciliation.
- Re‑architect the platform into a pluggable payment SDK: design the plugin contract and lifecycle (discovery/registration, versioning and backward compatibility, capability negotiation, dependency isolation, per‑integration configuration and secrets) on top of the existing Pay Terminal SPI.
- Design a terminal abstraction that cleanly spans integrated vs. semi‑integrated vs. cloud/REST processors and cash devices, so callers code to one model regardless of transport or vendor.
- Build the integration test and certification harness (extending the current mock‑terminal approach) so a new or external integration can be validated, simulated, and regression‑tested before it touches real hardware.
- Set platform‑wide patterns for correctness in money movement: idempotency, transaction recovery and reversal, timeouts, heartbeat/health, concurrency, and reconciliation, in a system where double‑charges and dropped captures are unacceptable.
- Design for PCI‑DSS scope minimization: tokenization, P2PE, per‑processor TLS/mTLS and certificate/key handling, so cardholder data stays out of in‑scope services. Partner with security/QSA on audits.
- Drive architecture and design reviews, set technical direction for the integration layer, and mentor engineers building integrations.
- Implement new terminal integrations end to end, from byte‑level protocol (framing, TLV/BMP/APDU, BCD/LLVAR, checksums, ACK/NAK state machines) up to the high‑level Pay Terminal API.
- Work directly with serial (RS‑232 / USB‑serial via jssc) and USB (usb4java) transports: port handling, event‑driven reads, reconnection, and timing.
- Integrate high‑level and cloud processor APIs (REST/SOAP, webhooks, semi‑integrated terminal SDKs) with robust retry, polling, and reconciliation.
- Debug live hardware: protocol traces, terminal logs, packet captures, and vendor certification cycles.
- 6+ years back‑end engineering with strong Java (the platform is multi‑module Maven/Java on Spring) and solid OOP and distributed‑systems design.
- Demonstrated experience designing extensible / plugin / SPI‑based architectures (Service Loader, OSGi, Spring plugin models, or public SDKs consumed by other teams or third parties).
- Hands‑on low‑level device and protocol experience: serial and/or USB communication and binary protocol implementation (TLV, BCD, bitmaps, length‑prefixed fields, state…
(If this job is in fact in your jurisdiction, then you may be using a Proxy or VPN to access this site, and to progress further, you should change your connectivity to another mobile device or PC).