The Framework Behind Modern Authorization - OAuth

History Before OAuth 2.0, giving access to third party applications to a requested resource, meant we needed to type our credentials - username and password, which are stored on the 3P side and used as an action which was performed on our behalf. This is a problem, firstly, because they can be used to access all kinds of resources, not a limited scope of them, no revocation was possible, and secondly, third party software stored those in plaintext. If the third-party software was compromised, our data was also at risk. ...

April 7, 2026 · 13 min · 2681 words · theddy

The JWT Confusion: Why You Are Probably Talking About JWS

When you start to familiarize yourself with JSON Web Tokens (JWT), you often encounter a number of related acronyms - JWS, JWA, JWK, etc, which can feel overwhelming at first. It is not always clear which concept comes “first”, how they relate to each other, or what the differences are. In this article, I want to briefly introduce these concepts and clarify the important distinction between JWT and JWS. History The JSON Object Signing and Encryption (JOSE) Working Group was formed in 2011 to standardize signing, encryption, and key representation mechanisms for JSON-based data. ...

April 2, 2026 · 5 min · 996 words · theddy

Demystifying Kubernetes `controller-runtime`

If you’re like me and just starting your Kubernetes journey, you’ll likely need to write an Operator to manage your custom resources. Kubernetes offers a high-level Go framework called controller-runtime for building such operators; frameworks like Kubebuilder are built on top of it. What do I mean by custom resources? Well, anything that you would create which is not part of the Kubernetes well-known built-in resources - Pods, Deployments, ReplicaSets, etc. An example might be you adding a new custom Backup resource whose main purpose is to do a scheduled cron job to upload backups to a desired target storage solution. ...

October 9, 2025 · 8 min · 1692 words · theddy

Terminal Emulators (+ Ghostty Setup)

Lately, I’ve been filling in some of the gaps in my software engineering knowledge. One random question that I had was this little message in my Terminal: Last login: Sat Apr 19 00:15:16 on ttys001 What does ttys001 even mean? 🖥️ Terminal, Console, TTY — What’s the Difference? That question led me to explore how terminals actually work. I had always used the default Terminal app on macOS without giving it much thought. Now I know that on modern-day computers, we usually use the word terminal to refer to software programs known as terminal emulators: ...

April 23, 2025 · 5 min · 989 words · theddy