Posts

AI is stressing me out

June 24, 2026

In February I came back to work after a 6 week sabbatical to Opus. It has completely changed the way I do my job. It allows me to spin up agents which investigate code so I don't n…

Why I re-wrote my Slack bot in Gleam

February 13, 2025

Introduction I started working on Music Monday awhile back. It is currently only a Slack bot which, when installed into a channel, selects a user at random to suggest a musical a…

Leex and yecc by example: part 2

December 4, 2024

Welcome to Part 2! In part 1 , we went over our first example of using leex and yecc. In this blog post, I'll lex/parse Advent of code 2024 day 4 and simplify day 3 using an obse…

Leex and yecc by example: part 1

December 3, 2024

Background Advent of code is here and every year I use a parser combinator library to handle the inputs. Lately, I have been into Erlang but I couldn't find a parser combinator l…

Setting up Erlang CI with PostgreSQL

August 7, 2024

Overview In this blog post, I'll quickly discuss how I got Erlang and PostgreSQL set up in GitHub CI. Additionally, I discuss how I set up single use databases for my test infras…

Getting started with Erlang's `maybe_expr`

March 4, 2024

Assumptions You are using rebar3 to build your project. You are using OTP 25. Introduction I am an Erlang beginner and I am currently building a Slack bot to learn more. Here…

Discarding monadic results in Haskell

September 1, 2021

Discarding Monadic Results in Haskell I recently ran this poll on Twitter . The original poll and results, I wasn't expecting much from this poll but the comments turned out…

Building Tensorflow GPU Images for HPC

January 21, 2018

Background I am an HPC administrator for Pitt. A common trend lately is users asking for the newest Tensorflow release the second it is available. However, as many of you probabl…