Ramin's Post

Feature Flags - From a Simple Constants File to Production-Scale Experimentation

Feature flags are one of those tools that look trivial on the surface but change the way you think about deploying software. From a single constants file on my personal site to A/B testing nine design variants ...

Complexity and Knowledge in Software Design

An experience-driven reflection on software complexity, exploring how technical skills and business knowledge shape better system design.

The Complete and Practical Code Review Checklist

A comprehensive guide for conducting effective code reviews, combining a technical checklist with process-oriented best practices.

TypeORM vs Prisma vs Direct Database Clients

A practical comparison of Prisma, TypeORM, and direct PostgreSQL clients in Node.js + TypeScript projects, focusing on performance, type safety, developer workflow, and flexibility, with clear examples to help ...

Why Don't I Do the Right Thing?

As a senior software engineer with years of experience in large-scale systems, I reflect on the psychological, organizational, and cultural reasons why we often don't do the right thing, even when we know what ...

Smooth DOM Transitions in SPAs Using the View Transitions API

Learn how to create native, animated transitions between UI states in your single-page applications using the View Transitions API. This post walks through the basics, provides a practical example, and links to...

Understanding List Virtualization in React

List virtualization in React is a technique to boost performance when rendering large datasets, by only displaying items visible in the viewport instead of the entire list. This post explains how it works and p...

How I Manage My Static Blog with Next.js and Markdown

Building a blog can feel overwhelming, especially when you want something fast, customizable, and easy to maintain. If you're a developer who loves working with modern tools, combining Next.js, Contentlayer, an...

Understanding @property in CSS

The @property CSS at-rule is part of the CSS Houdini set of APIs. It allows developers to explicitly define CSS custom properties, allowing for property type checking and constraining, setting default values, a...

February 25, 2025
[ Read More ]