-
Sprints are back!
Read more »: Sprints are back!Back in early 2010’s, “sprints” were how I lived. Week-long events, in random places around the World, hacking on open source. From offices in European cities, to lake sides, castles and saunas. It’s where I met some of my best friends, where I got business for Niteo’s agency side. It’s where I learned more than…
-
Deploying +100 servers with GitHub Actions
Read more »: Deploying +100 servers with GitHub ActionsLast year we decided to replace our Ubuntu servers with NixOS. We were still on Ubuntu 14.04, so we also had to upgrade all the services and tools, including PHP, MySQL, HAProxy, etc. As you can imagine, this was a lot of work, and you might be asking yourself, “why didn’t you just upgrade Ubuntu?”…
-
Concurrency in Go
Read more »: Concurrency in GoConcurrency in Go is an extensive topic, and we won’t cover all the things in this post. There are tons of articles and several books that cover concurrency in depth. The goal of this post is to cover topics between basic and advance. We’ll cover the usage of sync.WaitGroup and channels. Those two things combined…
-
Postmortems
Read more »: PostmortemsEarlier this year, on one of our half-yearly IRL’s, we had a discussion about whether or not we should proceed with a massive upgrade…
-
Lowering H12 errors on Heroku
Read more »: Lowering H12 errors on HerokuThis post will briefly discuss H12 errors on Heroku, more commonly known as request timeouts, how we tackled them, and how we fixed them. Before we start, let’s establish some context. We have an app that’s a hub for ~600 servers. A few times per day, each server creates a request to the app, ensuring…
-
Staging like it’s 2020
Read more »: Staging like it’s 2020Last year, we wrote a blog post on how we use Heroku’s Review Apps to create staging apps for every Pull Request submitted to a project’s repository. These apps are created and deployed automatically, completely isolated from the production environment, and contain the changes from the Pull Request. This allows every stakeholder to see how…
-
Project isolation beyond requirements.txt
Read more »: Project isolation beyond requirements.txtI’ve been a Python dev for almost 15 years now and I’ve recently completely overhauled how I keep my development tools and dependencies in check. I’m so happy with my new setup that I couldn’t wait to share it with fellow geeks! Some background I used to use Homebrew to install tools such as pyenv…
-
Astronomer, psychologist, and MIT professor went to a design conference
Read more »: Astronomer, psychologist, and MIT professor went to a design conferenceThe title could sound like the beginning of some joke, but the modern design field attracts more and more professionals that don’t do that much drawing but build new systems and experiences. This year FITC Amsterdam again gathered a lot of great professionals to share their most interesting projects and thoughts. Now I’d like to…
-
Reading Nix expressions
Read more »: Reading Nix expressionsThese are my notes from the Reading Nix expressions talk in NixCon 2019. Nix package language has a similar syntax to the “JSON meets functional language concepts”. E.g. you have Let-expressions which I would say is a functional concept (ref: https://en.wikipedia.org/wiki/Let_expression) – I first saw it in Elm and Haskell. An important thing to keep…