Career Profile

Self taught techie with broad range of interests Career changes from civil to transport engineering, to testing, quality assurance and automation, to cloud infrastructure and backend Python development. Moving into statistics, data science and machine learning. Especially fascinated by deep reinforcement learning. Eager to learn and pass on knowledge. Strive at all times to ‘be the mentor I wish I had’.

I value a company that contributes at least in part to free and open-source projects. I am specifically looking for a company providing solutions which have a meaningful impact to society, especially focusing on solving the problems of those in the bottom of the wealth pyramid.

Experience

Backend Engineer

May 2017 - present
OpenDNA, Cape Town

Responsible for deploying and maintaining cloud infrastructure on Amazon AWS, including:

  • Elasticsearch search engine Cluster
  • Centralized and highly available logging system, where micro-services sent logs to a real-time data processing platform (Kinesis) to be processed by Logstash
  • Apache Storm, a distributed realtime computation system
  • OpenVPN, to allow access to internal services to remain private

Encouraged team to adopt a DevOps culture, making operations tasks a shared and automated process where possible

  • Team members were enabled to submit build automation features and fixes via source-control rather than handing off to an ops team
  • Containerization of micro-services using Docker simplified configuration and allowed developers to simulate the production environment more closely

Developed CLI tools, frameworks and scripts in Python

  • Developed an automated API testing framework using pytest library
  • Created a reporting dashboard with automatic Jira issue handling dependent on deployments status. This allowed QA to know which issues were present in the current build.
  • Developed API endpoints and appropriate level of functional tests to guard against regression
  • Developed database clean up and various other scripts to ensure once-off tasks were carried out effectively

Software Quality Assurance Engineer

July 2015 - April 2017
VOSS, Cape Town

  • Managed test coverage and integration with nightly automation, extending Python based framework with functionality as required
  • Executed load testing of analytics platform using JMeter and reported with Pandas and Matplotlib Python libraries

Transport Engineer

Aug 2014 - July 2015
Trafficon, Cape Town

  • Built and presented microscopic traffic models and simulations using PTV Vissim, which allowed traffic demand and queuing bottlenecks to be predicted
  • Planning and scheduling public transport and traffic signal timings
  • Wrote Python scripts to extend model functionality to control minibus taxi departures and arrivals at a depot and to simulate the logistics of an indoor multi-story parking system

Projects

How I keep my skills sharp

Cape Diff (August 2018) - An open group interested in collaborating to produce and make use of free and open-source software

  • I planned a fortnightly meet up where enthusiasts, students, entrepreneurs and non-profits could get together and work on real problems
Retro Gaming contest (May 2018) - OpenAI

  • The aim of the contest was to develop AI to play Sega’s Genesis/Megadrive Sonic series, being faced with levels unavailable to train on (producing AI that generalizes well)
  • I threw myself into the deep end (I am yet to cover some fundamentals in reinforcement learning), but simply familiarizing myself with some baseline algorithms and packaging it together with some Docker knowledge, I was placed #32 out of #229 on the leader-board (Team: BrokenRobot)
  • In order to brush up on fundamentals I am reading Reinforcement Learning: An Introduction, second edition(2018) by Richard S. Sutton and Andrew G. Barto
Lightning talk (November 2017) - Infrastructure as Code: Getting DevOps tools to do the stuff Data Scientists don’t want to

  • How to use tools like Packer, Docker and Vagrant to manage infrastructure as code
Transport Hackathon (Mar 2017) - #AccessCPT

  • Integrating with WhereIsMyTransport API to develop proof of concept for a futuristic public transport system with adaptive stops and line routing
MOOC - Online Courses

  • Machine Learning Foundations: A Case Study Approach, Washington University (Nov 2016)
  • edX Honor Code Certificate for Introduction to Computer Science and Programming Using Python, MIT (Nov 2015)
Thesis (July 2013) - Durham University

  • Genetic algorithms in optimization of space-frame roof structures

Skills & Proficiency

GNU/Linux (operating system)

Python3.6 (programming language)

Apache Storm (distributed stream processing computation framework)

Elasticsearch (search engine)

Logstash (data-collection and log-parsing engine)

Kibana (analytics and visualisation platform)

Git

RESTful APIs

SQL

Bitbucket Pipelines (continuous integration platform)

AWS Lambda

AWS EC2

AWS ECS

AWS Kinesis

AWS Secrets Manager

AWS IAM

AWS S3

AWS Cloudwatch

AWS Cloudfront

AWS Route53

AWS CLI

Vagrant (development environment tool)

Packer (build tool)

Terraform (infrastructure as code software)

Ansible (provisioning tool)

Docker (containerization software)

Docker-compose (container orchestration tool)

Bash (shell language)

boto3 (Python library)

click (Python library)

elasticsearch (Python library)

elasticsearch-dsl (Python library)

jira (Python library)

requests (Python library)

sqlalchemy (Python library)

wrapt (Python library)