Over two years ago I wrote about open source alternatives to GA and I was running countly since then. As I’m still redoing my infrastructure using Nomad from Hashicorp after some struggle I realized that I don’t want to move Countly after all. Reason below.
Nomad by HashiCorp is an interesting alternative for workload orchestration. As the project reached version 1.0 somewhere in late 2020 after checking out its current feature set I have decided to pull the trigger and migrate all of my side projects, tools, and whatnot into new infrastructure based on Nomad backed by Consul and Vault and even give a Terraform another try. So HashiCorp all way in ;). The process is still ongoing - I have realized that my infra setup is around 2 years old already and during that time I setup a lot of different projects - some of them are tricky to update/move - eg. my Crystal app was created in Crystal 0.3.x era and basically nothing works nowadays. But that’s a different story for a different post. Here are my first impressions regarding Nomad itself.
My partner really likes Just Dance - I wasn’t aware of this game before tbh. But I quickly found it ridiculous that Just Dance doesn’t have a wearable application that acts as a controller. The only way to run the game on Xbox S is to wave your phone in front of your TV. What can possibly go wrong, right? I found numerous examples of people running the controller app on wear os devices thus I decided to give it a try myself!
Around two years ago I bought a new Synology DS918+ and wrote an article about my new media stack. Since then over few iterations I recently ended up with yet another setup - that hopefully will be a final one ;). Let’s just jump straight into the how-to, I’m gonna skip ansible syntax this time as we’re gonna use Watchtower to automatically upgrade running containers on our Synology. What changed I started using Video Station a little bit more as they have quite a nice Android app that you can run on your TV, app can use an external player (I’m using MX Player, but feel free to use VLC or whatever) to stream files directly using hardware acceleration.
I started this blog 9 years ago. Time flies fast. Domain was coined from awesome-lists that were getting quite popular on Github back in those days. Nowadays I would go with something simpler I suppose, but what the hell, I come to like it. I didn’t have in mind what the blog would be about - I just wanted to put random thoughts on the internet - after all, I did that since I was a teenager during my time when I was running quake.
Learn how not to build teams and how not to communicate I guess this will be the last part for time being, I skipped few less important things (or things I was too lazy to write about) - and this part is about when I joined a company as a contractor. No worries, you wont’ find the name of the company on my linked in profile, but I learned quite a lot about how not to do things when running a (remote) company.
Build yet another customer success/support/CMS internal tool Over the period of the few last years, I have built several back-facing panels used by customer success teams, marketing folks, and other developers as well. Various plug and play rails options like administrate or active admin are attractive options but in my experience quickly you will find them limiting and instead of speeding up do development process it will slow you down.
Fight massive technical debt on all fronts Once I took over a project that was in a really bad shape. And it was not a joke - starting from useless tests that tested implementation itself, ridiculously complex codebase (everything interconnected with everything), and finishing with fragmented infrastructure (outdated Linode servers + stuff randomly deployed to Heroku). Who would even pick up a project like this you ask? Probably not somebody sane.
Empower the team by providing tooling I wanted to provide some tooling for the team and at the same time, I didn’t want to burden our devops person (yup, a single one, talk about efficiency and bus factor, right?) too much. After some research I discovered Rancher - and oh boy it was a crazy good call to use it! We used it for hosting our Sentry instance, we spin up Grafana and pushed a lot of data into InfluxDB to create some better observability around our apps, we spin up our CI instance using Drone - and even used some gaming-dedicated boxes from hosting provider to speed up our test suites (as we could control the hardware underneath).
Account Importer after the merger - hacks on hacks with postgres_fwd Once the merger was done we immediately had a business need to start moving accounts from our old product to the new one. As most of the data structure was rather similar I have decided to absolutely abuse postgres_fwd. The postgres_fdw module basically allows you to define remote servers and access them in your queries transparently. So you can have server_1 (localhost), server_2 (remote), and server_3 (other remote) and construct an insert query by selecting a bunch of stuff from server_2 or/and server_3 - and even do that in a single transaction - which is crazy powerful.