Graham Brown

Out-of-the-box thinker / Problem solver /
Open source fanatic / Tech geek

About Me

I am a fullstack software developer with experience in multiple technologies and code languages. I have architected and developed apps for the web as well as mobile and have worked on both the frontend and backend of the various systems. The majority of my experience is in: engineering on backend systems written in Java and Kotlin using the SpringBoot framework; web frontends using Angular or React; and mobile app development primarily on Android. I enjoy being involved in solution design from the initial stages of understanding the business problem to engineering the software and getting the solution running on local servers or cloud platforms like AWS or Azure. A couple of my favourite projects include building a dialler that was fully integrated into an insurance policy platform (which I was also involved in building) at Different Life. A sales agent in the call centre could retrieve a lead and phone them with a simple button click. Besides the call being recorded, events from the sales process were stored and could be used to jump to that spot in the call recording when playing back the recording. Recently at Stitch Money I implemented a payment application in a multi-module Android project that runs on different vendor terminals. The application operates in a standalone or integrated mode. In standalone a merchant captures the sale amount and the customer presents their card. Alternatively a merchant’s POS (point of sale) system can be integrated to initiate the payment using an SDK when the app is on the device or via Rest APIs when external. This solution was developed and certified according to international payment standards (EMV L3 and PCI P2PE).


Experience

  Oct 2024 - Dec 2025
Software Engineer, Stitch Money

Implementing Android multi-module project for multiple payment terminals brands in a PCI P2PE solution.

  • Stitch Money acquired ExiPay
  • Design & implement a PCI P2PE solution for retail clients
  • Android App re-write using modern Android architectures, Jetpack Compose & Daggar Hilt
  • Design & implement a transaction initiation system with cloud push technologies
  • Implementing alternate (not card) payment methods for merchants
  Jun 2022 - Oct 2024
Senior Developer & Solution Architect, ExiPay Technologies

Design, build and maintain a multi-tenant PCI certified payment switching platform running on Hashicorp Nomad for a cloud agnostic solution.

  • Implementing cryptography for secure payments using Thales HSM & later adding key management and transactions processing for SoftPOS on Android & iPhone
  • Services built using Spring & RabbitMQ, data stored in MySQL & MongoDB, deployed with Terraform and used Consul & Vault for service discovery & config
  • Acquirer integrations using ISO-8583 & ISO-20022
  • Built an annotation processing framework for serializing and deserializing data to objects for ISO-8583 & HSM integration
  • PCI Compliance in building software & providing evidence for audits
  • Created Terraform to run the platform on AWS
  Jun 2021 - May 2022
Senior Developer & Solution Architect, ono//connect

Financial transaction switching and integrations from merchant terminals to banks.

  • Creating and maintaining Rest APIs using Finatra (scala) and Spring (java)
  • Continuous Deployment using GitLab CI & Hashicorp Terraform
  • Running services on Microsoft Azure Cloud, with Hashicorp Nomad & Consul
  • Integrations using ISO-8583 specification
  Mar 2014 - May 2021
Developer & IT Operations, Different Life

Implement open source technologies and platforms to build an online life insurance system facilitated by a call centre.

  • Website development using open source frameworks (most notably Laravel & Angular)
  • DevOps Continuous Deployment with Jenkins, Ansible and AWS services
  • Create integrated dialer system using Asterisk and websockets
  • (micro)services in Java using a few Spring projects (Boot, Config & Batch)
  • Performing or facilitating internal and external cyber security audits and apply fixes
  • Continuous deployment environment for BI using VBScript and the QlikView API
  Oct 2013 - Feb 2014
BI Developer, ABSA

Contracting position where I helped apply software development best practices to aid the growth and reputability of the team.

  • Setup code repository and document the development lifecycle for the team
  • Developed a KPI reporting framework to ingest data across the different business units
  • Built an extract engine to get data from SharePoint into QlikView
  Oct 2012 - Aug 2013
Developer, Ledula

One of the 4 co-founders, I was everything from developer to barista - my responsibility was implementing the idea: finding service providers your friends trust.

  • Full stack development using SpringRoo and MySQL
  • Integrate with Facebook for login and social graph
  • Setup system on AWS with continuous deployment using Jenkins
  • Every good developer needs a good cup of coffee and therefore by default became the barista too
  Apr 2008 - Aug 2012
Senior Management and IT Architect, healthbridge

Architecting systems for workflow integration and real-time data switching to aid proficient healthcare practice management and being an integral part of MANCO which involved strategic planning and driving company values.

  • Planning and designing system interactions
  • Database, BPM and SOA design
  • TIBCO AMX SOA component development
  • Presenting at monthly company meetings
  Oct 2003 - Mar 2008
Developer, healthbridge

Creating a framework to handle the complexities of multi-threading, configuration and message flow for real-time switching and implementing a customers portal. Found a way to minimise use of server resources by combining multiple applications into one but still allowing the flexibility to run independently too.

  • “Lower level” Java development implementing threading and reflection
  • Porting C++ applications to Java
  • Real-time messaging using TIBCO Rendezvous
  • Customer portal development using Struts & Hibernate running on JBoss
  • Technical representative at client meetings
  Nov 1999 - Aug 2003
Support Engineer, healthbridge

Installing, maintaining and monitoring the server and network infrastructure. Integral in the Year 2000 preparation testing both hardware and software.

  • Hardware and software installation of servers
  • Fault tolerant network setup with Cisco routers and switches
  • Migration from internal software RAID to a SAN
  • Data archiving to reduce database size for optimal speed
  • Automated email reports with VBScript and SQL stored procedures
  Ending 1999
Education
  • 1999: MCSE (NT4) - Ambassador Technology Campus
  • 1998: Sound Engineering Diploma - Allenby Campus
  • 1997: Matric - St. John’s College

Additional:

Here are some additional projects:

  • ARI4Java: I am now the owner and maintainer of this project which provides bindings for Java for the the Asterisk REST Interface (ARI)
  • Buzz*: I created this extension for Google Chrome which is a phone for connecting to Asterisk using WebRTC
  • ESPHome & HomeAssistant: I created the Alarm Control Panel for ESPHome along with the integration into HomeAssistant