Biography

I'm a detail-oriented individual with 9 years of experience developing web applications and APIs.

I have worked in the Geographic Information Systems (GIS) and Information and Communication Technology (ICT) sectors working on and maintaining a variety of projects using various technologies.

Over the years I've also been required to perform various SysAdmin, DBA and DevOp tasks from setting-up Linux servers, configuring, backing-up, restoring and migrating databases, registering and managing DNS records.

I'm an advocate for quality code over lines of code. I'm not a big storybook reader, but I’m a big fan of Robert C. Martin’s “Clean Code” as well as “The Pragmatic Programmer” by Andy Hunt and Dave Thomas. I occasionally dabble in code outside work to experiment and better understand the technologies I work with and have at times spent hours going through documentation.

I love tech and gadgets. I support free and open-source technologies. I want to make a difference. I believe technology can change the world, however it should do so without taking over. It should simplify life without getting in the way.

I believe simpler is better. I like sharing my knowledge and experience as well as learning from others. I'm not afraid to take the lead when the situation calls for it. My ideal job would consist of 60% programming, 40% other work (leadership, managing, teaching etc.).

When I don't work I enjoy being active and challenging myself. I have completed several multi-day mountain bike stage races, a 12-hour solo mountain bike race, a 100+ Mile Gran Fondo as well as an Ironman 70.3 triathlon.

Education

Bachelor of Information Technology

Jan 2004 - Dec 2008
University of Pretoria

A four-year programme integrating the different disciplines related to information technology, including Computer Science, Informatics and Information Science. Subjects include Data Structures and Algorithms, Design Patterns, Mathematical Modelling, Computer Networks, Computer Graphics, Systems Analysis and Design, Statistics, Accounting, Business Management & Law and Philosophy to name a few. The fourth year includes a six-month learnership with participating organisations where students are employed as trainees. Read more...

Experience

Developer

Apr 2013 - Present
Swordfish Software, Pretoria

Developing one of South Africa's leading online Debt Collection Software. We serve clients in the retail, banking, and collections industries.

We do Test-driven development and all code is reviewed by at least one other team member before it's merged into master. My primary role is Developer, but I've also been involved in setting up web and database server infrastructure, configuring MySQL replication, recovering databases from binary logs, setting up CI/CD and merging databases.

I assist where I'm needed. Anything from interviewing candidates to arranging for a new coffee machine and fixing the magnetic lock on the office door. I'm currently also part of a technical committee which is responsible for technical design decisions.

Projects: Swordfish & Services Framework

Senior Developer

Feb 2012 - Mar 2013
Bridge South Africa, Pretoria

Acting as technical lead and developer building a web and mobile loan application portal using CakePHP and integrating with the company’s in-house loan origination system.

Projects: Bridge Loans/Loan Buddy and Bridge Recruit

Web Mobile Developer

Sep 2009 - Feb 2012
AfriGIS, Pretoria

Developing custom solutions including branch locators, IVR systems, USSD systems, mobile- and websites that make use of Location-based Services, SMS, Weather and Traffic integrations using Java and PHP.

Projects: Branch Locators, Weather & Traffic

Developer

Jan 2008 - Sep 2009
Luuk ICT, Pretoria

Developing a real-time vehicle tracking/fleet management system using PHP, Javascript, Java and MySQL ons a custom Javascript-based web framework.

I worked in R&D and built POCs for a Document Tracking system, J2ME-based tracking application and processing spacial-data files.

Building a new in-house Web 2.0 framework in PHP.

Projects: Document Tracking, GPS-Tracking Solutions

Projects

Swordfish & Services Framework

Apr 2013 - Present
Swordfish Software

Swordfish is a web-based debt-collection system developed using PHP, MySQL, Javascript, HTML, CSS, PropelORM and Memcached. The system allows users to manage Debtors and keep track of communication (SMS, AVM, Email, Phone, Letters etc.) as well as manage, track and report on the Debtor's Accounts. I was responsible for several third-party integrations including SMS, AVM and Debit Order/Payment services. Provider APIs included REST, SOAP, CSV and Fixed-width files.

A new version of Swordfish was developed, with Python, Django, Django REST Framework, PostgreSQL to provide a REST API to a frontend built on HTML5, Bootstrap4, SASS and knockout.js.

I've designed and developed the core parts of our in-house microservices framework. The framework provides a REST API to various third-party integrations and is built using Django REST Framework and PostgreSQL. Asynchronous task processing is taken care of with RabbitMQ and Redis. I continue to support team members with new integrations, ensuring that code is of a high standard.

Bridge Loans/Loan Buddy and Bridge Recruit

Feb 2012 - Apr 2013
Bridge South Africa

Bridge Loans/Loan Buddy - A loan-origination site developed using CakePHP 2.x, jQuery, SOAP, REST, JSON, HTML, CSS which integrated with the company's SQL Server database and other internal systems.

Bridge Recruit - a PHP-based social recruitment site used by Bridge which integrated with a third-party recruitment website's API.

Branch Locators

Aug 2010 - Dec 2011
AfriGIS

I developed various ATM and branch locators on different platforms including USSD, mobi and web. USSD branch locators were developed in Java using an in-house framework. Mobi- and websites were built with CakePHP. All solutions used MySQL as a database and integrated with a Location-based Services (LBS) API provided by one of our mobile network partners.

Weather & Traffic

Jan 2010 - Jun 2010
AfriGIS

These two projects were both written in JSP and made use of MySQL database. We processed partner-provided data which we received in XML format on an FTP site at regular intervals. This provided the back-end to mobi- and website subscription services.

Document Tracking

2009 - 2009
Luuk ICT

This proof of concept was built in PHP and made use of Passive RF tags to track documents throughout a building. RF tags placed in folders or on documents would be recorded to a database as they passed by RF scanners located throughout a building. The data was then mapped onto a blue-print to indicate the whereabouts of the documents.

GPS-Tracking Solutions

Jan 2008 - Sep 2009
Luuk ICT

A real-time vehicle tracking/fleet management system which enables clients to track their vehicles or fleets using GPS/GSM tracking units. The system also provided users to specify rules (e.g. times; geo-fences) in which vehicles are allowed to travel, and can trigger SMS or Email alerts should a vehicle violate these rules. The system also keeps track of all vehicular activity that can be viewed at any time.

The web-based interface developed in HTML, CSS, Javascript and a PHP backend with a MySQL database was supplied with the data from GPS/GSM tracking units to a socket listener written in Java.

Honors & Awards

Epi-Use Prize 2007: Best Undergraduate Project in Computer Science / Software Engineering

Sep 2007 - Sep 2007
University of Pretoria

Featured in Innovate Magazine (Issue 3 of 2009) for Signum, a Java-based hand-gesture recognition system that allows control of a media player on you computer. I was part of a group who developed this for Prof. Andries Engelbrecht in 2007 as part of our third-year Software Engineering course.

Software Skills

Python

PHP

Java

Javascript

HTML, CSS, SASS

MySQL

PostgreSQL

Django REST Framework

CakePHP

Bash

Linux

GitHub & Gitlab

Apache & nginx

RabbitMQ & Redis

Continuous Integration & Continuous Deployment

Test-driven Development

Vim