Welcome to my blog, a bit about me...
By day, I lead the Cybersecurity and Fraud Data Science team at MassMutual, where we build systems to detect cyber threats.
I also hold a PhD in Computer Science from the University of Vermont, with research in computational finance and cybersecurity.
That said, you'll probably find me writing about completely unrelated side projects that caught my curiosity.
Like building compilers and running a home-lab.
I love exploring new technical challenges and sharing what I learn along the way.
How complex can a five character expression be?
The seemingly innocent i + i++
produces different results on different compilers, exposing one of C's most insidious features: undefined behavior.
In this post, I'll explore how something as fundamental as the order of expression evaluation became a minefield in C, why modern compilers still disagree on basic operations, and how I'm addressing these issues in my hobby compiler NCC.
Along the way, we'll peek under the hood at compiler intermediate representations and discover why "simple" languages can be surprisingly complex.
In this article, I'll walk you through a comprehensive setup for self-hosting web applications. This configuration is ideal for both homelabs and small production environments, enabling you to host multiple websites on a single IP address and port. We'll focus on security, flexibility, and centralized management.
Using pfSense as our base operating system, router, and firewall, we'll leverage the ACME protocol for automated SSL certificate management, HAProxy for reverse proxying, and Cloudflare for DNS and CDN services.
I'll explain the role of each component and guide you through every step of the process-including how to avoid some common gotchas. By the end, you'll have a secure, scalable setup for hosting multiple services using domain and subdomain-based routing, with centralized SSL and traffic management.
Copyright ©2020-2025 John H. Ring IV. All rights reserved.
The content on this website is my own and does not necessarily reflect the views of my employer or any other party.