Product × Eng.

A portrait of myself
Photo by Virginie-Sankara Cantin-Diarra

Bonjour / Hi. Thomas here. I'm a product engineer living in Montreal, Canada. I focus on bringing products to life, bridging product ownership and engineering. I have helped a handful of startups get acquired.

I'm also a great enthusiast of functional programming. Constantly learning ways to get better understanding of functional paradigms, I leverage them to solve meaningful business problems. I won't be able to fix your printer.

On the side you'll find me taking pictures, nursing my plants and playing video games. I'm also a bearer of Tinnitus. I even took a photo of a bear that became famous on Unsplash and was published . You can learn a bit more about me reading this post .

I'm currently working with the folks at Unsplash and create the future of open photography. Formely at Crew, Transit, Automat.

📨 reach out

🧑‍💻 projects

Product-engineering the biggest internet’s library of freely-usable images. Acquired by Getty Images ↗.


Predicting AQI values in Montreal, using a deep learning model.

Dali Cat-Classifier

Convolutional neural network to recognize images of our cat, Dali. This is still experimental.


Monitor your computer hardware sensors using a web-based reactive UI.
Based on some of my previous work when I was researching an AI assistant animation Github ↗


Solve localization in softwares by compiling ICU messages into code. Type safe, no runtime, open source. Made with the folks at Unsplash ↗ .


TypeScript plugin to auto import common namespaces into your modules ↗ .


Some of us here in QC, Canada think our premier can make questionable decisions over the pandemic. I thought we could all use a good laugh while we're all stuck at home.


Experimenting with canvas and SVG animations. Configure your own AI assistant's avatar.

2017 - 2020
Design your conversational marketing bot and deploy it on platforms such as Facebook Messenger and Slack. Acquired by Salesfloor ↗.

Help people move around their city by providing transit data.

2014 - 2017
Crew was a digital marketplace that was matching project owners and freelancers together. Acquired by Dribbble ↗.

📝 content

Predicting air quality using deep learning

Predicting air quality in Montreal, QC using deep learning.

Training a deep learning model to recognize our cat

I've trained a deep learning model to recognize my cat using PyTorch and fastai.

Encode possible states in the type system

Remove impossible states from your application by encoding all possible variants in the type system.

Encode errors in the type system

Create more resilient software by leveraging the type system to enforce error handling.

How we translate Unsplash

I met with Nick Taylor to talk about the internals of internationalization and localization at Unsplash.

User-defined type guards are not safe

I wrote this post to explain why I think user-defined type guards can be unsafe and how to write safer alternatives.

Organizing TypeScript modules

TypeScript supports different ways of importing values into another module. One of the way we're going to talk about here is the namespace import syntax.