Jacek Hełka

F# Developer at Credit Suisse

Jacek worked for companies from various industries, including IT consultancy, banking & finance, car manufacturing, Intelligent Transport. After seeing the raise and fall of so many methodologies and trends, he appreciates pragmatism while still being an enthusiast.

The presentation is a story of building data access library for a functional language. Crucial design decisions and their reasons will be described, showing the process of growing it up over time from the minimal solution to a fairly feature-rich product.  The presentation will bring up following topics:

- place of data access mechanisms in overall application architecture   and its impact on library design

- representing queries as functions; using runtime code generation to    implement query execution and result mapping

- controlling side-effects and connection management with Async and Reader monad composition

- making DSL for transforming results to application-level data structures

- building dynamic query framework with templating and poor-man existential types.