This is my CV. You can view a PDF version here.
Work Experience
Tech Team Lead at First National Bank (South Africa) | Nov 2022 – Present
In addition to the responsibilities of my previous role, I now also perform the following:
- mentoring the developers on my team
- taking full responsibility for the delivery of all projects assigned to our team
- managing production issues as they arise
- working on improving the efficiency of our tech stack and projects
- liaising with other team leads to standardize our tech stacks and processes
- significantly increasing documentation coverage for all tasks required of developers on the team
Software Developer at First National Bank (South Africa) | Aug 2015 – Nov 2022
In this position, I was engaged in the initial development, maintenance, and improvement of projects. Some of the projects for which I was personally responsible (initiation, development, completion) were as follows:
- converting all our projects (20+) from an Ant build system to Gradle
- converting all our projects’ (20+) VCSs from CVS or SVN to Git
Some of the applications in which I was involved along with my team were as follows:
- sales platform on the FNB app
- Java web application used both by the FNB call centre and as a CRM for sales teams
- USSD gateway software used for mobile banking
- lead management system (for BI teams, sales teams, third-party credit-rating agencies)
- SMS, data, and voice load testing application
- custom-built enterprise service bus
- third-party simulator application
- many third-party and in-house integration projects
Our main tech stack is comprised of the following:
- JBoss and/or Tomcat application server
- MySQL and MariaDB databases
- RHEL or CentOS
- JSF front-end (if applicable)
Software Developer, Java Trainer, and Consultant at ICT Worx | Feb 2013 – July 2015
This position entailed the following:
- maintenance of the company’s intranet (Java web application using RESTful web services, hosted on IBM WebSphere Application Server)
- use of Javascript and CSS to build the custom front-end for the company’s intranet
- provision of technology and skills training, including
- Java development
- front-end web development
- databases (DB2 and MySQL)
- JEE development
- performing code audits for the Reserve Bank of South Africa in a consulting capacity
Tech Skills
Programming languages
- Java: 11 years experience as a professional Java developer
- Python: about 5 years of casual usage (scripting and Pywikibot usage)
- Javascript: 2 years of professional front-end work
- C++ (Qt): completed various projects for undergraduate degree
- VB.NET: used for contract work for about 1 year
- Rust: used for small command line applications
- Lua: used for NeoVim config and Wikipedia module programming
Linux and command line tools
- Use of Linux as the OS on my professional and personal devices since 2013
- Proficient with most common Linux command line tools
Miscellaneous
- Editors/IDEs: IntelliJ IDEA, Eclipse, Vim
- Build automation: Jenkins, GitLab CI
- Online work collaboration: GitLab, JIRA, Confluence
- Networking: tcpdump, Wireshark, ss, netstat
- Databases: MySQL, MariaDB, H2, SQlite
- ORM: Hibernate
- Data presentation: graphviz, gnuplot
Certifications
- Oracle Certified Professional, Java SE 6 Programmer (1Z0-851)
Education
Tertiary
- BSc Computer Science (from the University of South Africa)
Secondary
- Cambridge International AS Level