<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Sreekar Reddy</title>
    <description>The latest articles on Forem by Sreekar Reddy (@esreekarreddy).</description>
    <link>https://forem.com/esreekarreddy</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3678910%2Fd7c2554f-5af3-4a55-ae45-d8f7b63e44f0.jpg</url>
      <title>Forem: Sreekar Reddy</title>
      <link>https://forem.com/esreekarreddy</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/esreekarreddy"/>
    <language>en</language>
    <item>
      <title>🔒 SSL/TLS Explained Like You're 5</title>
      <dc:creator>Sreekar Reddy</dc:creator>
      <pubDate>Sat, 23 May 2026 22:55:02 +0000</pubDate>
      <link>https://forem.com/esreekarreddy/ssltls-explained-like-youre-5-5ghe</link>
      <guid>https://forem.com/esreekarreddy/ssltls-explained-like-youre-5-5ghe</guid>
      <description>&lt;p&gt;&lt;em&gt;Encrypting data between you and websites&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Day 149 of 149&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://sreekarreddy.com/learn/eli5/ssl-tls" rel="noopener noreferrer"&gt;Full deep-dive with code examples&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Sealed Envelope Analogy
&lt;/h2&gt;

&lt;p&gt;Sending a postcard:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Everyone can read it (mail carriers, neighbors)&lt;/li&gt;
&lt;li&gt;No privacy!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sending a sealed, locked box:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Only the recipient has the key&lt;/li&gt;
&lt;li&gt;Contents are private&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;SSL/TLS is the sealed box for your internet data!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It encrypts the data sent over the connection between your browser (client) and a website (server), protecting it while it travels across the network.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why It Matters
&lt;/h2&gt;

&lt;p&gt;Without SSL/TLS:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Passwords can be sent in plain text&lt;/li&gt;
&lt;li&gt;Credit card numbers can be exposed&lt;/li&gt;
&lt;li&gt;Someone who can observe the network may be able to read or change what you send&lt;/li&gt;
&lt;li&gt;On public WiFi, attackers can potentially intercept traffic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With SSL/TLS:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Data sent over the connection is encrypted (and integrity-protected)&lt;/li&gt;
&lt;li&gt;It helps prevent eavesdropping and tampering while data is in transit&lt;/li&gt;
&lt;li&gt;Reduces risk on public WiFi (but it doesn’t stop a compromised device or server)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  How You Know It's Working
&lt;/h2&gt;

&lt;p&gt;Look for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;https://&lt;/strong&gt; (not http://)&lt;/li&gt;
&lt;li&gt;Your browser indicating an encrypted connection&lt;/li&gt;
&lt;li&gt;Certificate details in the site info/security UI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Note: a lock icon means the connection is encrypted and the certificate checks out — it doesn’t automatically mean the site itself is trustworthy.&lt;/p&gt;




&lt;h2&gt;
  
  
  How It Works (Simplified)
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Handshake:&lt;/strong&gt; Browser and server agree on encryption method&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Certificates:&lt;/strong&gt; Server proves its identity&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Key exchange:&lt;/strong&gt; They create a shared secret key&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Encrypted connection:&lt;/strong&gt; All data encrypted with that key&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Think of it like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Meeting someone, showing ID, agreeing on a secret code, then speaking in code!&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  SSL vs TLS
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SSL:&lt;/strong&gt; Old protocol family (legacy; SSL 2.0/3.0 are no longer recommended)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TLS:&lt;/strong&gt; Modern protocol family (what we actually use today)&lt;/li&gt;
&lt;li&gt;People still say "SSL" but mean TLS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;TLS 1.3 is the newest widely deployed version, and TLS 1.2 is still commonly used.&lt;/p&gt;




&lt;h2&gt;
  
  
  In One Sentence
&lt;/h2&gt;

&lt;p&gt;SSL/TLS encrypts data between your browser and websites, turning readable information into scrambled text that only you and the website can understand.&lt;/p&gt;




&lt;p&gt;🔗 &lt;strong&gt;Enjoying these? Follow for daily ELI5 explanations!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Making complex tech concepts simple, one day at a time.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>eli5</category>
      <category>security</category>
      <category>encryption</category>
      <category>programming</category>
    </item>
    <item>
      <title>⚡ Redis Explained Like You're 5</title>
      <dc:creator>Sreekar Reddy</dc:creator>
      <pubDate>Fri, 22 May 2026 23:01:49 +0000</pubDate>
      <link>https://forem.com/esreekarreddy/redis-explained-like-youre-5-4dgb</link>
      <guid>https://forem.com/esreekarreddy/redis-explained-like-youre-5-4dgb</guid>
      <description>&lt;p&gt;&lt;em&gt;Super fast in-memory data store&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Day 148 of 149&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://sreekarreddy.com/learn/eli5/redis" rel="noopener noreferrer"&gt;Full deep-dive with code examples&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Sticky Note Analogy
&lt;/h2&gt;

&lt;p&gt;Your desk has a drawer full of files (database) and sticky notes on your monitor (Redis):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Drawer:&lt;/strong&gt; Organized, permanent, but slow to find things&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sticky notes:&lt;/strong&gt; Right in front of you, instant access!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Redis is like sticky notes for your applications!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Super fast because data lives in memory, not on disk.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Redis Is Fast
&lt;/h2&gt;

&lt;p&gt;Traditional databases:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Store data on disk (SSD/HDD)&lt;/li&gt;
&lt;li&gt;Disk access is slow (milliseconds)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Redis:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stores data in RAM (memory)&lt;/li&gt;
&lt;li&gt;RAM access is fast (microseconds)&lt;/li&gt;
&lt;li&gt;100x faster than disk!&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What Redis Stores
&lt;/h2&gt;

&lt;p&gt;Not just simple values:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Strings:&lt;/strong&gt; Simple key-value pairs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lists:&lt;/strong&gt; Ordered collections&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sets:&lt;/strong&gt; Unique items&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hashes:&lt;/strong&gt; Objects with multiple fields&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sorted sets:&lt;/strong&gt; Ranked data (leaderboards!)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Common Uses
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Caching:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Store frequently accessed data&lt;/li&gt;
&lt;li&gt;Avoid hitting slow database&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Sessions:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User login sessions&lt;/li&gt;
&lt;li&gt;Shopping carts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Real-time features:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Chat messages&lt;/li&gt;
&lt;li&gt;Live notifications&lt;/li&gt;
&lt;li&gt;Leaderboards&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Rate limiting:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Track request counts&lt;/li&gt;
&lt;li&gt;Block abusive users&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Trade-Off
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fast:&lt;/strong&gt; In-memory is blazingly fast&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Volatile:&lt;/strong&gt; RAM can lose data on restart (though Redis can persist)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Limited size:&lt;/strong&gt; RAM is more expensive than disk&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  In One Sentence
&lt;/h2&gt;

&lt;p&gt;Redis is a super-fast in-memory data store used for caching, sessions, and real-time features where speed matters most.&lt;/p&gt;




&lt;p&gt;🔗 &lt;strong&gt;Enjoying these? Follow for daily ELI5 explanations!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Making complex tech concepts simple, one day at a time.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>eli5</category>
      <category>database</category>
      <category>caching</category>
      <category>programming</category>
    </item>
    <item>
      <title>🚦 Rate Limiting Explained Like You're 5</title>
      <dc:creator>Sreekar Reddy</dc:creator>
      <pubDate>Thu, 21 May 2026 23:04:31 +0000</pubDate>
      <link>https://forem.com/esreekarreddy/rate-limiting-explained-like-youre-5-loe</link>
      <guid>https://forem.com/esreekarreddy/rate-limiting-explained-like-youre-5-loe</guid>
      <description>&lt;p&gt;&lt;em&gt;Controlling how fast requests can be made&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Day 147 of 149&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://sreekarreddy.com/learn/eli5/rate-limiting" rel="noopener noreferrer"&gt;Full deep-dive with code examples&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Highway On-Ramp Analogy
&lt;/h2&gt;

&lt;p&gt;Highway on-ramps have traffic lights:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Let one car through every few seconds&lt;/li&gt;
&lt;li&gt;Prevents too many cars entering at once&lt;/li&gt;
&lt;li&gt;Keeps highway traffic flowing smoothly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Rate Limiting is the traffic light for your API!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It controls how many requests can be made in a time period.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Rate Limit?
&lt;/h2&gt;

&lt;p&gt;Without limits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One user can make 1,000,000 requests/second&lt;/li&gt;
&lt;li&gt;Server gets overwhelmed&lt;/li&gt;
&lt;li&gt;Everyone suffers (slow or no service)&lt;/li&gt;
&lt;li&gt;Attackers can crash your system&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With limits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Each user gets 100 requests/minute&lt;/li&gt;
&lt;li&gt;Server stays healthy&lt;/li&gt;
&lt;li&gt;Fair access for everyone&lt;/li&gt;
&lt;li&gt;Protection from attacks&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;p&gt;Track requests per user/IP:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User Alice:
- Made 95 requests this minute
- Limit: 100/minute
- 5 remaining ✓

User Bob (attacker):
- Made 100 requests this minute
- Limit: 100/minute
- BLOCKED until next minute ✗
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Common Strategies
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Fixed window:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reset counter every minute&lt;/li&gt;
&lt;li&gt;Simple but can have edge-case bursts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Sliding window:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rolling time window&lt;/li&gt;
&lt;li&gt;Smoother limiting&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Token bucket:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tokens refill over time&lt;/li&gt;
&lt;li&gt;Spend tokens to make requests&lt;/li&gt;
&lt;li&gt;Allows short bursts&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What Happens When Limited
&lt;/h2&gt;

&lt;p&gt;Server returns HTTP &lt;strong&gt;429 Too Many Requests&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"Slow down!"&lt;/li&gt;
&lt;li&gt;Often includes "Retry-After" header&lt;/li&gt;
&lt;li&gt;Tells you when to try again&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  In One Sentence
&lt;/h2&gt;

&lt;p&gt;Rate Limiting controls how many requests users can make in a time period, protecting servers from overload and ensuring fair access for everyone.&lt;/p&gt;




&lt;p&gt;🔗 &lt;strong&gt;Enjoying these? Follow for daily ELI5 explanations!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Making complex tech concepts simple, one day at a time.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>eli5</category>
      <category>architecture</category>
      <category>security</category>
      <category>programming</category>
    </item>
    <item>
      <title>🤑 Greedy Algorithms Explained Like You're 5</title>
      <dc:creator>Sreekar Reddy</dc:creator>
      <pubDate>Wed, 20 May 2026 23:15:25 +0000</pubDate>
      <link>https://forem.com/esreekarreddy/greedy-algorithms-explained-like-youre-5-4i5l</link>
      <guid>https://forem.com/esreekarreddy/greedy-algorithms-explained-like-youre-5-4i5l</guid>
      <description>&lt;p&gt;&lt;em&gt;Always pick the best option right now&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Day 146 of 149&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://sreekarreddy.com/learn/eli5/greedy" rel="noopener noreferrer"&gt;Full deep-dive with code examples&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Coin Change Analogy
&lt;/h2&gt;

&lt;p&gt;You owe someone $0.63 and want to use the fewest coins:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Greedy approach:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;With common US coins (25¢, 10¢, 5¢, 1¢): 25¢ → 25¢ → 10¢ → 1¢ → 1¢ → 1¢ = 6 coins&lt;/li&gt;
&lt;li&gt;Pick the largest coin that fits, then repeat&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;That's greedy!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At each step, pick what looks best RIGHT NOW without thinking ahead.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem It Solves
&lt;/h2&gt;

&lt;p&gt;Optimization problems have many choices:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"What's the shortest route?"&lt;/li&gt;
&lt;li&gt;"How to fit most items in a bag?"&lt;/li&gt;
&lt;li&gt;"Minimum number of steps?"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Checking all combinations can be too slow. Greedy gives a fast answer by repeatedly picking a locally optimal choice.&lt;/p&gt;




&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Make a choice&lt;/strong&gt; → Pick the best available option&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reduce the problem&lt;/strong&gt; → New smaller problem remains&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Repeat&lt;/strong&gt; → Until problem is solved&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No looking back, no reconsidering. Just greedy choices.&lt;/p&gt;




&lt;h2&gt;
  
  
  When Greedy Works
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Classic cases where greedy is optimal (with proof):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Coin change (for some coin systems, like common US coins)&lt;/li&gt;
&lt;li&gt;Activity scheduling (most non-overlapping events)&lt;/li&gt;
&lt;li&gt;Huffman coding (compression)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Doesn't work for every problem:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Some problems need to look ahead&lt;/li&gt;
&lt;li&gt;Greedy might miss the globally optimal solution&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Greedy vs Dynamic Programming
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Greedy&lt;/th&gt;
&lt;th&gt;Dynamic Programming&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Fast, simple&lt;/td&gt;
&lt;td&gt;Slower, more complex&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Local choices&lt;/td&gt;
&lt;td&gt;Considers all options&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;May not be optimal&lt;/td&gt;
&lt;td&gt;Can be optimal&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Use when it provably works&lt;/td&gt;
&lt;td&gt;Use when greedy fails&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Note: Dynamic programming can produce an optimal answer when the problem has the right structure (like optimal substructure) and you model it correctly.&lt;/p&gt;




&lt;h2&gt;
  
  
  In One Sentence
&lt;/h2&gt;

&lt;p&gt;Greedy Algorithms solve problems by picking the best available option at each step, which is fast but only works when local choices lead to a global solution.&lt;/p&gt;




&lt;p&gt;🔗 &lt;strong&gt;Enjoying these? Follow for daily ELI5 explanations!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Making complex tech concepts simple, one day at a time.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>eli5</category>
      <category>algorithms</category>
      <category>optimization</category>
      <category>programming</category>
    </item>
    <item>
      <title>📇 Database Indexing Explained Like You're 5</title>
      <dc:creator>Sreekar Reddy</dc:creator>
      <pubDate>Tue, 19 May 2026 23:03:40 +0000</pubDate>
      <link>https://forem.com/esreekarreddy/database-indexing-explained-like-youre-5-3i30</link>
      <guid>https://forem.com/esreekarreddy/database-indexing-explained-like-youre-5-3i30</guid>
      <description>&lt;p&gt;&lt;em&gt;Speed up queries with organized data pointers&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Day 145 of 149&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://sreekarreddy.com/learn/eli5/database-indexing" rel="noopener noreferrer"&gt;Full deep-dive with code examples&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Library Card Catalog Analogy
&lt;/h2&gt;

&lt;p&gt;Imagine finding a book in a library with no organization:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Walk through every aisle&lt;/li&gt;
&lt;li&gt;Check every shelf&lt;/li&gt;
&lt;li&gt;Look at every book until you find it&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now imagine the card catalog:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Look up the book by title or author&lt;/li&gt;
&lt;li&gt;Get the exact shelf location&lt;/li&gt;
&lt;li&gt;Go directly there!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Database indexing is like the library card catalog!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It creates a shortcut to find your data without scanning everything.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem It Solves
&lt;/h2&gt;

&lt;p&gt;Without indexing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Database scans every row to find matches&lt;/li&gt;
&lt;li&gt;1 million rows = 1 million checks&lt;/li&gt;
&lt;li&gt;Slow queries that get slower as data grows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With indexing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Database looks up the index first&lt;/li&gt;
&lt;li&gt;Knows exactly where the data is&lt;/li&gt;
&lt;li&gt;Fast queries even with millions of rows&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;p&gt;An index is a sorted structure pointing to data:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Index (sorted by name):          Actual Table:
Alice → Row 47        ──────→    Row 47: Alice, 30, Sydney
Bob → Row 12          ──────→    Row 12: Bob, 25, Melbourne
Carol → Row 89        ──────→    Row 89: Carol, 35, Perth
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Finding "Carol"? Index points straight to row 89!&lt;/p&gt;




&lt;h2&gt;
  
  
  When To Use Indexes
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Add indexes when:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Columns are used in WHERE clauses&lt;/li&gt;
&lt;li&gt;Columns are used for sorting (ORDER BY)&lt;/li&gt;
&lt;li&gt;Columns are used for joining tables&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Don't over-index:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Indexes slow down writes (inserts, updates)&lt;/li&gt;
&lt;li&gt;Each index takes storage space&lt;/li&gt;
&lt;li&gt;Too many indexes = diminishing returns&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  In One Sentence
&lt;/h2&gt;

&lt;p&gt;Database Indexing creates organized shortcuts to your data, turning slow full-table scans into fast direct lookups.&lt;/p&gt;




&lt;p&gt;🔗 &lt;strong&gt;Enjoying these? Follow for daily ELI5 explanations!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Making complex tech concepts simple, one day at a time.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>eli5</category>
      <category>database</category>
      <category>performance</category>
      <category>programming</category>
    </item>
    <item>
      <title>📱 Two-Factor Authentication Explained Like You're 5</title>
      <dc:creator>Sreekar Reddy</dc:creator>
      <pubDate>Mon, 18 May 2026 23:04:35 +0000</pubDate>
      <link>https://forem.com/esreekarreddy/two-factor-authentication-explained-like-youre-5-4l27</link>
      <guid>https://forem.com/esreekarreddy/two-factor-authentication-explained-like-youre-5-4l27</guid>
      <description>&lt;p&gt;&lt;em&gt;Password plus your phone&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Day 144 of 149&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://sreekarreddy.com/learn/eli5/two-factor-auth" rel="noopener noreferrer"&gt;Full deep-dive with code examples&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Bank Vault Analogy
&lt;/h2&gt;

&lt;p&gt;To access a bank vault, you need:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;A key&lt;/strong&gt; (something you have)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A PIN code&lt;/strong&gt; (something you know)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Having just one isn't enough. Someone who steals your key can't get in without the PIN.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Two-Factor Authentication (2FA) works the same way!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You need two different types of proof to log in.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Passwords Aren't Enough
&lt;/h2&gt;

&lt;p&gt;Passwords can be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Stolen&lt;/strong&gt; → Attackers may get them from data breaches&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Guessed&lt;/strong&gt; → People use weak passwords&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Phished&lt;/strong&gt; → Fake websites trick you&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With only a password, if someone gets it, they can often log in as you.&lt;/p&gt;




&lt;h2&gt;
  
  
  How 2FA Helps
&lt;/h2&gt;

&lt;p&gt;Even if someone has your password, they still need the second factor:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Types of second factors:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Something you have:&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Your phone (SMS code, authenticator app)&lt;/li&gt;
&lt;li&gt;A security key (like YubiKey)&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Something you are:&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Fingerprint&lt;/li&gt;
&lt;li&gt;Face recognition&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Some systems also use extra signals (like location or device) to reduce risk, but the classic factor categories are: know / have / are.&lt;/p&gt;




&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Enter username and password (first factor)&lt;/li&gt;
&lt;li&gt;System asks for second factor&lt;/li&gt;
&lt;li&gt;You provide a code from your phone or scan fingerprint&lt;/li&gt;
&lt;li&gt;Both verified? You're in!
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Password ✓ (something you know)
+
Phone code ✓ (something you have)
=
Access granted!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Why It's Important
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Attacker gets your password → They may still be blocked&lt;/li&gt;
&lt;li&gt;You lose your phone → They still need your password&lt;/li&gt;
&lt;li&gt;Harder for attackers to have BOTH factors&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Note: some 2FA methods (like SMS or one-time codes) can still be phished in real time. Phishing-resistant options include hardware security keys and passkeys (WebAuthn).&lt;/p&gt;




&lt;h2&gt;
  
  
  In One Sentence
&lt;/h2&gt;

&lt;p&gt;Two-Factor Authentication requires two different types of proof to verify your identity, making accounts harder to compromise than password-only login.&lt;/p&gt;




&lt;p&gt;🔗 &lt;strong&gt;Enjoying these? Follow for daily ELI5 explanations!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Making complex tech concepts simple, one day at a time.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>eli5</category>
      <category>security</category>
      <category>auth</category>
      <category>beginners</category>
    </item>
    <item>
      <title>🚩 Feature Flags Explained Like You're 5</title>
      <dc:creator>Sreekar Reddy</dc:creator>
      <pubDate>Sun, 17 May 2026 22:55:02 +0000</pubDate>
      <link>https://forem.com/esreekarreddy/feature-flags-explained-like-youre-5-56a6</link>
      <guid>https://forem.com/esreekarreddy/feature-flags-explained-like-youre-5-56a6</guid>
      <description>&lt;p&gt;&lt;em&gt;Toggle features without deploying&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Day 143 of 149&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://sreekarreddy.com/learn/eli5/feature-flags" rel="noopener noreferrer"&gt;Full deep-dive with code examples&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Light Switch Analogy
&lt;/h2&gt;

&lt;p&gt;Every room has light switches:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Flip on → Light works&lt;/li&gt;
&lt;li&gt;Flip off → Light doesn't work&lt;/li&gt;
&lt;li&gt;No need to rewire anything&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Feature flags are light switches for code!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Turn features on or off without deploying new code.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem It Solves
&lt;/h2&gt;

&lt;p&gt;Traditional deployment is all-or-nothing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Deploy → Everyone gets the new feature&lt;/li&gt;
&lt;li&gt;Bug found? → Roll back everything&lt;/li&gt;
&lt;li&gt;Want to test with some users first? → Can't easily do that&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  How Feature Flags Help
&lt;/h2&gt;

&lt;p&gt;With feature flags:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Deploy code with flag OFF&lt;/strong&gt; → Feature hidden&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Turn flag ON for 10% of users&lt;/strong&gt; → Test it&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Everything working?&lt;/strong&gt; → Turn ON for everyone&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Problem found?&lt;/strong&gt; → Just flip it OFF&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No redeployment needed!&lt;/p&gt;




&lt;h2&gt;
  
  
  Common Uses
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Gradual rollouts:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Week 1: 5% of users
Week 2: 25% of users
Week 3: 100% of users
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Beta testing:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Flag ON for beta users&lt;/li&gt;
&lt;li&gt;Flag OFF for everyone else&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Kill switches:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Feature breaking production?&lt;/li&gt;
&lt;li&gt;Flip the flag OFF instantly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;A/B testing:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Version A for some users&lt;/li&gt;
&lt;li&gt;Version B for others&lt;/li&gt;
&lt;li&gt;See which performs better&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  A Simple Example
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nf"&gt;feature_flag&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;new-checkout&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="n"&gt;ON&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;show_new_checkout&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;show_old_checkout&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Toggle it from a dashboard:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No code changes&lt;/li&gt;
&lt;li&gt;No deployment&lt;/li&gt;
&lt;li&gt;Instant effect&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Benefits
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Lower-risk releases&lt;/strong&gt; → Test with small groups first&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quick fixes&lt;/strong&gt; → Turn off misbehaving features quickly&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flexibility&lt;/strong&gt; → Different features for different users&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  In One Sentence
&lt;/h2&gt;

&lt;p&gt;Feature flags let you turn application features on or off for specific users without deploying new code.&lt;/p&gt;




&lt;p&gt;🔗 &lt;strong&gt;Enjoying these? Follow for daily ELI5 explanations!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Making complex tech concepts simple, one day at a time.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>eli5</category>
      <category>devops</category>
      <category>deployment</category>
      <category>programming</category>
    </item>
    <item>
      <title>Helm Explained Like You're 5</title>
      <dc:creator>Sreekar Reddy</dc:creator>
      <pubDate>Sat, 16 May 2026 23:53:14 +0000</pubDate>
      <link>https://forem.com/esreekarreddy/helm-explained-like-youre-5-2l2j</link>
      <guid>https://forem.com/esreekarreddy/helm-explained-like-youre-5-2l2j</guid>
      <description>&lt;p&gt;&lt;em&gt;Package manager for Kubernetes&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Day 142 of 149&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://sreekarreddy.com/learn/eli5/helm" rel="noopener noreferrer"&gt;Full deep-dive with code examples&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The IKEA Furniture Analogy
&lt;/h2&gt;

&lt;p&gt;Buying IKEA furniture:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You get a box with all the pieces&lt;/li&gt;
&lt;li&gt;Plus instruction manual&lt;/li&gt;
&lt;li&gt;Everything fits together&lt;/li&gt;
&lt;li&gt;One package, complete product&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Helm is like IKEA for Kubernetes!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It packages all the parts of your app together with instructions.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem It Solves
&lt;/h2&gt;

&lt;p&gt;Deploying apps to Kubernetes is complex:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Many configuration files (YAML)&lt;/li&gt;
&lt;li&gt;Dozens of resources to create&lt;/li&gt;
&lt;li&gt;Different settings for dev vs production&lt;/li&gt;
&lt;li&gt;Easy to miss something or make mistakes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Managing all this manually is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Error-prone&lt;/li&gt;
&lt;li&gt;Time-consuming&lt;/li&gt;
&lt;li&gt;Hard to repeat consistently&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  How Helm Fixes It
&lt;/h2&gt;

&lt;p&gt;Helm bundles everything into a "Chart":&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;my-app/
├── Chart.yaml      # Package info
├── values.yaml     # Settings (like size, replicas)
└── templates/      # All the Kubernetes files
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To deploy:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;One command&lt;/strong&gt; → &lt;code&gt;helm install my-app&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Change settings&lt;/strong&gt; → Just edit values.yaml&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Upgrade&lt;/strong&gt; → &lt;code&gt;helm upgrade my-app&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rollback&lt;/strong&gt; → &lt;code&gt;helm rollback my-app&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Like App Stores
&lt;/h2&gt;

&lt;p&gt;Think of Helm Charts like apps in an app store:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Browse available charts&lt;/li&gt;
&lt;li&gt;Install with one click&lt;/li&gt;
&lt;li&gt;Customize settings as needed&lt;/li&gt;
&lt;li&gt;Update when new versions come out&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Popular charts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PostgreSQL database&lt;/li&gt;
&lt;li&gt;Redis cache&lt;/li&gt;
&lt;li&gt;Nginx web server&lt;/li&gt;
&lt;li&gt;Prometheus monitoring&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  In One Sentence
&lt;/h2&gt;

&lt;p&gt;Helm packages complex Kubernetes applications into easy-to-install bundles with customizable settings.&lt;/p&gt;




&lt;p&gt;🔗 &lt;strong&gt;Enjoying these? Follow for daily ELI5 explanations!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Making complex tech concepts simple, one day at a time.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>eli5</category>
      <category>devops</category>
      <category>kubernetes</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>🗺️ Graph Algorithms Explained Like You're 5</title>
      <dc:creator>Sreekar Reddy</dc:creator>
      <pubDate>Fri, 15 May 2026 22:56:45 +0000</pubDate>
      <link>https://forem.com/esreekarreddy/graph-algorithms-explained-like-youre-5-1doi</link>
      <guid>https://forem.com/esreekarreddy/graph-algorithms-explained-like-youre-5-1doi</guid>
      <description>&lt;p&gt;&lt;em&gt;Finding paths through networks&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Day 141 of 149&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://sreekarreddy.com/learn/eli5/graph-algorithms" rel="noopener noreferrer"&gt;Full deep-dive with code examples&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The City Map Analogy
&lt;/h2&gt;

&lt;p&gt;Think of a city:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Intersections&lt;/strong&gt; are points (nodes)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Roads&lt;/strong&gt; connect them (edges)&lt;/li&gt;
&lt;li&gt;Some roads are one-way (directed)&lt;/li&gt;
&lt;li&gt;Some roads are longer than others (weighted)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Graph algorithms help you navigate and understand these connections!&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What Problems They Solve
&lt;/h2&gt;

&lt;p&gt;Networks are everywhere:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Social networks&lt;/strong&gt; → Who knows who?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Maps&lt;/strong&gt; → How do I get from A to B?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Internet&lt;/strong&gt; → How does data travel?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recommendations&lt;/strong&gt; → What else might you like?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Graph algorithms answer questions like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What's the shortest path?&lt;/li&gt;
&lt;li&gt;Are these two things connected?&lt;/li&gt;
&lt;li&gt;What's the most influential node?&lt;/li&gt;
&lt;li&gt;How do I visit everything efficiently?&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Main Algorithms
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Finding paths:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;BFS&lt;/strong&gt; → Explore layer by layer (shortest path in simple graphs)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DFS&lt;/strong&gt; → Explore as deep as possible first&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dijkstra&lt;/strong&gt; → Shortest path when roads have different lengths&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Understanding structure:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Connected Components&lt;/strong&gt; → Which groups are connected?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Topological Sort&lt;/strong&gt; → What order to do things with dependencies?&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  A Simple Example
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Finding friends-of-friends:

You → Alice → Bob → Carol
        ↓
      David

BFS from You:
Level 1: Alice
Level 2: Bob, David
Level 3: Carol
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Where They're Used
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Google Maps (shortest route)&lt;/li&gt;
&lt;li&gt;Facebook (friend suggestions)&lt;/li&gt;
&lt;li&gt;Package delivery routing&lt;/li&gt;
&lt;li&gt;Network troubleshooting&lt;/li&gt;
&lt;li&gt;Dependency resolution (installing software)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  In One Sentence
&lt;/h2&gt;

&lt;p&gt;Graph algorithms help you find paths, connections, and patterns in any network of connected things.&lt;/p&gt;




&lt;p&gt;🔗 &lt;strong&gt;Enjoying these? Follow for daily ELI5 explanations!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Making complex tech concepts simple, one day at a time.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>eli5</category>
      <category>algorithms</category>
      <category>graphs</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>🚦 Authorization Explained Like You're 5</title>
      <dc:creator>Sreekar Reddy</dc:creator>
      <pubDate>Thu, 14 May 2026 22:58:20 +0000</pubDate>
      <link>https://forem.com/esreekarreddy/authorization-explained-like-youre-5-18e2</link>
      <guid>https://forem.com/esreekarreddy/authorization-explained-like-youre-5-18e2</guid>
      <description>&lt;p&gt;&lt;em&gt;What you're allowed to do&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Day 140 of 149&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://sreekarreddy.com/learn/eli5/authorization" rel="noopener noreferrer"&gt;Full deep-dive with code examples&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Movie Theater Analogy
&lt;/h2&gt;

&lt;p&gt;At a movie theater:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Authentication&lt;/strong&gt;: Prove you bought a ticket&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Authorization&lt;/strong&gt;: Check if your ticket is for VIP or regular&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Authentication = who you are. Authorization = what you can do.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Difference
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Authentication&lt;/th&gt;
&lt;th&gt;Authorization&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;WHO are you?&lt;/td&gt;
&lt;td&gt;WHAT can you do?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Login&lt;/td&gt;
&lt;td&gt;Access control&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Verify identity&lt;/td&gt;
&lt;td&gt;Check permissions&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Role-Based Access Control (RBAC)
&lt;/h2&gt;

&lt;p&gt;Most common approach:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;roles&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;admin&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;create&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;read&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;update&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;delete&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;editor&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;create&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;read&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;update&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;viewer&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;read&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check: Does user's role include this permission?&lt;/p&gt;




&lt;h2&gt;
  
  
  Real Examples
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Google Docs&lt;/strong&gt;: Owner → Editor → Commenter → Viewer&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: Admin → Write → Read&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Your app&lt;/strong&gt;: Admin → Manager → User&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  HTTP Status Codes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;401 Unauthorized&lt;/strong&gt;: Not logged in&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;403 Forbidden&lt;/strong&gt;: Logged in, but no permission&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  In One Sentence
&lt;/h2&gt;

&lt;p&gt;Authorization checks if an authenticated user has permission to perform a specific action.&lt;/p&gt;




&lt;p&gt;🔗 &lt;strong&gt;Enjoying these? Follow for daily ELI5 explanations!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Making complex tech concepts simple, one day at a time.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>eli5</category>
      <category>security</category>
      <category>access</category>
      <category>beginners</category>
    </item>
    <item>
      <title>🌸 Bloom Filters Explained Like You're 5</title>
      <dc:creator>Sreekar Reddy</dc:creator>
      <pubDate>Wed, 13 May 2026 23:06:10 +0000</pubDate>
      <link>https://forem.com/esreekarreddy/bloom-filters-explained-like-youre-5-4bj0</link>
      <guid>https://forem.com/esreekarreddy/bloom-filters-explained-like-youre-5-4bj0</guid>
      <description>&lt;p&gt;&lt;em&gt;Probably yes or definitely no&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Day 139 of 149&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://sreekarreddy.com/learn/eli5/bloom-filters" rel="noopener noreferrer"&gt;Full deep-dive with code examples&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Nightclub Bouncer Analogy
&lt;/h2&gt;

&lt;p&gt;Imagine a nightclub bouncer with a list:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"Is this person on the banned list?"&lt;/li&gt;
&lt;li&gt;Instead of checking the whole list, they have a quick mental system&lt;/li&gt;
&lt;li&gt;Sometimes they might say "maybe on the list" when they're not&lt;/li&gt;
&lt;li&gt;In a standard Bloom filter (with consistent hashing and only additions), they won't say "definitely not" when someone actually is in the set&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Bloom Filters work like this bouncer!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Fast to check, might have false positives, and (in the standard version) no false negatives.&lt;/p&gt;

&lt;p&gt;More precisely: in standard use (only adding items, consistent hashing, no corruption), Bloom filters are designed to avoid false negatives.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem They Solve
&lt;/h2&gt;

&lt;p&gt;Checking if something is in a huge set can be expensive (especially if the data lives on disk or across the network):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"Has this user already seen this article?"&lt;/li&gt;
&lt;li&gt;"Is this email address in our database?"&lt;/li&gt;
&lt;li&gt;"Is this URL malicious?"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bloom filters help you quickly rule out "definitely not present" so you can skip unnecessary expensive lookups.&lt;/p&gt;




&lt;h2&gt;
  
  
  How Bloom Filters Work
&lt;/h2&gt;

&lt;p&gt;Simple idea:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Create a bit array&lt;/strong&gt; (lots of zeros and ones)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;When adding item:&lt;/strong&gt; run it through hash functions, set those bits to 1&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;When checking item:&lt;/strong&gt; run through same hashes, are all bits 1?

&lt;ul&gt;
&lt;li&gt;All ones? → Probably in the set&lt;/li&gt;
&lt;li&gt;Any zeros? → Definitely NOT in the set&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  The Trade-Off
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What you give up:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Can't be completely certain something IS in the set&lt;/li&gt;
&lt;li&gt;Standard bloom filters don't support reliable deletion without extra bookkeeping&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What you get:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Incredibly fast lookups&lt;/li&gt;
&lt;li&gt;Very memory efficient&lt;/li&gt;
&lt;li&gt;Certain when something is NOT in the set (as long as you only add items)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Note: Bloom filters are typically used as a fast pre-check. If it says "maybe", you still verify with the real data.&lt;/p&gt;




&lt;h2&gt;
  
  
  Real Uses
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Web browsers&lt;/strong&gt; → Is this URL in the malware list?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Databases&lt;/strong&gt; → Is this key probably in this file?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Spell checkers&lt;/strong&gt; → Is this probably a real word?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Social media&lt;/strong&gt; → Has user already seen this post?&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Key Insight
&lt;/h2&gt;

&lt;p&gt;Bloom filters are about speed vs certainty:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Traditional:&lt;/strong&gt; Slow but exact&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bloom filter:&lt;/strong&gt; Super fast, false positives possible, no false negatives&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Perfect when "probably yes" is good enough!&lt;/p&gt;




&lt;h2&gt;
  
  
  In One Sentence
&lt;/h2&gt;

&lt;p&gt;Bloom Filters quickly tell you if something is definitely not in a set, or maybe (but not certainly) is.&lt;/p&gt;




&lt;p&gt;🔗 &lt;strong&gt;Enjoying these? Follow for daily ELI5 explanations!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Making complex tech concepts simple, one day at a time.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>eli5</category>
      <category>datastructures</category>
      <category>probabilistic</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>🏆 Priority Queues Explained Like You're 5</title>
      <dc:creator>Sreekar Reddy</dc:creator>
      <pubDate>Tue, 12 May 2026 23:04:26 +0000</pubDate>
      <link>https://forem.com/esreekarreddy/priority-queues-explained-like-youre-5-46oh</link>
      <guid>https://forem.com/esreekarreddy/priority-queues-explained-like-youre-5-46oh</guid>
      <description>&lt;p&gt;&lt;em&gt;Highest priority items served first&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Day 138 of 149&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://sreekarreddy.com/learn/eli5/priority-queues" rel="noopener noreferrer"&gt;Full deep-dive with code examples&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Emergency Room Analogy
&lt;/h2&gt;

&lt;p&gt;In an emergency room:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You don't go in order of arrival&lt;/li&gt;
&lt;li&gt;Heart attack patient → First, no matter when they arrived&lt;/li&gt;
&lt;li&gt;A sprained ankle → Waits, even if they came earlier&lt;/li&gt;
&lt;li&gt;Priority matters more than arrival time&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;A Priority Queue lets the highest priority item go first!&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  How It Differs from Regular Queues
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Regular Queue (FIFO):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;First in, first out&lt;/li&gt;
&lt;li&gt;Everyone waits their turn&lt;/li&gt;
&lt;li&gt;Arrival order is everything&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Priority Queue:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Highest priority out first&lt;/li&gt;
&lt;li&gt;"Importance" matters, not arrival order&lt;/li&gt;
&lt;li&gt;The VIP line&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;p&gt;Each item has a priority:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Add: (Task: "Email", Priority: 3)
Add: (Task: "Bug fix", Priority: 1)  ← Highest priority
Add: (Task: "Meeting", Priority: 2)

Get next: "Bug fix" (priority 1 goes first!)
Get next: "Meeting" (priority 2)
Get next: "Email" (priority 3)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Lower number = higher priority (like hospital triage).&lt;/p&gt;




&lt;h2&gt;
  
  
  Common Uses
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Task scheduling&lt;/strong&gt; → Important tasks first&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dijkstra's algorithm&lt;/strong&gt; → Visit closest node next&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Huffman coding&lt;/strong&gt; → Build tree from smallest frequencies&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Event systems&lt;/strong&gt; → Process urgent events first&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Operating systems&lt;/strong&gt; → Run high-priority processes&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Behind the Scenes
&lt;/h2&gt;

&lt;p&gt;Priority queues are usually implemented with &lt;strong&gt;heaps&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Finding highest priority: instant (O(1))&lt;/li&gt;
&lt;li&gt;Adding items: fast (O(log n))&lt;/li&gt;
&lt;li&gt;Removing highest: fast (O(log n))&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Priority Queue vs Sorting
&lt;/h2&gt;

&lt;p&gt;Why not just sort?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sorting: O(n log n) to sort everything&lt;/li&gt;
&lt;li&gt;Priority Queue: O(log n) per operation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Priority queue is better when items come and go!&lt;/p&gt;




&lt;h2&gt;
  
  
  In One Sentence
&lt;/h2&gt;

&lt;p&gt;A Priority Queue is like a smart line where the most important item goes first, regardless of when it arrived.&lt;/p&gt;




&lt;p&gt;🔗 &lt;strong&gt;Enjoying these? Follow for daily ELI5 explanations!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Making complex tech concepts simple, one day at a time.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>eli5</category>
      <category>datastructures</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
