Tasdik Rahman

tail -f /var/log/life*

Infrastructure Management at Scale with Cluster API, MachineDeployments and MachinePools

I have been managing infrastructure and organisations of different shapes and sizes since early 2017. The toolset has really evolved over time, and different solutions have been developed by organisations along the way. Starting out, I saw a number of places calling cloud provider APIs directly and building CLI tooling on top of them. Background: Infrastructure management with Terraform HashiCorp really gained market share here with Terraform. AWS also had CloudFormation, but across the organisations I have worked with or observed over time, most standardised on Terraform. ...

February 20, 2026 · 7 min · Tasdik Rahman

Migrating this blog from Jekyll to Hugo

Why I started looking So it all started with me wanting to update the dependencies of my Jekyll website. I hadn’t really updated any dependencies for my website since ages and after I had changed my machine, I hadn’t also played around with ruby/ruby on rails, so it just started with installing Ruby. Yes, you got it right, I was just practically pushing markdown files for quite some time for even years maybe(?) at this point for the blog. It’s also very beautiful that GitHub just allows building such an old Jekyll website. This website is dated from 2015 but I’ve obviously updated my bundle dependencies and gems, maybe a couple of times since then. While trying to install this I also got stuck with the dependency hell loop. Which made me pause further. ...

February 19, 2026 · 4 min · Tasdik Rahman

KubeCon EU 2025, My experiences attending and speaking at it

Back in 2017, I attended my first KubeCon in Austin, which had around 1,500 attendees. Fast forward to 2025, KubeCon EU in London saw over 12,000 participants—a testament to how much the Kubernetes community and ecosystem have grown and evolved over the years. This was my 3rd kubecon, and the first time speaking at KubeCon, and it was an incredible experience! Takeaways Conference Highlights Attended a lightning talk on Kanister, a framework for application-level data management on Kubernetes. I really enjoed the talk on Kubernetes CRD design for long-term evolution. Key takeaways: Design CRDs to evolve gracefully and avoid unnecessary version upgrades. Prefer copying and adapting external API types rather than embedding them, to prevent breaking changes. Use reusable types like metav1.TypeMeta, ObjectMeta, and Conditions where appropriate. Pay attention to OpenAPI specs, deprecation policies, and CRD markers (use tools like Kubernetes API Linter). Design GitOps-friendly APIs by using list types with ownership keys. Choose clear, descriptive field names and avoid generic terms or camelcase concatenation. Take inspiration from upstream APIs and gather feedback from users. Be mindful of challenges like API removals (example issue). Nick Young has some amazing suggestions on Avoiding common Kubernetes controller mistakes. suggestions on using the Patch instead of Update to send only the changes, instead of the whole object. using a framework like controller-runtime, krt, StateDB instead of hand rolling something. versioning your CRD. Thinking how users will use your CRD API, making sure you spend good amounts of time in thinking about the API design. slides YouTube recording for 2024 talk of Nicks on Avoiding common CRD Design errors My Presentation I had the opportunity to present my talk at KubeCon EU 2025: “Resilient Multi-Cloud Strategies: Harnessing Kubernetes, Cluster API, and Cell-Based architecture” along with my colleague Javier Mosquera ...

July 31, 2025 · 2 min · Tasdik Rahman

ContainerDays 2024, Hamburg

This was my first time at containerdays, Hamburg and I feel I missed out definitely on the previous ones by not attending! This year’s conference, was a 2 days conference and I met a bunch of familiar faces from KCD Munich, which I attended this year and the last year too. Takeaways KCP There was a great talk by Marvin around KCP. kcp talk - building a platform engineering api layer with kcp ...

September 21, 2024 · 5 min · Tasdik Rahman

Oncall in product teams

I have been oncall for as long as I can remember being in the industry, so far for every organisation I have been part of. Different things have worked at different phases of the organisation and the teams priorities. I thought I would put down some notes over things which I have seen have worked well. Why do we need to have oncall rotations? Because simply put, it would help people not burn out of only being oncall unofficially over time, as they get pulled into specifics of systems which they are more aware of. ...

October 25, 2023 · 4 min · Tasdik Rahman

Keyboard setups over time

Over the years, I have used different keyboards for myself, and my setups have changed over time. This post is just me assimilating over the setups which I have used over the years to reflect back on the memories with each setup. College days I would use the laptop keyboard itself when I was in college back then, it had a really tiny keyboard and was an ultrabook which didn’t have a CD-ROM. The setup in my room was also not very ergonomic in the first place as I didn’t have a chair which was ergonomic enough for me with the desk. But it was nevertheless the first setup which I had in all fairness. ...

September 27, 2023 · 3 min · Tasdik Rahman

Renewing your root CA with a new root CA such that the older certs signed by old root CA are still valid

Context If you have a root CA which you used to sign certificates, and if the root certificate is about to expire, the certificates signed by the root CA will also become invalid after the root CA expires even if the certificates signed by it haven’t expired. As every certificate in the chain must remain valid for your certificate to be valid. Also for example the kube-apiserver when it comes up, it --client-ca-file while it comes up, where you can pass the root CA. ...

May 18, 2023 · 2 min · Tasdik Rahman

neovim setup for golang 6 months in

So far I have been using my nvim golang setup for around more than 6months now and I am still learning something new everyday while I use it. coc.vim works really well so far for me. Linting, autocomplete, jumping to definitions back and forth, code folding, checking for references for where a function/method is used, it works out for me well so far. What I am trying to fix on my setup so far The debugging experience for sure can be improved, I have tried using nvim-dap-go. ...

April 29, 2023 · 2 min · Tasdik Rahman

My vim setup for golang

Ok, not vim, but nvim tl;dr what does all this get me in my setup https://github.com/tasdikrahman/dotfiles/tree/master/vim jump to definitions jump to references jump to symbols fuzzy file search code folding jumping between test and implementation file testing specific function real time code linting Cleaning my vim config after some time and ended up removing a bunch of things and starting afresh, a couple of plugins which had been archived but worked all the while were https://t.co/lmjXtN7HbS, switched to https://t.co/7ZSoKMgwBW as it was the recommended replacement (1/n) ...

October 28, 2022 · 2 min · Tasdik Rahman

Working remotely in a geographically distributed team without burning yourself out

Context Wanted to pick ideas from folks who have worked in such setups effectively/led teams over the years across geographical continents. Given I recently took up a fully remote role, with the team that I am joining being spread across EU and in the US as of now. This post is just for documentary purposes for me to look back how I have fared over the course of this year and the next as I take this journey of working in a remote first company. ...

October 8, 2022 · 2 min · Tasdik Rahman