Career Profile

Self taught Techy accompanied by a broad range of interests with career changes from Civil to Transport Engineering, to Testing, QA and Automation, to Cloud Infrastructure and Backend Python Development. My future ambitions are to move into the fields of Statistics, Data Science and Machine Learning, especially Reinforcement Learning. I am eager to learn and pass on knowledge as much as I can. I 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 on 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

I develop in Python 3.6 (and Bash when necessary). I also maintain infrastructure as code (and in source control) and create the automation that aids that.

Software Quality Assurance Engineer

July 2015 - April 2017
VOSS, Cape Town

QA of Analytics Platform for VOSS-4-UC

  • Load Testing of application using JMeter
  • Representation of performance data using Python, Pandas and Matplotlib

QA of Microsoft Plugin for VOSS-4UC

  • Managed test plans (Testlink) and incorporated dev tests into nightly automated build infrastructure
  • Set up solutions (Jenkins, Ansible) for developers to deploy latest feature branches to testing and development platforms
  • Implemented an end-to-end automated solution for developers to own their feature’s testing from planning stage
  • Extended Selenium-based Testing Framework to allow variables to be passed in from environment file
  • Built Docker image to allow execution of end-to-end tests from local machines without complicated setup
  • Dynamic generation of test and environment specific data using Ansible and Jinja2 templating
  • Powershell scripts executed via WinRM to assert expected properties in connected Microsoft devices

Transport Engineer

Aug 2014 - July 2015
Trafficon, Cape Town

  • Building and Recording Microscopic Traffic Models and Simulations with PTV Vissim
  • Predicting traffic demand and queuing bottlenecks
  • Planning public transport schedules and traffic Signal timings
  • Utilized PTV Vissim API to extend functionality:
    • to allow control over Minibus Taxi departures in a Taxi loading system
    • to simulate the workings of an indoor parking system
  • Proof of concept developed for the simulation of shared pedestrian and vehicle spaces

Degree course-work

October 2008 - July 2013
Durham University, UK

  • Masters Thesis Research project: Application of Genetic Algorithms in optimization of space-frame roof structures (MATLAB)
  • Finite Element Method (FEM/FEA) utilized in structural analysis of solid continuum & construction formwork
  • Project management: utilizing Gantt Charts (Microsoft Project & Microsoft Office software)
  • Sewage plant refurbishment design project, including reinforced concrete & steel structure designed according to Eurocodes
  • Household grey-water reuse system designed as part of group; computed fluid, pumping & piping calculations
  • Software tested by coursework: AutoCAD, ArcGIS, C, MATLAB, Plaxis, SolidWorks, Strand7
  • Hydro-electricity generator designed & constructed by team, minimised build time by automating the coil wrapping process.

Projects

How I keep my skills sharp

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 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)

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)