Tomas Petricek
Academic Experience
Education and Positions
-
Assistant Professor, Charles University, Prague, 2022 – present
I joined the Department of Distributed and Dependable Systems at Faculty of Mathematics and Physics to pursue fundamental research on simple, open and trustworthy programming systems, using theoretical, applied and interdisciplinary research methods.
-
Lecturer, University of Kent, 2018 – 2022
As a member of the Programming Languages and Systems group, I worked on making programming with data easy, trustworthy and accessible. I applied for grants from EPSRC (UK) and ERC (EU), Dstl & GCHQ (UK), taught graduate and undergraduate modules, supervised a PhD student and initiated interdisciplinary collaboration with a colleagues from Department of Philosophy.
-
Collaborating Fellow and Visiting Researcher, The Alan Turing Institute, 2016 – 2020
I led a project Programming Tools for Open Data Journalism funded through Google Digital News Initiative, joined the flagship ATI project Artificial Intelligence for Data Analytics as a co-investigator and obtained funding from Dstl and GCHQ for a follow-up project on semi-automated data wrangling.
-
Post-doctoral Researcher and Contractor, Microsoft Research Cambridge, 2014 – 2016
I led the development of an open-source projects focused on doing data science with F#. Resulting research was awarded a Distinguished Paper award and selected as an SIGPLAN Research Highlight.
-
PhD, Computer Laboratory, University of Cambridge, 2011 – 2016
Thesis Context-aware Programming Languages develops coeffects, a theory for tracking information about environment in which programs are executed. I also devised a novel way of presenting the results in the form of widely read interactive essay (tomasp.net/coeffects). Supervised by Prof. Alan Mycroft.
-
BSc and MSc, Computer Science, Charles University, Prague, 2004 – 2010
MSc completed with distinction. Final thesis Reactive Programming with Events, supervised by Dr Don Syme, developed abstractions for reactive and concurrent programming that were presented in workshop papers.
Research Funding
-
PRIMUS Research Programme, Charles University, 2024 – 2028
Awarded €610,000 for research on Types for data-centric programming to cover 60% FTE of my time, two post-docs for 24 months each and 2 PhD students for the duration of the project.
-
Fellowship, ACM History Committee, 2018
Awarded $4000 to study the history of programming errors, looking at technical, formal and social means for mitigating them, resulting in a work-in-progress book Cultures of Programming.
-
Dstl & GCHQ grants, The Alan Turing Institute, 2017 – 2020
Awarded £420,000 for research on tooling for data science to cover a post-doc for 6 months, Research Software Engineer for 3 years, 3 summer interns, my salary/buyout for 1 day/week.
-
Innovation Fund, Google Digital News Initiative, 2016
Awarded €50,000 for research on Programming tools for data journalism. My proposal was selected as one of 128 out of 1,200 and allowed me to develop an independent research project at The Alan Turing Institute.
-
Travel Grants, ACM, 2010, 2012, 2014
As an ACM Student Research Competition finalist, I was repeatedly awarded travel grants covering travel and registration expenses for top-tier programming language conferences PLDI 2010, ICFP 2012, ICFP 2014.
Awards
-
Reviewers’ Choice Award, ‹Programming› 2023. Awarded for a paper on programming systems.
-
Reviewers’ Choice Award, ‹Programming› 2020. Awarded for a paper on data exploration tools.
-
ACM SIGPLAN Research Highlight. My first-author paper was chosen as an ACM SIGPLAN Research Highlight, making it one of the three best programming language papers of the past year.
-
Editors’ Choice Award, ‹Programming› 2018. Awarded for a paper on the history of monads.
-
Reviewers’ Choice Award, ‹Programming› 2017. Awarded for a paper on the history of errors.
-
Distinguished Paper Award, PLDI 2016. Awarded for a paper on types for semi-structured data
-
ACM Student Research Competition. 1st place at ICFP 2014 and 2nd place at ICFP 2012
-
Microsoft MVP Award, 2004 – 2023. Awarded annually for contributions to the F# community
Academic Recognition and Collaboration
Professional Membership
-
IFIP TC2 Working Group 2.16 Language Design (2024 – present). Member of an invitation-based group of 40 leading programming language experts that meets twice a year for an intensive week-long meeting.
Keynotes and Invited Talks
-
Data Science in F#, Berlin (September 2023). Keynote: Designing composable visualizations
-
ASL/APA Meeting, San Francisco (April 2023). Invited Talk: Cultures of programming
-
Huawei Global Technology Summit, Edinburgh (July 2022). Invited Talk: Rethinking data exploration tools
-
CodeMesh, Virtual (November 2020). Keynote: Cultures of programming
-
ScalaDays, Berlin (May 2018). Keynote: Functionalist programming language design
-
Data Science Summit, Cambridge (June 2017). Keynote: The Gamma: Democratizing data science
-
ManLang Conference, Prague (Sept 2017). Keynote: Language Challenges of Targeting Multiple Runtimes
Research Visits
-
UC Santa Cruz (April 2023). One-day visit, collaboration on programming systems research
-
HPI Potsdam (November 2023). Two-day visit, collaboration on programming systems research
-
Aarhus University (May 2022). Two-day visit, collaboration on programming systems research
-
UC Berkeley (virtual) (November 2022). Remote talk at the Programming Systems seminar
-
MIT SDG (April 2021). Remote invited talk on programming as architecture and urban planning
-
Huawei Research Edinburgh (virtual) (May 2021). Remote invited talk on data exploration tools
-
Facebook (October 2020). Virtual invited talk on types for data exploration tools
-
University of Glasgow (May 2019). One-day visit, talk on data-rich programming languages
-
TU Darmstadt (April 2019). Two-day visit, presenting work on coeffects and type providers
-
IFIP 2.16 Working Group (November 2019). Guest at a week-long meeting, talk on programming as interaction
-
Université de Lille (January 2018). Talk at What is a program? Historical & philosophical perspectives
-
University of Birmingham (January 2018). One-day visit, talk on data-rich programming languages
-
University of Edinburgh (August 2018). One-day visit, talk on programming as human-data interaction
-
Tallinn University of Technology (December 2013). Two-week visit focused on context-aware computing
-
Rensselaer Polytechnic Institute (February 2013). One-day visit focused on data and type providers
-
MIT CSAIL (February 2013). Two-day visit, talk on context-aware programming
Project Participation
-
Language, Picture, Gesture: Forms of Discursivity (Junior Researcher), UNCE, MFF UK (2024 – present)
Studying programming and interactive systems from a broader inter-disciplinary perspective.
-
ExtremeXP (Member), Horizon Europe, MFF UK (2023 – present)
Contributing to the design of novel data visualization tools and gamification systems.
-
PROGRAMme: What is a computer program? (Member), ANR France (2017 – present)
Interdisciplinary collaborative project, serving as co-editor for the resulting work-in-progress book.
-
AIDA: AI in Data Science (Co-Investigator), The Alan Turing Institute (2016 – 2018)
Joined and reshaped the project to allow integration of work by 3 post-docs and 1 PhD student.
Community Service and Administration
Refereeing
Program Committee Member. Undone CS 2024, PX 2024, Onward! Essays 2024, Onward! 2024, OOPSLA 2024, PX 2023, ECOOP 2023, Onward! Essays 2023, Programming 2023, PAINT 2023, OOPSLA 2023, ProWeb 2022, HaPoP 2022, PADL 2022, ECOOP 2022, PX 2022, Programming 2022, HOPL IV 2021, Programming 2021, Onward! Essays 2021, AutoDS 2021, PX 2020, SdR 2020, LIVE 2020, ProWeb 2020, SdR 2019, SdR 2019, HaPoC 2019, Onward! Essays 2019, HFM 2019, LIVE 2019, IFL 2018, HaPoP 2018, DSJM 2018, OBT 2017, HaPoC 2017, DS+J 2017, TyDe 2016, TFP 2015, ML 2013, CUFP 2012, ISMM 2012
Reviewer. In the past, I also reviewed papers for UIST, Computing, TOPLAS, Programming, Minds and Machines, Philosophy & Technology, ECOOP, PLoP, Simulation, Software: Practice and Experience, EICS, ICFP, IEEE Access, POPL, JLAMP, PLACES, TFP, PPDP, CC, Computability in Europe, TLCA
PhD Examiner. I reviewed PhD theses completed at Hasso Plattner Institute (2024), Université Paris-Saclay (2024), CTU Prague (2023), University of Ghent (2022)
Grant Proposal Reviewer. I reviewed grant proposals for GAUK (Czechia), FONDECYT (Chile), The Alan Turing Institute (UK), EPSRC (UK), ISF (Israel)
Service
-
General Chair, International Conference on the Art, Science, and Engineering of Programming, 2025
-
Steering Committee Member, AOSA, Inc., 2024 – present
-
Symposium Co-chair, Symposium on History and Philosophy of Programming (HaPoP5), Lille, 2022
-
Special Issue Editor, Programming and Computing in Context, Philosophy & Technology, 2020
-
Track Chair, Symposium on New Ideas in Programming and Reflections on Software (Onward!), 2019
-
Steering Committee Member, Onward!, 2019 – present
-
Symposium Chair, Symposium on History and Philosophy of Programming (HaPoP4), Oxford, 2018
-
Workshop Co-chair, Salon des Refusés: Dialectics for New Computer Science, ‹Programming› 2018 and 2017
-
Council Member and Vice-President, Commission for the History and Philosophy of Computing, 2017 – 2021
-
Founding Board Member, The F# Software Foundation, 2014
Administration
-
Committee for Final State Exams in Master Study Programs, Charles University, 2024 – present
Nominated in September 2024. Awaiting to be approved in 2024/25.
-
Committee for Final State Exams in Bachelor Study Programs, Charles University, 2024 – present
Nominated in September 2024. Awaiting to be approved in 2024/25.
-
Academic Misconduct Panel Member, University of Kent, 2021 – 2022
Reviewed 30+ reports of plagiarism and other academic misconduct.
-
Year in Computing Review Committee Chair, University of Kent, 2021
Leading a review of programme teaching structure and implemented changes for 2022/23.
-
Year in Computing Admissions Officer, University of Kent, 2020 – 2022
Interviewed 100+ applicants for a programme offered to non-computer science students.
Teaching and Supervision
Teaching Qualifications
-
Postgraduate Certificate in Higher Education (PGCHE), University of Kent, 2019 – 2021
Research Supervision
-
Jan Liam Verter (PhD Student), Charles University, 2024 – present
Research topic Semantics Engineering with Concrete Syntax and Theorem Proving.
-
Aleks Boruch-Gruszecki (Post-doctoral Researcher), Charles University, 2024 – present
Co-supervised with Prof Jan Vitek.
-
Joel Jakubovic (Post-doctoral Researcher), Charles University, 2024 – present
Research topic Graphical Constraint Programming for Notational Freedom.
-
Nour Boulahcen (Undergraduate Internship), University of Kent, May 2019 – June 2019
Design and development of type provider for graph databases.
-
Joel Jakubovic (PhD Student), University of Kent, 2019 – 2023
Thesis Achieving Self-Sustainability in Interactive Graphical Programming Systems. Graduated in 2023.
-
Roly Perera (Post-doctoral Researcher), The Alan Turing Institute, 2019
Program change tracking with applications in AI research. Now at University of Cambridge.
-
Mariana Marasoiu, Pablo León-Villagrá, Sarwar Islam (Research Internship), The Alan Turing Institute, 2017
Tools for data journalism with The Bureau of Investigative Journalism, resulting in two workshop papers.
Teaching Experience
-
Advanced C# Programming (NPRG038), Charles University, 2023/2024, Course lab supervisor
-
Write Your Own Tiny Programming Systems (NPRG077), Charles University, 2023/2024 – present
-
Introduction to Linux (NSWI177), Charles University, 2022/2023, Course lab supervisor
-
Programming Language Design (NPRG075), Charles University, 2022/2023 – present
-
Software Development (CO559), BSc, University of Kent, 2021/2022
-
Algorithms, Correctness and Efficiency (CO518), BSc, University of Kent, 2019/2020
-
Project Research (CO880), MSc, University of Kent, 2018/19 – 2021/2022, Project supervision
-
Project and Dissertation (CO880), MSc, University of Kent, 2018/19 – 2021/2022, Thesis supervision
-
Year in Computing Project (CO580), BSc, University of Kent, 2018/2019 – 2019/2020, Project supervision
-
Group Project (CO600), BSc, University of Kent, 2018/2019 – 2021/2022, Final year project supervision
-
Computer Interaction and User Experience (CO582), BSc, University of Kent, 2018/2019 – 2019/2020
-
Software Engineering (CO886), MSc, University of Kent, 2018/2019 – 2021/2022
-
Supervisions (Part IB and II), BA, University of Cambridge, 2011 – 2017, Small group teaching covering programming language concepts, types, operational and denotational semantics and compilers.
-
Programming language F# (NPRG049), Charles University, 2009/2010
Supervised Theses
Since joining Charles University in 2022, I supervised 13 Bachelor's theses (10 defended) and 2 Master's theses (2 defended). At University of Kent, I supervised students for a range of final year projects including 4 students in Year in Computing Project (BSc), 25+ students for Group Project (BSc) and 10 students for Project and Dissertation (MSc). I also supervised 3 final-year Part II dissertations at University of Cambridge.
-
Interactive Pandemic Simulation to Encourage Critical Thinking (ongoing), BSc thesis, Sára Goldscheiderová
-
Data-driven Low-code Programming System (ongoing), BSc thesis, Jaroslav Švarc
-
Reconstructing the Boxer programming system for the web (ongoing), BSc thesis, Jan Markvart
-
Type Providers for TypeScript (defended 2024), MSc thesis, Ondřej Roztočil
-
Reconstructing the Pygmalion Programming Environment (defended 2024), BSc thesis, Adrián Habušta
-
Query Langauge for Relational Databases (defended 2024), BSc thesis, David Koňařík
-
Design of LLM Prompts for Iterative Data Exploration (defended 2024), BSc thesis, Mikoláš Fromm
-
Combining Effects with Dependent Types (defended 2024), BSc thesis, Maya Mückenschnabel
-
AgentLang - Programming Language for Agent-based Modeling (defended 2024), BSc thesis, Tomáš Boďa
-
Abstract Interpretation of pandas (defended 2024), BSc thesis, Jan Hrubý
-
Functional Reactive Programming for Data Binding in C# (defended 2013), BSc thesis, D. Barker, Cambridge
-
Refactoring Tool for F# (defended 2013), BSc thesis, Lewis Brown, University of Cambridge
-
Type-safe Multilanguage Programming (defended 2013), BSc thesis, Eduardo Muñoz, University of Cambridge
-
.NET Library for the MediaWiki API (defended 2013), BSc thesis, Petr Onderka
-
IntelliSense Integration for Coq Theorem Prover (defended 2012), MSc thesis, Adam Abonyi
Industry Engagement
Work Experience
-
Cofounder, fsharpWorks, February 2015 – present
I co-founded a consulting company focusing on the use of functional programming for data analytics and business application development. I designed and teach intensive two-day courses for professional programmers and consulted with Microsoft, Blue Mountain Capital Management and others.
-
Intern, BlueMountain Capital Management, New York, August 2013 – November 2013
Developed Deedle, an open-source data and time-series analytics library for .NET and integrated it into existing codebase, replacing earlier technologies; the library has been adopted at BlueMountain and externally.
-
Research Intern, Microsoft Research, Cambridge, April 2007 – July 2007 and October 2008 – April 2009
Contributed to the development of F# tooling for Visual Studio, designed an F# language extension for parallel, asynchronous and concurrent programming and prototyped novel approach to multi-tier web development.
Selected Industry Talks
-
Popup from Hell: On the growing opacity of software systems, NewCraft Paris 2023
Talk recording: https://vimeo.com/842234359
-
Designing composable functional libraries, not just for data visualization, NDC London (Virtual) 2021
Talk recording: https://youtu.be/o-HNxQ25pfg
-
The Search for Fundamental Software Engineering Principles, CurryOn! London 2019
Talk recording: https://youtu.be/wYMzMuBO_8M
-
Build your own Excel 365 in an hour with F#, NDC Oslo 2018
Talk recording: https://youtu.be/Bnm71YEt_lI
-
Rethinking compilers with live coding, Lambda World Seattle 2018
Talk recording: https://youtu.be/WSLWkKm7BTk
-
The Gamma: Towards open and reproducible data-driven storytelling, CogX London 2018
Talk recording: https://youtu.be/2KHR7-HSZJs
-
Would Aliens Understand Lambda Calculus, Code Mesh 2017
Talk recording: https://youtu.be/JoWH2jNlvQQ