Skip to content
View MicrophoneAle's full-sized avatar
  • University of Waterloo
  • Waterloo, Ontario, Canada
  • 09:12 (UTC -12:00)

Block or report MicrophoneAle

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
MicrophoneAle/README.md

Hi, I'm Michael 👋

I’m a software engineer who enjoys making apps that bridge the gap between interests and clean digital systems. Whether translating real-world mechanics into code, or cleaning up messy data pipelines, I enjoy spending my free time with backend architecture, UI design and smart state management.


🛠️ What I’ve Been Building Recently

📚 Booky

A digital reading platform that reconstructs unstructured PDFs into typographically accurate, multi-device, two-page book spreads featuring full chapter navigation and custom layout controls.

Problem: PDF layouts are extremely chaotic data streams. I built a multi-phase extraction pipeline using pdfjs-dist and Tesseract OCR to structuralize raw text blocks. This handles complex layout anomalies—including stripping tracking artifacts, collapsing letter-spaced running headers, and executing localized OCR on image-based chapter banner plaques.

Testing: To ensure parser updates don't cause layout regression, I developed a node-driven automated testing harness that compares parsed node outputs against an established baseline of complex text and image-heavy documents.

🎹 PlayRight

A browser-based piano practice accelerator that parses raw MusicXML scores into interactive sheet music sheets paired with automated fingering prediction and dynamic keyboard tracking.

Problem: Standard sheet music lacks intuitive finger assignments. I engineered a cost-based dynamic programming solver that analyzes phrase boundaries and hand-span constraints to calculate optimal digit placements over complex chords.

Architecture: Designed a decoupled event processing architecture using a custom InputManager. This isolates high-frequency ASCII/MIDI hardware keystrokes from the core Zustand state machine, allowing the OpenSheetMusicDisplay (OSMD) canvas to highlight and scroll smoothly in sync with active performance thresholds.

✍️ Michael's Babbles

A secure, interactive digital journaling space built on a layered parchment framework featuring deep rich-text formatting, search indexing, writing prompts, and real-time statistics tracking.

Problem: Storing rich media content directly in a document editor can create bloated payloads that strain network requests. I extended the TipTap schema to intercept image insertions, dynamically validating file sizes directly on the client side to prevent database performance degradation.

Details: Implemented a non-blocking 10-second auto-save heartbeat loop coupled with a Prisma and PostgreSQL backend. Secured the entry lifecycle via Clerk authentication tokens to enforce read-only visibility for visitors while preserving write privileges for the owner.


🎲 Beyond the Commits

When I'm not staring at a terminal or working through LeetCode problems, you can usually find me doing a few other things:

  • Music: I love playing instruments. I spend a lot of time on the piano (which is what inspired PlayRight as I don't have access to a physical keyboard this co-op term) and I also play the trombone.
  • Reading: Massive fantasy worldbuilding is my not-so-guilty pleasure. I'm a huge fan of the works of George R. R. Martin (Winds 2027??), and have recently been getting into the works of Brandon Sanderson and Pierce Brown.
  • Sports & Travel: I love exploring new places, and I'm a big fan of watching hockey and basketball despite having an on-and-off relationship with the Toronto Maple Leafs.
  • Board Games: Always down for a game night, especially if it involves port play and gambling on development cards in Catan.

🚀 Current Focus

I'm currently scaling up my knowledge to handle enterprise-level systems and expanding my creative engineering toolkit:

  • Infrastructure: Diving deep into Docker and multi-container networking (docker-compose) to break heavy monolithic workflows into separate, asynchronous background workers.
  • Data & AI Rigor: Building smarter systems with schema-enforced LLM parsing (getting clean JSON back from models every time) and learning the mechanics behind semantic vector search.
  • Advanced Projects & 3D Assets: Expanding game engineering mechanics by building out more complex interactions in projects like Meltdown. Also learning Blender to design and render custom 3D assets to build an immersive, highly visual personal portfolio website.

🧰 Technical Skills

Layer Technologies & Libraries
Languages Python C++ Java C# SQL TypeScript JavaScript
Frontend Ecosystem React Zustand Vite Tailwind CSS AngularJS
Specialized UI & Media Tiptap OSMD Tone.js
Backend & Frameworks Node.js Express .NET Core WinForms MVC Java Swing/AWT
Databases & ORMs Supabase PostgreSQL Prisma MySQL SQL Server MongoDB
Design & Markup HTML5 CSS3
Auth & Infra Clerk Git Linux Android Studio VS Code
Cloud & Certs AWS Certified Cloud Practitioner

📬 Let's Connect!

LinkedIn Email

Pinned Loading

  1. PlayRight PlayRight Public

    A keyboard-controlled piano practice app. Import MusicXML, follow synced sheet music with smart scrolling, and learn hand by hand on a virtual scope-mapped keyboard. React, TypeScript, Tone.js, Ope…

    TypeScript

  2. Booky Booky Public

    PDF-to-book reader with two-page spreads, full typesetting controls, OCR-assisted chapter detection for illustrated books, and in-book search. Built with React, Node, Supabase and Clerk authenticat…

    JavaScript

  3. babbles babbles Public

    Babbles is a personal journaling app focused on daily writing with rich text entries, image uploads, tag organization, keyword and tag search, flexible sorting in past entries, view and edit modes,…

    JavaScript

  4. Watan Watan Public

    A C++20 implementation of a University of Waterloo-themed board game inspired by Settlers of Catan. Features hexagonal tile-based gameplay, resource management, settlement and road placement, dice …

    C++

  5. 8192 8192 Public

    8192 is a 2048-inspired tile-merging puzzle on a 5x5 grid, featuring a real-time WebGL aurora background, a Milky Way starfield, personal records tracking, a game timer and full mobile swipe support.

    JavaScript