Marcin Jasion - Pragmatic DevOps
  • Home
  • About
  • Skills
  • Experiences
  • Accomplishments
  • More
    Presentations Recent Posts
  • Posts
  • Notes
  • Notes
  • Dark Theme
    Light Theme Dark Theme System Theme
  • Posts
  • Cloud
    • Terraform Logs
    • Terraform Parallelism
    • VPN
  • Kubernetes
    • Golang Leader Example
    • Istio
  • Development
    • Cloudflare + TanStack
    • Blockchain
    • Gitlab
Hero Image
Why I'm Choosing Cloudflare and TanStack for My Side Projects

I like building side projects. They’re how I learn new tools, test ideas, and stay sharp outside of work. Over the past year I’ve gone through a few stacks trying to find the right balance between developer experience, cost, and simplicity. I started with Vercel and Supabase. I ended up on Cloudflare and TanStack. This post is about why. What I moved away from Vercel is genuinely excellent for development. The deployment workflow, preview environments, and Next.js integration are top-notch. For a team shipping a product, it makes a lot of sense. But for side projects the free tier is limited, and the moment you need anything beyond it - more bandwidth, analytics, or team features - the Pro plan jumps to $20/month per member. That adds up fast when you’re just experimenting.

  • cloudflare
  • tanstack
  • frontend
  • side-projects
Wednesday, February 25, 2026 | 7 minutes Read
Hero Image
Implementing Leader Election in Golang using Kubernetes API

Introduction Leader election is a crucial pattern in distributed systems where multiple instances or nodes compete to perform certain tasks. In a Kubernetes cluster, leader election can be used to ensure that only one instance is responsible for executing leader-specific tasks at any given time. This blog post will explore how to implement a leader election mechanism in Kubernetes using lease locks. Overview The leader election mechanism implemented in Go code relies on Kubernetes coordination features, specifically Lease object in the coordination.k8s.io API Group. Lease locks provide a way to acquire a lease on a shared resource, which can be used to determine the leader among a group of nodes.

  • golang
  • kubernetes
  • distributed-systems
  • leader-election
Sunday, June 25, 2023 | 4 minutes Read
Hero Image
How to setup AWS Site-to-Site VPN with Unifi UDM ๐Ÿ”’

By default resources, you launch on the cloud (EC2, RDS, and others) cannot communicate with your local networks like home or office. To allow this you can create a Site-to-Site VPN. This VPN connection will be established between your router and AWS VPC. Creating VPN between networks is well documented. However, you can have issues configuring your home router. At home, I have a Unifi Dream Machine router, which is designed for small networks, but has features that match advanced routers for offices. One of them is a Site-to-Site VPN using the IPSec protocol.

  • aws
  • vpn
  • unifi
  • networking
Wednesday, June 29, 2022 | 6 minutes Read
Hero Image
How to configure parallelism in Terraform Cloud

In my previous post I showed how to enable debug logs. Today I want to present how to improve terraform plan and terraform apply speed by configuring parallelism. Terraform by default runs 10 concurrent operations. To reduce execution time on plan or apply operation we can increase this parameter. By increasing parallelism you can hit the rate limit of your provider. Some cloud providers (like Cloudflare) inform about the number of API requests allowed in a period of time. Hitting the limit can impact your deployments.

  • terraform
  • terraform-cloud
  • performance
Tuesday, June 14, 2022 | 2 minutes Read
Hero Image
How to enable debug and trace logs in Terraform Cloud and Enterprise

Terraform Cloud is an application that helps teams use Terraform together. I am using it for side projects like my cloud infrastructure. Last time I had to see trace logs to find an issue with one of the managed resources. Terraform has detailed logs which can be enabled by setting the TF_LOG environment variable to any value. This will cause detailed logs to appear on execution. Enabling verbose logging in CLI You can set TF_LOG to one of the log levels TRACE, DEBUG, INFO, WARN or ERROR to change the verbosity of the logs. You can set this variable in two ways. First option is to set variable for shell session:

  • terraform
  • terraform-cloud
  • debugging
Friday, June 10, 2022 | 2 minutes Read
Hero Image
How to debug Istio Upstream Reset 502 UPE (old 503 UC)

Istio is a complex system. For the applications, the main component is the sidecar container Istio-Proxy, which proxies all traffic from all containers in Pod. And this can lead to some issues. This post describes one of the most complicated problems I have encountered in my career. The problem - Connection Reset ๐Ÿ› During Istio rollout on a huge system, with more than 40 different microservices, on a single endpoint, QA engineers found a bug. It was a POST endpoint, which was returning chunked data.

  • istio
  • kubernetes
  • debugging
  • networking
Monday, April 25, 2022 | 5 minutes Read
Hero Image
Deploy your first blockchain contract to Ethereum

First contract - Pet owners I am learning blockchain and smart contracts. This post will be my note on how I am starting my journey into blockchain technology. In this example I will create a contract for storing who is owning a Pet. Development // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; //build contract on top of Solidity >=0.8.0 and <0.9.0 contract PetOwner { mapping (string => Pet) public petOwners; struct Pet { string name; string petType; } function addPetOwner(string memory ownerName, string memory _name, string memory _petType) public { petOwners[ownerName] = Pet({name: _name, petType: _petType}); } } Put it in the Remix IDE: https://remix.ethereum.org/. It should compile and we can deploy it on the local environment:

  • ethereum
  • blockchain
  • solidity
  • tutorial
Saturday, April 9, 2022 | 2 minutes Read
Hero Image
How to label GitLab notification in Gmail by headers?

Updated on 24-02-2026: Improved the script to use getHeader() instead of raw body search, added data-driven header configuration, and auto-creation of labels. ๐Ÿ“จ How GitLab sends notifications? GitLab allows you to stay informed about whatโ€™s happening in your projects sending you the notifications via email. With enabled notifications, you can receive updates about activity in issues, merge requests or build results. All of those emails are sent from a single address which without a doubt makes it harder to do successful filtering and labeling.

  • gitlab
  • gmail
  • google-apps-script
  • automation
Friday, April 17, 2020 | 6 minutes Read
Navigation
  • About
  • Skills
  • Experiences
  • Accomplishments
  • Presentations
  • Recent Posts
  • Notes
Contact me:
  • hello@mjasion.pl
  • mjasion
  • Marcin Jasion

Toha Theme Logo Toha
ยฉ 2026 Copyright.
Powered by Hugo Logo