Michał J. Gajda

Science-based solutions

Michał is Haskell developer with experience both with empirical science, and commercial environment.  

Software engineer with an extensive experience in developing research software in Haskell, and Python. His expertise spans from DSL design, parsing, to computational simulations. As a polyglot programmer he also used many other languages, including SQL, C/C++, Perl, SML, OCaml, FORTRAN. Best contact him on Keybase

We propose modeling of capacity insensitive distributed systems with latency distributions. We can use a latency of a single packet, and application model to get the latency of the given outcome.

Using algebra of latencies we show how to efficiently computate these distributions and evaluate simple distributed systems like broadcast, or n-out-of-k majority voting. It is all implemented and illustrated by Haskell code.  

OBJECTIVES: Latency modeling is cheap and easy way to model performance of distributed systems.

AUDIENCE: Designers of distributed systems in general: whether they are web apps, cryptocoins or swarms of Kubernetes services.


We presents and compares a range of parsers with and without data mapping for conversion between XML and Haskell. The best performing parser competes favorably with the fastest tools available in other languages and is, thus, suitable for use in large-scale data analysis. The best performing parser also allows software developers of intermediate-level Haskell programming skills to start processing large numbers of XML documents soon after finding the relevant XML Schema from a simple internet search, without the need for specialist prior knowledge or skills. We hope that this unique combination of parser performance and usability will provide a new standard for XML mapping to high-level languages.  

OBJECTIVES: Code generator for faster ingestion of complex and massive XML data.

AUDIENCE: Haskell users of XML, and other data metalanguages.


We address a practical problem of inter-language interoperability with cloud APIs from different vendors with HTML documentation and REST calling conventions.  

We solve this problem, by providing implementing a retargetable cloud application programming interface (API) binding generator. The code for the proposed API is implemented in Haskell, utilising type classes, types a la carte, and a code generation monad (design pattern). It also targets Haskell and allows binding cloud APIs on a short notice and an unprecedented scale. We also note that it significantly decreases maintenance issues with large cloud API bindings due to decreased code-base.  

OBJECTIVES: We show how functional code generation methods can decrease need for manual implementation, and how declarative descriptions and type systems can extract structured information from the web pages.

AUDIENCE: Practicioners of functional languages, data scrapers, web API users.

Video ←Back