Hard-working, enthusiastic, self-made coding polyglot who has worked with various programming languages and leans towards low-level programming. Webapps, websites, APIs, Arduino projects and video games are just some of the projects he’s worked on. Enjoys contemplating problems and the way things work, how to fix or improve upon them, then takes great pleasure in building a creative and robust solution. Loves to constantly learn and acquire any skill needed through dedication and self-application.

Work History

2021/05 - current

Senior Full-Stack Engineer

Paystack - Lagos, Nigeria (Remote)
  • As a senior on Refunds and Reversals, designed and built the refunds and reversals micro-service.
  • Increase the efficiency and reliability of refunds and reversals through the use of technologies like Kafka.
  • Part of the Stability and Reliability team in charge of tackling the hard problems facing the rapid growth of Paystack.
HTML CSS SASS JavaScript TypeScript Jest Shell Scripting MySQL MongoDB Kafka npm Yarn Git Docker Kubernetes Linux GitHub Jira
2020/05 - 2021/05

Senior Software Engineer

SPAN Digital Innovation - San Francisco, USA & Cape Town, SA (Remote)
  • Create solutions as a polyglot full stack software engineer, covering projects in Go, Scala, Java, JavaScript and Python.
  • Using technologies such as Caddy, Akka, Apache Spark, Apache Kafka and Hadoop.
  • I worked as the lead developer on a project to extend the Caddy webserver with custom Go plugins and an authentication service to allow for LinkedIn login and user permission management.
  • Currently I am working on a big data streaming project written in Java and Scala and uses technologies such as Akka, Apache Spark, Apache Kafka and Hadoop.
  • HTML CSS SASS Go Java Scala JavaScript TypeScript Python JUnit Testify Shell Scripting PostgreSQL MySQL Caddy Spring Spring Boot Akka Apache Spark Apache Kafka Hadoop sbt Gradle Yarn Git Docker Linux GitHub Jira
    2018/03 - 2020/04

    Freelance Full Stack Software Developer

    dxt.rs (Remote)
    • Develop websites, APIs and systems using: HTML; CSS; PHP (Laravel, PyroCMS, CakePHP, CodeIgniter, WordPress, vanilla); JavaScript & TypeScript (Angular, AngularJS, jQuery, Meteor); Node.js; Ionic & PhoneGap;
    • Linux server administration (Ubuntu, CentOS, Debian).
    • MySQL, SQLite, MongoDB databases.

    dxt.rs is my own brand for my freelancing and game development adventures. I have worked with several companies remotely providing a wide range of services with the varied skills that I've picked up over the years while also endeavouring to create lean video games from scratch.

    I worked with a company that had created a wireless (with RFID) payment solution for events. The tech included a receiver at pay-points that is connected to a back-end online system that matches up transactions with registered users via the scanning of their tags. I worked on extending their Meteor back- end app as well as built some functions for their React-Native app.

    I freelanced for an agency by fixing defects for a hybrid mobile game built in Ionic for Allan Gray, one of the major banks in South Africa. The game had been distributed to many schools to teach students the value of healthy financial practises.

    I made additions to the Orlando Pirates' (a local soccer team) Shopify webshop through a digital agency. One such challenging addition was a feature that allowed the user to customise a soccer jersey with their own number and name before ordering. As soccer is very popular in South Africa, this website saw a lot of traffic.

    I was contracted to do bug fixing on an Ionic app and build a prototype in Angular for a large Crossfit CRM system that sees many users a day from Crossfit gyms all over South Africa and has started to get international attention.

    In my spare time I build video games and to date have built a Galaga-like top-down shooter in Java with no external dependencies, a few small prototypes in C and JavaScript and am currently writing a game engine in C++ and SDL that integrates Lua as its scripting language.

    HTML CSS SASS Twitter Bootstrap PHP Laravel CakePHP CodeIgniter PyroCMS WordPress PHPUnit JavaScript TypeScript Angular AngularJS jQuery Jasmine Node.js Express.js Electron Python C C++ Simple DirectMedia Layer Java Shell Scripting MySQL SQLite MongoDB Ionic Cordova Apache npm gulp Yarn Grunt Git Vagrant Bash Linux GitHub Bitbucket DigitalOcean Asana Jira TFS Adobe Illustrator Adobe Photoshop
    2019/04 - 2020/03

    Full Stack Developer Consultant

    Team Extension - Bucharest, Romania (Remote)
    • Wrote server-side and client-side code for Laravel and PyroCMS projects using PHP (Laravel), HTML, CSS and JavaScript.
    • Part of team that built Laravel-based CRM system as well as custom PyroCMS website a company in energy management.
    • Used Git, Jira, CircleCI.

    I joined a Swiss company stationed in Bucharest on a one and a half year contract as a full stack developer. Team Extension hires and contracts developers, designers, strategists, project managers etc. to assist clients in building any web or mobile system they need.

    I built the front-end half of a referral campaign management system in WordPress for a popular pay-as-you-go power company in Ireland. This website interfaced with a C# API written by a colleague. The system was expected to see large traffic during their campaign.

    The biggest and longest project/s that I was a part of was for an energy efficient IoT supplier and installer based in USA. The first project I was the sole developer for the most part and we built a customised website in PyroCMS. The main project however was for a CRM type system that we built in Laravel and jQuery. We made many custom lean components and services to accomplish the tasks we required without burdening the system with too heavy dependencies.

    We used GitHub for source control and integrated with CircleCI for merges and automatic deployment to Ubuntu servers.

    We worked in an Agile environment utilising Kanban with Jira and a handful of smaller webapps for tracking and billing.

    I learned a lot about personal responsibility and working remotely as well as learning about and adapting to different cultures as I worked with North American, Indian, Romanian, Turkish, Irish, Italian, German and Swiss folks.

    HTML CSS SASS PHP Laravel PyroCMS WordPress JavaScript jQuery MySQL Apache npm gulp Git Vagrant CircleCI Bash Linux GitHub Agile Jira Kanban Figma
    2019/01 - 2020/01

    PHP and JavaScript Developer

    Crayon - Johannesburg, Gauteng, SA (Remote)
    • Rewrote recruitment webapp into full Laravel and JavaScript-based solution that caters to 37000+ users.
    • Extended MVP to include various features including: integration with payment partner; webcam integration; custom filtering.
    • Linux (CentOS) VPS administration.
    • Used Git, Asana.

    Initially I rebuilt Crayon's MVP recruitment platform which was a WordPress back-end and Laravel front-end into a Laravel only solution. The original developers used WordPress as a management back-end and Laravel to access the WordPress tables with a package.

    I wrote migration scripts to convert the old WordPress MySQL data to a less complicated version accessed directly by Laravel. I built an admin portal for the management of profiles, leads, communications and prospect/employer matches by way of an relatively complex algorithm.

    I extended the system to include:
    • webcam integration for video clips from prospects to employers;
    • extensive logging and notifications by way of event listeners;
    • integration with a payment gateway;
    • a system to capture and process CVs and profiles for prospects as well as admins;
    • a rewards and credit/coin system for use by employers;
    • integration with Facebook, Twitter and LinkedIn;

    I moved the whole system over to a CentOS VPS eventually which I managed myself and wrote management scripts in Bash.

    Source control was carried out with Git initially on BitBucket and later moved to GitHub and project management was done in Asana utilising Kanban with a relaxed Agile approach.

    HTML CSS SASS PHP Laravel WordPress JavaScript jQuery MySQL Apache npm gulp Git Vagrant Bash Linux GitHub Asana Kanban
    2016/10 - 2018/02

    JavaScript Developer

    Derivco - La Lucia, KwaZulu-Natal, SA
    • Maintained and extended global online Bingo app servicing millions of players.
    • Wrote custom TypeScript and JavaScript Angular modules.
    • Integrated with .NET back-end via protocol buffers.
    • Extended custom integration with PixiJS WebGL/Canvas renderer.
    • Wrote integration and unit tests with Jasmine.
    • Used SVN, Git, TFS.

    In 2016 I was presented with the opportunity to move to the coast and work for Derivco - the development house for the biggest online games company in the world - Microgaming. Well they and Playtech swap spots for first and second every few years.

    I joined the bingo team of nine talented front-end developers as a JavaScript/TypeScript developer. The online bingo game we worked on was first created for Flash, then ported to AngularJS with the death of Flash and I joined shortly after the port from AngularJS to Angular.

    Here I learned in-depth about design patterns and correct software architecture design. I discovered that I had been solving many problems with design patterns all along but never had a label for them. We were expected to write documentation for all the features we developed. We rigorously unit and integration tested our software with Jasmine and had a highly modified version of webpack that we used to build and transpile the game code bundle.

    Source control was done with Git and SVN (for deployments packages) and deployment was handed off to TFS and Octopus Deploy.

    Some of the more interesting tech that we used included:
    • communicating with the C# back-end using Google Protocol Buffers;
    • a custom "shadow-DOM" we built from Angular components that rendered to an adapter (so that we could swap our the renderer if the need arose) to PixiJS in order to render the game in WebGL or Canvas depending on the user's hardware;
    • the integration of the XMPP JavaScript library Candy Chat;

    We spent many hours hunting for orphaned nodes and observables and various other gotchas and improvements in order to keep memory and CPU usage as low as possible. In the end it wasn't possible to match performance in the version of Edge at the time as we discovered that it had a very low memory limit in place for intensive websites.

    I spent time in support where I picked up enough C# and used my SQL knowledge to adapt to MS SQL in order to debug and fix defects across the back as well as front-end that were brought up by clients and suppliers. I also fixed defects in the still-in-use AngularJS platform.

    We worked in an Agile environment and utilised Kanban for our team which was managed by TFS. In the support team we utilised SCRUM.

    Some of the most intelligent and highly gifted programmers I've ever come across work at Derivco with the general rule seemed to be the more gifted you are the more unkempt your appearance and the more eccentric you are - there were many long-haired bare-footed hacker-hippies roaming the halls.

    HTML CSS SASS JavaScript TypeScript Angular AngularJS Jasmine Node.js MS SQL npm Yarn Webpack Git SVN Kibana Agile TFS SCRUM Kanban
    2015/01 - 2016/09

    CTO and Chief Software Developer

    Media Rocket Studio - Rivonia, Gauteng, SA
    • Architected customer front-end and back-end solutions.
    • Wrote APIs and web systems with front-end in PHP (WordPress, Laravel) and JavaScript (AngularJS, jQuery) and back-end in PHP & JavaScript (Laravel, Node.js).
    • Mobile apps with Ionic and PhoneGap.
    • MySQL and MongoDB databases.
    • Linux administration (Ubuntu).
    • Used Git

    Having met creative and forward thinking individuals at Flint, a digital strategist and UI/UX designer and I created our own digital agency-cum-tech incubation company.

    As the CTO and indeed only developer I was in charge of designing and developing all software systems for clients as well as the ideas we thought could grow into massive projects.

    Unfortunately we weren't able to complete and release any of our own tech as running a business with large immediate expenses overwhelmed us and we ended up focussing on client work.

    I developed a front-end for a debt-collecting/lending company in AngularJS which would have seen large amounts of clients but due to some internal politics the client failed to complete the back-end.

    A university student had come up with an idea for a mobile app that allowed one to rapidly capture an acquaintance's information and be provided with analytics about how and when they met as well as how they fit into their current network. I built the back-end in Node.js with a MongoDB database as well as a hybrid app in PhoneGap which we eventually published to Android and iOS.

    I built a notification/announcement system for the new library built in the South African Department of Industry and Trade's Johannesburg offices. I built a desktop server with Black Magic capture cards running on Ubuntu Linux with a custom application written in PHP that delivered media to the 10 odd televisions in the library.

    For some additional business, my colleague designed and I developed custom WordPress themes for ThemeForest.

    We were selected by Microsoft to join their BizSpark tech incubation programme and were mentored by leaders in their respective fields while also receiving startup resources from Microsoft. We also took on a home schooled intern who I mentored while he skilled up to become a software developer.

    My biggest idea and the one I wanted very badly to build was an augmented workspace. The idea was that you would sit at your desk with your computer in front of you, but by way a pair of glasses or headgear of some sort have virtual storage spaces and pin/white boards "physically" around you effectively doubling your workspace. At the time there was nothing like this and because of the need to research and develop the complex hardware, it seemed out of reach for a small startup. Now obviously this is a reality.

    HTML CSS SASS PHP Laravel CakePHP WordPress JavaScript AngularJS jQuery Node.js Express.js Python Flask MySQL MongoDB SQLite Ionic Apache npm gulp Grunt Git Vagrant Bash Linux Bitbucket Adobe Illustrator Adobe Photoshop
    2013/08 - 2014/12

    Full Stack Web Developer

    Flint Studio - Morningside, Gauteng, SA
    • Develop systems and integrations using PHP (Laravel, CakePHP and vanilla).
    • Develop custom themes and websites using PHP and WordPress.
    • Work closely with designers to implement custom designs as per client spec.

    Wanting experience at a company that worked on many varied projects often, I joined a digital agency called Flint Studio.

    Here I learned a lot about custom WordPress theme and plugin development and worked with designers to bring clients' requirements to fruition. Some of these included custom written:
    • calendar plugins;
    • lead management plugins;
    • business branch info plugin that integrated with Google Maps;

    We worked with big names such as BullenLowe SA, Tiger Brands, Iliadin and Nandos. We assisted on and led their own as well as their clients' digital projects.

    I also learned CakePHP - the framework Flint relied on to build "heavy-lifting" webapps. One such app that I worked on was a financial and investment information portal for companies based in Africa.

    I mentored two junior developers and to this day am still in contact with both - one still seeking mentoring from time to time and the other has surpassed me in specialising in PHP.

    My most enjoyable project was building a Space Invaders clone for Iliadin. I chose Cocos2D and JavaScript to create the pixel art themed mini-game.

    HTML CSS SASS Less PHP Laravel CakePHP WordPress JavaScript jQuery MySQL Apache npm gulp Grunt Bash Linux Adobe Illustrator Adobe Photoshop
    2012/07 - 2013/07

    Full Stack PHP and JavaScript Developer

    Satinsky - Faerie Glen, Gauteng, SA
    • Rewrote internal and client-facing web systems from Perl into PHP (CodeIgniter) and JavaScript.
    • Built mobile app for Android (native), iOS (native) and BlackBerry (PhoneGap).
    • Built email campaign management utilities in Python.
    • Linux administration (CentOS).

    When I joined Satinsky I was tasked with the mammoth task of choosing a PHP framework with which to rewrite their Perl client-facing and internal call centre systems and explaining to the CTO why I thought it would be the best for the job. I chose CodeIgniter and explained that even though I liked the look of Laravel, it was very new and may not be mature enough; further, from my research CodeIgniter was the fastest at the time and would suit them the best as their business processes, which worked with millions of Rands and tens of thousands of clients, could not be bogged down by slow systems and tools.

    I learned CodeIgniter in a week and using it, Bootstrap, jQuery and MySQL rewrote their systems. This client-facing system allowed clients to log in, view their profiles, payments status', upload the required photos of their cars monthly, download documents from and communicate with admins.

    I built onto the systems by adding:
    • smaller promotional campaign "once-off" applications which saw tens of thousands of leads;
    • a responsive portal for assessment agents to go out into the field and capture vehicles' info and photos;
    • I started developing a bidding platform for buyers and sellers to come together and buy and sell used vehicles but the project was put on hold;
    • I built a custom WordPress site for one of their brands;
    • I built Python tools for managing email campaigns which sent and managed hundreds of thousands of emails by distributing their load to multiple clients running on Linux servers;

    Later I was tasked with creating a mobile app that would communicate location specific advertisements and offers from local businesses to the user from a central server. I solved this by implementing an algorithm that calculated the user's location within a ring-fenced area and notified them of relevant ads and offers. In order to use the GPS effectively on the two most important platforms, I created and Android app in Java and an iOS app in Objective-C. In order to reach as many users as possible we decided to also include BlackBerry, for which I ported the app over to Cordova.

    I mentored a junior developer who was taking the leap from a designer and front-end developer to a full stack developer.

    HTML CSS SASS PHP CodeIgniter WordPress JavaScript Perl Java Android Objective-C iOS Python jQuery MySQL Apache Bash Linux Bash
    2010/01 - 2012/06

    Owner/Web Designer/Web Developer

    dragonFli designs - Benoni, Gauteng, SA
    • Built websites and systems for various clients in PHP, JavaScript, HTML and CSS from scratch.
    • Maintained and installed networks, workstations, servers and backup solutions.

    In January 2010 I decided to follow my passion for computers and programming and started my own web development/design business. My motto was "Fast, simple, custom code from scratch".

    I built websites in PHP and JavaScript from scratch with an emphasis on accomplishing as much as technologically possible with CSS before delegating the task to JavaScript.

    Among the many sites were:
    • a custom designed pet kennels site;
    • a media-rich site for a freshwater aquatic service company along with a Magento store with the same theme/design;
    • a debt collector's client-facing system;
    • a telecoms and networking company's website;

    Most of these sites had a range of custom PHP scripts such as guest books, emailing capabilities and captcha protection custom written.

    HTML CSS PHP JavaScript jQuery Perl MySQL Apache Linux Adobe Illustrator Adobe Photoshop

    Education

    Tertiary

    2022
    Bachelor of Science: Computer Science
    University Of The People - Pasadena (Distance)
    2004
    A+ Hardware and Software
    CTU Training Solutions

    Certificates

    2021/08
    2020/04

    Secondary

    1997 - 2001
    Senior Certificate/Matric
    Willowmoore High School
    • English (HG)
    • Afrikaans (HG w/ Distinction)
    • Mathematics (HG)
    • Science (HG)
    • Technical Drawing (HG)
    • Technika Electrical (HG)
    • Computer Studies (HG w/ Distinction)

    Interests

    Computers, electronics, digital privacy, computer and network security and administration, HAM radio, programming, creating video games, playing video games, learning new natural and formal languages.