Deep Time Machine
Shipped the deep-time toy, which now composes each geological scene in the browser from a fixed bank of real facts, keyless and never inventing one
Software engineer · AI-assisted development · Halifax, Canada
Financial applications, cloud delivery pipelines, and REST APIs, with AI in the development loop
Open to software engineering roles in Canada

Full-Stack & Backend Engineer
Shipped the deep-time toy, which now composes each geological scene in the browser from a fixed bank of real facts, keyless and never inventing one
Loaded the modelled job-posting warehouse into PostgreSQL, with two full loads leaving identical counts and no orphan keys, proving the write idempotent on the real corpus
Ported the security gates to a GitLab pipeline on a self-hosted runner, so a merge now runs the same secret, dependency, container, and configuration scans a second time on hardware that costs nothing
Restored Stripe test checkout after rotating the exposed key and clearing it from Git history
Published the research digest, where a summary reaches the page only after its quote and every figure in it are found in the paper
Published the telemetry platform, with two hosts streaming into Kafka and a day-partitioned HDFS archive behind the live dashboard
Took the marketplace live with the purchase flow corrected, so a sale debits the buyer, pays the seller, and transfers the vehicle in one transaction
Full-stack apps, data and ML systems
Collects readings from two machines every ten seconds, streams them through Kafka, and archives them in day-partitioned HDFS storage that a public dashboard reads back.
Assembles one reading page a day from three sources: the day's new AI papers on arXiv, Hacker News, and Contrary Research deep dives. Papers are read in full and summarized; the other two are selected with a one-line reason each, on their own tabs.

A peer-to-peer marketplace where users can create accounts, list vehicles, buy from other users, and manage their inventory.

A responsive storefront for browsing, filtering, wishlisting, and purchasing a collection of AI-generated artisan cubes.
An unsupervised detector over Sentinel's telemetry, scored on held-out data against a three-sigma rule and two trivial detectors kept in the table to keep the result honest.
Drops you on a weighted-random moment across Earth's 4.54 billion years and writes a short second-person scene for it, over a proportional geological timeline.
Lands a job-posting corpus immutably by ingest date, models it in Spark as a dimensional warehouse, and loads two facts and four dimensions into PostgreSQL with an idempotent write.
Four security scans wired into three repositories as CI gates that fail the build, mirrored from GitHub Actions onto a self-hosted GitLab runner.
Takes an alert or stack trace, retrieves the most relevant runbooks, and returns a structured triage: probable root cause, fix steps, and the exact commands to run.
Smaller utilities and automation I built for my own workflow