RSSAmplifier

Blog

Kenin Kujovic

Software engineering articles and thoughts by Kenin Kujovic

keninkujovic.comRSS feed ↗14 posts

Latest posts

Renovate Opened 40 MRs, 6 Are Red: Now What?

Renovate MR breaks your build? A practical triage workflow for failed Renovate pipelines on self-hosted GitLab, plus config that keeps the red ones manageable.

Server-Driven UI: Describe Interfaces as Data, Render Them Natively

Most product screens are compositions of the same few components. Server-driven UI describes them as data and lets each platform render natively.

Zero-Downtime Migrations: Expand and Contract Explained

How to ship schema changes with zero downtime using the expand and contract pattern. A practical walk-through of the three phases with real code.

Code Is Only Half the Job

Writing code is easy. Writing code someone can actually maintain six months from now is where most projects fall apart.

You Can't Avoid Cognitive Biases. Catch Them Instead.

The most common cognitive biases that affect your judgment and decision-making, and how recognizing them gives you an edge.

Next.js Sitemap for Static Export: The force-static Solution

Generate sitemap.xml for Next.js static exports using force-static mode. No server required. Works with Cloudflare Pages, Netlify, Vercel, and GitHub Pages.

Patch Container Vulnerabilities in Seconds Without Rebuilding Images

Learn how to automatically patch OS vulnerabilities in container images using Trivy and Copa without rebuilding. Fix security issues in seconds, not hours.

I Leaked My AWS Keys to GitHub. Rewriting Git History Wasn't Enough

Complete guide to fixing leaked secrets in git. Learn why git-filter-repo alone won't save you and what you actually need to do when credentials leak.

Profile Go Code with Flamegraphs: A Practical pprof Guide

Profile Go programs with pprof and flamegraphs. Read CPU profiles visually, find real bottlenecks, and verify your fixes with worked examples.

SemVer Explained: A Practical Guide to Semantic Versioning

What MAJOR.MINOR.PATCH really means, when to bump each, how ^ and ~ version ranges work, and the SemVer mistakes that quietly break builds.

Daily Programming

How 2.5 years of coding every day changed how I think.

Infrastructure Naming Conventions That Scale (With Examples)

A simple, scalable naming system for cloud infrastructure (env-region-site-role-instance), with worked examples and the reasoning behind each piece.

SSH Key Forwarding

How to securely forward SSH keys through SSH connections

Hello World

Welcome to my blog