Web Developer2017 - PRESENTMine Tech Services
- Created an interactive mapping website to visualize the data generated by mining vehicles on open pit mines. Includes near-real-time animations of the entire fleet as well as numerous features to understand health events, site inspections, speeding incidents, etc.
- Built a data management component using C# to easily manage Ajax calls from a website to a SQL database.
- Designed normalized SQL data structures to handle the interactions on the website and to facilitate reporting.
- Created a user management module to secure the site and ensure that user activity can be reliably reported on.
- Built a task management module where work requests can be made from the interactive map and distributed to the right people. Includes all the features needed to manage tasks from beginning to end.
- Developed an administration application to manage the users and the security context.
- Created a highly interactive dashboard using D3 to visualize the complex data returned by the transponders on mining equipment.
React Developer2021 - 2021Shanbohogue Corp.
Technologies: React, D3.js, React Redux
- Used the FlexLayout React component to enable moving components around on the UI.
- Created a heatmap component with D3 to render hundreds of thousands of points instantaneously with user interaction. This was done by integrating D3 with canvas.
- Created a configurable D3 bar chart component to improve the performance of an existing feature.
- Got heatmap component to act as a data filter for other components so that any zoom or brush events would affect the other visualization components to show visible data only.
- Developed an app using React and D3 that visualized data for a large international trading company.
- Created customized D3 charts and mapping and selection components to be used within the project.
- Created data structures, SQL queries, and the API to access the data.
- Packaged the app in Electron for certain use cases.
- Productionized the app for deployment to the client. This app renders LTR for English and RTL for Arabic.
- Created a translation module to translate between English and Arabic based on the version selected.
Data Visualization Engineer2020 - 2020Moneyhub
Technologies: Amazon Web Services (AWS), Node.js, Presto DB, Material-UI, SQL, AWS Athena, AWS, D3.js, Recharts, React
- Created a series of React components based on Recharts to visualize data retrieved from AWS Athena.
- Built the web service using Node.js to access the data from Athena. This service created SQL on the fly based on user-defined parameters.
- Developed a Node.js module to prepare Athena data for optimal data retrieval as part of the daily ETL process.
- Created an application with Node.js and React to test my React components before they were uploaded to the live system. This application also simulated all the possible filters that users would be able to specify.
- Built custom charts with D3 and integrated them into the React components. All React components were functional components using React hooks.
- Suggested and created charts to highlight interesting aspects of the business.
- Cleaned up data on Athena and formulated an efficient method of data retrieval eliminating all data joins in real time.
- Created forms with Material-UI.
C# Engineer2019 - 2019Bula
- Supported an MVC application for Bula Law written in C#.
- Added new features such as tree structures to display company offerings.
- Managed virtual machines using the Azure interface.
- Worked with the integrated VS Azure source control to manage versions and deploy to Dev and Prod.
C# .NET Engineer2019 - 2019Bula Law
- Made numerous enhancements to an existing MVC web application.
- Created SQL scripts to manipulate complex data without losing integrity for bulk user activity.
- Performed system admin tasks on Azure portal.
Qlik Sense Expert2019 - 2019Bula Law
- Created an app to query an Azure SQL database via a C# API with various end points. I passed credentials to the appropriate connector to get an access token and then applied this to the post body of the subsequent HTTP requests to the API. This could only be done by coding in the load script. The retrieved data was then used to incrementally populate a bunch of QVD files which I designed in accordance with the visualization requirements.
- Built a load script to use Qlik Sense SQL to process the QVD raw data in ways required by the visualization. Some tricky workarounds were required because Qlik Sense does not support SQL window functions such as Rank().
- Created an SVG extension with D3 in order to satisfy a mapping requirement of Bula's, apart from putting together the basic building blocks for Bula to expand upon the charts I created.
- Managed the licensing, publishing, security, and task scheduling to create a fully automated system that gets updated every day.
- Built the ETL in a robust way so that any failures were handled without loss of data or the need for interventions.
D3 Developer2018 - 2018University of Colorado
- Created a data visualization using D3 that simulated a lava lamp effect.
- Created geographical data visualization using D3.
- Integrated D3 modules with React.
- Modified an existing API to access MongoDB with Node.js.
- Used Git.
SQL/Crystal Reports Developer2017 - 2018Space Machine & Engineering Corp (via Toptal)
Technologies: Crystal Reports, Microsoft SQL Server
- Created a Crystal Report with dynamically extendable columns for export into Excel.
- Created an SQL stored procedure to pivot data dynamically based off the Crystal Report parameter selections to support the report above.
- Created a number of Crystal Reports to be embedded within the E2 Shop software.
- Liaised with the E2 support staff to overcome limitations in the E2 Crystal integration.
Engagement Manager2014 - 2016Decision
- Created visualization extensions for SAP Lumira using D3.js.
- Created a maintenance-free table-driven ETL system using MS SQL Server linked servers. Deployed to four different clients with differing requirements.
- Created a SQL-based table-driven workflow rules engine to manage assets for a bank. Created the dynamic front-end in Flash player with AS3.
- Created a BI system for an online movie download site using PostgreSQL for the back-end, ETL, and data warehouse, and Tableau for the front-end visualizations. Data mostly derived from Google Analytics.
- Created numerous extensions for Xcelsius with AS3 and HTML5. These extensions were used to create a multitude of dashboards for a wide selection of clients.
- Satisfied the data visualization requirements of a multitude of different clients. This included database design, ETL, report writing, and data visualization.
- Managed development teams on-site on three occasions. The largest team I managed had three members.
Senior BI Consultant2009 - 2014Asyst Intelligence
- Modeled a dimensional data warehouse for an asset management company. Used SSIS for the ETL and SAP Business Objects to visualize and report the data.
- Created a geo-spatial dashboard system capable of rendering huge amounts of spatial data rapidly. Points changed shape, size, and color in response to questions asked of the data embedded within the KML. Shapes changed color and lines changed width, color, and style in response to questions.
- Gathered the requirements, created the ETL, designed and developed the data warehouses when required, wrote the reports, and satisfied the data visualization requirements of a wide variety of clients. Created dashboards on a daily basis.
SQL Technical Lead2006 - 2009Massana Technologies
Technologies: DTS, SQL
- Initiated and developed a system to manage the data transformations from the legacy “Venus” system to the new SAP system being developed by the city of Johannesburg. The system was required to process 30 TB of data in a limited window.
- Created applications to manage the extracts coming from the city, to manage the loading of data into SAP and to give an online view of all activity to the business on demand.
- Created a system to generate the purification logs to enable the city to identify data requiring purification.
- Did extensive data analysis to help all areas of the project to better understand the data and issues surrounding it. This includes an automated system to request and return test data for the testing team.
- Served as acting project manager for data for a couple of months until a SAP specialist was recruited.
Independent Contractor2006 - 2006Alexander Forbes Insurance
Technologies: SQL, VB.NET, Visual Basic
- Developed a self-contained component for integrating the quoting system with a large brokerage.
- Wrote a .NET version and wrote a migration script for another project.
Majority Shareholder2002 - 2005Nedbank (Client of Comvision)
Technologies: ASP, VB.NET, Visual Basic, SQL
- Wrote three modules for the collection system at Peoples Bank: a module to manage third-party external trace companies, a module to manage third-party attorneys, and a module to manage the handling of write-offs for the bank. All the modules were built on the Flux framework, which I developed for Comvision.
- Hired to give guidance to the MIS department at Peoples Bank. After automating the manual procedures in place and developing structures to generate and distribute reports throughout the organization, I negotiated a deal whereby Comvision supplied and managed resources to develop software for Peoples Bank.
- Oversaw the development and implementation of a collections system and an up-front segmentation system. Both systems leverage the intranet for the user interface and utilized the RDMS SQL Server to protect the data and enforce business rules. Both systems have become mission critical and are an integral part in the success of Peoples Bank. The credit checking system is responsible for assessing and processing loan applications. It comprises an out-of-process component to asynchronously query the Experion database and a system of parameter tables to manage application scoring and ensure a dynamic environment essential to the business.
- Created the debt collection system using a product called Flux, which is the property of Comvision and is a unique framework capable of developing complex workflow systems in a relatively short space of time. Flux excels at enforcing business rules for organizations whose business rules change frequently and sometimes dramatically.
Independent Contractor2000 - 2000ICS (UK-based Microsoft Service Provider)
Technologies: BASIC, SQL, Visual Basic
- Contracted out to the Drug Safety Research Unit (D.S.R.U.) on behalf of ICS. The D.S.R.U. maintains a database of medical case studies in an attempt to spot long term side effect in drugs.
- Created a workflow system to manage the input of data into the database. Because of the difficulty in deciphering the handwriting of those in the medical profession, the actual documents were scanned into the system and stored on the database. We used a product called Image Basic to allow users to zoom into and out of the stored images in order to decipher the handwriting and keep track of all the notes scribbled in the margins.
- Produced a series of stored procedures, which extracted the data and images for publication.
- Created a series of GUI screens to maintain static data and data relationships.
- Identified ways of speeding up the workflow system especially with regard to uploading large images. I eliminated unnecessary processing and significantly improved performance on both the front and back ends.
- Mentored the head of the DP department.
Independent Contractor1999 - 1999Harrods, Ltd.
Technologies: Microsoft Access, SQL, Visual Basic
- Eliminated deadlocks from the Harrods Sales Audit System arising from replication conflicts.
- Wrote a management reporting system to produce formatted reports and distribute them throughout the organization via an exchange server integrated with MS Outlook. The scheduler was written in VB and the reports were formatted in MS Access and distributed via Microsoft Exchange.
- Wrote a fully transactional cash management system to reconcile actual cash collected with expected trade. The bulk of the work involved writing stored procedures in SQL with some DBA work involving replication.
- Optimized SQL queries.
Independent Contractor1998 - 1999Honda UK
Technologies: Microsoft Transaction Server (MTS), SQL, Visual Basic
- Created ActiveX components for the Honda Company Cars system, primarily all of the overnight scheduled tasks managing feeds from a mainframe system and a back-end module of stored procedures to validate vehicle documentation for accounting purposes.
- Created a report writing system making use of the Excel object.
Independent Contractor1994 - 1997Automobile Association of South Africa
Technologies: SQL, Visual Basic
- Analyzed, designed, developed, and implemented a claim processing system for the AA.
- Trained staff to maintain systems written by myself prior to my leaving.
- Customized a product called Customer Ixchange for the launch of a new product within the AA.
- Analyzed, designed, developed, and implemented a call taking and vehicle dispatching system for the AA’s new state-of-the-art call center. The system integrated with a trunk radio network to communicate between the vehicles in the field and the control center.
- Analyzed a new membership system. Maintained and converted PRO IV-based software to SQL Server 6 and Windows NT 3.5.
Systems Analyst and Programmer1988 - 1992Huw Edwards Computer Systems
- Analyzed, designed, developed, and implemented a claim processing system for the Rand Mutual Assurance Company. During this time, I was hired out by Huw Edwards Computer Systems on a contractual basis to write the Rand Mutual System.