MYLD
Every deadline, quiz and assessment in one side panel.
I kept clicking through every course just to see what was due next, so I made a side panel that does it for me. It's on the Chrome Web Store for Laurier students.
Things I got curious about
Every deadline, quiz and assessment in one side panel.
I kept clicking through every course just to see what was due next, so I made a side panel that does it for me. It's on the Chrome Web Store for Laurier students.
MyLearningSpace, Pearson and Achieve together, sorted from overdue to later.
Completion comes from the platform itself. Your own check-offs stay separate.
Re-checks every 30 minutes, flags anything that changed, and reminds you when you want.
No server, no analytics, and it only ever reads.

The nearest deadline at the top, this week's progress underneath, one pill per class.
Built with JavaScript · Chrome Manifest V3 · HTML · CSS
Build a portfolio, see its risk.
Pick some real tickers and see how the mix behaves: how risky it is, where it might go, and how it would have held up through past crashes.
Return, volatility, Sharpe ratio and Value at Risk from up to 20 years of prices.
Shows where your mix sits against the best possible trade-offs between risk and return.
Monte Carlo projections ten years out, plus replays of 2008, 2020 and 2022.
Shock one holding and watch it spread through the correlations, explained in plain English.
Click a holding to shock it
A −15% shock to APLE spreads most heavily to GOOGL (correlation 0.36, est. −3.5%), MSFT (indirect path, est. −1.2%), META (indirect path, est. −1.2%). Estimated total portfolio drawdown: −4.4%.

Headline numbers, the efficient frontier, and a fan of simulated paths ten years out.
Built with Next.js · TypeScript · FastAPI · Python · NumPy · SciPy · NetworkX
Connect your school once, then just text.
No app: link your LEARN or Brightspace calendar once, then text one number to ask what's due, set reminders or get a morning rundown.

From the design mockup. When a course doesn't post its deadlines to LEARN, it says so instead of guessing.
Built with Python · FastAPI · PostgreSQL · Twilio · Gemini
The cheapest listing isn't always the best deal.
Search for a product once and compare new, refurbished and used listings by what each would really cost after shipping, tax, seller risk and warranty.
Every source runs in parallel under its own six-second deadline, with an abort signal so a hung request is actually cancelled rather than left running. Each source's listings are checked against a schema before they reach the page, and one that throws, times out or sends back junk is reported as failed while the others keep streaming in as Server-Sent Events.
Built with Next.js · TypeScript · Server-Sent Events · Zod