I'm Tom Smeding. I love programming, doing math, playing the piano and thinking about languages (both natural and programming).
I'm a PhD candidate in computer science at Utrecht University in the Netherlands.

You can reach me on Matrix, IRC, Telegram, Github, LinkedIn, Facebook and via email, among others. Besides Github, I also have a number of projects on my own server.

I've also written some notes at some point.

For a list of my academic publications, click here.

My research

Currently my primary research interest is in automatic differentiation (AD), as seen through the lens of functional programming (FP), in my case mostly using the programming language Haskell. My PhD supervisors are Gabriele Keller and Matthijs Vákár.

In general I am enthusiastic about lots of things in computer science; I enjoy functional programming and thinking about programming techniques that make FP work well, but I also have some experience in more low-level programming (in C and C++), some of it in competitive programming. I like thinking about how to optimise code to make it run faster, and also about devising compiler optimisations to make other people's code run faster. Furthermore, I like being able to do all of those things while enabling the compiler to prevent me from making mistakes as much as possible; typically, I do this by using the type system of the programming language I'm working in.

Also send me your favourite esolangs :)