Git
Skills for certificate:
Version Control
GitHub
GitLab
BitBucket
Git
This is the page displaying all the material related to Git. This can include projects, blogs, certificates, university modules and work experience along with sub-skills.
Material
Circus Discussions
For a final year university project, a social media platform was developed enabling users to form communities, start discussions, and comment on them. Tested on CRUD and software engineering principles.
Ringmaster Messaging
A custom back-end learning project involved creating a straightforward real-time messaging app. Users can chat one-on-one or in group chats, send text messages and images, view active users, etc.
Magician AI
A SaaS platform that leverages AI to enable users to generate various media types and have conversations. Developing this project allowed me to explore Stripe, Clerk authentication, and unique AI APIs.
Drumroll Music
My first major project using Supabase was a basic music streaming site. Users can upload songs, search and listen to music, as well as like the songs they enjoy.
Joker Notes
A note-taking app where users can sign up, log in, and reset passwords easily. It supports rich text formatting, image additions, and publishing notes publicly. Users alse organize notes into nested notebooks.
Quizmify AI
A platform for dynamic quiz generation. Users can test their knowledge with multiple-choice or fill-in-the-gap questions across various topics. With immediate feedback and score tracking, users enhance their understanding.
Sideshow Articles
To learn Supabase, I developed a simple website for reading and writing articles. Users can read, create, and delete articles. This project paved the way for using Supabase in subsequent projects.
Noodle
In my second year of university, my group and I started an open-source learning platform project, introducing me to full-stack development. This app helps students manage tasks, assignments, exams, and store notes and resources.
Symphony Translate Bot
A Symphony bot that translates messages in a Symphony chatroom using Language Weaver API. Replaces the old Translate Bot which was originally built using the outdated SDK. Much faster, more reliable, and easier to maintain and more features compared to the old bot.
Symphony CobaGPT Bot
A Symphony bot which interfaces with the Azure OpenAI API to generate text based on user input. This bot improves the workflow of users by providing quick responses to common questions and completing simple or repetitive tasks. This bot is a result of Commerzbank's initiative towards automation using AI.
Symphony Webhooks Bot
A Symphony bot that sends messages to a Symphony chatroom using Webhooks. This bot is used to send messages to a chatroom from an external source.
Symphony MessageML Bot
A Symphony bot for sending messages in Symphony using MessageML. This allows the bot to send messages with more formatting and interactivity similar to HTML.
Symphony Application Status Bot
A Symphony bot responsible for keeping track of various Commerzbank applications' statuses via ServiceNow. This allows users to monitor the status of select applications and subscribe to specific applications they are interested in.
Symphony Business Highlights Bot
A Symphony bot which compiles weekly business reports from various users and generates a summary of the business highlights for the week. Uses Azure Active Directory for managing permissions and access control.
Symphony Interactive Bot Example
A Symphony bot for learning how to create an interactive bot in Symphony. This bot is used to demonstrate how to create an interactive bot in Symphony. This was used to create documentation and tutorials for other developers.
Symphony Headless Bot Example
A Symphony bot for learning how to create a Headless Bot in Symphony. This bot is used to demonstrate how to create a headless bot in Symphony. This was used to create documentation and tutorials for other developers.
Flask Forum Backend
This is a custom backend for the first iteration of the discussion platform. This was created to learn how to create a custom backend using Python and Flask.
Flask Backend Demo
A simple Flask app to learn how to create a RESTful API. This was a foundational project to learn how to create a back-end using Flask. This was helpful when creating the back-end for the discussion platform.
Flask JWT Authentication
A simple Flask app to learn how to use JWT for authentication. This serves as a foundation to using JWT in other projects using Flask.
Django Authentication
A simple Django app to learn how to use Django with tokens for authentication. This serves as a foundation to using Django in other projects.
Auth0 Authentication
A simple Next.JS app to experiment with the Auth0 Authentication SDK. This does not use the new Next.JS 13 app router as it is not supported as of the time of making this demo.
Spring Data JPA Template
A template project for using Spring Data JPA with PostgreSQL. This was created for documenting how use SQL databases for our Spring Boot projects.
Spring Data MongoDB Template
A template project for using Spring Data MongoDB. This was created for documenting how use MongoDB databases for our Spring Boot projects.
Handwritten Digit Classifier
A handwritten digit classifier using built using a Convolutional Neural Network (CNN). Used various techniques such as data augmentation, batch normalisation, and dropout to improve the model's performance.
Adult Income Prediction
Comparing various classification algorithms to predict whether an adult earns more than $50,000 a year. Emphasis is on feature engineering, data preprocessing with One-Hot Encoding, and model optimization through hyperparameter tuning.
House Price Prediction
Comparing various regression algorithms to predict house prices in relation to the distance from the coast. Emphasis is on feature engineering, data preprocessing with One-Hot Encoding, and model optimization through hyperparameter tuning.
Custom Neural Network Classifier
Built a neural network from scratch to teach a Pacman agent. Used various techniques such as batch normalisation, dropout, momentum, learning rate decay and more to improve performance.
Machine Learning Algorithms
Practicing various algorithms and techniques. This includes supervised, unsupervised, and reinforcement learning algorithms, as well as feature engineering, data preprocessing, and hyperparameter tuning.
Reinforcement Learning Lab
Practicing various Reinforcement Learning algorithms and techniques. This includes Q-Learning, Deep Q-Learning, and Asynchronous Advantage Actor-Critic (A3C) algorithms.
Custom Q-Learning Agent
A custom Q-Learning agent learns to play Pacman. Required foundational Mathematics knowledge and understanding of the Q-Learning algorithm.
Machine Learning Assignment 1
Implementing algorithms from scratch such as the Nearest Neighbours algorithm. Requires an understanding of the Mathematics behind the algorithms and the ability to implement them.
Machine Learning Assignment 2
Be able to use and implement algorithms, with the Lasso and inductive conformal prediction algorithms as examples.
Machine Learning Assignment 3
Be able to use and implement algorithms, with the SVM, neural networks, and cross-conformal prediction algorithms as examples.
Machine Learning Labs
Implemented various algorithms and techniques learnt during the course, such as Nearest Neighbours, Conformal Prediction, Regression algorithms, data preprocessing, kernels, Neural Networks, SVMs, etc.
Computational Finance Assignment
Exploring valuation of options using methods like Black-Scholes, binomial trees, and Monte Carlo. Also includes theoretical aspects of put-call parity and financial arbitrage opportunities.
Machine Learning & Data Science Lab
Focusing on learning generative models, using third-party models and using advanced techniques. This includes techniques such as transfer learning, LLM Agents, and Generative Models.
Markov Decision Agent
Pacman agent plays to win the game while handling stochasticity in the movement of agent and ghosts. Uses Markov Decision Processes, Value Iteration and other enhancements.
Computer Vision Image Segmentation
Segmenting images using various techniques. Specifically, used models of biological vision systems such as Simple and Complex cells, and Gabor filters.
Computer Vision Quizzes
Solutions to quizzes where various low-level and mid-level vision techniques were covered. These techniques include edge detection, image segmentation, and image filtering.
REST Template Config
A library for Spring Boot allowing for greater configuration of proxies and SSL settings.
Markdown to MessageML Converter
A library for converting Markdown to Symphony's MessageML format. This was created because there was no existing library that could convert Markdown to MessageML. Especially useful for rendering responses from LLMs as they return messages in Markdown format.
Calculator
Simple calculator app built using Java as a Maven project. This was a second year Java assignment focused on software engineering methodologies. The project involved creating a calculator application, emphasizing the importance of proper version control procedures, test-driven development, documentation, and code quality assurance through linting and styling. The assignment highlighted the significance of following efficient software development processes rather than just focusing on the final implementation.
Leetcode Solutions
A collection of Leetcode solutions in Python. This is used to practice algorithms and data structures. They are also used to practice unit testing. CI/CD is also used to run the tests when merging to the main branch.
Searching & Sorting Algorithms
Jupyter Notebook containing various searching and sorting algorithms. Each algorithms is explained. All the algorithms are also compared to each other.
Osmos Game
A simple game built with SimpleGUI for a first-year university project. We manually implemented physics using vector theory and physics concepts, relying solely on documentation due to the lack of tutorials.
Automated Setup
A shell script which automates the setup of a new Linux machine. This is specifically for my Fedora install.