~/rastrian/blog

Why Reliability Demands Functional Programming: ADTs, Safety, and Critical Infrastructure

In banking, telecom, and payments, reliability is not a nice to have. It is table stakes. The most reliable systems I have worked on reduce entire classes of bugs before the code even runs. Functional programming and Algebraic Data Types (ADTs) let you push correctness into the type system, so illegal states cannot be constructed in the first place.

What you will learn...

functional-programmingocamltypescriptsecurityADTs

Beyond the NAT: CGNAT, Bandwidth, and Practical Tunneling

Home internet in the 90s felt simple. You plugged into Ethernet, got an IPv4 address, and you could expose a service directly. Today the path is layered and driven by economics. IPv4 did not end in a hard way. It became scarce and costly, see IPv4 address exhaustion. Data centers and enterprises still buy and route IPv4. Most residential users are placed behind Carrier-grade NAT (CGNAT) and many providers mix in IPv6 to keep compatibility while lowering costs.

This post maps that landscape with a practical lens. We will move from end to end addressing to provider networks that multiplex thousands of customers behind a few public IPs using NAT. CGNAT saves addresses and reduces ISP costs, but it blocks inbound connectivity, see NAT traversal. It also complicates games, VoIP, and P2P, and makes self-hosting fragile without extra tools....

homelabcomp-networkingvpssecurity

Opening the Gate: My first blog post

This blog is meant to be a place for discussion. Most posts will circle around technology, software engineering, DevOps, networking, tunneling, programming languages, and AI/LLMs, but the scope is wider. At times, the content will also touch on gaming, music, or personal reflections that shaped my path.

I began programming in 2008, still a child at the time, driven by curiosity and the desire to build things for myself. Much of what later became my professional career started as experiments: setting up private servers for World of Warcraft, Minecraft, and other games, exploring open source tools, and eventually building my own homelab infrastructure. These projects weren’t just hobbies; they were training grounds that taught me about systems, persistence, and problem-solving. I did a lot of bad engineering stuff that way too, but they were my toy box most of the time....

homelab