RAHUL KAPOOR

Software Engineer | Johannesburg, South Africa

About Me

Rahul Kapoor

I am a Software Engineer holding a master's degree in computer science from the University of Pretoria. Skilled in full-stack development, cloud computing, and machine learning, I enjoy solving complex problems and continuously seek to enhance my skillset. Additionally, I enjoy both teaching and reading. This site is intended to be an enhaned version of my CV / resume, with some additional information about myself.

Contact Me

Experience

BBD (2 Years)

BBD is a multinational IT consulting firm, tasked with managing projects for a varied clientele across the logistics, finance, insurance, and telecommunications sectors. With offices situated in South Africa, the Netherlands, India, the UK, and Portugal, BBD operates on a global scale.

Software Engineer

January 2024 - Present

At present, the bulk of my time is dedicated to the same client software with which I engaged last year concurrently with my graduate program. This client relies on a tailored web application for logistics management, for which we oversee the entire technological infrastructure. The frontend is powered by Angular with Typescript, while the backend leverages .NET/C# in conjunction with a Microsoft SQL Server database. Hosting is facilitated within the AWS cloud environment. Furthermore, the client operates across multiple locations, each equipped with Windows PCs. We've developed an application using WPF that seamlessly integrates with the logistics system. This ongoing project has afforded me invaluable insights into full-stack development and managing integration across diverse software components.

In September 2024, I presented a talk for BBD's annual Escape technology conference, one of the largest conferences in South Africa. The talk, titled Evolutionary Engineering: Optimising Software Projects with Genetic Algorithms is viewable on BBD's YouTube channel.

Junior Software Engineer

January 2023 - December 2023

During my first year, I took part in a graduate program which proved to be immensely enriching. It offered exposure to a diverse array of programming languages and frameworks. Moreover, it improved my teamwork skills, as well as my ability to work under pressure with stringent deadlines. The curriculum of the graduate program encompassed many subjects, including databases (both relational and non-relational), C#, Java, web development, security protocols, testing methodologies, design patterns, and data science. Additionally, I worked with a client in conjunction with the grad program, where I worked on a web application for logistics management, described above.

Education

MSc Computer Science (Pass with distinction), University of Pretoria

Class of 2023

My master's degree focused on Artificial Intelligence and Machine Learning (AL/ML). I authored a dissertation where I made use of Genetic Algorithms (GAs) and Generic Programming (GP) to automate the design process of a convolutional neural network (CNN). Additionally, I introduced a variant of Genetic Programming known as Structure-based Genetic Programming (SBGP), which proved to be more effective for the same task, surpassing both GAs and traditional GP. Fortunately, this research led to the publication of one conference paper and one journal article. I owe much of my success to my supervisor, Prof. Nelishia Pillay, whose invaluable guidance contributed significantly to achieving these results. Prof. Pillay also co-authored the paper and article:

BScHons Computer Science, University of Pretoria

Class of 2021

My honour's degree served to consolidate and enhance my foundational knowledge in computer science and software engineering acquired during my undergraduate studies. The subjects I pursued included Artificial Intelligence, Image Processing, Data Mining, Digital Forensics, and Computer and Information Security. As part of the curriculum, I undertook a research project from a range of topics. I researched machine translation using transformer models, focusing on developing a miniature translation program capable of translating English into Afrikaans and isiZulu. This involved making use of publicly accessible parallel corpora (datasets) to train the translation program.

BSc Computer Science, University of Pretoria

Class of 2020

During my undergraduate degree, I had the privilege of learning a multitude of skills and techniques from exceptionally smart teachers. In my final year, I took subjects such as Software Engineering, Artificial Intelligence, Computer Networks, and Database Systems. Additionally, I focused on analytical subjects like Stochastic Processes, Multivariate Analysis, and Time-Series Analysis.

As part of my degree requirements, I undertook a final year project that required me, as part of a team, to build a piece of software for a corporate client. I was the team leader, and together, my team and I built a web application using Reinforcement Learning (an AI technique that allows a program to adjust its parameters over time given new information, i.e., learn over time) to control traffic lights in a simulated environment. This environment was based on a real stretch of road with multiple intersections. Data, such as car numbers, car types, and frequency of cars during regular vs. peak hours, was collected for initial training and randomly generated thereafter. This application, called LightBot, was well-received by our lecturers, earning me a distinction for the course.

In my earlier years, I concentrated on core computer science principles such as data structures and algorithms, concurrent programming, and computer organization and architecture, which provided me with a solid foundation. In my first year, I also took physics and business management as minors.

National Senior Certificate (NSC), Maritzburg College

Class of 2015

I graduated from high school with seven distinctions and received academic honors in my final year. I took the following subjects in high school: English Home Language, Afrikaans First Additional Language, Mathematics, AP Mathematics, Information Technology (Computer Programming), Life Sciences (Biology), Physical Sciences (Physics and Chemistry), and Accounting.

Skills

Programming Languages

C#

JavaScript / TypeScript

SQL (MSSQL)

Python

Java

C++

HTML

CSS

Libraries and Frameworks

Angular

React

TensorFlow

WPF

Cloud Computing

AWS Certification – Solutions Architect Associate

Validation Code: ERYPHLWDQ1R11YCT

Verify Credential

Miscellaneous

Windows

Mac

Linux (Ubuntu)

IDE's: Visual Studio, VS Code

Microsoft Office

Prompt Engineering with ChatGPT

Activities