Projects

A mix of full-stack, embedded ML, and systems work — the common thread is making something actually run end-to-end. Some of these have public repos; a few are from coursework and live only in my archive.

Personal Health-Tracking Web App

Full-stack · self-hosted

A full-stack web app for tracking pulse, blood pressure, weight, and free-text notes — with interactive charts and one-click CSV export for sharing with healthcare providers.

  • Provisioned a Hetzner Cloud VPS and configured Nginx as a reverse proxy with HTTPS on a custom subdomain.
  • Modelled the data layer in Appwrite (collections, access rules, auth) behind a lightweight backend API.
  • Interactive charts help users spot trends over time.
Full-stack Hetzner Nginx Appwrite HTTPS

pto-kernels

Contributor · C++ · Ascend NPUs

High-performance custom kernels for Huawei Ascend NPUs, built on the PTO (Parallel Tile Operation) virtual ISA from Ascend CANN. Tile-level operations for efficient, composable kernel development. I contribute to the upstream project as part of my work at Huawei Research.

  • C++ kernel sources with Python bindings, packaged as an installable wheel.
  • Build system via CMake; kernels target the Ascend AI processor family.
C++ CANN AscendC PTO-ISA

plex-discord-rpc

Maintained fork · Go

A cross-platform Discord Rich Presence integration for Plex Desktop — shows what you're watching as your Discord status. No external dependencies. I maintain this fork since the upstream has gone quiet.

  • Cross-platform, single-binary Go build.
  • Customizable via a client_id parameter for swapping the Rich Presence assets.
Go Discord RPC Plex

Keyword Spotting on a MAX78000

Coursework · embedded ML · quantization

A keyword spotting model trained on Google Speech Commands v2 and quantized to fit on a resource-constrained microprocessor.

  • 93% accuracy on Speech Commands v2.
  • Reduced model size to 173 KB via 8-bit quantization.
  • Deployed on the MAX78000 with 1850 µs inference time.
PyTorch Quantization MAX78000 TinyML

MIPS Architecture Simulator in C

Coursework · systems

A MIPS simulator written in C, supporting custom instruction execution, cache simulation, and a memory hierarchy — built to study real performance trade-offs.

  • Integrated L1 and L2 caches, instruction prefetching, and a simulated processing-in-memory (PIM) architecture.
  • Configurable cache policies and stall handling for realistic system-level behaviour.
C Computer Architecture Cache Hierarchies PIM

Sentiment Analysis with DistilBERT

Coursework · NLP

A DistilBERT-based sentiment classifier fine-tuned on the IMDb dataset, with tokenization and preprocessing via Hugging Face Transformers.

  • 87% validation accuracy on IMDb.
  • Hugging Face tokenizers + DistilBERT backbone.
PyTorch DistilBERT Hugging Face NLP

CIFAR-10 Image Classification

Coursework · computer vision

An image classification model trained on CIFAR-10 with preprocessing and data augmentation to improve generalization.

  • 98% accuracy on CIFAR-10.
  • Augmentation pipeline tuned for training stability.
PyTorch Computer Vision CIFAR-10