mbg - Overview

I am a Software Engineer at GitHub, where I work on CodeQL. Some of this work is open-source and can be found in places such as github/codeql, github/codeql-action, as well as in other repositories.

Until joining GitHub, I worked at Tweag as a Haskell consultant for some of their clients.

Before becoming a Software Engineer, I was a Senior Teaching Fellow (equivalent to Assistant Professor, teaching only) at the University of Warwick from 2017 until 2021, where I led courses on Functional Programming, Cyber Security, and others. I also held various administrative positions during my time there.

More recently, I was a Visiting Assistant Professor at the University of Birmingham and taught a course on Software Engineering there in 2024.

I like open-source, teaching, and all things to do with programming languages!

I maintain a number of Haskell libraries, which you can find on Hackage. Some that you might be interested in are:

  • wai-rate-limit, which allows you to add rate limiting to your web applications; also available specifically for Servant.
  • wai-saml2 if you are building a SAML2 Service Provider.
  • logstash implements various logger backends that can write to Logstash.
  • network-wait lets you wait for networked services to become available.
  • home-assistant-client is a client library for the Home Assistant REST API.
  • moss, a client for Moss, which is a code similarity checking tool.
  • c14n provides Haskell bindings for the C14N implementation (XML normalisation) in libxml2.
  • time-units-types, a small library for representing time units at the type-level.
  • sarif allows reading and writing SARIF files.
  • hindley-milner is a template for when you are building a Hindley Milner derived language and want a starting point.
  • hoop is an experimental library I built while studying for a PhD, which implements an object system in Haskell.

For all of my functional programming teaching materials, head over to the fpclass organisation.

You can also find my website at michael-gale.co.uk.