You will build the software that runs on POS and embedded terminal devices the application a merchant touches when they take a payment. It has to work on constrained hardware, over unstable networks, with device peripherals, and it has to be certain whether a transaction went through.
If you have built Android applications that integrate hardware SDKs and survive a dropped connection mid-transaction, this is your role.
What you will do
Design, develop and maintain applications for supported terminal devices, using Android with Java and/or Kotlin.
Integrate terminal and device SDKs, hardware and peripherals.
Integrate with backend APIs, and implement reliable communication between terminal and remote systems.
Build secure device authentication and activation, and secure local storage.
Design for unstable or limited network conditions: timeouts, retries, recovery, and status verification where the outcome of an operation is uncertain.
Ensure repeated user actions and communication failures never cause duplicate processing.
Build comprehensive application and device logging, and support versioning, updates and release management.
Optimise for terminal hardware and resource constraints, and resolve device-integration and production issues.
Participate in testing, quality assurance and certification activities.
Requirements
Strong Android development, with strong Java and/or Kotlin.
Experience integrating hardware or device SDKs the part that is hard to learn on the job.
REST API integration; application lifecycle and state management; network communication and error handling.
Secure local-storage and application-security practice.
Git, debugging, and an understanding of software release and version management.