1Stop

Welcome to your one-stop destination for all things tech! Insightful blogs, code snippets, and industry updates for developers of all levels — from Java and Spring Boot to Docker, Kafka, and AWS.

Ditching Plex Pass: Jellyfin 12 with Hardware Transcoding in Docker

Plex keeps moving features behind Plex Pass, and this month it finally got personal: hardware transcoding — the thing that lets a $150 mini-PC serve 4K to five devices at once — is paywalled. Meanwhile Jellyfin 12 shipped on September 7th (.NET 10, FFmpeg 8.1, a rewritten database, 12.1 bugfix follow-up on the 14th), and hardware transcoding in Jellyfin is free. It always was. This is the full migration: the cost math, a working Docker Compose file with hardware transcoding for both Intel and NVIDIA, and the 10.x → 12 upgrade checklist — because 12 is a major migration and doing it wrong eats your library. ...

2026-09-22 · 6 min · Ramesh

The 3 A.M. Toolkit: Unix One-Liners for Triaging a Dying Java Service

It’s 3 A.M. PagerDuty is screaming, the error rate graph looks like a hockey stick, and your Java service is dying. You have SSH, a shell, and about ten minutes before someone important wakes up. This is the triage ladder I actually run, in order, with the exact one-liners. The order matters: every step rules out a class of problem before you spend time on the next one. If you did the hardening from the Linux Server Setup post, this is its companion — that one was pre-incident, this one is during. ...

2026-09-22 · 10 min · Ramesh

JUnit 6 Just Landed in Your Spring Boot 4.1 BOM: What Actually Changed

You bumped spring-boot-starter-parent to 4.1, ran the build, and noticed something in the test output: junit-jupiter:6.x. Nobody asked for it, nothing in your test code changed, and everything still passes. So what did you just get — and what breaks the day it doesn’t? Short version: JUnit 6 is mostly a cleanup release wearing a major version number. For a typical Spring Boot app, the migration is deleting lines from your pom.xml, not adding them. The pain lives in three specific removed APIs and two build plugins. Let’s go through all of it with code. ...

2026-09-21 · 6 min · Ramesh

New Linux Server? Do These 9 Things Before Anything Else

Every fresh VPS (Hetzner, DigitalOcean, your homelab Proxmox box) boots up with the same problem: a root login over password, no firewall, and nothing installed. Before you deploy anything, spend 15 minutes on this checklist. Order matters. Firewall rules and SSH hardening can lock you out permanently if done in the wrong sequence. Do the steps in this order and you won’t have to rescue-boot your way back in. 1. Update everything first Connect as root and patch the box before touching anything else. ...

2026-09-20 · 6 min · Ramesh

Rate Limiting in Spring Boot: The System Design Interview Answer, in Code

Rate limiting shows up in two places: your on-call rotation and your system design interview. Both reward the same thing — knowing which algorithm to pick, why, and what breaks at scale. This guide builds three working limiters in Spring Boot, each with tests: Fixed window — the simplest thing that works, hand-rolled. Token bucket — smooth, burst-friendly, via Bucket4j. Distributed sliding window — precise and shared across instances, on Redis with Lua. Then we close with the part interviews actually grade: how to talk through the tradeoffs. ...

2026-09-20 · 8 min · Ramesh