-
OceanSprint 2022
Read more »: OceanSprint 2022The mind has not yet completely recovered from all the brain explosions that happened during OceanSprint 2021, and I was already planning the next one. I’ve never organized two sprints so close to each other, but it worked out great! Domen and I knew exactly what we were getting into, most of the vendors we…
-
How we spent $980,000 on a failed SaaS project
Read more »: How we spent $980,000 on a failed SaaS projectThree months after we closed the sale of WooCart, our project that was gonna “make it big”, I am ready to review the full financial consequences of our failure: $700k loss.
-
Standing on the shoulders of giants
Read more »: Standing on the shoulders of giantsWhether we know it or not, we build things based on the work done before us. This is true in every aspect of life, and programming is no different. Every few weeks, we (at Niteo) have a developer session where we (developers at Niteo) talk about new things we learned, cool libraries/tools we discovered, etc.Last…
-
Nix build on a diet
Read more »: Nix build on a dietAt Niteo, we are using nix-shell to build isolated development and production environments. We deploy production as a Docker image on Heroku. Recently, I’ve noticed that Pareto Security dashboard app deployments have been very slow. Almost 10 minutes, even more on a busy afternoon. Most of the time was spent in copying files around, as…
-
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…