Software Engineer (flutter / Android) – Centurion

Centurion, Gauteng, South Africa

Job Description

Role: Mobile Payments Engineer (Flutter / Android)
Level: Mid to Senior (3-8 years total software experience)
Location: Centurion, South Africa - hybrid (on-site with 2 remote days per week). Occasional travel to client/OEM sites.
A vacancy is available for a Software Engineer to build secure, reliable mobile payment experiences and device integrations.
Requirements:

  • B.Eng in Computer & Electronic or Electrical & Electronic Engineering (or closely related). M.Eng preferred.
  • 3+ years of professional software engineering experience in either:
  • Proven mobile experience in Flutter/Dart and/or Android (Kotlin/Java) with shipped apps/SDKs; OR
  • A strong track record of achievements delivering complex, high-reliability or protocol-heavy systems (SDKs, networking/cryptography, embedded, real-time), with the ability to ramp into mobile quickly.
  • Solid understanding of networking, threading/concurrency, state management, and data structures.
  • Evidence of learning velocity and engineering rigor (clear design docs, testing discipline, production ownership).
  • Systems thinking, precise communication, strong debugging discipline.
  • Writes clear design docs and RFCs; pragmatic about trade-offs.
  • Comfortable engaging with OEMs, banks, and certification bodies.
  • Work Rights: Must have the legal right to work in South Africa.
Nice-to-Have (highly valued):
  • Payments: ISO 8583, EMV L1/L2/L3, contactless, key exchange (DUKPT, MK/SK), HSM flows, ARQC/TC, PIN block formats, TLE.
  • Security/Compliance: PCI-DSS, SRED, white-box crypto, tamper handling, secure elements, code obfuscation/hardening.
  • Device Integration: PEDs, Android payment terminals, Bluetooth/USB/serial comms, firmware updates, SAMs.
  • AI/ML: on-device inference, anomaly detection, embeddings for receipt/item matching, log intelligence.
  • Tooling: Protobuf/TLV, Wireshark, ISO8583 simulators, Gradle, GitHub Actions, Jenkins, Docker.
  • Recognition: academic distinctions, research papers, patents, hackathon wins, or significant OSS contributions.
Tech Stack (current & target):
  • Flutter/Dart, Android (Kotlin/Java), JNI/NDK (optional)
  • Drift/SQLite, gRPC/HTTP/WebSockets
  • Secure storage (Android Keystore), cryptography libraries (BouncyCastle, Tink)
  • CI/CD: GitHub Actions, Jenkins, artifact registries, test farms / Firebase Test Lab
Core Responsibilities:
  • Design, develop and maintain Flutter packages and Android libraries (Kotlin/Java) used in POS apps.
  • Implement protocol layers: ISO 8583/JSON message builders/parsers, MAC/ARQC generation, TLV encoding/decoding, key management flows.
  • Integrate EMV contact/contactless flows with OEM device SDKs and kernels.
  • Own reliability: offline queuing, idempotency, recon, batch close, reversal and dispute artefacts.
  • Performance profiling, memory/network optimisation, and secure storage of sensitive artefacts.
  • Collaborate with security/compliance to meet PCI-DSS and follow secure SDLC.
  • Write high-quality tests (unit, integration, device, golden trace) and maintain CI/CD.
  • Produce developer documentation and assist with partner/OEM integrations.
IMPORTANT INFO: * Please take note that by responding to this application and providing your personal information, you confirm your express and informed consent for Let's Recruit to process your personal information to consider your application for this position and other positions available. All Personal Information which you provide to Let's Recruit will be used and/or retained only for the purposes for which it is collected.
  • Although we endeavour to provide feedback to all applicants, should you not hear from us within 14 days of applying, please consider your application unsuccessful. Any personal information collected as part of your application will be securely destroyed in accordance with South African legislation.
  • Successful applicants will be contacted within 14 days of applying.
  • Let's Recruit reserves the right to cancel or amend an advertised vacancy at any time.
To apply, send your detailed resume to

Beware of fraud agents! do not pay money to get a job

MNCJobs.co.za will not be responsible for any payment made to a third-party. All Terms of Use are applicable.


Related Jobs

Job Detail

  • Job Id
    JD1477380
  • Industry
    Not mentioned
  • Total Positions
    1
  • Job Type:
    Full Time
  • Salary:
    Not mentioned
  • Employment Status
    Permanent
  • Job Location
    Centurion, Gauteng, South Africa
  • Education
    Not mentioned