Kavindu Jayarathne Kavindu
  • About
  • Blogs
  • My Confusion Around the Way Homebrew Handles Formulas on macOS

    August 12, 2025

    Homebrew is considered macOS's missing package manager. It has an unexpected behavior in how it links and locates some formulas. Here is my mental model of that.

    HomebrewSelf-Thoughts
  • Symmetric vs Asymmetric encryption

    July 7, 2025

    A clear and practical explanation of symmetric and asymmetric encryption, what they are, how they differ, and how they’re used in the real world.

    EncryptionCryptographygpg
  • How Cookie Flags Actually Protect Your Sessions

    May 19, 2025

    Breaking down the cookie flags that protect against XSS and CSRF

    Web SecurityCookies
  • What Are These HTTP Requests

    May 17, 2025

    A beginner-friendly guide to understanding HTTP requests and the differences between HTTP/1.1 and HTTP/2

    NetworkingWebHTTP
  • --allow-empty Git Flag (most people don’t know this exists)

    May 16, 2025

    I found this cool trick to add empty commits with no changes, and here I talk about it along with common use cases

    GitGitHub
  • JavaScript objects: Memory references, clones, and gotchas

    May 15, 2025

    A deep dive into how JavaScript handles objects in memory, covering reference assignment, nested objects, shallow cloning with spread syntax, and the subtle gotchas that cause unexpected mutations

    JavaScript
  • Vite over Create React App (CRA): The React team deprecating Create React App for new projects?

    February 16, 2025

    React officially deprecated Create React App (CRA) in 2025. In this article, I dive into why CRA is no longer recommended, and why Vite is now the go-to tool for scaffolding new React projects.

    Web DevelopmentFrontendReactVite
  • Experimental commits on Git

    September 18, 2024

    I break down what experimental commits are, how to use them, how to save them, and explain some key Git concepts like HEAD, detached HEAD state, and more....

    Git
  • Different shell session types and shell programs in Unix / Linux

    September 4, 2024

    I walk you through the different shell session types like interactive login, non-login, and non-interactive shells, and how various shell programs like Bash and Zsh behave in each. If you’re serious about mastering the terminal, this one’s for you.....

    ShellTerminal
  • What is a monorepo?

    August 16, 2024

    I recently heard about a concept called monorepo and got curious about what it really means. So I decided to dig into it. This post covers what I learned along the way.

    Repository-related
  • Efficient way of looping through an array?

    July 25, 2024

    I used to get confused about when to use a traditional for loop vs forEach. Once I began exploring how these two really work, everything clicked. This is a breakdown of what I learned, how each one behaves and more...

    JavaScript
  • 7 - 1 pattern/architecture on Sass

    July 10, 2024

    I break down how to organize Sass projects using the 7-1 architecture, how I updated it with the modern module system, and some useful Sass functions and setups I personally use like rem/em converters and a constants map setup. I hope this will help you structure your Sass environment...

    Web DevSassFrontend
© 2025 - 2026 Kavindu Jayarathne. All Rights Reserved.