Security Fundamentals
The vocabulary and the mental models the rest of the blog assumes you already have.
Read the series →
This blog is where I share my thoughts on security, software engineering, and navigating a career in tech. Some of it will be deep technical dives, some will be lessons from experience, and some will be the kind of things I wish someone had told me earlier.
What you'll find on this blog:
Blog posts
A security engineer’s analysis of the OpenAI-Hugging Face incident, what failed in the architecture and incident response, and the lessons security teams can learn from it.
CVE-2026-64638 is a pre-authentication reflected XSS affecting the WordPress core login page in versions 6.4 through 7.0.2. This post explains the parser differential, the affected versions, the fix, the conditional RCE extension, and a hands-on reproduction lab.
WP2Shell is an unauthenticated remote code execution chain in WordPress core, combining CVE-2026-63030 and CVE-2026-60137. What it is, how to fix and detect it, and how to reproduce the full pre-auth RCE in a hands-on lab.
AI can generate code faster than most developers can evaluate it. The risk isn't only bad output. It's losing the understanding you need to tell good code from plausible code.
AI makes it dramatically cheaper to produce software that appears to work. But 'building an app' and 'engineering a system' are two different activities that people keep confusing, and the gap between them is where most of the actual work lives.
Security is having a moment: new tools can read code, find bugs, and even suggest fixes. Some people took that to mean cybersecurity is basically over. This is my take from the inside: what’s actually changing, what isn’t, and why security was never just a code problem.
Is hacking like in the movies? How do I start? What do I need to know? What skills should I have? These are...
Now that we have a basic understanding of web application architecture, it’s time to dig deeper. As you probably noticed, not all web applications work the same. Some are faster...
The architecture of any web application, whether it’s facebook.com or some no-name Wordpress blog, starts with two components: frontend and backend. In this post, we will analyse these components, how they interact, and what each one is for.
How different password and SSO confirmation paths expose an IDOR in an investment account closure endpoint, including the request comparison, vulnerable code, impact, and ownership fix.
Hashing is everywhere in security, and for good reason. It’s how we verify data integrity, secure passwords, and much more. In this post, we’ll unpack what makes hashing so useful and see it in action.
Ever wonder how encryption actually works? Here, we’ll look at the two main approaches: symmetric, which is fast and straightforward, and asymmetric, which is a bit slower but incredibly powerful for secure communication.
Cryptography can feel intimidating, but don’t worry—we’ll keep it straightforward. This post is about understanding the basics: how we use cryptography to protect data and why it’s such a key part of security.
Not surprisingly, people tend to misuse the terms “server” and “web server”. Let’s settle once and for all what the difference between them is.
Web applications are everywhere, but what exactly are they? In this post, we’ll break down what makes a web app tick, how it differs from other types of software, and why it’s such a powerful tool in today’s connected world.
How a nested digest[email] parameter becomes autofocus and onfocus attributes in a newsletter signup, including the payload, vulnerable code and fix.
How a Base64-encoded return reference leads to IDOR in a financial action: the request, decoded JSON, modified payload, vulnerable code, impact, and correct ownership check.
This post is all about the “big ideas” behind secure systems, like least privilege and separation of duties. These principles are surprisingly simple but form the backbone of how we design systems to stay safe from attacks.
How do systems make sure the right people get in, and the wrong ones stay out? In this post, we’ll dig into authentication (proving who you are) and authorization (what you’re allowed to do). They’re simple ideas, but they have a massive impact on security.
The CIA triad isn’t just a catchy acronym. It’s the backbone of security. We’ll break down confidentiality, integrity, and availability, and see how they shape the way we think about protecting systems and data.
We cannot start a meaningful exploration of computer security without defining the subject itself. In this post, we'll talk about what security actually means.
Some topics don't fit in a single post. A series is an ordered set of articles that build on each other.
The vocabulary and the mental models the rest of the blog assumes you already have.
Read the series →
How web apps actually work underneath the page: servers, architectures, URLs, HTTP, cookies, DNS, APIs, and encoding.
Read the series →
Where AI assistants earn their place in a real test, and the supervision that keeps findings real.
Practical insights on security, software engineering, and career, delivered when I publish something worth your time.
Unsubscribe anytime.