nemanjam.hashnode.devRuntime environment variables in Next.js - build reusable Docker imagesClassification of environment variables by dimension At first glance, you might think of environment variables as just a few values needed when the app starts, but as you dig deeper, you realize it's far more complex than that. If you don’t clearly u...Dec 14, 2025·14 min read
nemanjam.hashnode.devComparing BFS, DFS, Dijkstra, and A* algorithms on a practical maze solver exampleIntroduction Pathfinding is a fundamental topic in computer science, with applications in fields like navigation, AI/ML, network routing, and many others. In this article, we compare four core pathfinding algorithms: breadth-first search (BFS), depth...Aug 5, 2025·8 min read
nemanjam.hashnode.devLoad balancing multiple Rathole tunnels with Traefik HTTP and TCP routersIntroduction This article is a continuation of Expose home server with Rathole tunnel and Traefik article, which explains how to permanently host websites from home by bypassing CGNAT. That setup works well for exposing a single home server (like a R...Jun 2, 2025·8 min read
nemanjam.hashnode.devExpose home server with Rathole tunnel and TraefikIntroduction In the previous article, I wrote about a temporary SSH tunneling technique to bypass CGNAT. This method is not suitable for exposing permanent services, at least not without autossh manager. Proper tools for this are rapiz1/rathole or fa...May 1, 2025·9 min read
nemanjam.hashnode.devExpose local dev server with SSH tunnel and DockerIntroduction Most consumer-grade internet connections are hidden behind CG-NAT and are not reachable from the internet. This is done to save IP addresses, as IPv4 has a limited range. If you have a static public IPv4 or any IPv6 address, you won’t ne...Apr 23, 2025·11 min read