# Blog

## ✨ Highlights ✨

- [Series on Observability](/series/observability/index.html)2019 - 2020
- [Enough AWK to get by](/2018/09/29/enough-awk-to-get-by.html)29 Sep 2018
- [Make](/2016/08/20/make.html)20 Aug 2016
- [Detecting use-cases for GADTs in OCaml](/ocaml/2015/01/05/gadt-ocaml.html)05 Jan 2015

## 2026

- [Using AI to do your best work](/2026/01/27/using-ai-to-do-your-best-work.html)27 Jan 2026

## 2025

- [Topics for 2025](/2025/01/03/topics-for-2025.html)03 Jan 2025

## 2023

- [Gitpod CLI Tips & Tricks](/2023/12/19/gitpod-cli.html)19 Dec 2023
- [Falling back to RSS](/2023/09/26/falling-back-to-rss.html)26 Sep 2023

## 2022

- [Why Nix is interesting](/2022/11/02/why-nix-is-interesting.html)02 Nov 2022
- [Use cases for Nix](/2022/10/18/use-cases-for-nix.html)18 Oct 2022

## 2021

- [2021 in review](/2021/12/18/year-in-review.html)18 Dec 2021
- [Thundering herds, noisy neighbours, and retry storms](/sre/2021/05/14/thundering-herd.html)14 May 2021
- [Increment Magazine](/sre/2021/03/14/increment-magazine.html)14 Mar 2021

## 2020

- [Alerting on SLOs](/sre/2020/09/08/alerting-on-slos.html)08 Sep 2020
- [Feelings during incident response](/sre/2020/05/07/feelings-during-incident-response.html)07 May 2020
- [My wishlist for a book on observability](/sre/2020/04/08/wishlist-for-book-on-observability.html)08 Apr 2020
- [Journey into Observability: Glitch's journey](/sre/2020/03/05/journey-into-observability-glitchs-journey.html)05 Mar 2020
- [Journey into Observability: Telemetry](/sre/2020/01/11/journey-into-observability-telemetry.html)11 Jan 2020

## 2019

- [Journey into Observability: Reading material](/sre/2019/08/04/journey-into-observability-reading-material.html)04 Aug 2019
- [My first outage](/2019/03/01/my-first-outage.html)01 Mar 2019

## 2018

- [First week at Glitch](/2018/12/09/first-week-at-glitch.html)09 Dec 2018
- [Enough AWK to get by](/2018/09/29/enough-awk-to-get-by.html)29 Sep 2018
- [Famlydev: Proxy](/2018/03/24/famlydev-proxy.html)24 Mar 2018

## 2017

- [2017 in review](/2017/12/25/2017.html)25 Dec 2017
- [Deploying Prototypes using Docker](/2017/08/20/deploying-prototypes-using-docker.html)20 Aug 2017
- [Writing zsh completion scripts](/2017/08/06/writing-zsh-completion-scripts.html)06 Aug 2017
- [Why I ❤ dotfiles](/2017/08/02/why-i-love-dotfiles.html)02 Aug 2017
- [Writing Readable Bash Scripts](/2017/06/16/writing-readable-bash-scripts.html)16 Jun 2017
- [Dealing with multiple AWS profiles](/2017/04/27/multiple-aws-profiles.html)27 Apr 2017
- [Automating Developer Environments](/2017/01/15/automating-developer-environments.html)15 Jan 2017

## 2016

- [Make](/2016/08/20/make.html)20 Aug 2016
- [Emacs & Docker - What's your setup?](/2016/07/18/emacs-and-docker.html)18 Jul 2016
- [Exporting org from Make](/2016/07/03/exporting-org-from-make.html)03 Jul 2016
- [Emacs Tree View](/2016/05/12/emacs-tree-view.html)12 May 2016

## 2015

- [Github Archive](/2015/02/05/github-archive.html)05 Feb 2015
- [Detecting use-cases for GADTs in OCaml](/ocaml/2015/01/05/gadt-ocaml.html)05 Jan 2015

## 2014

- [ocamldebug](/ocaml/2014/11/15/ocamldebug.html)15 Nov 2014
- [OCaml Briefly](/ocaml/2014/11/13/ocaml-briefly.html)13 Nov 2014
- [Complete Words Based on the Active Dictionary in Emacs](/emacs/2014/03/03/complete-word-based-on-dictionary.html)03 Mar 2014
- [Using Utop in Emacs](/ocaml/2014/01/05/using-utop-in-emacs.html)05 Jan 2014


---

Canonical page: https://blog.mads-hartmann.com/
