Petrus Janse van Rensburg

Software Engineer


I'm Petrus, a Software Developer with a strong interest in design.

I love travelling, especially around Africa. And when I'm not busy writing code, you might find me climbing a mountain, jogging or staying up late to watch SpaceX launches.

Full Name
Petrus Johannes Janse van Rensburg
South African
English, Afrikaans and a good amount of French


“Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.”
- Antoine de Saint-Exupery



Grocery delivery in emerging-market environments.

View more

Parliamentary Monitoring Group

The website that tracks the happenings in parliament, and its various committees.

View more


(no longer active) A tool for governments to compare medicine prices across the SADC region.



A website for finding, rating and booking doctors.

View more

Core skills

“I invented nothing new. I simply assembled the discoveries of other men behind whom were centuries of work.”
- Henry Ford

Android Java, using Sqlite for client-side storage and packages like Firebase, Retrofit, Picasso etc.
UI & UX Design "Design is not just what it looks like and feels like. Design is how it works."
Web Frontend HTML, CSS & JS, using Bootstrap, React, D3 etc.
Persistence layer Database modelling
PostgreSQL (with JSONB for handling unstructured data)
PostGIS (spatial queries right on the database)
SQLite (in-memory database)
Data migration (using Alembic & SQLALchemy)
Application Layer Flask (minimal Python web framework)
Django (Python web framework)
SQLALchemy (Object Relational Mapper)
Redis (in-memory data store)
Flask-Admin (package for building admin interfaces)
Data science Machine Learning for recommender systems (using LightFM)
Probabilistic programming / Bayesian inference (for calculcating uncertainties)
Pandas, Jupyter notebooks, Matplotlib
Version control Git & Github
Server management Ubuntu, on Amazon Web Services (EC2)
Docker & Docker-Compose
3rd Party tools Google APIs for geocoding, directions etc.
SMS integration with Clickatell & Twilio
USSD integration with Vumi

Work Experience

“Life can only be understood backwards; but it must be lived forwards.”
- Søren Kierkegaard

Wagadugu & Timbuktu

Cape Town, South Africa - February 2016 to September 2018

For my second startup I built an Android app to sell groceries in constrained emerging-market conditions. It first went live as timbuktu, but I later re-branded it as wagadugu after doing a full redesign and rewrite of the codebase.

I gave a talk at PyConZA where I tried to explain the reasoning behind the choice of business model, and some of the technical challenges it entailed.

Throughout the life of the startup, my focus was on trying out different designs for the e-commerce frontend, until I found one that clearly resonated with a small group of representative users. I tried to let go of any pre-conceived notions of what e-commerce should look like, rather designing something new from the ground-up. But unfortunately, after lots of iteration and a myriad of design changes, I still couldn't find something that works demonstrably better than the status-quo.


Cape Town, South Africa - April 2015 to January 2016

I worked as a remote contract developer, after my first startup couldn't get off the ground. The team of software developers that I worked with was distributed around the world, but managed from Canada. We maintained and made improvements to unhaggle, a site that generates sales leads for auto dealerships and gives consumers insight into the pricing of new vehicles, which they can use when negotiating with a dealership.

My role was focused on setting up automatic testing and refactoring a legacy codebase to expand test coverage and make it more reliable.


Cape Town & Limpopo, South Africa - February 2015 to August 2015

For my first startup, I built a platform for enabling distributed ownership of large, centrally managed cattle farms. Users could buy individual cattle and have them stay on the farm, while tracking their well-being through my web application.

Whilst the idea was probably sound, I couldn't get the right farming partner on board, and so the startup only ever made it to the demonstration phase, with a handful of cattle.

Code for South Africa (now called OpenUp)

Cape Town, South Africa - November 2013 to January 2015

In-between several smaller projects, I was responsible for redesigning (no longer active), which was a tool for tracking medicine prices across the SADC region. It helped public sector procurement officials when negotiating medicine prices with suppliers.

I also contributed a substantial amount towards a redesign of for the Parliamentary Monitoring Group.


Cape Town, South Africa - April 2013 to October 2013

I built out Springlab's first venture:, which is an online directory for finding medical professionals, making bookings and leaving ratings.

As the technical lead, I was responsible for writing the frontend website client, the data-persistence layer and API on the backend. And I handled server setup and deployment.


Cape Town, South Africa - January 2011 to April 2013

My main responsibility was to help develop and maintain the web application that is central to YeboTech's product offering of patented electronic locks and keys. The application allows users to log in and implement access control policies. The technologies that were used include MySQL, PHP, Javascript and jQuery.

Initially, I was hired for my Mechanical Engineering expertise, but we soon realised that the web-application was the most pressing problem for the company.

Actaris Metering Systems

Chasseneuil, France - November 2007 to January 2008

For an internship during my Bachelor's studies, I was employed as a member of the Mechanical Design team.

My job consisted of the mechanical design of an enclosure for a GSM modem which is sold as an accessory to electricity meters in certain markets. The enclosure needed to conform to the relevant standards and had to be suitable for mass production by plastic injection-moulding techniques. The design was later taken into production.


Kampala, Uganda - July 2005 to January 2006

As part of an extensive backpacking trip through the continent, I took up a position with a Ugandan company, where I helped with the logistics of importing communications equipment into South Sudan (e.g. satellite phones, radio and VSAT equipment). I spent about half the time in Kampala and the rest in South Sudan.

Actaris Metering Systems

Felixtowe, United Kingdom - May 2004 to December 2004

As a Student Engineer I was part of the Mechanical Design team, helping with the design of 3D models and testing prototype parts for conformance to the relevant specifications.


“The mind is not a vessel that needs filling, but wood that needs igniting.”
- Plutarch

MScEng (Mechanical) Cum Laude 2010 - 2011

Stellenbosch University, South Africa

I completed a two-year Master's degree, on-time and with distinction. The thesis introduced a novel approach for formulating a specific class of structural design problems, in order to solve them more reliably using relatively simple optimization algorithms.

To support my thesis I wrote software in Python for analysing the stress distribution within physical structures, using the Axisymmetric Finite Element Method. On top of that I wrote an optimization routine, also in Python for finding the optimal combination of design parameters for a particular structural design problem.

The research output included a thesis, an article published in an academic journal, and a presentation given at an international academic conference.

BEng (Mechanical) 2006 to 2009

Stellenbosch University, South Africa

After two gap-years spent working as a student engineer and then travelling through Africa, I returned to Stellenbosch to study a four-year bachelor's degree in Mechanical Engineering. In addition to the regular degree programme, I took French for three years at the Arts Faculty.

Some subjects taken as part of the degree include:

  • Programming
  • Electronics
  • Mathematics
  • Control Systems and
  • Thermodynamics.