41554 blogs · [ { "id": "01a0879e-66af-72a8-9ff0-824aa9284e59", "title": "Using AI to do your best work", "url": "https://mads-hartmann.com/blog/using-ai-to-do-your-best-work", "published_at": "2026-01-27T12:00:00+00:00" }, { "id": "01a0879e-66af-72a8-9ff0-824aaa0b90fa", "title": "Topics for 2025", "url": "https://mads-hartmann.com/blog/topics-for-2025", "published_at": "2025-01-03T19:00:00+00:00" }, { "id": "01a0879e-66af-72a8-9ff0-824aaa684abd", "title": "Gitpod CLI Tips & Tricks", "url": "https://mads-hartmann.com/blog/gitpod-cli", "published_at": "2023-12-19T09:00:00+00:00" }, { "id": "01a0879e-66af-72a8-9ff0-824aaa98b871", "title": "Falling back to RSS", "url": "https://mads-hartmann.com/blog/falling-back-to-rss", "published_at": "2023-09-26T10:00:00+00:00" }, { "id": "01a0879e-66af-72a8-9ff0-824aaacd7b25", "title": "Why Nix is interesting", "url": "https://mads-hartmann.com/blog/why-nix-is-interesting", "published_at": "2022-11-02T10:00:00+00:00" }, { "id": "01a0879e-66b0-7044-bf3c-0f5c4ad8fedb", "title": "Use cases for Nix", "url": "https://mads-hartmann.com/blog/use-cases-for-nix", "published_at": "2022-10-18T10:00:00+00:00" }, { "id": "01a0879e-66b0-7044-bf3c-0f5c4b2b7004", "title": "2021 in review", "url": "https://mads-hartmann.com/blog/year-in-review", "published_at": "2021-12-18T10:00:00+00:00" }, { "id": "01a0879e-66b0-7044-bf3c-0f5c4b402e80", "title": "Thundering herds, noisy neighbours, and retry storms", "url": "https://mads-hartmann.com/blog/thundering-herd", "published_at": "2021-05-14T10:00:00+00:00" }, { "id": "01a0879e-66b0-7044-bf3c-0f5c4b75021c", "title": "Increment Magazine", "url": "https://mads-hartmann.com/blog/increment-magazine", "published_at": "2021-03-14T10:00:00+00:00" }, { "id": "01a0879e-66b0-7044-bf3c-0f5c4c3c9b94", "title": "Alerting on SLOs", "url": "https://mads-hartmann.com/blog/alerting-on-slos", "published_at": "2020-09-08T10:00:00+00:00" }, { "id": "01a0879e-66b0-7044-bf3c-0f5c4d1510f4", "title": "Feelings during incident response", "url": "https://mads-hartmann.com/blog/feelings-during-incident-response", "published_at": "2020-05-07T05:00:00+00:00" }, { "id": "01a0879e-66b0-7044-bf3c-0f5c4df0cb15", "title": "My wishlist for a book on observability", "url": "https://mads-hartmann.com/blog/wishlist-for-book-on-observability", "published_at": "2020-04-08T10:00:00+00:00" }, { "id": "01a0879e-66b0-7044-bf3c-0f5c4e8b0004", "title": "Journey into Observability: Glitch's journey", "url": "https://mads-hartmann.com/blog/journey-into-observability-glitchs-journey", "published_at": "2020-03-05T12:00:00+00:00" }, { "id": "01a0879e-66b0-7044-bf3c-0f5c4e9bd1c9", "title": "Journey into Observability: Telemetry", "url": "https://mads-hartmann.com/blog/journey-into-observability-telemetry", "published_at": "2020-01-11T12:00:00+00:00" }, { "id": "01a0879e-66b0-7044-bf3c-0f5c4f2b761d", "title": "Journey into Observability: Reading material", "url": "https://mads-hartmann.com/blog/journey-into-observability-reading-material", "published_at": "2019-08-04T12:00:00+00:00" }, { "id": "01a0879e-66b0-7044-bf3c-0f5c4f313ddd", "title": "My first outage", "url": "https://mads-hartmann.com/blog/my-first-outage", "published_at": "2019-03-01T12:00:00+00:00" }, { "id": "01a0879e-66b0-7044-bf3c-0f5c5026a05a", "title": "First week at Glitch", "url": "https://mads-hartmann.com/blog/first-week-at-glitch", "published_at": "2018-12-09T14:00:00+00:00" }, { "id": "01a0879e-66b0-7044-bf3c-0f5c5089a0bc", "title": "Enough AWK to get by", "url": "https://mads-hartmann.com/blog/enough-awk-to-get-by", "published_at": "2018-09-29T12:00:00+00:00" }, { "id": "01a0879e-66b0-7044-bf3c-0f5c51412428", "title": "Famlydev: Proxy", "url": "https://mads-hartmann.com/blog/famlydev-proxy", "published_at": "2018-03-24T12:00:00+00:00" }, { "id": "01a0879e-66b0-7044-bf3c-0f5c51f0636e", "title": "2017 in review", "url": "https://mads-hartmann.com/blog/2017", "published_at": "2017-12-25T12:00:00+00:00" }, { "id": "01a0879e-66b0-7044-bf3c-0f5c5261e5b4", "title": "Deploying Prototypes using Docker", "url": "https://mads-hartmann.com/blog/deploying-prototypes-using-docker", "published_at": "2017-08-20T10:00:00+00:00" }, { "id": "01a0879e-66b0-7044-bf3c-0f5c534c2c28", "title": "Writing zsh completion scripts", "url": "https://mads-hartmann.com/blog/writing-zsh-completion-scripts", "published_at": "2017-08-06T10:00:00+00:00" }, { "id": "01a0879e-66b0-7044-bf3c-0f5c543fdf56", "title": "Why I ❤ dotfiles", "url": "https://mads-hartmann.com/blog/why-i-love-dotfiles", "published_at": "2017-08-02T13:00:00+00:00" }, { "id": "01a0879e-66b0-7044-bf3c-0f5c54d9edb7", "title": "Writing Readable Bash Scripts", "url": "https://mads-hartmann.com/blog/writing-readable-bash-scripts", "published_at": "2017-06-16T12:30:00+00:00" }, { "id": "01a0879e-66b0-7044-bf3c-0f5c55cc6b40", "title": "Dealing with multiple AWS profiles", "url": "https://mads-hartmann.com/blog/multiple-aws-profiles", "published_at": "2017-04-27T18:00:00+00:00" }, { "id": "01a0879e-66b0-7044-bf3c-0f5c55d77b12", "title": "Automating Developer Environments", "url": "https://mads-hartmann.com/blog/automating-developer-environments", "published_at": "2017-01-15T13:00:00+00:00" }, { "id": "01a0879e-66b0-7044-bf3c-0f5c562fd1e6", "title": "Make", "url": "https://mads-hartmann.com/blog/make", "published_at": "2016-08-20T13:00:00+00:00" }, { "id": "01a0879e-66b0-7044-bf3c-0f5c56eac960", "title": "Emacs & Docker - What's your setup?", "url": "https://mads-hartmann.com/blog/emacs-and-docker", "published_at": "2016-07-18T10:00:00+00:00" }, { "id": "01a0879e-66b0-7044-bf3c-0f5c575e75ef", "title": "Exporting org from Make", "url": "https://mads-hartmann.com/blog/exporting-org-from-make", "published_at": "2016-07-03T07:00:00+00:00" }, { "id": "01a0879e-66b0-7044-bf3c-0f5c5859826c", "title": "Emacs Tree View", "url": "https://mads-hartmann.com/blog/emacs-tree-view", "published_at": "2016-05-12T07:00:00+00:00" }, { "id": "01a0879e-66b0-7044-bf3c-0f5c58928c57", "title": "Github Archive", "url": "https://mads-hartmann.com/blog/github-archive", "published_at": "2015-02-05T21:08:52+00:00" }, { "id": "01a0879e-66b0-7044-bf3c-0f5c59777982", "title": "Detecting use-cases for GADTs in OCaml", "url": "https://mads-hartmann.com/blog/gadt-ocaml", "published_at": "2015-01-05T21:00:00+00:00" }, { "id": "01a0879e-66b0-7044-bf3c-0f5c5a42f499", "title": "ocamldebug", "url": "https://mads-hartmann.com/blog/ocamldebug", "published_at": "2014-11-15T21:00:00+00:00" }, { "id": "01a0879e-66b0-7044-bf3c-0f5c5aa047b8", "title": "OCaml Briefly", "url": "https://mads-hartmann.com/blog/ocaml-briefly", "published_at": "2014-11-13T14:00:00+00:00" }, { "id": "01a0879e-66b0-7044-bf3c-0f5c5b4f25ad", "title": "Complete Words Based on the Active Dictionary in Emacs", "url": "https://mads-hartmann.com/blog/complete-word-based-on-dictionary", "published_at": "2014-03-03T20:19:00+00:00" }, { "id": "01a0879e-66b0-7044-bf3c-0f5c5b9b9c2c", "title": "Using Utop in Emacs", "url": "https://mads-hartmann.com/blog/using-utop-in-emacs", "published_at": "2014-01-05T14:08:52+00:00" } ] posts Claim your blog
Back to mads-hartmann.com
Blog · corpus.blog/blogs/mads-hartmann.com/posts

mads-hartmann.com

mads-hartmann.com

2026

2025

2023

2022

2021

2020

2019

2018

2017

2016

20 Aug 2016

2015

2014