Career Profile

I’m a self-motivated, solution-oriented individual with strong communication skills, a passion for design and a strong technical background that is grounded in an understanding of the underlying theory.

Experience

Solution Architect

May 2022 - Present
IdealSolution Software

Principal Developer and Secondary Lead on a eight person team implementing a payment gateway for Transaction Junction.

I did the analysis, design and implementation of the credit/debit card payment method backend and then built out the recurring and subscription payment and saved card processing features for front- and backend. Implementations are done as Spring Boot microservices hosted on AWS ECS in fargate containers. Frontends are implemented in Javascript using React.

I’m currently designing and implementing the Ozow payment method frontend and backend.

I serve as a second in command and hot standby for the Delivery Lead.

I guided, mentored and assisted junior/intermediate/fellow developers with e.g.:

  • implementing a PHP WooCommerce Payment Gateway Plugin,
  • refactoring Cypress end-to-end tests,
  • understanding effective Spring unit test mocking,
  • designing a Spring API response caching subsystem for slowly changing data,
  • structuring payment method designs and delivery approaches,
  • etc.

Technologies used:

Solution Architect

May 2022 - October 2022 (Overlap)
IdealSolution Software

Solution Architect on a five person team overseeing the delivery, design and implementation of a rewrite of Mobile applications for Lighthouse - a content moderation startup.

I was partially allocated to the project at 20h a month.

My main duties were the initial project planning and scoping, contract and specification negotiations, delivery oversight, coordinating and presenting client sprint demos, sprint reporting, performing code reviews, giving design assistance, troubleshooting and backend enhancements and fixes.

When the Android client libraries for the Strongswan VPN being used by the solution turned our not to be viable in context of the solution, I did a quick POC that used Wireguard as an alternative and then re-architected the solution to use Wireguard instead. Afterwards I implemented the Android Wireguard client code.

I implemented a small VPN connectivity checking point solution that pings connected devices using a small Golang service hosted on the VPN server and a Javascript AWS lambda function.

I guided, mentored and assisted my intermediate mobile developer with e.g.:

  • Android application architecture and design, especially w.r.t. state management,
  • payment and billing system design,
  • implementing Javascript lambda functions for periodic billing functions,
  • etc.

I guided, mentored and assisted my testing specialist with e.g.:

  • Appium coding approaches,
  • effectively formulating, formatting and presenting his test reporting.

Technologies used:

Solution Architect

June 2021 - April 2022
IdealSolution Software

Solution Architect and team lead for a seven person team implementing a new content moderation solution for Lighthouse.

My main duties were: solution architecture and design, delivering solution components, initial project planning and scoping, contract and specification negotiations, delivery oversight, coordinating and presenting client sprint demos, sprint reporting, performing code reviews, giving design assistance, troubleshooting and backend enhancements and fixes.

We were initially contracted to develop a new content moderation system for schools that intercepts and filters web traffic for images and videos and then moderates them using machine learning - blocking images classified as harmful, but this quickly expanded into helping them solve several issues with the go-live of their first mobile content moderation system.

I architected their school solution - personally delivering the on-school-prem proxy components and overseeing the delivery of the cloud-based management portal and AWS lambda-based backend functions.

I implemented the HTTPS-intercepting transparent proxy in Python as a MITMProxy plugin. This was a reimplementation of their first Javascript MVP proxy - adding the capacity to transparently filter devices that could not have their proxy settings remotely managed and I migrated their classification engine from a poorly performing, in-house trained, MachineBox model to AWS Rekognition.

Their MVP mobile apps were implemented in Flutter and several core libraries were being deprecated. I reimplimented the Flutter app iOS specific networking code in Swift to cope with some of these challenges.

When the Lighthouse DevOps resource resigned I stoGolangod in for him as far as possible in maintaining their AWS assets until a DevOps resource could be provisioned.

Technologies used:

Solution Architect

January 2022 - February 2022 (Overlap)
IdealSolution Software

Formed part of a task team with Quantum change to assess the Mexico and Columbia Business and Systems for Bayport.

This entailed performing a review of the architecture and roadmaps, teams and processes, codebases and infrastructure of the two organization and packaging the findings and recommendations into sections of the final executive report.

Technologies used:

Solution Architect

Mar 2021 - June 2021
IdealSolution Software

Solution Architect and team lead for a four person team implementing a MVP Insurance platform for a Fintech startup: Instasure.

My main duties were: solution architecture and design, delivering solution components, initial project planning and scoping, contract and specification negotiations, delivery oversight, coordinating and presenting client sprint demos, sprint reporting, performing code reviews, giving design assistance, troubleshooting and backend enhancements and fixes.

The design was a serverless architecture using AWS Amplify. Backend functions were implemented in Javascript.

I implemented the bulk of the backend services and third-party integrations and oversaw frontend delivery and testing. Backends were implemented using Javascript AWS lambdas.

I also implemented a few minor frontend features using Javascript in React.

Technologies used:

Principal DevOps Engineer

Sept 2020 - Feb 2021
Dotcom Software Solutions

Principal Devops Engineer stationed primarily at Ayo.

DevOps team member on a six person devops team.

Roles and responsibilities included:

  • developing Jenkins build, test and deployment pipelines,
  • assisting developers with build, test and deployment issues,
  • production deployments to on-prem and Azure AKS Kubernetes clusters,
  • provisioning infrastructure using terraform (e.g. Ivory Coast Azure AKS Kubernetes Cluster),
  • Azure administration and support,
  • etc.

I specifically rolled out their first takeon of Keycloak and assisted the developers with configuration and styling and helped them to get their Keycloak client code working by providing initial POC code.

I initiated a cost control exercise to control exorbitant Azure spending. This was done by writing a small Golang Azure API client application that gathered and collated cost information across all Azure assets. I then used a simple R project to display the resultant data as Treemaps. In the first month we found a +-$10,000 cost line item that resulted from a logging misconfiguration.

Technologies used:

Principal DevOps Engineer

Nov 2018 - Aug 2020
BVNK

Principal DevOps Engineer on the Grindrod Bank Bigbaobab team.

Bigbaobab was a Grindrod Bank initiative to rebuild their Core Banking system using a modern microservice architecture.

My main role was to build out the DevOps environment and toolchain and to advise on application and platform design and architecture.

This included scripting their Kubernetes platform builds using Terraform and Ansible on AWS, Digital Ocean and on on-prem hardware.

It also included the scripting of the provisioning of their CI/CD infrastructure: Jenkins, SonarQube and Artifactory, as well as developing CI/CD pipelines to build, test, statically analyze, package, publish and deploy their microservice artifacts.

For BVNK in-house needs I helped automate and build our demo instance Kubernetes infrastructure on a low cost Hetzner box.

Technologies used:

Part-time SRE Developer

Mar 2020 - Aug 2020
Flanksource (Overlap)

Part-time SRE Developer developing Golang automation tools to provision, monitor and configure VMWare-hosted Kubernetes clusters.

Technologies used:

Principal Developer

Jul 2018 - Nov 2018
BCX

As member of a velocity team (our brief was: concept to POC, then handover to implementation team to do POC to MVP) I worked on analyzing a legacy codebase of more than 15,000,000 lines of Java code to advise on refactoring approaches. This was done using a collection of open source tools with custom requirements implemented using JavaParser with visualizations done with D3.js

I also implemented a POC point-solution to implement product activation functionality by reusing base Java Elliptic Curve Cryptography primitives for digital signatures to produce human-readable activation codes.

This role then transitioned into being the lead analyst for the integration part of a large integration project using WSO2 Enterprise Integrator

Technologies used:

Principal Integration Developer

Nov 2016 - Jul 2018
BCX

I helped to establish an Enterprise Integration Centre of Excellence while contracted out to the South African Reserve Bank.

Initially I led a small four person team to develop all the models and processes and templates to establish the Centre of Excellence: including the Vision, Mission & Mandate, the Target Operating Model, various Business Processes, etc..

I subsequently served as the demand coordinator, the support lead and finally the ops manager for three integration ops teams administering the key SARB Integration platforms for the CoE.

As Ops Manager I led:

  • a two-person Oracle SOA Suite team maintaining the integration infrastructure connecting their core banking applications with external systems,
  • a four-person IBM IIB, IBM MQ and IBM DataPower team maintaining the integration infrastructure connecting externally with South African Bank Note and BankServe as well as non-core bank systems, and
  • a three-person team maintaining file-transfer infrastructure.

Technologies used:

Principal Integration Developer

Oct 2014 - Oct 2016
BCX

My role was Integration specialist stationed at Standard Bank. Primarily performing technical analysis of legacy PL SQL and JCaps Java code.

Development of IBM IIB solutions. Scrum master of delivery teams on Foundation programme and Industrialization Project.

Development of an AIX Environment Provisioning CI Pipeline MVP.

I joined the Industrialization project at Standard Bank in October 2014. Starting as integration developer I transitioned to being the SCRUM master and tech specialist.

Industrialization was an agile project to see how much of the local Max and realtime JavaCAPS interfaces could be redeveloped using a like-for-like replacement approach before a May 2015 deadline. Lacking access to a development environment, one was built using Innovation Centre VMs. A streamlined wiki-based documentation approach was developed after two iterations that factored the designs and documentation into reusable parts allowing very quick documentation generation. A solution architecture was developed with reusable common services that allowed full interface solutions to be implemented using database configurations and required only the actual mapping logic of an interface to be coded.

I prototyped a code generation solution to produce IBM broker flows programmatically using the IBM API wrapped in a fluent Java API.

A long dispute regarding naming standards between different teams resulted in me developing a small utility using the same API to programmatically rename message broker flows and nodes to align naming standards.

When the Foundation program superseded the Industrialization project, the Industrialization team was absorbed into that program. I initially joined as one of two SCRUM masters, but after a Chef awareness session, I specialized for a few months to deliver an MVP to spin up the Africa ESB integration stack on AIX using Chef.

During this time, I developed a set of cookbooks to automate IBM MQ, MQFTE and Message Broker installations on AIX and CentOS and to provision an Africa ESB environment using several custom light-weight resource providers to configure various MQ and Broker components. Minimal MQ enablement and Broker deployment functionality were developed as well.

Development was done in a TDD fashion using Cucumber acceptance tests with custom Cucumber step implementations.

Bamboo initially served as CI server, later to be replaced by Jenkins and GitLab.

The MVP was completed in November 2015 and demoed executively February 2016, but various social and organizational factors including prohibitive licensing costs prevented solution adoption within the bank.

Technologies used:

Senior Integration Developer

Sep 2012 - Sep 2014
BCX

Senior Integration developer at Vodacom.

First I served as a Senior Integration Developer on the EVO project for Vodafone/Vodacom integrations. This was followed up by being a Senior Integration Developer for the Vodacom Business OSS/BSS Fusion integration team.

My role was primarily analyzing integration requirements, delivering integration solution designs, which I would then implement. The technologies used were primary Oracle Fusion Middleware using Oracle Service Bus (OSB) and Oracle SOA suite, but occasionally interfaces were developed using J2EE.

Technologies used:

Senior Consultant

Nov 2007 - Sep 2012
EOH

Senior Consultant for EOH Project & Portfolio Management (formerly Gallium Professional Services).

I served as the team lead for the HP PPM technical support team at Absa.

Tasks and responsibilities included:

  • The design and implementation of changes to the deployed Absa HP PPM Solution.
  • Advising the client to possible technology-based HP PPM solutions to business process, governance and organizational challenges.
  • Providing and managing second-line support by the technical team to the Absa support teams.
  • Coordinating technical activities between the HP PPM support, Oracle, Domain operations and Change Management teams.

Notable achievements include having led the design and implementation of a HP PPM based solution for Absa Group Change focusing on their BCL (Business Change Lifecycle). This solution expanded the user base of HP PPM within the client by adding an extra solution area while reusing their existing technology investment.

Technical achievements during this time include:

  • The development of a POC Integration between HP PPM 7.1 and HP Openview Service Desk 4.5 for the Test Factory at Vodacom Business Services Group.
  • The implementation of an integration between HP PPM 7.1 and HP QC 9.0 for Vodacom Engineering.
  • Forming part of the project team for HP PPM Upgrade to HP PPM 7.1 for Vodacom Engineering.
  • Assisting with HP QC 9.0 to HP QC 9.1 Upgrade for Test Factory at Vodacom Engineering.
  • Forming part of the process re-engineering team for Vodacom Engineering.
  • Assisting with Enterprise Discovery Automated Discovery Agents Configuration on Unix/Linux platforms for Exclusive Books.
  • Forming part of project team at Absa for the Barclays Navigator project, specializing in interfaces, HP PPM SOA functionality, and report and portlet customization.
  • Forming part of the technical support team for the Barclays HP PPM implementation.
  • Being the technical team-lead for an upgrade of HP PPM from 7.5 to 9.1.

Technologies used:

Message Architect

Jul 2007 - Oct 2007
Business Connexion

Message Architect for Eskom BASC Integration Competency Center.

Tasks and responsibilities included: Analysis of integration solution requirements in terms of messaging, focusing on high level interface design, message designs, message mappings and the integration of solutions into the Eskom Common Information Model.

Primary responsibilities were message design, and management of the submission, review and approval process for integration designs, ensuring the compliance to Eskom architectural governance and standards.

The performance of the above tasks and responsibilities included constant interaction and communication with Eskom IS Architecture, divisional architecture representatives as well representatives from many projects, interacting at all levels ranging from technical to business.

Technical competencies used in this role included expertise in the full range of XML-based technologies, with a good understanding of database representations and technologies as well as the understanding of SOA and the range of technologies supporting it.

Technologies used:

Integration Specialist

Oct 2005 - Jun 2007
SiloFX

Integration Specialist primarily using Seebeyond ICAN and Sun CAPS in the Eskom IS environment.

Technologies used:

Project Manager

May 2005 - Sep 2005
SiloFX

Project Manager for the Cordaptix Ukukala Project at Eskom.

Ukukala was the implementation of an Eskom Distribution-wide Data Warehouse. The Cordaptix Ukukala sub-project was mainly involved in the specification of Key Performance Indicator business logic to enable the development of KPI extraction, calculation and verification solutions from the Cordaptix system (currently CC&B).

Tasks and responsibilities included the management of a team tasked with the production of KPI definitions. Definitions included aspects of Business Analysis of the KPIs, but consisted mostly of Systems Analysis of the KPIs and their implementation as SQL scripts to express their Business Logic. Testing and optimization of the scripts was a key task as the Cordaptix Customer Care and Billing system database was a multi-terabyte database with very high transaction volumes and many multi-million row tables.

The definitions needed to effectively document and clearly define the aspects of the Cordaptix Data Model being used.

The management tasks included the management of the definition document approval process and sign-off by Business and Technical Subject Matter Experts as well as technical advice to Ukukala regarding the technical extract process. The resolution of technical extract problems required a high level of communication to clarify requirements and identify and resolve technical problems.

The business requirements for the KPIs had to be confirmed, clarified and often corrected with business representatives. The technical requirements had to be confirmed, clarified and corrected with data warehouse as well as production system SMEs and technical issues had to be solved in an effective manner.

Technologies used:

Systems Analyst

Jun 2004 - Apr 2005
SiloFX

Systems Analyst for an Eskom 7 to 6 reorganization project. Tasks included involvement in the design of message architectures, the design of business and technical processes and technical process implementations using SeeBeyond ICAN. SeeBeyond eInsight was used to prototype proposed integration solutions to effect a change of Eskom systems from a seven region model to a six region model to align with regulatory changes.

Software Developer

Nov 2002 - Jun 2004
SiloFX

Software Developer involved in the architecture, design, coding, debugging and testing of a SiloFX Enterprise applications called Synap-C SAE (software architecture engine) and Synap-C EA (enterprise architecture).

Main role as developer was the research, analysis and design and implementation of ontological storage systems. Database technologies used were primarily Microsoft SQL Server with C# being the primary development language. A full UML based design methodology with strong focus on documentation and testing was followed.

Technologies used: