I am a Software Engineering Student at McGill University with a passion to learn and challenge myself.
- Fashion Store: E-commerce platform written using a Java Springboot backend and React on the frontend. Built in the scope of ECSE 321 - Introduction to Software Engineering at McGill University, taught by Prof. Katrina S. Poulin.
- Game of Life ARMv7: Implementation of Conway's Game of Life for a ARMv7 DE1-SoC board written in C and ARMv7 assembly. Built in the scope of ECSE 324 - Computer Organization at McGill University, taught by Prof. Brett H. Meyer.
- Pixel Sorter: Pixel sorting using the PPM image format, written in C.
- Interprelator: Interpreter-like implementation of a calculator in C.
- Courier Robot: Autonomous courier robot written in Python. Designed in the scope of ECSE211 - Design Principles and Methods at McGill University (Fall 2025).
- Cheese Manager System: Cheese manager system following the Model-View-Controller (MVC) model in Java, using JavaFX, Umple (a UML-based language), and Gherkin/Cucumber. Built in the scope of ECSE 223 - Model-Based Programming at McGill University, taught by Prof. Gunter Mussbacher.
- Monkeese: An interpreter for the Monkey programming language, following Thorsten Ball's book Writing an Interpreter in Go.
- Network Simulator: Simple network simulator using Go channels to simulate communications and Dijkstra's algorithm for routing between nodes.
- Messaging: Unfinishied real-time messaging platform written in Go. Wrote the HTTP, WebSocket and JWT protocols from scratch.
- KV: Distributed key-value store following the official Elixir tutorial for Mix, OTP.
- Chess: Chess, using a Python Flask backend and a React frontend. Built in the scope of Programming Techniques and Applications at Marianopolis College, taught by Prof. Robert Vincent.
- Go Tmux Sesisonizer: Tmux sessionizer written in Go. Inspired by the Primeagen's tmux-sessionizer.
- Dotfiles: My dotfiles for NixOS, tmux, Neovim, Ghostty, Sway, Waybar, Rofi, ...
- vibes.nvim: Neovim plugin to play music on Youtube.
- cmd-macro.nvim: A terminal manager for Neovim with command macro keybinding.
- surf.nvim: Neovim plugin to search on the web.
- embrace.nvim: Neovim text surround plugin.
- md2docx: A simple and opiniated tool to convert Markdown into a DOCX file, written in Elixir.
- McGill-Minerva-Calendar-Sync: Python script that parses the student course calendar from Minerva (student portal for McGill University) and adds events to your Google Calendar.
- International Joint Testing Exercise: Advancing methodologies for agentic evaluations across domains jointly conducted by participants across the International Network for Advanced AI Measurement, Evaluation and Science, including representatives from Singapore, Japan, Australia, Canada, European Commission, France, Kenya, South Korea and the United Kingdom. The report can be found on arXiv.
- tcVAE-Fusion: Variational Autoencoder with Temporal Condition for Effective Shape-based Calcium Imaging Neuron Registration. The paper is published in proceedings of the 2023 IEEE International Conference on Bioinformatics and Biomedicine (BIBM).
- Reddit Depression Analysis: Using Machine Learning and Deep Learning Models for Sentiment Analysis and Depression Detection on Social Media. This project was done in the scope of the STEM Fellowship 2024 National Inter-University Big Data & AI Challenge.
- Baseutils: Set of basic utilities in C, such as arena allocators, argument parsers, logging, ...
- Euterpe: A music playlist handler.
- Compiler: Compiler written from scratch in C.



