Posts List

Nice Human Being: Remote Employee Guide

Want to be a Nice Human Being and be loved by your coworkers? Just follow these 4 easy steps!

Cloudflare Zero Trust for small teams

Cloudflare Zero trust - which is planned be rebrand to Cloudflare One is pretty awesome platform that can accommodate small engineering teams when it comes to strickling security. Unfortunately the Cloudflare docs can be quite confusing and sometimes even contradicting - it seems the product evolved quite rapidly and the documentation or blog posts were lagging behind and the old one - were never updated.

Simple Mysql 8 replication on k8s

💡 NOTE: Interested in mysql-operator instead? See this blogpost. Official kubernetes docs have a page about running replicated statefulset using mysql, unfortunately: example uses mysql 5.7 it’s quite hard to grasp - it uses some custom percona-based image and assumes that you might want to scale statefulset into infinity as both images are dated it just won’t work on ARM machines I think in small to medium organisations/teams/projects what you usually want it some finite amount of replicas - maybe one that you could use for some read-only operations and for doing backups from. So let’s try to do that.

How to upgrade your project to ESLint 9

Follow this simple, 5-step program to save your sanity!

Goodbye Dependabot, hello Renovate

For years, I have been ignoring Renovate because Dependabot was just there - it seems like it was build-into Github forever (it was not; Github acquired dependabot mid 2019). As dependabot is not accepting support for new ecosystems, I decided to give Renovate a try, and OH BOY did I missed out on much. In comparison, it makes dependabot looks like toy for little kids. I have been using it for few weeks now and some pros.

Chrome 116+ refusing to ask for camera/microphone permissions (jitsi example)

This is a very brief post as I wasted literally hours of this (mostly running in circles) which turned out to be simply trivial. I hope that maybe it might help some lost soul someday.

I have a single 1.4TB mysql table, human help

Data is akin to code - the best data is data that is never stored. Unfortunately, this is not how products operate, and you might find yourself in a situation where data becomes a liability and a burden. Recently, I have been working on a side project where the majority of the data in the app was stored in a single table. That table grew beyond a maintainable point; major pain points are nothing new, and in my case, it boiled down to:

Backup AWS S3 bucket to external location

Aside from S3 bucket replication feature you might want to backup your data outside of your current cloud provider (for a myriad of valid reasons). If you’re in Europe you might consider Hetzner which once again offers the best bang for your buck; alternatively - if you’re based in the US - Backblaze might be a better fit. Either way, I recommend using rclone which integrates out-of-the-box with S3 and all the protocols you can think of.

Getting SSL working for Traefik Dashboard with k3s and cert-manager

k3s ships with traefik that works out of the box, but for certificate generation while running on Kubernetes you should consider using cert-manager which is apparently a go-to tool for certs management in the k8s world. For the simplicity of this example let’s assume you have a single node k3s cluster running which doesn’t have any external load balance in front of it (otherwise you might need a DNS challenge and here we will use HTTP-01).

Living the ARM life

Almost right after Hetzner announced their ARM offering on 12th April 2023 I started to experiment with new infrastructure approach. Note: get 20EUR for your project via this referral - just in case you want to play around. It’s been over a year since I started to play around with Nomad and Nomad served me well. CSI support become more stable and Nomad itself become more mature in terms of feature set (native service discovery and support for encrypted secrets were nice).