We all hate it when it happens. You know what I’m talking about – your app works perfectly fine locally, you deploy it… and then bam!
In my case, I hit a terrible, terrible performance bottleneck.
It all started when I was setting up a whole new service from scratch. A pretty standard container deployment, running on EC2 instances. Nothing too fancy, and it seemed everything went smooth. First version deployed.
Read more
Today I’m going cover why you would want to use fixed & closed GOPs in HLS streaming – and how to do it using ffmpeg.
Open and closed groups of pictures If you came here you probably already know that in video coding a group of pictures (GOP) is a term that defines how I, P and B frames are arranged – or more specifically, the interval between the I-frames. I frames contain full image data, while P and B frames are so-called predictive frames and only have partial data.
Read more
Recently I asked solo-founders what are their choices when it comes to hosting their projects. Here are the most common choices along with their rationales.
Read more
Regardless of whether you’re architecting new services or preparing to migrate your workloads – choosing the proper underlying nodes size can make or break your experience with this amazing tool. Here are some key points you should pay attention to.
Read more
Lately I have decided to take some time to work on my side-projects and make them useful for the broader public.
Inevitably, I bumped into a problem. Actually, not really a problem, but I had to implement a simple authentication scheme that at the same time wouldn’t be an overkill.
I decided to use passwordless login and registration links because it seemed to fit my app just right and I wanted to have as little overhead as possible.
Read more
Recently I read an article about The Guardian migrating from Mongo to Postgres. What struck me far more than the article itself, was the heated discussion going on under the reddit post.
Read more
There are many factors that contribute to the quality of the code we produce. Undoubtfully, adopting Continuous Integration is one of the biggest leaps one can make when closing the gap between The Holy Grail Of Software Engineering.
Over time there have emerged quite a few CI services that make it easy to integrate changes to our code. Unless you’ve been living in vacuum for the past few years, you must’ve heard names like Jenkins, TravisCI or CircleCI.
But what if I told you, you could roll your own YetAnotherCI in just around 100 lines of Clojure? If this sounds interesting, make sure to follow along and ship YACI with us.
Read more
TL;DR There used to be a post about using git notes in a hypothetical CD scenario, but since I thought it wasn’t providing any value anymore I decided to rake it and instead I’ve limited it to describing git notes features and linking to the official documentation.
Read more
There are many reasons one might want to see output from shell commands in another terminal emulator but it definitely has its uses. The other day it just so happended that I needed such a functionality. Without going into details I’m going to show you how to achieve such behaviour – and more – easily, by leveraging the fact that under the hood std(in|out|err) are just *nix file descriptors.
Read more
Recently I was toying around with Lisp a bit and thought I’d share some insights.
As you may or may not know programming in Lisps is somewhat different from the average programming languages you’re used to. In what way, you might ask – and no, I don’t mean being swarmed up with parenthesis (besides syntax should be the least concern when picking The Right Tool). Here’s why.
Read more