Cape Town, Western Cape, South Africa
I have worked as a professional software engineer for 10+ years. I have outstanding problem solving skills and I understand the complexities of large systems after studying such systems briefly. I am passionate about software development and I take pride in developing effective and efficient solutions, adhering to best practices and software engineering principles like SOLID. During my career I have consistently been involved with high value projects critical to the business vision and mission. I have been in leadership positions with these projects and have been successful in my role. I have a quality mindset, continuously looking to improve and be more efficient in our processes and procedures. To become 100% more efficient is difficult to achieve when attempting to do 1 task 100% better, but easily achievable if you can do 100 tasks 1% better.
Technical Lead in the liquidity services domain and point of contact for product and engineering management and competency leads.
At Luno I work as part of the liquidity services team, responsible for integrating with external exchanges and liquidity providers to manage the placing of orders and fulfilment of quotes to buy or sell cryptocurrencies. We are also responsible for recon, float management, deposits and withdrawals, settlements, and summary and revenue reports to name a few responsibilities. The tech-stack consists of the Go programming language, with an event-driven, microservice architecture relying on Protocol Buffers and gRPC for communication between services. Streaming events to services for handling. The services are hosted in Kubernetes clusters and further makes use of the AWS stack.
While still looking after the technical aspects of the enterprise services at Porcupine Union, the team lead role is a line management role. While still having technical lead responsibilities, other responsibilities include roadmap and priority planning, delivering projects, looking after team members' career growth, and appointing new team members as needed.
Porcupine Union took on a project to expand the business of King Price Insurance into the European market under the Easy brand. To achieve this, we adapted our architecture to a layered approach, and hosted our systems in the cloud. I have been closely involved with the design and development of this layered architecture. To ensure our systems are maintainable and of high quality I adopted a test-driven-design approach where developed code is tested by solitary unit tests - testing the functionality of a method in isolation, sociable unit tests - testing a vertically sliced feature in a layer, and integration tests - testing a feature over all the layers. The REST API's developed to expose business functionality in this layered architecture is designed as .NET Core/.NET 6 Web API's using principles like SOLID and HATEOAS. The API's is split according to business domains, and hosted as Service Fabric applications. The code is stored in Azure DevOps repositories and deployed using Azure DevOps build and release pipelines. As Technical Lead it was my responsibility to build the pipelines required to deploy our API's, integrate with Service Fabric, run all required tests and setup branch and pull request policies and CI/CD triggers. Our API's are exposed through the Azure API Management gateway, I have gained extensive knowledge about APIM and optimized our SDLC by implementing steps on our release pipelines to automate the process of exposing API's on APIM and configuring the APIM API's accordingly. A new build of an API is deployed to APIM as a new revision of the API and automatically tested using a Postman test collection.
When I joined King Price Insurance I was given the responsibility of developing a new self service portal where existing clients can manage their policies, log claims and get quotes for products offered by King Price. Throughout my time as Tech Lead of the team building this, I proved myself as a leader, as such the web team responsible for maintaining the King Price website was merged with my team. King Price Insurance follows the scrum methodology of software development, work items are vertical sliced to deliver smaller, tested work items, ready for production at the end of a 2-week sprint. The responsibilities of a tech lead involve the planning of the team backlog and team sprints, scheduling of team members and work items in each sprint as well as code-reviews of all pull requests across all teams. Integration development involves full-stack development, amongst other, the development, testing and documentation of API's integrating with all the building blocks of the insurance systems and databases.
As team lead for the Intelligence Suite my responsibilities included coordination of team activities for the team consisting of developers, testers and a business analyst as well as coordinating with the product owner and senior management regarding roadmap planning, sprint planning, backlog management and progress on deliveries. Further responsibilities included system design and documentation, software development and developer testing as well as code reviews for features developed by team members to ensure coding standards are adhered, code is of high quality and the feature development are in line with the product plan.
As a senior software developer at GEW Technologies I am a full-stack developer in the Java technology stack, for the Electronic Warfare domain. I have developed end-user applications in Java 6, 7, 8 and 11. Both Swing and JavaFX applications. One of the programs I have developed at GEW is a proprietary ETL tool used for data fusion to accommodate the analysis of data from various sources.
In a collaboration attempt by some of the developers at GEW I formed part of a team taking on DevOps responsibilities within the software development department of GEW Technologies. This team of developers focused primarily on the adoption of technologies to support the SDLC. The DevOps process included the adoption of technologies such as Maven, Git, Jenkins and others with proprietary legacy systems with the goal of improving the efficiency of the SDLC to gain developer productivity.
Out of interest in the field I participated in the OST Kit Alpha Phase II: Proof of concept developer challenge. I developed a Proof of Concept application integrating with the OST API to demonstrate that the blockchain can be used to track the history of files shared between users in the cloud