Coding simple solutions for (somewhat) complex problems.

Prototype fast, ship clean, and focus on what actually moves the needle.

Selected Work

A few tiny-but-mighty builds. No fluff — just results.

Banned Book Browser

Look through all the books that Edmonoton Public Schools says they would have to ban.

  • Python
  • Scraping
  • Data

ISBN Scanner

A high(ish) speed in-browser scanner for digitizing all the titles in your library.

  • Python
  • Scraping
  • Data

Arbitrage Dashboard (Coming soon...)

Live WebSocket feeds, spreads, and simulated wallets for CAD‑crypto ETFs.

  • Python
  • Tkinter
  • WebSocket

Voice Bot for Asterisk (coming soon...)

Full‑duplex real‑time audio with OpenAI — summaries, transcripts, and caller memory.

  • Asterisk
  • WebRTC
  • OpenAI

Approach

1

Clarify the job

Understand the real bottleneck and define a measurable outcome.

2

Prototype fast

Prove the core loop with the smallest useful thing.

3

Ship clean

Harden, log, and document. Leave room for iteration, not bloat.

About

My name is James, I make tools to help people. I can be somewhat obsessed with clear interfaces, fail-safe scripts, and communications.

Contact

email: [email protected]