Hello, my name is Tomas Petricek

I'm a lecturer at University of Kent and a partner at fsharpWorks. I believe that the most fundamental work is not the one solving hard problems, but the one that offers new ways of thinking.

I follow this belief in my academic research on programming systems and history & philosophy of computing, but also in my writing on functional programming and in my F# trainings and consulting.

Before joining Kent, I did a PhD on context-aware computations at University of Cambridge, worked on F# tools in Microsoft Research and built novel tools for data exploration at The Alan Turing Institute.

Reconstructing Commodore 64 BASIC

I reconstruct the programming experience of a past system to learn what we've lost in modern programming environments. And write a simple Breakout game you can play!

Histogram programming environment

What if we represented programs as lists of interactions with programming environment, rather than as the final source code? Find out in this experimental data exploration environment!

Data exploration for non-programmers

Simple tools for data exploration that result in open and trans­parent data analyses. Also check out sample data analyses that we built at The Alan Turing Institute!

Composable data visualizations

Compost.js lets you compose rich interactive data visualizations from a small number of basic primitives. It is implemented in F# using Fable, but usable from plain JavaScript.

Context-aware programming languages

An interactive introduction to my PhD work on coeffects, a programming language abstraction for understanding how programs access the environment in which they run.

F# consulting and training

At fsharpWorks, we offer a complete range of services including training, F# consulting, and full project development. Check out our F# materials, including my F# book and talks.

I work on functional programming, data science and philosophy of computing. This list includes one or two top papers for each category. My publications page gives a complete list.

Foundations of a live data exploration environment
The Art, Science, and Engineering of Programming, 2020

What we talk about when we talk about monads
The Art, Science, and Engineering of Programming, 2018

Data exploration through dot-driven development
In proceedings of ECOOP 2017.

Miscomputation in software: Learning to live with errors
The Art, Science, and Engineering of Programming, 2017

Types from data: Making structured data first-class citizens in F# In Proceedings of PLDI 2016

Coeffects: A calculus of context-dependent computation
In Proceedings of ICFP 2014

Various academic texts that have not been published yet. If you have any feedback on these, please let me know!

The Gamma: Data Exploration through Iterative Prompting
Friday, 29 May 2020

Cultures of programming: Understanding the history of programming through controversies and technical artifacts
Tuesday, 2 April 2019

I enjoy traveling and add one new picture each month. See 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, and the first photos of 2021.