About the Author
I’m a computer science PhD student at the University of Cambridge. My supervisors are Alan Mycroft and Don Syme. I also wrote a book Real-World Functional Programming that explains functional programming concepts to .NET, teaches F# along the way and shows how to use functional ideas in practice. Before coming to Cambridge, I completed undergraduate and Master’s degree (in theoretical computer science) at Faculty of Mathematics and Physics at Charles Univeristy. I was born in Prague, which is a capital city of Czech Republic. My name is actually "Tomáš Petříček", but I don't want to scare people with all the diacritics, so I usually write my name without it. I can be contacted at firstname.lastname@example.org.
The longer version
Back in 2003, before starting my undergraduate studies, I wrote a few articles about my C# and .NET projects for CodeProject. The article about ASP.NET popup window become quite popular (interestingly, it is still one of the most popular articles in the ASP.NET section!). A few people noticed and I was awarded an MVP award from Microsoft and started working on some commercial projects part-time.
As an MVP, I attended a professional conference in Cambridge, UK where I first met Don Syme. At that point, I was thinking about a topic for a Bachelor thesis – I wanted to create some .NET web framework that would allow developers to integrate server-side and client-side code and write both sides using the same language. When I mentioned this to Don, he suggested using F# quotations. Later, he also invited me to do an internship at Microsoft Research, where I created F# Web Tools (and a few other things). The project is now defunct, but it inspired a commercial framework called WebSharper.
As a .NET programmer who just discovered F# and the elegance of functional languages, I started playing with F# and I was one of the first people to blog about it. I also wrote an article that compares some features of C# 3.0 with features in F# and other research languages.
In early 2008, I got an email from Michael Stephens from Manning, who was interested in publishing a book on F#. I wanted to write a book that would follow my experience with learning F# – a book for C# developers who want to understand the beautiful functional ideas, learn something they can use in their daytime C# job and also learn the F# language. After almost three years (yuck!), the Real-World Functional Programming book was published. I also like taking ideas that look easy in F# and re-implementing them in C#. This leads to some very interesting concepts like iterator-based asynchronous programming, composable LINQ queries and Reactive LINQ (some of them were apparently independently discovered by other people, most notably Erik Meijer and Jeffrey Richter).
In the meantime, I continued my studies as a Master’s student. During the studies, I spent 6 months as an intern at Microsoft Research in Cambridge again. I spent some time working on productionalization of F# (mainly on the F# IntelliSense) and on reactive programming in F#. This later became the topic of my Master’s thesis and some parts of it are described in some research papers that I wrote with Don Syme.
To be continued...