<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://manakupadhyay.in/</id>
    <title>Manak Upadhyay</title>
    <updated>2026-10-30T21:16:19.651Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <author>
        <name>Manak Upadhyay</name>
        <email>upadhyaymanak@gmail.com</email>
        <uri>https://manakupadhyay.in/</uri>
    </author>
    <link rel="alternate" href="https://manakupadhyay.in/"/>
    <link rel="self" href="https://manakupadhyay.in/atom.xml"/>
    <subtitle>Software engineer, currently being outperformed by matrix multiplication. Writing about JavaScript, web performance and distributed systems.</subtitle>
    <logo>https://manakupadhyay.in/icon.svg</logo>
    <icon>https://manakupadhyay.in/icon.svg</icon>
    <rights>All rights reserved 2026, Manak Upadhyay</rights>
    <entry>
        <title type="html"><![CDATA[6 Techniques to Scale Database Reads]]></title>
        <id>https://manakupadhyay.in/blog/scaling-database-reads</id>
        <link href="https://manakupadhyay.in/blog/scaling-database-reads"/>
        <updated>2024-12-11T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Practical techniques to scale database reads, from replication and indexing to denormalization and materialized views.]]></summary>
        <category label="Database" term="Database"/>
        <category label="Scaling" term="Scaling"/>
        <category label="Replication" term="Replication"/>
        <category label="Indexing" term="Indexing"/>
        <category label="Caching" term="Caching"/>
        <category label="Denormalization" term="Denormalization"/>
        <category label="Connection Pooling" term="Connection Pooling"/>
        <category label="Materialized Views" term="Materialized Views"/>
        <category label="SQL" term="SQL"/>
        <category label="System Design" term="System Design"/>
        <category label="Performance" term="Performance"/>
        <category label="Distributed Systems" term="Distributed Systems"/>
        <category label="CQRS" term="CQRS"/>
        <category label="Read Optimization" term="Read Optimization"/>
        <published>2024-12-11T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Managing Multiple Git Identities on One Machine]]></title>
        <id>https://manakupadhyay.in/blog/multiple-git-identities</id>
        <link href="https://manakupadhyay.in/blog/multiple-git-identities"/>
        <updated>2024-04-10T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[How to set up separate SSH keys and git configs for work and personal GitHub accounts on the same laptop.]]></summary>
        <category label="Git" term="Git"/>
        <category label="SSH" term="SSH"/>
        <category label="GitHub" term="GitHub"/>
        <category label="Multiple Accounts" term="Multiple Accounts"/>
        <category label="SSH Config" term="SSH Config"/>
        <category label="Git Config" term="Git Config"/>
        <category label="Developer Tools" term="Developer Tools"/>
        <category label="DevOps" term="DevOps"/>
        <category label="Terminal" term="Terminal"/>
        <category label="Productivity" term="Productivity"/>
        <category label="macOS" term="macOS"/>
        <published>2024-04-10T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Interaction to Next Paint (INP)]]></title>
        <id>https://manakupadhyay.in/blog/inp</id>
        <link href="https://manakupadhyay.in/blog/inp"/>
        <updated>2023-11-16T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Understanding Interaction to Next Paint (INP), how it's measured, and how to optimize it for better responsiveness.]]></summary>
        <category label="Interaction to Next Paint" term="Interaction to Next Paint"/>
        <category label="INP" term="INP"/>
        <category label="Core Web Vitals" term="Core Web Vitals"/>
        <category label="Web Performance" term="Web Performance"/>
        <category label="Responsiveness" term="Responsiveness"/>
        <category label="User Experience" term="User Experience"/>
        <category label="Performance Optimization" term="Performance Optimization"/>
        <category label="SEO" term="SEO"/>
        <category label="Google Metrics" term="Google Metrics"/>
        <category label="Web Development" term="Web Development"/>
        <published>2023-11-16T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[First Input Delay (FID)]]></title>
        <id>https://manakupadhyay.in/blog/fid</id>
        <link href="https://manakupadhyay.in/blog/fid"/>
        <updated>2023-11-16T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Understanding First Input Delay (FID), why it happens, and how to optimize it for better user experience.]]></summary>
        <category label="First Input Delay" term="First Input Delay"/>
        <category label="FID" term="FID"/>
        <category label="Core Web Vitals" term="Core Web Vitals"/>
        <category label="Web Performance" term="Web Performance"/>
        <category label="User Experience" term="User Experience"/>
        <category label="Performance Optimization" term="Performance Optimization"/>
        <category label="SEO" term="SEO"/>
        <category label="Google Metrics" term="Google Metrics"/>
        <category label="Web Development" term="Web Development"/>
        <category label="JavaScript Performance" term="JavaScript Performance"/>
        <published>2023-11-16T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Largest Contentful Paint (LCP)]]></title>
        <id>https://manakupadhyay.in/blog/lcp</id>
        <link href="https://manakupadhyay.in/blog/lcp"/>
        <updated>2023-10-22T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Understanding Largest Contentful Paint (LCP)]]></summary>
        <category label="Largest Contentful Paint" term="Largest Contentful Paint"/>
        <category label="LCP" term="LCP"/>
        <category label="Core Web Vitals" term="Core Web Vitals"/>
        <category label="Web Performance" term="Web Performance"/>
        <category label="Performance Optimization" term="Performance Optimization"/>
        <category label="Page Load Time" term="Page Load Time"/>
        <category label="SEO" term="SEO"/>
        <category label="Google Metrics" term="Google Metrics"/>
        <category label="Performance Metrics" term="Performance Metrics"/>
        <category label="Web Development" term="Web Development"/>
        <category label="Image Optimization" term="Image Optimization"/>
        <category label="CDN" term="CDN"/>
        <category label="Server Response Time" term="Server Response Time"/>
        <published>2023-10-22T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Cumulative Layout Shift (CLS)]]></title>
        <id>https://manakupadhyay.in/blog/cls</id>
        <link href="https://manakupadhyay.in/blog/cls"/>
        <updated>2023-10-22T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Understanding Cumulative Layout Shift (CLS)]]></summary>
        <category label="Cumulative Layout Shift" term="Cumulative Layout Shift"/>
        <category label="CLS" term="CLS"/>
        <category label="Core Web Vitals" term="Core Web Vitals"/>
        <category label="Web Performance" term="Web Performance"/>
        <category label="Visual Stability" term="Visual Stability"/>
        <category label="Layout Shift" term="Layout Shift"/>
        <category label="Performance Optimization" term="Performance Optimization"/>
        <category label="SEO" term="SEO"/>
        <category label="Google Metrics" term="Google Metrics"/>
        <category label="Web Development" term="Web Development"/>
        <category label="User Experience" term="User Experience"/>
        <category label="FOIT" term="FOIT"/>
        <category label="FOUT" term="FOUT"/>
        <category label="CSS Transform" term="CSS Transform"/>
        <published>2023-10-22T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[What are Core Web Vitals?]]></title>
        <id>https://manakupadhyay.in/blog/core-web-vitals</id>
        <link href="https://manakupadhyay.in/blog/core-web-vitals"/>
        <updated>2023-10-21T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Learn about Core Web Vitals, Google's key performance metrics that impact SEO rankings, and how to measure and optimize them for better user experience.]]></summary>
        <category label="Core Web Vitals" term="Core Web Vitals"/>
        <category label="Web Performance" term="Web Performance"/>
        <category label="SEO" term="SEO"/>
        <category label="Google Rankings" term="Google Rankings"/>
        <category label="LCP" term="LCP"/>
        <category label="CLS" term="CLS"/>
        <category label="INP" term="INP"/>
        <category label="PageSpeed" term="PageSpeed"/>
        <category label="Lighthouse" term="Lighthouse"/>
        <category label="Performance Optimization" term="Performance Optimization"/>
        <category label="Web Development" term="Web Development"/>
        <category label="UX" term="UX"/>
        <category label="Chrome User Experience Report" term="Chrome User Experience Report"/>
        <category label="Field Data" term="Field Data"/>
        <category label="Lab Data" term="Lab Data"/>
        <category label="Performance Metrics" term="Performance Metrics"/>
        <published>2023-10-21T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[JavaScript Event Propagation]]></title>
        <id>https://manakupadhyay.in/blog/event-propagation</id>
        <link href="https://manakupadhyay.in/blog/event-propagation"/>
        <updated>2022-02-25T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Understand how events travel through the DOM in JavaScript, from bubbling and capturing to event delegation and why it matters for performance.]]></summary>
        <category label="JavaScript" term="JavaScript"/>
        <category label="Event Propagation" term="Event Propagation"/>
        <category label="Event Bubbling" term="Event Bubbling"/>
        <category label="Event Capturing" term="Event Capturing"/>
        <category label="Event Delegation" term="Event Delegation"/>
        <category label="DOM Events" term="DOM Events"/>
        <category label="addEventListener" term="addEventListener"/>
        <category label="stopPropagation" term="stopPropagation"/>
        <category label="JavaScript Tutorial" term="JavaScript Tutorial"/>
        <category label="Beginner JavaScript" term="Beginner JavaScript"/>
        <category label="Web Development" term="Web Development"/>
        <category label="Frontend" term="Frontend"/>
        <category label="JavaScript Interview Questions" term="JavaScript Interview Questions"/>
        <category label="Event Handling" term="Event Handling"/>
        <category label="Event Trickling" term="Event Trickling"/>
        <published>2022-02-25T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Classes in JavaScript]]></title>
        <id>https://manakupadhyay.in/blog/javascript-classes</id>
        <link href="https://manakupadhyay.in/blog/javascript-classes"/>
        <updated>2022-02-20T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Learn how JavaScript classes work under the hood, from constructors and inheritance to private fields and static methods, with practical examples.]]></summary>
        <category label="JavaScript" term="JavaScript"/>
        <category label="Classes" term="Classes"/>
        <category label="OOP" term="OOP"/>
        <category label="Constructor" term="Constructor"/>
        <category label="Inheritance" term="Inheritance"/>
        <category label="Prototypes" term="Prototypes"/>
        <category label="Static Methods" term="Static Methods"/>
        <category label="Private Fields" term="Private Fields"/>
        <category label="Getters" term="Getters"/>
        <category label="Setters" term="Setters"/>
        <category label="ES6" term="ES6"/>
        <category label="JavaScript Tutorial" term="JavaScript Tutorial"/>
        <category label="Beginner JavaScript" term="Beginner JavaScript"/>
        <category label="Object Oriented Programming" term="Object Oriented Programming"/>
        <category label="JavaScript Interview Questions" term="JavaScript Interview Questions"/>
        <published>2022-02-20T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[JavaScript: Value vs Reference Types]]></title>
        <id>https://manakupadhyay.in/blog/javascript-value-vs-reference-types</id>
        <link href="https://manakupadhyay.in/blog/javascript-value-vs-reference-types"/>
        <updated>2022-02-11T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Understanding how JavaScript handles primitive and complex data types, and the difference between pass-by-value and pass-by-reference.]]></summary>
        <category label="JavaScript" term="JavaScript"/>
        <category label="Data Types" term="Data Types"/>
        <category label="Memory Management" term="Memory Management"/>
        <category label="Primitives" term="Primitives"/>
        <category label="Objects" term="Objects"/>
        <category label="Pass by Value" term="Pass by Value"/>
        <category label="Pass by Reference" term="Pass by Reference"/>
        <category label="Programming Fundamentals" term="Programming Fundamentals"/>
        <published>2022-02-11T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[JavaScript: Function Declaration vs Function Expression]]></title>
        <id>https://manakupadhyay.in/blog/javascript-functions</id>
        <link href="https://manakupadhyay.in/blog/javascript-functions"/>
        <updated>2022-02-08T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Difference between Function Declaration and Function Expression in JavaScript.]]></summary>
        <category label="JavaScript" term="JavaScript"/>
        <category label="Functions" term="Functions"/>
        <category label="Function Declaration" term="Function Declaration"/>
        <category label="Function Expression" term="Function Expression"/>
        <category label="Function Statement" term="Function Statement"/>
        <category label="Function Definition" term="Function Definition"/>
        <category label="Anonymous Function" term="Anonymous Function"/>
        <category label="Named Function Expression" term="Named Function Expression"/>
        <category label="Hoisting" term="Hoisting"/>
        <category label="Function Hoisting" term="Function Hoisting"/>
        <category label="Scope" term="Scope"/>
        <category label="JavaScript Scope" term="JavaScript Scope"/>
        <category label="JS Basics" term="JS Basics"/>
        <category label="JavaScript Tutorial" term="JavaScript Tutorial"/>
        <category label="ES5 vs ES6" term="ES5 vs ES6"/>
        <category label="Beginner JavaScript" term="Beginner JavaScript"/>
        <category label="JavaScript Interview Questions" term="JavaScript Interview Questions"/>
        <published>2022-02-08T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[JavaScript: Execution Context and the Call Stack]]></title>
        <id>https://manakupadhyay.in/blog/javascript-execution-context-and-the-call-stack</id>
        <link href="https://manakupadhyay.in/blog/javascript-execution-context-and-the-call-stack"/>
        <updated>2022-01-16T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[A deep dive into how JavaScript manages code execution.]]></summary>
        <category label="JavaScript" term="JavaScript"/>
        <category label="Execution Context" term="Execution Context"/>
        <category label="Call Stack" term="Call Stack"/>
        <category label="JavaScript Engine" term="JavaScript Engine"/>
        <category label="Hoisting" term="Hoisting"/>
        <category label="Variable Environment" term="Variable Environment"/>
        <category label="Memory Phase" term="Memory Phase"/>
        <category label="Single Threaded" term="Single Threaded"/>
        <category label="Synchronous JavaScript" term="Synchronous JavaScript"/>
        <category label="JS Internals" term="JS Internals"/>
        <category label="Debugging JavaScript" term="Debugging JavaScript"/>
        <category label="JavaScript Tutorial" term="JavaScript Tutorial"/>
        <category label="Web development" term="Web development"/>
        <published>2022-01-16T00:00:00.000Z</published>
    </entry>
</feed>