Warren van Niekerk

Expert in Algorithmic Trading Systems | Machine Learning Specialist

Hermanus, Western Cape, South Africa

About

With over two decades of experience and expertise in more than a dozen programming languages, I specialize in architecting cloud-based solutions and machine learning models that solve real business challenges. From developing high-frequency trading systems to optimizing legacy architectures, I create high-impact software that drives results. Whether reducing operational costs, improving scalability, or delivering actionable insights, I help organizations unlock their full potential.

Experience

  • Senior Software Engineer at Sentient Software c.c.
    Aug 2023 - Present · 2 yrs 11 mos

    Spearheading the development of machine learning models to predict market trends and optimize trading strategies. Architecting cloud-based solutions that scale to meet the demands of high-frequency trading environments. Utilizing Python, TensorFlow, and PyTorch to create and deploy predictive models with improved accuracy.

  • Software developer at Bank of America Merrill Lynch
    Dec 2012 - Jul 2023 · 10 yrs 8 mos

    Machine Learning & Quantitative Analysis: Participated in Bank of America's annual Codeathon machine learning challenge, developing models to optimize trading decisions. Key projects included predicting ETF positions based on GICS classification and proprietary data, and determining whether to warehouse or liquidate positions. High-Frequency Trading Optimization: Identified and resolved critical bottlenecks in trading software that caused system lock-ups during peak market activity. Redesigned the software to handle increased loads, completely eliminating performance issues, and rationalized legacy systems, reducing the development team size from six to two, and significantly cutting costs. Legacy System Re-Architecture: Led the re-architecture of outdated Equity Desk applications originally written in Visual Basic, transitioning to a robust, object-oriented C# codebase. Played a key role in identifying reusable patterns that accelerated development, resulting in a 90% reduction in defects and vastly improved performance and stability. Database Optimization: Addressed data quality issues by normalizing databases and refining the indexing scheme. Optimized batch processing, reducing the runtime of a critical morning batch job from over 60 minutes to just 1-2 minutes, thereby eliminating delays and reducing the support team's workload. Mentorship & Training: Developed and delivered an internal course on object-oriented design using C#, incorporating the team's active projects as case studies. Engaged in pair programming and design inspections, which ensured the application of modern design principles and contributed to the successful and timely completion of all projects.

  • Software developer at PAYM8
    Mar 2009 - Oct 2011 · 2 yrs 8 mos

    In-Store Airtime Fulfillment: Designed and implemented the airtime fulfillment service for the Ellerines Group, integrating with MTN, Vodacom, and Cell-C gateways. This system facilitated seamless in-store airtime purchases, enhancing customer experience and operational efficiency. Fraud Detection: Developed and deployed anomaly detection systems to identify and prevent credit card and airtime fraud, successfully spotting abnormal procurement patterns. This system was instrumental in identifying perpetrators and bolstering the security and trust of the payment services. System Resilience: Enhanced the resilience of the Collections early debit order payments system by decoupling the management system from batch transmissions and implementing advanced data corruption detection and retry mechanisms. Collaborated with the Namibian infrastructure team to resolve root communication issues, ensuring system reliability despite third-world telecom infrastructure challenges. MTN payD Integration: Developed the first successful integration with MTN payD, a groundbreaking initiative that expanded Paym8’s service offerings and market reach. USSD Campaigns: Streamlined the deployment of USSD marketing campaigns by creating an HTML-based system for menu design and code generation. This innovation reduced the time-to-market for new campaigns from weeks to almost overnight, significantly boosting the company's marketing agility. Operations Empowerment: Established a fault resolution procedure to enable the operations team to handle telecom failures independently, reducing downtime and dependency on development resources.

  • Software Developer at CyberPro Consulting (Pty) Ltd
    Jan 2009 - Mar 2010 · 1 yr 3 mos

    Autosafe Transmission System: Seconded to SBV, a cash-in-transit company, to implement the Standard Bank Autosafe transmission system. This system validates and accepts cash, providing instant clearance in customer bank accounts as soon as the safe is lifted for transport to the cash processing center. System Re-Design: Re-designed the Autosafe system and normalized the database to address numerous faults inherent in the legacy system. Redeveloped the system in C# using object-oriented best practices, significantly improving its reliability and performance. Challenge Management: Faced with a poorly written, bug-ridden legacy codebase and tight deadlines, I worked extensive overtime, including all-nighters, to prevent potential operational issues. This dedication ensured a smooth rollout with minimal operational problems, safeguarding the success of the project.

  • Quality Assurance Manager at Cura Software Solutions
    Dec 2006 - Dec 2008 · 2 yrs 1 mo

    Quality Overhaul of CuraRisk: Took charge of improving the quality of Cura's flagship operational risk management system, CuraRisk. Upon discovering over 120 critical bugs, I conducted extensive manual testing and insisted on delaying the release until all issues were resolved. Despite facing significant pushback, my decision led to the creation of the "Golden Version," a release renowned for its robustness and quality. Process Improvement: Established a comprehensive testing framework and test cases, and introduced mandatory design and coding inspections prior to testing. These improvements allowed the development team to focus on future releases without being bogged down by support and operational issues. Automation & Continuous Integration: Implemented automated testing for the most time-consuming tasks and set up a continuous integration system, further enhancing the efficiency and quality of the development process. Development Contribution: In addition to quality assurance, I contributed directly to the software development of the CuraRisk system, further ensuring the delivery of high-quality software. Leadership & Change Management: Successfully revamped the software development process to include critical quality gates, resulting in major improvements in the overall release quality and solidifying the team's ability to deliver reliable and robust software.