I'm John Azariah — a software engineer who thinks in types, composes with functions, and believes that the best abstractions are the ones mathematics already discovered.

This blog explores functional programming, language design, and the ideas that connect theory to practice — mostly in F#, C#, and Python.

Highlights

F# & Q# — A Tale of Two Languages

FsAdvent & QsAdvent 2018

F# and Q# are more tightly related than you might expect. The story of how F# influenced and enabled the development of Q# — Microsoft's language for Quantum Computing.

This is not a Monad Tutorial

FsAdvent 2022

Some fundamentals of functional programming — what monads actually are, without the hand-waving.

Series

Intent vs Process

6 parts · C#, F#, Category Theory

N-tier, Clean Architecture, CQRS — they all share the same unspoken coupling. This series names it, then fixes it with algebra.

Tagless Final in F#

6 parts · F#, DSLs, Computation Expressions

Building DSLs with the Tagless-Final pattern — from a tiny frog game to elevator verification and model checking.

The Parseltongue Chronicles

5 parts · Python, Functional Programming

A functional programmer's journey into Python — decorators, pipelines, trampolines, and finding the beauty in the snake.

Scientific Computing with F#

5 parts · F#, Optimization, BRKGA

Evolutionary algorithms, the Ising model, and the Travelling Salesman — all in F#.

Lego, Railway Tracks, and Origami

5 parts · F#, Functors, Monads

How the foundations of functional programming — functors, applicatives, monads — have neat effects on real-life code.

Standalone Posts