Hello World!

I am a Software Engineer specialized in λ functional programming,
writing strongly-typed code in HaskellScala ⇒ reproducible builds via Nix.

Latest on the blog

Scala 3: Error handling in FP land

Table of contents Introduction Error types Union types to the rescue! Error handling Bottom layer Middle layer Top layer Furthermore Conclusion Introduction Scala 3 introduces union types. Straight from the... Read more »

Flakes: NixOS and Home Manager migration

Table of contents Introduction How it started: NixOS Next step: Home Manager One flake to rule them all! Home Manager flake output Switching configurations Flake outputs Conclusion Introduction I have... Read more »
All posts

Talks

I've mainly given talks about Haskell, Scala and Nix, both at conferences and city meetups.

Projects

These are some of the open source projects I worked on.

Name Description
Dconf2nix Convert Dconf files (Gnome Shell) to Nix, as expected by Home Manager
Dorado Generic golden testing library with support for MUnit and Weaver
Fs2 Rabbit RabbitMQ stream-based client built on top of Fs2
Http4s JWT Auth Opinionated JWT authentication library for Http4s
Http4s Tracer End-to-end tracing system for Http4s
Neovim-flake Nix flake for Neovim with configuration options highly focused on Scala 3
Neutron Purely functional Apache Pulsar client for Scala built on top of Fs2
Nix-config My NixOS configuration files, home-manager, neovim, etc.
PFPS Examples Standalone examples from the "Practical FP in Scala" book
PFPS Shopping Cart The application developed in the "Practical FP in Scala" book
PostgreSQL Resilient Automatic re-connection support for PostgreSQL (Haskell)
Redis4Cats Purely functional Redis client for Cats Effect & Fs2
Sbt Nix G8 template, docs and examples on managing Scala projects with Nix
Split Morphism Split Epimorphisms and Monomorphisms for Haskell
Supernova Apache Pulsar client for Haskell