It's the challenges and possibilities of software development - always new, always exciting - that get me out of bed in the morning. It's like solving a new puzzle every day, and it never gets boring. It's particularly meaningful when it impacts many people's lives, and makes them better. I like big projects with lots of users, bringing new ideas, concepts and products to the market.
I work in software and open data because I believe information leads to informed decision-making. It can be used as a very powerful lever to make the right changes to make society better. While change can also be instigated through passion, it is directionless and unmeasurable without data, information and knowledge.
I believe that information is the foundation of positive, informed social change in the systems around us. I strive to work with civic society and the media to make information available, understandable and accessible. By bringing the right people, tools and data together, we can inspire and encourage others to take action.
I'm a software developer, data journalist, open data activist, editor, and entrepreneur. I describe myself as a generalist- specialist across multiple communication and technology fields.
I have over twenty years experience in software development. I have designed, built and operated public-facing systems with millions of users. I have led a team of developers, building them from junior to senior developers.
I have been actively involved in the open data movement in South Africa since 2014. I am a director with OpenUp, South Africa's leading open data non-profit organisation which has worked hard to create a culture of open data in South Africa's newsrooms, NGOs and government.
My open data and data journalism newsletter, Naked Data, has been published weekly since 2014, and has over 1,200 subscribers from organic growth.
I am the part-time data journalist for Daily Maverick, a major online news site that was instrumental in the "Gupta Leaks" that lead to the ousting of our former president, as well as the exposure of international firms complicit in corruption like SAP, KPMG, McKinsey and Bell Pottinger. I am currently working on analysing the Gupta Leaks data using machine learning.
My management style is foussed on skills-development, ensuring that my staff is constantly growing in ability and confidence.
Although I have my favourite stack, just like any developer, I am open to using the right tool for the job. My experience with multiple programming languages, frameworks and CMSes helps me choose the correct technology stack for every project. I enjoy learning new technologies, and am constantly experimenting with the latest libraries and frameworks.
I am constantly learning - I try to dedicate 20% of my time to simply learning how to be a better developer and data journalist. I'm learning machine learning and data science currently.
I really enjoy making APIs, and I've developed my own API engine called JExpress. I'm a big fan of the Restify/Mongo/Mongoose combination of technologies for APIs.
I have a lot of experience with high-volume, high-performance custom CMSes.
I've built high-availability scalable infrastructure that has scaled to millions of users, and I'm experienced with Linux systems architecture, from running my own load balancers to abusing MySql replication for massive load balancing and high availability.
I run my own physical servers which I virtualise (using Xen) for multiple clients and applications, both commercial and gratis. My OSes of choice are Debian and Ubuntu, and I run OSX on my laptop, although I do use Docker and virtual servers for some applications.
I do some PHP development when it can't be helped. I'm quite familiar with the underbelly of Wordpress, I'm very good with CodeIgniter, and I have built applications with Laravel.
I dive into Python occasionally, usually for data science purposes.
I'm studying machine learning, and am working on bringing my maths up to the level it needs to be at for ML.
On the front-end, I can use React, although I'd chose Vue over it. I've done some big Backbone projects too. I usually use Brunch as my build tool, but I've used Gulp extensively too.
For data visualisation, I usually turn to D3, and I do a lot of dashboards in DC.js. Lately I've been making a lot of custom visualisations for data journalism using Sketch, which I've also been using for prototyping.
On the data side, I'm very good at relational database normalisation, although I usually use NoSql nowadays. For cleaning data, I usually use OpenRefine. I use Sheets for interviewing data and for quickly prototyping graphs, although I'm learning Pandas and a bunch of command-line tools too. For publishing, I use a variety of free tools like Datawrapper.de, Infogram, StorylineJS, etc. As mentioned, I've started hand-crafting a lot of my viz in Sketch.
In 2008 I joined the Mail & Guardian Online as technology manager, managing a team of developers and transitioning the site and associated products from its M-Web co-ownership arrangement to being fully managed by M&G. I managed the technology team for two years, running some of the biggest sites on the African continent. My microsites for Nelson Mandela and the World Cup won Bookmark Awards, South Africa's equivalent of the Webby Awards. I have built websites for the likes of the Mail & Guardian, Daily Maverick and the National Arts Festival.
I'm the Daily Maverick's data journalist and technologist. Daily Maverick is a small but powerful news organisation in South Africa, having recently made headlines for itself for the Gupta Leaks, a data dump which helped topple President Jacob Zuma and uncover a huge network of global corruption. I'm currently working on bringing in content from third party providers into Daily Maverick's new CMS, training Daily Maverick's staff and interns in data journalism, and producing data journalism content.
I'm a director and former data journalism activist for OpenUp (previously Code for South Africa). This role has combined advocacy, management and tech in order to improve data literacy in news organisations and social justice non-profits in South Africa. I also oversaw a joint venture between the School of Data and Code4SA, training journalists and NGOs across the country in data literacy, and implementing data-driven projects that had real social impact.
In 2014 I launched Naked Data under the Code4SA umbrella, a weekly newsletter covering open data and data journalism. This year it surpassed 1,400 subscribers. I've never advertised it, and let the growth be entirely organic to ensure that the subscribers are people who really want to read it.
I was an editor for over 10 years, starting as ComputerWeek technology editor, then ITWeb's technology editor, Brainstorm associate editor, and Stuff Magazine deputy editor.
In 2010 I created 10Layer, a software startup that built an agile and performant CMS, 10Layer LS. The software ran the websites of Mail & Guardian, Equal Education, the African Media Initiative and others.
I'm the software developer lead for Workshop17, a shared workspace company co-owned by Growthpoint, the largest property investment company on the Johannesburg Stock Exchange. I build all their systems, covering everything from the locks on the doors to the internet to members receiving and paying their bills. The software has allowed a small team to grow fast and remain scalable and agile, with three shared workspace locations as well as partner locations on the platform.
2015 - Present
Workshop17 (previously OPEN) operates shared workspaces in South Africa. It currently has five locations. I build a platform called My.W17 that is used to integrate a variety of services, from billing and invoicing (Xero) through to wifi (custom Radius) and point-of-sales (Ikentoo). I developed an internal currency that allows members to spend at the bar or book meeting rooms. I also built a custom CRM system for Workshop17 using React. This system is built primarily on NodeJS and Express with a Mongo database and my own API engine, JExpress, with lots of third-party integration. The CRM is built on React. Between myself the CTO Mark Seftel, we are responsible for the design, management, maintenance and hosting of the projects. I am personally responsible for all the coding. We were hosting on Xen-virtualised servers that I built and maintained, but have now moved to Google Cloud since we are using more and more Google Cloud services, such as Data Studio.
2016 - Present
I produce data journalism articles for the Daily Maverick, such as this op-ed on the water crisis. I also develop systems for its platforms, primarily integrating partner feeds into its new CMS. Additionally, I do training on data literacy for the Daily Maverick team. For data journalism, I use OpenRefine, Sheets, custom graphics using Sketch, QGIS for mapping, and I'm learning Pandas and machine learning. Incidentally, I also built and operated the original Daily Maverick website.
2014 - Present
I continue to serve as a director on the board of the non-profit OpenUp, previously Code for South Africa. The purpose of OpenUp is to help people make informed decisions. OpenUp partners with other civic organisations, media partners and the South African government to help bridge the gap between government data and peoples' real needs. As a director, I help plan the strategic direction of the organisation, approve executive positions, monitor the financial state of the organisation, and sign off on the audited financial reports.
2015 - 2016
I built the web front end for Liedjie, the world's first Afrikaans music streaming app. I used Bootstrap for the front, and NodeJS for the middleware to converse with the binary protocols from the back-end. I built a CMS using PHP and Laravel, and a Material Design front-end. The web-based mobile app was integrated into WeChat. It was incredibly rewarding to work with Johan Jacobs, who designed the original Mxit infrastructure, as he is a serious DevOps fundi with a much larger idea of "scale". Watching Catherine Lückhoff navigating the difficult process of getting a startup off the ground was a privilege and an incredible learning experience.
2014 - 2015
OpenUp (previously Code for South Africa) is a team of data geeks that uses technology to find meaning in numbers. This helps people make informed decisions that drive social change. My work at Code4SA was focussed on data journalism and data literacy. To this end, I created numerous data applications used by newspapers, such as the Mail & Guardian’s elections map; I managed Code4SA’s internship programme; and I managed the Code4SA School of Data, in partnership with the Open Knowledge Foundation and Indigo Trust. I launched Naked Data, a newsletter covering open data, data visualisation and data journalism, which has over 1,000 subscribers.
2011 - 2014
10Layer’s content management system (CMS) offered the flexibility of a custom CMS with the quick development and deployment of an off-the-shelf solution. It is still used by the Mail & Guardian, and was used by the African Media Initiative, Equal Education, and the African Story Challenge. The system was built on PHP and CodeIgniter, with a MySql back-end.
2008 - 2011
My team of four developers and I handled all of the technical aspects of running the Mail & Guardian's website, Africa's longest-running news site, and one of the biggest on the continent. I moved M&G’s architecture from two small servers hosted at Internet Solutions to the cloud, dramatically increasing capacity for M&G’s fast-growing audience while reducing overheads. I was a member M&G's management committee reporting weekly to the executives. I worked closely with the editorial team, and assisted with the launch of the multimedia team. I mentored my junior development team, with regular training sessions, discussions, and the introduction of software development management practices to the point where they became senior developers. Our Nelson Mandela website and 2010 World Cup website won Bookmark awards, South Africa's version of the Webby Awards. We used PHP and CodeIgniter, MySql, and HAProxy extensively.
Pexicon's Artvault management system is a digital asset management tool used by blue chip corporates and some of the largest private art collectors in South Africa, including the Oppenheimers. I also built an art auction results platform, AuctionVault. I have been working with Pexicon for a number of years as their developer. Artvault was originally built on Delphi, and was then moved to PHP.
2007 - 2008
I was part of the team that launched Stuff Magazine into the South African market. My work included writing, management, contracting freelancers, and putting in the processes required to deliver a world-class magazine in line with the international brand. I used InDesign to help our designers produce the magazine, and Photoshop for artwork.
2003 - 2007
I developed the website for Daily Maverick on PHP; I built a custom CMS for mobile company NXT, integrating with the service providers as well as content providers like IMI Mobile; I developed the services for cellphone behemoth MTN’s weather, news and lotto services, which are still used today.
2003 - 2007
I wrote for Maverick, Brainstorm, ITWeb, Finance Week, Financial Mail, CIO, iWeek, and numerous other publications. I was considered South Africa's top technology journalist at the time.
2001 - 2003
1999 - 2001
This is almost too far back to remember, but there used to be a trade rag called Computerweek. It was surprisingly highly respected, in part due to the excellent editorship of Mariette du Plessis.