{"@attributes":{"version":"2.0"},"channel":{"title":"My Blog","description":"Backend developer sharing insights on Node.js, TypeScript, PostgreSQL, and web development best practices.","link":"https:\/\/nivekithan.com\/","item":[{"title":"Building linear-fuse: Learning C through a FUSE filesystem","link":"https:\/\/nivekithan.com\/posts\/building-linear-fuse-learning-c-through-fuse-filesystem\/","guid":"https:\/\/nivekithan.com\/posts\/building-linear-fuse-learning-c-through-fuse-filesystem\/","description":"My experience building a FUSE filesystem that lets you browse Linear projects and issues as files and folders, and what I learned about C programming along the way.","pubDate":"Sun, 11 Jan 2026 00:00:00 GMT"},{"title":"Implementing Levenshtein Distance Check in Kotlin","link":"https:\/\/nivekithan.com\/posts\/implementing-levenshtein-distance-check\/","guid":"https:\/\/nivekithan.com\/posts\/implementing-levenshtein-distance-check\/","description":"Learn how to implement a recursive Levenshtein distance checker in Kotlin that determines if two words are within a specified edit distance.","pubDate":"Thu, 23 Oct 2025 00:00:00 GMT"},{"title":"Deploying a Simple Web Server with HTTPS on K3s","link":"https:\/\/nivekithan.com\/posts\/simple-https-web-server-on-k3s\/","guid":"https:\/\/nivekithan.com\/posts\/simple-https-web-server-on-k3s\/","description":"A step-by-step guide to deploying a web server with HTTPS on K3s, covering installation, service configuration, ingress setup, and automatic SSL certificate management with cert-manager.","pubDate":"Sun, 20 Jul 2025 00:00:00 GMT"},{"title":"Recovering Mangled YouTube URLs: A Brute-Force Adventure","link":"https:\/\/nivekithan.com\/posts\/recover-youtube-links\/","guid":"https:\/\/nivekithan.com\/posts\/recover-youtube-links\/","description":"How to recover corrupted YouTube URLs using brute-force permutations and yt-dlp validation when a frontend bug lowercases video IDs","pubDate":"Sat, 12 Jul 2025 00:00:00 GMT"},{"title":"Automated postgres backups using pgBackRest","link":"https:\/\/nivekithan.com\/posts\/automated_backups_postgres\/","guid":"https:\/\/nivekithan.com\/posts\/automated_backups_postgres\/","description":"A complete guide on setting up automated backups using pgBackRest on Ubuntu 24.04 VPS for hobby use","pubDate":"Sun, 29 Jun 2025 13:14:28 GMT"},{"title":"setting up postgresql on a vps","link":"https:\/\/nivekithan.com\/posts\/setup_postgres_vps\/","guid":"https:\/\/nivekithan.com\/posts\/setup_postgres_vps\/","description":"a complete guide to installing, configuring, and securing postgresql on ubuntu 24.04 vps for hobby use","pubDate":"Sat, 28 Jun 2025 12:00:00 GMT"},{"title":"How to implement fixed window Ratelimiter","link":"https:\/\/nivekithan.com\/posts\/how-to-implement-fixed-window-ratelimiter\/","guid":"https:\/\/nivekithan.com\/posts\/how-to-implement-fixed-window-ratelimiter\/","description":"We will be implementing a fixed window ratelimiter using typescript and redis.","pubDate":"Sat, 29 Jul 2023 07:35:24 GMT"},{"title":"Solve Fly.io echo challenge using Deno","link":"https:\/\/nivekithan.com\/posts\/solve-flyio-echo-challenge-using-deno\/","guid":"https:\/\/nivekithan.com\/posts\/solve-flyio-echo-challenge-using-deno\/","description":"We will be solving the Echo challenge from [fly.io](http:\/\/fly.io) using Deno. I am assuming you have already installed [maelstrom](https:\/\/github.com\/jepsen-io\/maelstrom) and set it up properly.","pubDate":"Sat, 17 Jun 2023 07:14:27 GMT"},{"title":"Deploy a lambda function written in typescript using cdktf and esbuild","link":"https:\/\/nivekithan.com\/posts\/deploy-a-lambda-function-written-in-typescript-using-cdktf-and-esbuild\/","guid":"https:\/\/nivekithan.com\/posts\/deploy-a-lambda-function-written-in-typescript-using-cdktf-and-esbuild\/","description":"Goal behind this blog, is to deploy a `lambda` function in `aws` written in `typescript` using [cdktf](https:\/\/www.terraform.io\/cdktf) and [esbuild](https:\/\/esbuild.github.io\/) and make that `lambda` ...","pubDate":"Sat, 08 Oct 2022 17:36:58 GMT"}]}}