Side Projects

Programming

Building automation tools and data solutions that improve healthcare workflows and solve real-world problems.

Abstract systems and automation workflow
Mindset

How I Build

I approach programming the same way I approach clinical care—start with the problem, understand the context, and build solutions that actually work for the people using them.

Most of my projects emerge from real frustrations in healthcare: repetitive tasks that consume valuable time, data scattered across systems, or information that could be more accessible. I focus on practical tools that provide immediate value rather than feature-rich applications that never get finished.

Portfolio

Projects

A selection of tools and applications I've built

Clinical Records Digitization Pipeline

Automation

Problem: Large volumes of legacy paper documents containing sensitive clinical data needed to be digitized and made searchable within the EMR system, but manual data entry was prohibitively labor-intensive.

Solution: AI-powered document processing pipeline using OCR and open-source LLMs to extract, structure, and format legacy clinical data for EMR integration.

PythonolmOCR 2DeepSeek-R1Data Processing

Patient Scheduling Automation

Automation

Problem: Manual scheduling causing double-bookings and inefficient time slot utilization.

Solution: Automated scheduling system with conflict detection and optimization algorithms.

PythonGoogle Apps ScriptGoogle Calendar API

Rehabilitation Outcome Tracker

Data

Problem: Difficulty visualizing patient progress over time using scattered paper records.

Solution: Data dashboard for tracking and visualizing rehabilitation metrics and outcomes.

TypeScriptReactChart.jsNode.js

Clinical Documentation Assistant

Scripts

Problem: Repetitive documentation tasks consuming significant clinical time.

Solution: Template-based documentation tool with smart text expansion and common phrase library.

JavaScriptChrome ExtensionLocal Storage

Patient Exercise Video Library

Other

Problem: Patients forgetting home exercise programs after discharge.

Solution: Curated video library with QR-code linked exercise sheets for patient take-home.

Next.jsTailwind CSSVercel

Multi-System Data Sync Tool

Data

Problem: Patient data scattered across multiple clinical systems requiring manual cross-referencing.

Solution: Read-only data aggregation tool for unified patient view during assessments.

PythonREST APIsSQLite

Batch Report Generator

Automation

Problem: Creating monthly caseload reports manually was tedious and error-prone.

Solution: Automated script for generating standardized monthly statistics and reports.

PythonPandasOpenPyXL

Wholesale Meat Price & Availability Tracker

Data

Problem: During the pandemic, meat shortages and price volatility made it difficult for consumers to plan purchases and find available products at reasonable prices.

Solution: Automated web scraping and data analysis tool to monitor meat availability and pricing trends across GTA wholesalers.

PythonSeleniumPandasNumPyMatplotlibSQLite

ProtonMail Bulk Email Automation

Automation

Problem: Need to send hundreds of customized emails through ProtonMail to connect parents of children with autism to Ontario Autism Program services, but ProtonMail lacked traditional API access for programmatic sending.

Solution: Selenium-based automation tool with dynamic templating system to send personalized emails at scale through ProtonMail's secure interface.

PythonSeleniumSQLite

ESP32 LED Matrix Status Dashboard

Other

Problem: Need for at-a-glance visibility into server status, outages, and key information without requiring a computer or phone.

Solution: Custom IoT LED matrix display powered by ESP32 that pulls real-time data from local Express.js endpoints.

ESP32C++Express.jsNode.jsREST APIs

GPU Stock Availability Checker

Scripts

Problem: During the GPU shortage, finding available graphics cards required constant manual checking across multiple retailers.

Solution: Automated web crawler that monitors retailer websites for GPU availability and sends alerts when stock is detected.

Node.jsnode-fetchAxiosWeb Scraping

LoRaWAN Off-Grid Server Monitor

Other

Problem: Traditional monitoring solutions fail when WiFi and cellular networks are compromised during outages, leaving administrators blind to server status during critical events.

Solution: Battery-backed LoRaWAN transmitter system that operates independently of internet infrastructure to monitor and log server uptime.

LoRaWANEmbedded CESP32Battery Management
Tech Stack

Tools & Technologies

Languages, frameworks, and tools I work with

Languages

PythonTypeScriptJavaScriptSQLC++Embedded C

Frameworks

ReactNext.jsNode.jsExpress

Tools

GitVS CodeDockerREST APIsSelenium

Data

PandasChart.jsSQLiteNumPyMatplotlibExcel Automation

Cloud

VercelGoogle CloudAWS BasicsLoRaWAN

AI Models

DeepSeek-R1Open Source LLMsOllamaAnthropic Claude

Have a Project Idea?

I'm always interested in discussing automation opportunities and technical challenges in healthcare.