October 2019 : Generating castles for Minecraft™ using Haskell

A lightning talk given at the Haskell Exchange 2019. My kids and I are big fans of Minecraft and we found ourselves wanting to generate large structures using code. We tried Microsoft's Logo-like Steve-bot and whilst it was very easy to use, like any imperative approach, composition was difficult to achieve. Using Haskell, pure functions, Monoids and a prudent use of lenses, a remarkably simple and compositional domain-specific language (DSL) can be built.

Download
preview

October 2018 : Building a Program from Streams

A talk given at the Haskell Exchange 2018 which introduces the "streaming" package. I used streaming to build a non-trivial backup program, Atavachron, which is also introduced.

Download
preview

October 2017 : An EDSL for KDB/Q

A talk given at the Haskell Exchange 2017 which explores the building of an EDSL for the KDB/Q database language at Standard Chartered. I start with a rationale for choosing such an approach; then review techniques such as Higher-order abstract syntax (HOAS), recursion schemes, meta-programming and embedding Algebraic Datatypes. Finally, I reflect on the success of the project and discuss the lessons learned.

Download
preview

October 2014 : Structural Typing for Structured Products

In this talk, given at the Haskell Exchange 2014, Peter Marks and I walk through the motivation that led us towards using row-polymorphism and extensible records/cases in our DSL, Lucid, for describing financial products and trading strategies.

Download
preview

December 2013 : Exotic Tools for Exotic Trades

The Functional Payout Framework is a mature and successful software platform supporting the vast majority of the equity derivatives business within Barclays. The slides for this talk, given at CodeMesh 2013, introduce the project and retrospectively review some of the ideas and techniques that have been used to date.

Download
preview

March 2013 : Recursion Schemes by Example

In this talk, given to the London Haskell Users Group, I explored both the theory and practice of various recursion schemes applied to real world problems. I also demonstrated how to achieve compositional data-types and data-type generic programs by modelling recursive types as fixed points of functors. The slides feature an abundance of code, starting with simple list examples and quickly moving on to more advanced topics, such as program analysis, optimisation, memoization, templating and more. The literal haskell source can be found here.

Download
preview

October 2011 : Git Essentials

A fast and technical overview of the distributed version control system known as Git; hopefully showing what the fuss is about.

Download
preview