Portfolio

Hi, I'm Tristan. I build web software, front end and back end. I do most of my work with TypeScript, Node.js, and React. For heavier data needs, I use Python.

I have degrees in mathematics (BSc) and oceanography (PhD), specializing in coastal ocean physics and beach dynamics. I still love thinking about data, but now I spend most of my time building web solutions for startups.

Since 2023, I've been working as a contract software engineer via Fine Day Technologies, my contracting and consulting company.

Clients & Projects

Thumbnail view of the BiggerPicture landing page

BiggerPicture

BiggerPicture is a SaaS solution for optimizing scheduling between shippers, transportation, and consignees, drastically reducing assessorial costs and delays. Backed by Y Combinator. I'm helping BiggerPicture develop their platform using React, Next.js, and full-stack TypeScript with tRPC.

TypeScriptReact.jsNode.jstRPCPrismaPlanetscaleMySQLLLMs
Thumbnail view of the LunaOcean ocean weather app, built in part by the author

LunaOcean Data Platform

LunaOcean consolidates real-time and forecasted wind, wave, and ocean current data in a modern map interface. I worked on this project from inception, building with TypeScript, Next.js, and a serverless backend leveraging AWS Lambda and MongoDB. The WebGL-based particle animation for visualizing currents was a particularly interesting challenge.

TypeScriptNext.jsMapboxGL JSAWSMongoDBPython
Thumbnail view of a page showing black and white line art

Instability I/O

A gallery and playground for visualizing output from process-based models on an HTML canvas. All of the animations are procedurally generated with client-side JavaScript. Vite for module bundling. No JS frameworks.

HTMLCSSTypeScriptHTML CanvasVite
Thumbnail view of a GitHub repo statistics project page

Repo Metrics

A for-fun Next.js project for comparing GitHub repositories by interest and development effort metrics. Authenticated users can curate a custom list of repos, persisted in a MongoDB database. All asynchronous state is managed with useSWR.

Next.jsTypeScriptSWRMongoDBNext-AuthChart.jsTailwind CSS

Talks

  • "Breaking Into Tech" (and Being Entrepreneurial) (2024) - I was invited to present to the 2024 cohort of students in the Matrix Code program at Dalhousie University. The Matrix Code is a full-stack software development program for African Nova Scotian students and students of colour.
  • Client Side Data Fetching with SWR (2022) - I presented at a local front-end development meetup in Halifax organized by HFX.js and the Halihax software development community. See the accompanying app on GitHub.
  • See my CV for a full list of academic talks