POV: software developer
at work.

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

Bonjour / Hi. Thomas here. I'm a software developer 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

🧑‍💻 work

unsplash.com

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

Dali Classifier

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

hrdwr-monitor

2023
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 ↗

intlc

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

ts-namespace-import-plugin

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

covid-lol-qc

2021
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.

/lab/ai-assistant

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

automat.ai

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

transitapp.com

2017
Help people move around their city by providing transit data.

crew.co

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

📝 content

Training a deep learning model to recognize our cat

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

Encode possible states in the type system

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

Encode errors in the type system

2024-02-28
Create more resilient software by leveraging the type system to enforce error handling.

How we translate Unsplash

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

User-defined type guards are not safe

2021
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

2021
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.