Recently I’ve been feeling the urge to play around with tech for no other reason than the enjoyment of figuring out how something works. I haven’t felt this way for a very long time so I cherish the feeling; turns out I might not be devolving into an un-excitable blob as I had feared.| Mads Hartmann
Gitpod just released a proper CLI 🥳 You can read more about it in Take Gitpod to your local command line.| Mads Hartmann
Twitter X is slowly dying and none of the replacements are doing it for me.| Mads Hartmann
I wanted to write a bit about why I find Nix interesting. This is a sort of prequel to my post Use cases for Nix.| Mads Hartmann
I have been vaguely aware of Nix for several years but never really took the time to sit down and play around with it until recently. I originally started writing an intro-style blog-post about Nix as a way to document my learning path but the post just kept growing and growing in scope. It got to a point where - with the limited spare time I have these days - I would never be able to finish it. So instead I thought I’d simply start by writing about why I’m interested in Nix and what prob...| Mads Hartmann
In 2017 I posted a “year in review” post with the intention of writing one every following year. I never wrote another one. It has been four years now so I thought I’d give it a go again.| Mads Hartmann
Thundering herds, noisy neighbours, retry storms.| Mads Hartmann
I had the pleasure of contributing an article to the Reliability issue of Increment magazine. The article is titled Tracing a path to observability and chronicles our efforts at Glitch to gain visibility into our production systems and eventually make them more reliable. Give it a read and let me know what you think.| Mads Hartmann
At Glitch we’ve recently completed a project to migrate to SLO-based alerts. It’s too early to tell if this has been a success or not, but in this post I’ll write about our motivation for going down this route, and give an introduction to all the concepts you need to know, should you want to give it a go as well. SLOs are useful for a lot of things. As you’ll see below, we’re hoping that by implementing SLOs - and alerting on them - we’ll be able to improve communication during in...| Mads Hartmann
As part of an upcoming episode of Shift Shift Forward I answered a few questions about incident response. The description of the episode is:| Mads Hartmann
Recently Charity Majors asked a few hypothetical questions (tweet) around what you’d want out of a book on observability. I saw this as excellent opportunity to throw a bunch of questions I’ve been struggling with at an observability expert - so here are my questions ☺️| Mads Hartmann
As I have alluded to in the other parts of this little series of posts we’ve been investing in observability tools at Glitch to help us keep the platform reliable, even as more and more people run their apps on Glitch. In this post, I’ll focus on why we started investing in observability tools, where we are now and how we got there, and finally what we still haven’t figured out.| Mads Hartmann
At Glitch we have been investing in observability tools to help us keep the platform reliable, even as more and more people run their apps on Glitch. In the previous post in this series I highlighted some of the best observability resources I’ve come across so far. In this post I’ll focus on telemetry.| Mads Hartmann
I’ve been reading up on observability over the last three months. In this post I have organized the material into a sort of recommended reading order. It doesn’t reflect the order in which I read it, but I think this order would’ve made more sense.| Mads Hartmann
If you follow along on Twitter, you might know that a couple of days ago I took down glitch.com for about half an hour. This is the first time I’ve ever taken down production - and I was just three days shy of having been at Glitch for three months 😅| Mads Hartmann
I’m on a plane heading back to Copenhagen, waiting on the tarmac till the runway is clear. I’m exhausted but also incredibly excited about things to come — I’ve just completed my first week at Glitch.| Mads Hartmann
I’ve been using AWK for ages to pick out specific columns in lines of text. However, I recently wrote a tiny AWK program that looked so obscure that it tickled the part of me that loves esoteric programming languages. I decided to sit down and read up on AWK; to my delight it turns out to be a cooler language than I expected. In this post I’ll cover just enough of the language for you to comfortably write small AWK programs.| Mads Hartmann
famlydev has evolved quite a lot since I gave a talk about it last year. One of the biggest changes is we’ve loosened the requirement that everything should run inside of Docker. Instead the developer should be able to mix-and-match between having things running on the host, in docker, or in our staging environment. To make this possible we run a proxy whose configuration I’ll go through in this blog post.| Mads Hartmann
2017 is almost over now. This year I’ll try something new and write a blog post recapping what I’ve been up to this year and what my hopes are for next year. Happy new years everyone 🎉| Mads Hartmann
About a year ago my brother started moving from experimental physics into machine learning and I’ve been helping him out with some of the more practical aspects of the field (such as automation, code style, linting, structuring of projects, etc.). Most recently I helped him deploy one of his projects to AWS – in this post I’ll go through how we took his locally running flask application and put it into ‘‘production’’.| Mads Hartmann
I’ve had to write a couple of completion scripts for zsh over the last couple of months. I write such scripts rarely enough that I seem to have forgotten how to do it every time I set out to write a new one. So this time I decided to write down a few notes so I don’t have to look through the documentation too much next time.| Mads Hartmann
Recently I’ve been spending a bit more time on my dotfiles and I’ve really been enjoying it so I wanted to try and put into words what’s so enjoyable about it.| Mads Hartmann
Recently I’ve been writing quite a lot of Bash scripts. It’s been a mix of scripts for my own .dotfiles, scripts that automate our local development here at Famly, and scripts that are used as part of our CI/CD pipeline.| Mads Hartmann
I use AWS in two different contexts. We use it quite extensively at Famly and personally I use it for various smaller hobby projects.| Mads Hartmann
Recently I’ve been thinking about what the ideal developer environment looks like to me and tried to implement some of those thoughts at Famly. I don’t mean developer environment in the sense of an IDE but rather the set of tools and services you are running in order to develop on your various projects. If you’re working on a backend that might be Postgres, Redis, and your backend. To me this is your developer environment; the developer environment is agnostic to what tools you use to m...| Mads Hartmann
I’ve used Make in a range of projects – some large, some tiny – and I’ve been happy with the results. Over time, through colleagues and books, I’ve picked up a few tricks and found a nice way to think about your Makefile(s). However, it’s only about a year ago that I really got Make under my skin and felt I understood the power of Make and what problems it solves nicely. I’m putting down my thoughts here in a way that I believe past-Mads would’ve found helpful; it might have h...| Mads Hartmann
I’m having a lot of fun exploring what kinds of development environments and work-flows that Docker can enable. There’s one thing that’s been on my mind lately and I haven’t been able to find a proper solution to it. I’m sharing my thoughts here in the hopes that perhaps some of you have come up with a creative solution.| Mads Hartmann
Recently I’ve been quite obsessed with Make. I think it might be the perfect tool to deal with complex software projects that consist of many different systems that are build using various languages (my team at issuu uses it to the build, test, & deploy our frontend, backend and various internal tools). However, I’ll save that rant for another blog post but given my fascination with Make I recently set out to write a Makefile for this blog.| Mads Hartmann
Every once in a while I find it really convenient to use a tree-like project explorer to get an overview of the project I’m working on. For me this is especially the case when working on new projects or during pair-prgramming sessions. This feature has become ubiquitous in all editors and Emacs does have quit a lot of packages that try to solve this problem. Throughout the years I’ve tried a couple of them (some examples being sr-speedbar, project-explorer, emacs-neotree) but none of them...| Mads Hartmann
I recently thought it would be cool to show a list, here on the blog, of all the projects that I’ve contributed to on Github. I googled around a bit and found this Stack Overflow answer.| Mads Hartmann
When I first read about the time-travel feature of the ocaml debugger I was very intrigued but never got around to trying it out in practice at work. This weekend I decided to give it a go.| Mads Hartmann
This document gives you a brief tour of OCaml. It covers a rather small selection of features; the selection has been based on what features I personally think represent OCaml the best.| Mads Hartmann
I have an ever-growing document where I keep track of all the small (and| Mads Hartmann
Mads Hartmann’s Blog| Mads Hartmann
I’ve been interested in GADTs1 for quite some time now but I’ve had a hard time finding proper use-cases for them in my day-to-day programming tasks; this is not because GADTs aren’t useful, they are, but rather that my understanding of them has been limited.| Mads Hartmann