Reify AB Value-Oriented Programming
Blog Archive

Blog

Talks, notes and things I've been thinking about

  • March 23, 2026

    From Heroku to Render

    At Dockspot

    Why we moved a Rails app from Heroku to Render, and what it took: images, deploys, rollbacks and backups.

    Read on →
  • November 24, 2025

    activerecord-pg-format-db-structure: tidying up Rails' structure.sql

    RubyGem

    Tidies up Rails' structure.sql after every migration, using a real SQL parser instead of regexps.

    Read on →
  • August 20, 2025

    From Sidekiq to Solid Queue

    At Dockspot

    Why we moved our Rails background jobs from Sidekiq to Solid Queue, and how we did it one worker at a time.

    Read on →
  • January 21, 2025

    Materialized CTEs in Rails

    Rails pull request

    Adding .as_cte, so ActiveRecord's .with can build MATERIALIZED and NOT MATERIALIZED CTEs.

    Read on →
  • May 30, 2023

    SSH port-forwarding using a socket file

    Treyd tech blog

    Forward a remote Postgres through a bastion to a local socket file, so psql never fights over port 5432.

    Read on →
  • May 20, 2023

    Build your own Kustomize transformers using KRM functions

    Treyd tech blog

    Writing KRM functions in Go to extend kustomize build, so a platform team can ship transformers developers consume from a Git URL.

    Read on →
  • April 3, 2021

    Renaming master to main everywhere

    A small Bash script that renames master to main across an account's GitHub repositories in one go.

    Read on →
  • March 21, 2021

    stan-rs: NATS Streaming for Rust

    Rust crate

    A Rust client for NATS Streaming, built on top of the official NATS client.

    Read on →
  • January 3, 2021

    Advent of Code in SQL

    Seventeen days of Advent of Code 2020, each solved with a single query in pure PostgreSQL.

    Read on →
  • December 15, 2020

    Goodbye, awesome-o

    Our Slack bot, 2014–2020

    Our Slack bot at PugglePay, then Zimpler, is offline. A look back at what it did over six years.

    Read on →
  • November 15, 2020

    Fun with callcc

    Fun code snippet

    Autovivifying nested hashes in Ruby by monkey-patching Hash and nil with callcc, so a deep assignment travels back in time.

    Read on →
  • January 6, 2019

    Advent of Code 2018

    day 1 in eight languages

    My Advent of Code 2018 solutions for days 1 to 18, spread across Haskell, Clojure, Crystal, Ruby, Go and more.

    Read on →
  • December 7, 2018

    Unit Tests as a Type Provider

    Fun code snippet

    Running assertions at compile time in Idris with a type provider, so a failing test stops the build.

    Read on →
  • February 15, 2018

    Idris Proofs And Nats

    fun with code inference

    How Idris makes natural number subtraction safe at compile time, rebuilt from scratch: numbers, proofs that one is smaller than another, and letting Idris find those proofs for you.

    Read on →
  • August 10, 2017

    Introducing Change (from Ruby to Clojure)

    How our small team moved from Ruby to Clojure, and what I learned about introducing change to people who don't want it.

    Read on →
  • March 1, 2017

    Functional Programming... The Sequel

    ReactJS Göteborg 2017

    The follow-up to my intro to functional programming talk at ReactJS Göteborg.

    Read on →
  • December 30, 2016

    Docker on Mac OSX in 2016

    Zimpler dev blog

    Is Docker on Mac ready for development? Mostly yes, and it looks like it'll soon be great.

    Read on →
  • November 22, 2016

    Intro to Functional Programming

    ReactJS Göteborg 2016

    An introduction to functional programming, given at ReactJS Göteborg.

    Read on →
  • October 25, 2016

    A Tale of ClojureScript in Production

    Euroclojure 2016

    My Euroclojure 2016 talk about running ClojureScript in production.

    Read on →
  • November 5, 2015

    Got.clj is now Got.λ

    Our Clojure meetup in Gothenburg has a new name and a wider scope: Got.λ, the Göteborg Functional Programming Group.

    Read on →
  • September 4, 2015

    ClojureScript: From Zero to Production (Part 2) - Integration Testing

    PugglePay dev blog

    Autorunning browser integration specs for a single page ClojureScript app, with Leiningen, clj-webdriver and speclj.

    Read on →
  • August 25, 2015

    Snake in ClojureScript

    Got.clj meetup

    The classic snake game in a single ClojureScript file, with Reagent for rendering and a pure function for each game step.

    Read on →
  • August 12, 2015

    ClojureScript: from zero to production (Part 1)

    PugglePay dev blog

    What we learned shipping our first user-facing ClojureScript app, starting from scratch.

    Read on →
  • August 11, 2015

    Where is my stack? (Part 2): GPG is awesome

    PugglePay dev blog

    Sharing secrets with GPG instead of a shared password, and the small Ruby library we wrote for it.

    Read on →
  • April 23, 2015

    Immutable Record

    RubyGem

    Immutable Ruby values inspired by Clojure's records, printed in a form you can paste back into IRB.

    Read on →
  • April 8, 2015

    Introduction to Functional Programming

    Got.clj meetup

    A first tour of functional programming concepts, from values and pure functions to polymorphism, in Python, Clojure and Haskell.

    Read on →
  • October 17, 2014

    FizzBuzz with Qualified Constants

    Fun code snippet

    FizzBuzz without arithmetic: nested Ruby modules and constant lookup do the modulo for you.

    Read on →
  • August 3, 2014

    Typing Applicative in core.typed

    Fun code snippet

    An attempt at annotating an Applicative protocol in Clojure's core.typed, using dotted type variables for a variadic fapply.

    Read on →
  • July 30, 2014

    moar: monads for Clojure

    Clojure library

    A small monad library for Clojure, built on protocols: maybe, state, continuations, transformers and more.

    Read on →
  • May 30, 2014

    Method not missing

    RubyGem

    A Ruby gem that implements your missing methods for you, by googling them.

    Read on →
  • May 15, 2014

    Quick Roman

    Got.clj meetup

    What happens when you design the Roman numerals kata purely from property-based tests? Tally marks and string rewriting.

    Read on →
  • October 9, 2013

    Where is my stack? (Part 1): Goodbye Torquebox

    PugglePay dev blog

    After five months in production we said goodbye to TorqueBox, and went the Unix way: Nginx, Passenger, Resque and Monit.

    Read on →
  • May 28, 2013

    Pair Programming in the Cloud

    PugglePay dev blog

    How we keep pair programming when one of us is abroad, after trying screen sharing: AWS, SSH, tmux and Emacs.

    Read on →
  • May 3, 2013

    Torquebox or: How I Learned to Stop Worrying and Love the JVM

    PugglePay dev blog

    Why we moved our Rails apps to TorqueBox on JRuby: messaging, daemons and scheduling without the sysadmin pain.

    Read on →
  • December 11, 2012

    Sudoku with core.logic

    Got.clj meetup

    A Sudoku solver with no search algorithm, only constraints.

    Read on →
  • November 15, 2012

    junebot

    Got.clj meetup

    A small multiplayer online game we mob-programmed in Clojure at the Got.clj meetup.

    Read on →
  • December 1, 2009

    Sudoku as SAT

    Chalmers

    A small C++ program that turns a Sudoku grid into a propositional formula and hands it to the Satzoo SAT solver.

    Read on →
  • October 25, 2009

    AIRduino Guitar

    Physical Computing at Chalmers

    A wearable Arduino air guitar: a glove sets the note, a stick with an accelerometer strums it.

    Read on →
Jean-Louis Giordano

Jean-Louis Giordano

Value-Oriented Programmer

  • jean-louis@reify.se
  • LinkedIn
  • GitHub

© 2026 Reify AB · Organization number 559237-4812

Feed