Mark Galeastay safe, keep hacking!
Mark Galeastay safe, keep hacking!

Themes

I build Cats-Actors · EventStore · Agentomics-ML

Notes from building things.

I'm Mark. I write long, hands-on tutorials and build the tools I write about.

2026

  1. EventStore: One Ordered Log for Everything new

    Event logs · One index, one writer, and the exact delivery guarantee you get.

  2. Cats-Actors 2.2.0: Taking Control of Time

    Actors · Part 4 of 4 · Testing timers and timeouts without sleeps, using a clock you control.

  3. Cats-Actors 2.1.0 Goes Cross-Platform

    Actors · Part 3 of 4 · One actor codebase on the JVM, as a native binary, and in the browser.

2024

  1. Typed Actors in Action - Exploring Cats-Actors with Alice and Bob

    Actors · Part 2 of 4 · Typed actors in Cats-Actors 2.0, through Alice and Bob's wallet transfers.

  2. A Logic Circuit Simulator with Cats-Actors

    Actors · Part 1 of 4 · A logic circuit simulator where every gate is an actor.

2021

  1. Functional Programming to the max

    Functional programming · A small procedural program, made functional one step at a time.

2019

  1. Node Management in GKE

    Infrastructure · How our GKE node pools recover from crashes on their own.

  2. Performant Functional Programming to the max with ZIO

    Functional programming · Rebuilding ACME's order summary with ZIO, pure and fast.

  3. Why Kubernetes? Google Cloud Event Follow-up

    Infrastructure · Why we moved to Kubernetes, from my talk at Google Cloud Event Malta.

  4. Computation Context - Walk the Line

    Functional programming · Why FP is more than a refactor: effects as computation contexts.

2018

  1. Lambda Calculus is Dead! Long live Lambda Calculus!

    Functional programming · Numbers, booleans and recursion from nothing but functions.

2017

  1. An efficient headless CMS on top of Wordpress - a.k.a the ACF Compiler!

    Web · Making ACF and WordPress fast enough to be a headless CMS.

  2. Akka Finite State Machine (FSM) and At Most Once Semantics

    Actors · Modelling actor behaviour with Akka FSM, and delivering at most once.

  3. Angular 2 - Define Routes Dynamically using UIRouter

    Web · Defining Angular routes at runtime with UIRouter.

2016

  1. Crawling the Web using Actors

    Actors · A web crawler built from Akka actors, one task at a time.

  2. Functions as Data

    Functional programming · A set library where every set is just a function.

  3. Decision Trees with Kotlin

    Machine learning · Learning "Play Tennis" with a decision tree written in Kotlin.

  4. TypeScript Json Mapper

    Web · Mapping JSON onto typed TypeScript classes.

  5. Controlling Digests in AngularJS

    Web · Finding and fixing AngularJS digest bottlenecks in a big ng-repeat.

  6. Language Detection using N-Grams - Part II

    Machine learning · Part 2 of 2 · Building language profiles from real text, and scoring sentences against them.

  7. Language Detection using N-Grams

    Machine learning · Part 1 of 2 · How n-gram profiles tell which language a sentence is in.

  8. Dockerise, Deploy, Update Code, Repeat

    Infrastructure · A Spring Boot Hello World, packaged with Docker and deployed on Kubernetes.

  9. The Three Little Modules and the slick Universal Loader

    Web · Three JavaScript module formats, and one loader that handles them all.

  10. Slack! Hubot! Github!

    Web · Set up Slack and Hubot so a chat bot can talk to GitHub.

  11. Houses, Arrays and Higher Order Functions

    Functional programming · Mapping, filtering and reducing a street of houses with higher order functions.

  12. Higher Order Functions in Practice

    Functional programming · What a higher order function is, shown in JavaScript.

  13. Data Abstraction and Closures

    Functional programming · SICP's picture language in JavaScript, to show data abstraction with closures.

Event logs

An ordered log, read three ways, folded into state.

1 post · 2026 EventStore on GitHub
  1. EventStore: One Ordered Log for Everything new

    One index, one writer, and the exact delivery guarantee you get.

Actors

Messages, mailboxes and supervision, from Akka to Cats-Actors.

6 posts · 2016–2026 Cats-Actors on GitHub
  1. Crawling the Web using Actors

    A web crawler built from Akka actors, one task at a time.

  2. Akka Finite State Machine (FSM) and At Most Once Semantics

    Modelling actor behaviour with Akka FSM, and delivering at most once.

  3. A Logic Circuit Simulator with Cats-Actors

    Part 1 of 4 · A logic circuit simulator where every gate is an actor.

  4. Typed Actors in Action - Exploring Cats-Actors with Alice and Bob

    Part 2 of 4 · Typed actors in Cats-Actors 2.0, through Alice and Bob's wallet transfers.

  5. Cats-Actors 2.1.0 Goes Cross-Platform

    Part 3 of 4 · One actor codebase on the JVM, as a native binary, and in the browser.

  6. Cats-Actors 2.2.0: Taking Control of Time

    Part 4 of 4 · Testing timers and timeouts without sleeps, using a clock you control.

Functional programming

From closures to lambda calculus to ZIO.

8 posts · 2016–2021
  1. Data Abstraction and Closures

    SICP's picture language in JavaScript, to show data abstraction with closures.

  2. Higher Order Functions in Practice

    What a higher order function is, shown in JavaScript.

  3. Houses, Arrays and Higher Order Functions

    Mapping, filtering and reducing a street of houses with higher order functions.

  4. Functions as Data

    A set library where every set is just a function.

  5. Lambda Calculus is Dead! Long live Lambda Calculus!

    Numbers, booleans and recursion from nothing but functions.

  6. Computation Context - Walk the Line

    Why FP is more than a refactor: effects as computation contexts.

  7. Performant Functional Programming to the max with ZIO

    Rebuilding ACME's order summary with ZIO, pure and fast.

  8. Functional Programming to the max

    A small procedural program, made functional one step at a time.

Infrastructure

Containers and Kubernetes, the parts I actually used.

3 posts · 2016–2019
  1. Dockerise, Deploy, Update Code, Repeat

    A Spring Boot Hello World, packaged with Docker and deployed on Kubernetes.

  2. Why Kubernetes? Google Cloud Event Follow-up

    Why we moved to Kubernetes, from my talk at Google Cloud Event Malta.

  3. Node Management in GKE

    How our GKE node pools recover from crashes on their own.

Machine learning

Small models, built by hand.

3 posts · 2016 Agentomics-ML on GitHub
  1. Language Detection using N-Grams

    Part 1 of 2 · How n-gram profiles tell which language a sentence is in.

  2. Language Detection using N-Grams - Part II

    Part 2 of 2 · Building language profiles from real text, and scoring sentences against them.

  3. Decision Trees with Kotlin

    Learning "Play Tennis" with a decision tree written in Kotlin.

Web

Front-end tricks from the Angular years.

6 posts · 2016–2017
  1. Slack! Hubot! Github!

    Set up Slack and Hubot so a chat bot can talk to GitHub.

  2. The Three Little Modules and the slick Universal Loader

    Three JavaScript module formats, and one loader that handles them all.

  3. Controlling Digests in AngularJS

    Finding and fixing AngularJS digest bottlenecks in a big ng-repeat.

  4. TypeScript Json Mapper

    Mapping JSON onto typed TypeScript classes.

  5. Angular 2 - Define Routes Dynamically using UIRouter

    Defining Angular routes at runtime with UIRouter.

  6. An efficient headless CMS on top of Wordpress - a.k.a the ACF Compiler!

    Making ACF and WordPress fast enough to be a headless CMS.

Things I build

Cats-ActorsTyped, functional actors for Scala on the JVM, JS and Native.
GitHub
EventStoreOne ordered log you can pull from, push from and shard.
GitHub
Agentomics-MLAutonomous agents that develop supervised ML models, made for biomedical data. Built with the BioGeMT group.
GitHub