<?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>DEV Community: Sreekar Reddy</title>
    <description>The latest articles on DEV Community by Sreekar Reddy (@esreekarreddy).</description>
    <link>https://dev.to/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>DEV Community: Sreekar Reddy</title>
      <link>https://dev.to/esreekarreddy</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/esreekarreddy"/>
    <language>en</language>
    <item>
      <title>🔤 Tries Explained Like You're 5</title>
      <dc:creator>Sreekar Reddy</dc:creator>
      <pubDate>Fri, 08 May 2026 22:57:05 +0000</pubDate>
      <link>https://dev.to/esreekarreddy/tries-explained-like-youre-5-158i</link>
      <guid>https://dev.to/esreekarreddy/tries-explained-like-youre-5-158i</guid>
      <description>&lt;p&gt;&lt;em&gt;Trees for storing strings efficiently&lt;/em&gt;&lt;/p&gt;

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

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




&lt;h2&gt;
  
  
  The Autocomplete Analogy
&lt;/h2&gt;

&lt;p&gt;When you type on your phone:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Type "hel" → Suggestions: "hello", "help", "helicopter"&lt;/li&gt;
&lt;li&gt;Type "help" → Suggestions: "help", "helpful", "helpless"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The phone quickly finds all words starting with what you typed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A Trie is the data structure that makes autocomplete super fast!&lt;/strong&gt;&lt;/p&gt;




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

&lt;p&gt;Searching through all words is slow:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dictionary has 100,000 words&lt;/li&gt;
&lt;li&gt;Check if "hello" starts with "hel"... for each word?&lt;/li&gt;
&lt;li&gt;Very slow!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We need a smarter way to find words by their beginning.&lt;/p&gt;




&lt;h2&gt;
  
  
  How Tries Work
&lt;/h2&gt;

&lt;p&gt;A Trie is a tree where:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Each path from root spells a word&lt;/li&gt;
&lt;li&gt;Shared prefixes share paths&lt;/li&gt;
&lt;li&gt;Branching happens where words differ
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;        (root)
        /    \
       c      h
      /        \
     a          e
    / \          \
   r   t          l
   |   |          |
  [car][cat]     l
                 |
                 o
                 |
               [hello]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;"car" and "cat" share "ca" path, then split.&lt;/p&gt;




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

&lt;p&gt;To find "cat":&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Start at root&lt;/li&gt;
&lt;li&gt;Go to 'c' → found&lt;/li&gt;
&lt;li&gt;Go to 'a' → found&lt;/li&gt;
&lt;li&gt;Go to 't' → found, it's a word!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Only 3 steps, regardless of dictionary size!&lt;/p&gt;




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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Autocomplete&lt;/strong&gt; → Find all words starting with prefix&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Spell checking&lt;/strong&gt; → Is this word in the dictionary?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;IP routing&lt;/strong&gt; → Match network prefixes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Predictive text&lt;/strong&gt; → Suggest next words&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Trie vs Hash Table
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Hash Table&lt;/th&gt;
&lt;th&gt;Trie&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Find exact word&lt;/td&gt;
&lt;td&gt;Fast&lt;/td&gt;
&lt;td&gt;Fast&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Find by prefix&lt;/td&gt;
&lt;td&gt;Slow (check all)&lt;/td&gt;
&lt;td&gt;Fast!&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Memory&lt;/td&gt;
&lt;td&gt;More compact&lt;/td&gt;
&lt;td&gt;Uses more memory&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




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

&lt;p&gt;A Trie is a tree structure that organizes strings by their characters, making it incredibly fast to find all words that start with a given prefix.&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>trees</category>
      <category>programming</category>
    </item>
    <item>
      <title>🌲 Binary Trees Explained Like You're 5</title>
      <dc:creator>Sreekar Reddy</dc:creator>
      <pubDate>Thu, 07 May 2026 23:01:33 +0000</pubDate>
      <link>https://dev.to/esreekarreddy/binary-trees-explained-like-youre-5-269a</link>
      <guid>https://dev.to/esreekarreddy/binary-trees-explained-like-youre-5-269a</guid>
      <description>&lt;p&gt;&lt;em&gt;Each node has at most two children&lt;/em&gt;&lt;/p&gt;

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

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




&lt;h2&gt;
  
  
  The Family Tree Analogy
&lt;/h2&gt;

&lt;p&gt;Imagine a family tree where each person can have at most two children. The top person is the root, with branches going down.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A binary tree is a hierarchical structure where each node has at most two children: left and right.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Structure
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;        10        ← Root
       /  \
      5    15     ← Children
     / \
    3   7        ← Grandchildren
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;TreeNode&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;left&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;right&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Binary Search Tree (BST)
&lt;/h2&gt;

&lt;p&gt;A special binary tree with ordering:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Left subtree: values LESS than parent&lt;/li&gt;
&lt;li&gt;Right subtree: values GREATER than parent&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This ordering enables O(log n) search!&lt;/p&gt;




&lt;h2&gt;
  
  
  Tree Traversals
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Traversal&lt;/th&gt;
&lt;th&gt;Order&lt;/th&gt;
&lt;th&gt;Use Case&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Inorder&lt;/td&gt;
&lt;td&gt;Left, Root, Right&lt;/td&gt;
&lt;td&gt;Sorted output&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Preorder&lt;/td&gt;
&lt;td&gt;Root, Left, Right&lt;/td&gt;
&lt;td&gt;Copy tree&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Postorder&lt;/td&gt;
&lt;td&gt;Left, Right, Root&lt;/td&gt;
&lt;td&gt;Delete tree&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;File systems&lt;/strong&gt; - Directories and files&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HTML DOM&lt;/strong&gt; - Page element hierarchy&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database indexes&lt;/strong&gt; - Fast lookups&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Expression parsing&lt;/strong&gt; - Math expressions&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;Binary trees are hierarchical data structures where each node has at most two children, enabling efficient searching and sorting operations.&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>trees</category>
      <category>programming</category>
    </item>
    <item>
      <title>♿ Web Accessibility Explained Like You're 5</title>
      <dc:creator>Sreekar Reddy</dc:creator>
      <pubDate>Wed, 06 May 2026 22:54:14 +0000</pubDate>
      <link>https://dev.to/esreekarreddy/web-accessibility-explained-like-youre-5-18ok</link>
      <guid>https://dev.to/esreekarreddy/web-accessibility-explained-like-youre-5-18ok</guid>
      <description>&lt;p&gt;&lt;em&gt;Making websites usable for everyone&lt;/em&gt;&lt;/p&gt;

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

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




&lt;h2&gt;
  
  
  The Curb Cut Analogy
&lt;/h2&gt;

&lt;p&gt;Curb cuts (ramps in sidewalks) were designed for wheelchairs, but help everyone:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Parents with strollers&lt;/li&gt;
&lt;li&gt;People with luggage&lt;/li&gt;
&lt;li&gt;Delivery workers with carts&lt;/li&gt;
&lt;li&gt;Cyclists&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Web accessibility is the same!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Designing for disabilities improves the experience for everyone.&lt;/p&gt;




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

&lt;p&gt;Over 1 billion people have disabilities:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Visual&lt;/strong&gt; → Blind, low vision, color blind&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hearing&lt;/strong&gt; → Deaf, hard of hearing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Motor&lt;/strong&gt; → Can't use mouse, limited movement&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cognitive&lt;/strong&gt; → Dyslexia, attention issues&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without accessibility, your website locks them out.&lt;/p&gt;




&lt;h2&gt;
  
  
  How People Access the Web Differently
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Screen readers&lt;/strong&gt; → Read page aloud for blind users&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keyboard only&lt;/strong&gt; → No mouse, just Tab and Enter&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Voice control&lt;/strong&gt; → Speak commands&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Screen magnifiers&lt;/strong&gt; → Zoom in for low vision&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your website needs to work with all of these!&lt;/p&gt;




&lt;h2&gt;
  
  
  Simple Accessibility Wins
&lt;/h2&gt;

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

&lt;ul&gt;
&lt;li&gt;Add alt text: "Golden retriever playing in park"&lt;/li&gt;
&lt;li&gt;Screen readers can describe images to blind users&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Don't rely only on color (red for error)&lt;/li&gt;
&lt;li&gt;Good contrast between text and background&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Keyboard navigation:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Can users Tab through the page?&lt;/li&gt;
&lt;li&gt;Are buttons and links focusable?&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Label every input field&lt;/li&gt;
&lt;li&gt;Show clear error messages&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Benefits Beyond Disabilities
&lt;/h2&gt;

&lt;p&gt;Accessibility helps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Elderly users with declining vision&lt;/li&gt;
&lt;li&gt;Mobile users with small screens&lt;/li&gt;
&lt;li&gt;Users in bright sunlight (need contrast!)&lt;/li&gt;
&lt;li&gt;SEO (search engines read alt text too!)&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;Web Accessibility means designing websites so everyone, including people with disabilities, can use them—and it makes sites better 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>web</category>
      <category>a11y</category>
      <category>programming</category>
    </item>
    <item>
      <title>🧩 Web Components Explained Like You're 5</title>
      <dc:creator>Sreekar Reddy</dc:creator>
      <pubDate>Tue, 05 May 2026 22:57:27 +0000</pubDate>
      <link>https://dev.to/esreekarreddy/web-components-explained-like-youre-5-2p57</link>
      <guid>https://dev.to/esreekarreddy/web-components-explained-like-youre-5-2p57</guid>
      <description>&lt;p&gt;&lt;em&gt;Reusable custom HTML elements&lt;/em&gt;&lt;/p&gt;

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

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




&lt;h2&gt;
  
  
  The LEGO Brick Analogy
&lt;/h2&gt;

&lt;p&gt;LEGO bricks are reusable building blocks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Each brick works independently&lt;/li&gt;
&lt;li&gt;Combine them to build anything&lt;/li&gt;
&lt;li&gt;Same brick works in any LEGO set&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Web Components are LEGO bricks for websites!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Create a component once, use it anywhere.&lt;/p&gt;




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

&lt;p&gt;Before Web Components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Copying HTML, CSS, JS between projects&lt;/li&gt;
&lt;li&gt;Styles from one component affecting others&lt;/li&gt;
&lt;li&gt;Different frameworks couldn't share components&lt;/li&gt;
&lt;li&gt;Hard to encapsulate functionality&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What Web Components Give You
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Custom Elements:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Define your own HTML tags&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;user-card&amp;gt;&lt;/code&gt; instead of &lt;code&gt;&amp;lt;div class="user-card"&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Shadow DOM:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Component has its own isolated styles&lt;/li&gt;
&lt;li&gt;No CSS leaking in or out&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;HTML Templates:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reusable HTML structures&lt;/li&gt;
&lt;li&gt;Only rendered when needed&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;Create a custom element:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;my-greeting&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"Alice"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/my-greeting&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Renders as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hello, Alice! Welcome to our site.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use it anywhere like a regular HTML tag!&lt;/p&gt;




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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Encapsulation&lt;/strong&gt; → Styles and logic stay inside&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reusability&lt;/strong&gt; → Same component in any project&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Framework agnostic&lt;/strong&gt; → Works with React, Vue, or vanilla JS&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Native browser support&lt;/strong&gt; → No library needed&lt;/li&gt;
&lt;/ul&gt;




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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Design systems&lt;/strong&gt; → Company-wide UI components&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Widgets&lt;/strong&gt; → Video players, date pickers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Micro frontends&lt;/strong&gt; → Independent components from different teams&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;Web Components let you create custom, reusable HTML elements with encapsulated styles and behavior that work in any web project.&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>web</category>
      <category>frontend</category>
      <category>programming</category>
    </item>
    <item>
      <title>📱 Progressive Web Apps Explained Like You're 5</title>
      <dc:creator>Sreekar Reddy</dc:creator>
      <pubDate>Mon, 04 May 2026 22:57:51 +0000</pubDate>
      <link>https://dev.to/esreekarreddy/progressive-web-apps-explained-like-youre-5-4dj0</link>
      <guid>https://dev.to/esreekarreddy/progressive-web-apps-explained-like-youre-5-4dj0</guid>
      <description>&lt;p&gt;&lt;em&gt;Websites that feel like apps&lt;/em&gt;&lt;/p&gt;

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

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




&lt;h2&gt;
  
  
  The Best of Both Worlds Analogy
&lt;/h2&gt;

&lt;p&gt;You want pizza:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Restaurant:&lt;/strong&gt; Great experience, but you have to go there&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Delivery:&lt;/strong&gt; Comes to you, but takes time each order&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Home oven with frozen pizza:&lt;/strong&gt; Available anytime, like having the restaurant at home!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;PWAs are like having the restaurant experience at home!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;All the benefits of apps, without the app store.&lt;/p&gt;




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

&lt;p&gt;&lt;strong&gt;Native apps are great but:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Need to download from app store&lt;/li&gt;
&lt;li&gt;Take up phone storage&lt;/li&gt;
&lt;li&gt;Require separate iOS and Android versions&lt;/li&gt;
&lt;li&gt;Updates need re-downloading&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Websites are accessible but:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Need internet to work&lt;/li&gt;
&lt;li&gt;Can't send notifications&lt;/li&gt;
&lt;li&gt;Not on home screen&lt;/li&gt;
&lt;li&gt;Feel "less real" than apps&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  How PWAs Fix This
&lt;/h2&gt;

&lt;p&gt;PWAs combine the best of both:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Install from browser&lt;/strong&gt; → No app store needed&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Work offline&lt;/strong&gt; → Cached data and pages&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Home screen icon&lt;/strong&gt; → Feels like a real app&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Push notifications&lt;/strong&gt; → Keep users engaged&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One codebase&lt;/strong&gt; → Works on all devices&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Service Workers:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Run in the background&lt;/li&gt;
&lt;li&gt;Cache files for offline use&lt;/li&gt;
&lt;li&gt;Handle push notifications&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Manifest file:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tells browser it's installable&lt;/li&gt;
&lt;li&gt;Sets icon, colors, name&lt;/li&gt;
&lt;li&gt;Configures how it launches&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;HTTPS required:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Security is mandatory&lt;/li&gt;
&lt;li&gt;Protects user data&lt;/li&gt;
&lt;/ul&gt;




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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Twitter Lite&lt;/strong&gt; → PWA, 70% data reduction&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Starbucks&lt;/strong&gt; → Works offline for ordering&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pinterest&lt;/strong&gt; → 40% more user engagement&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Spotify Web Player&lt;/strong&gt; → PWA for music&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;Progressive Web Apps are websites that work like native apps—installable, fast, and work offline—without needing an app store.&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>web</category>
      <category>mobile</category>
      <category>programming</category>
    </item>
    <item>
      <title>🖥️ SSR vs CSR Explained Like You're 5</title>
      <dc:creator>Sreekar Reddy</dc:creator>
      <pubDate>Sun, 03 May 2026 22:44:40 +0000</pubDate>
      <link>https://dev.to/esreekarreddy/ssr-vs-csr-explained-like-youre-5-468g</link>
      <guid>https://dev.to/esreekarreddy/ssr-vs-csr-explained-like-youre-5-468g</guid>
      <description>&lt;p&gt;&lt;em&gt;Where your page gets rendered&lt;/em&gt;&lt;/p&gt;

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

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




&lt;h2&gt;
  
  
  The Restaurant Analogy
&lt;/h2&gt;

&lt;p&gt;Two types of restaurants:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Full-service restaurant (SSR):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Kitchen prepares complete meal&lt;/li&gt;
&lt;li&gt;Served ready to eat&lt;/li&gt;
&lt;li&gt;You just enjoy it&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Build-your-own taco bar (CSR):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You get ingredients&lt;/li&gt;
&lt;li&gt;You assemble at your table&lt;/li&gt;
&lt;li&gt;More interactive, but takes time&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;SSR vs CSR is about where the webpage gets built!&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Server-Side Rendering (SSR)
&lt;/h2&gt;

&lt;p&gt;The server builds the complete HTML page:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User visits → Server builds page → Sends complete HTML → User sees content immediately
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;ul&gt;
&lt;li&gt;Fast first load (content right away)&lt;/li&gt;
&lt;li&gt;Great for SEO (search engines see full content)&lt;/li&gt;
&lt;li&gt;Works without JavaScript&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Every click might need a new page from server&lt;/li&gt;
&lt;li&gt;Server does more work&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Client-Side Rendering (CSR)
&lt;/h2&gt;

&lt;p&gt;The browser builds the page with JavaScript:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User visits → Server sends empty shell → Browser runs JavaScript → Content appears
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;ul&gt;
&lt;li&gt;After first load, navigation is instant&lt;/li&gt;
&lt;li&gt;Feels like an app, not a website&lt;/li&gt;
&lt;li&gt;Server does less work&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Blank page until JavaScript loads&lt;/li&gt;
&lt;li&gt;Search engines may not see content&lt;/li&gt;
&lt;li&gt;Needs JavaScript to work&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;&lt;strong&gt;Choose SSR when:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SEO matters (blogs, e-commerce)&lt;/li&gt;
&lt;li&gt;Fast first load is critical&lt;/li&gt;
&lt;li&gt;Users might have slow devices&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Choose CSR when:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Building app-like experiences (dashboards)&lt;/li&gt;
&lt;li&gt;Lots of interactivity&lt;/li&gt;
&lt;li&gt;Users stay and explore (not quick visits)&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Many sites use BOTH (hybrid)&lt;/li&gt;
&lt;li&gt;SSR for first load, CSR for navigation&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;SSR has the server build pages (fast first load, good SEO), while CSR has the browser build them (app-like experience after initial load).&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>web</category>
      <category>performance</category>
      <category>programming</category>
    </item>
    <item>
      <title>📮 REST API Explained Like You're 5</title>
      <dc:creator>Sreekar Reddy</dc:creator>
      <pubDate>Sat, 02 May 2026 22:44:59 +0000</pubDate>
      <link>https://dev.to/esreekarreddy/rest-api-explained-like-youre-5-58g8</link>
      <guid>https://dev.to/esreekarreddy/rest-api-explained-like-youre-5-58g8</guid>
      <description>&lt;p&gt;&lt;em&gt;Web services using HTTP verbs&lt;/em&gt;&lt;/p&gt;

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

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




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

&lt;p&gt;A library with standard commands:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GET&lt;/strong&gt; a book - Receive book&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;POST&lt;/strong&gt; a book - Donate new book&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PUT&lt;/strong&gt; a book - Replace with updated version&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DELETE&lt;/strong&gt; a book - Remove from library&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;REST APIs use the same HTTP verbs to operate on resources.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  HTTP Methods = CRUD
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Method&lt;/th&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;GET&lt;/td&gt;
&lt;td&gt;Read&lt;/td&gt;
&lt;td&gt;&lt;code&gt;GET /users&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;POST&lt;/td&gt;
&lt;td&gt;Create&lt;/td&gt;
&lt;td&gt;&lt;code&gt;POST /users&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PUT&lt;/td&gt;
&lt;td&gt;Update&lt;/td&gt;
&lt;td&gt;&lt;code&gt;PUT /users/1&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DELETE&lt;/td&gt;
&lt;td&gt;Delete&lt;/td&gt;
&lt;td&gt;&lt;code&gt;DELETE /users/1&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Real Example
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Get all users&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;users&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/api/users&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// Create user&lt;/span&gt;
&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/api/users&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;method&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;POST&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;body&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Alice&lt;/span&gt;&lt;span class="dl"&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;h2&gt;
  
  
  Best Practices
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Use &lt;strong&gt;nouns&lt;/strong&gt;, not verbs (&lt;code&gt;/users&lt;/code&gt; not &lt;code&gt;/getUsers&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;plurals&lt;/strong&gt; (&lt;code&gt;/products&lt;/code&gt; not &lt;code&gt;/product&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Return proper &lt;strong&gt;status codes&lt;/strong&gt; (200, 201, 404, etc.)&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;REST APIs use standard HTTP methods (GET, POST, PUT, DELETE) to interact with resources identified by URLs.&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>web</category>
      <category>api</category>
      <category>beginners</category>
    </item>
    <item>
      <title>🚛 Database Migrations Explained Like You're 5</title>
      <dc:creator>Sreekar Reddy</dc:creator>
      <pubDate>Fri, 01 May 2026 22:52:51 +0000</pubDate>
      <link>https://dev.to/esreekarreddy/database-migrations-explained-like-youre-5-2hen</link>
      <guid>https://dev.to/esreekarreddy/database-migrations-explained-like-youre-5-2hen</guid>
      <description>&lt;p&gt;&lt;em&gt;Version control for database schema&lt;/em&gt;&lt;/p&gt;

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

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




&lt;h2&gt;
  
  
  The Recipe Card Analogy
&lt;/h2&gt;

&lt;p&gt;Your grandma's recipe evolves:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Version 1: Original recipe&lt;/li&gt;
&lt;li&gt;Version 2: Add a pinch of salt&lt;/li&gt;
&lt;li&gt;Version 3: Use brown sugar instead of white&lt;/li&gt;
&lt;li&gt;Each change is recorded and reversible&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Database migrations track changes to your database structure!&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Migrations Matter
&lt;/h2&gt;

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

&lt;ul&gt;
&lt;li&gt;"Did we add that column?"&lt;/li&gt;
&lt;li&gt;"What does the database look like in production?"&lt;/li&gt;
&lt;li&gt;"How do I set up a new developer's database?"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Everyone's database might be different!&lt;/p&gt;




&lt;h2&gt;
  
  
  How They Work
&lt;/h2&gt;

&lt;p&gt;Each migration is a file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Migration 1: Create users table
Migration 2: Add email column to users
Migration 3: Create orders table
Migration 4: Add index on email
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run in order, your database evolves consistently.&lt;/p&gt;




&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Forward (up):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Apply changes: add column, create table&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Backward (down):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Undo changes: remove column, drop table&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Version tracking:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Database knows which migrations have run&lt;/li&gt;
&lt;li&gt;Only applies new ones&lt;/li&gt;
&lt;/ul&gt;




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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Consistent&lt;/strong&gt; → All databases match&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Repeatable&lt;/strong&gt; → New developer runs migrations, instant setup&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reversible&lt;/strong&gt; → Mistake? Roll back&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auditable&lt;/strong&gt; → History of all changes&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Workflow
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Write migration (add column, change type)&lt;/li&gt;
&lt;li&gt;Test locally&lt;/li&gt;
&lt;li&gt;Commit to version control&lt;/li&gt;
&lt;li&gt;Deploy runs migrations automatically&lt;/li&gt;
&lt;li&gt;Production updated safely!&lt;/li&gt;
&lt;/ol&gt;




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

&lt;p&gt;Database Migrations are versioned scripts that track and apply changes to your database structure, so every environment stays in sync.&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>devops</category>
      <category>programming</category>
    </item>
    <item>
      <title>📦 Stored Procedures Explained Like You're 5</title>
      <dc:creator>Sreekar Reddy</dc:creator>
      <pubDate>Thu, 30 Apr 2026 22:55:41 +0000</pubDate>
      <link>https://dev.to/esreekarreddy/stored-procedures-explained-like-youre-5-1a62</link>
      <guid>https://dev.to/esreekarreddy/stored-procedures-explained-like-youre-5-1a62</guid>
      <description>&lt;p&gt;&lt;em&gt;Saved SQL scripts in the database&lt;/em&gt;&lt;/p&gt;

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

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




&lt;h2&gt;
  
  
  The Restaurant Kitchen Analogy
&lt;/h2&gt;

&lt;p&gt;Ordering at a restaurant:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You don't tell the chef each step: "Boil water, add pasta, cook 10 min..."&lt;/li&gt;
&lt;li&gt;You just say: "Spaghetti Carbonara, please"&lt;/li&gt;
&lt;li&gt;The chef already knows the recipe&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Stored procedures are recipes stored in the database!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You call them by name instead of writing the steps each time.&lt;/p&gt;




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

&lt;p&gt;Without stored procedures:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Every app sends complex SQL to the database&lt;/li&gt;
&lt;li&gt;Same logic repeated in multiple places&lt;/li&gt;
&lt;li&gt;If logic changes, update everywhere&lt;/li&gt;
&lt;li&gt;More network traffic&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  How They Work
&lt;/h2&gt;

&lt;p&gt;You write the procedure once:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Create procedure "GetCustomerOrders":
  1. Find customer by ID
  2. Get all their orders
  3. Sort by date
  4. Return results
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then call it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;Execute&lt;/span&gt; &lt;span class="n"&gt;GetCustomerOrders&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;customer_id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;123&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The database runs all steps internally!&lt;/p&gt;




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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Faster&lt;/strong&gt; → Less data sent over network&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reusable&lt;/strong&gt; → Call same procedure from anywhere&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Access-controlled&lt;/strong&gt; → Users can run procedure without direct table access&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Maintainable&lt;/strong&gt; → Change logic in one place&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;&lt;strong&gt;Good for:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Complex operations with multiple steps&lt;/li&gt;
&lt;li&gt;Business logic that should live in database&lt;/li&gt;
&lt;li&gt;Performance-critical queries&lt;/li&gt;
&lt;li&gt;Enforcing consistent data rules&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Maybe avoid when:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Logic changes frequently&lt;/li&gt;
&lt;li&gt;You want portable code across databases&lt;/li&gt;
&lt;li&gt;Simple queries that don't need reuse&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;Stored Procedures are pre-written programs saved in the database that you can run by name, like calling a recipe instead of writing all the steps.&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>sql</category>
      <category>programming</category>
    </item>
    <item>
      <title>📏 Database Normalization Explained Like You're 5</title>
      <dc:creator>Sreekar Reddy</dc:creator>
      <pubDate>Wed, 29 Apr 2026 22:58:33 +0000</pubDate>
      <link>https://dev.to/esreekarreddy/database-normalization-explained-like-youre-5-3781</link>
      <guid>https://dev.to/esreekarreddy/database-normalization-explained-like-youre-5-3781</guid>
      <description>&lt;p&gt;&lt;em&gt;Organizing data to reduce redundancy&lt;/em&gt;&lt;/p&gt;

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

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




&lt;h2&gt;
  
  
  The Address Book Analogy
&lt;/h2&gt;

&lt;p&gt;Bad address book:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"John Smith, 123 Main St, Sydney NSW 2000"&lt;/li&gt;
&lt;li&gt;"John Smith, 123 Main St, Sydney NSW 2000" (repeated!)&lt;/li&gt;
&lt;li&gt;What if John moves? Update every entry!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Good address book:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Contact list: John Smith → Contact ID: 1&lt;/li&gt;
&lt;li&gt;Address list: Contact ID: 1 → 123 Main St, Sydney&lt;/li&gt;
&lt;li&gt;One place to update!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Normalization organizes data to avoid repetition!&lt;/strong&gt;&lt;/p&gt;




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

&lt;p&gt;&lt;strong&gt;Data repetition:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Same information in many places&lt;/li&gt;
&lt;li&gt;Wastes storage space&lt;/li&gt;
&lt;li&gt;Easy to have mismatches&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Update anomalies:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Change one place, forget another&lt;/li&gt;
&lt;li&gt;Data becomes inconsistent&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Deletion anomalies:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Delete one thing, accidentally lose other info&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;Split data into related tables:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Before (unnormalized):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;| OrderID | Customer | CustomerEmail  | Product |
| 1       | Alice    | alice@mail.com | Laptop  |
| 2       | Alice    | alice@mail.com | Mouse   |
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Alice's email repeated!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;After (normalized):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;Customers: | CustomerID | Name  | Email           |
           | 1          | Alice | alice@mail.com  |

Orders:    | OrderID | CustomerID | Product |
| 1 | 1 | Laptop |
| 2 | 1 | Mouse  |
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Email stored once, linked by ID.&lt;/p&gt;




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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No redundancy&lt;/strong&gt; → Data stored once&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consistency&lt;/strong&gt; → One source of truth&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Easier updates&lt;/strong&gt; → Change in one place&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Less storage&lt;/strong&gt; → No duplicate data&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;More tables = more joins (slower queries sometimes).&lt;/p&gt;

&lt;p&gt;Balance: Normalize for correctness, denormalize for performance when needed.&lt;/p&gt;




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

&lt;p&gt;Database Normalization organizes data into tables that minimize repetition, ensuring data is stored once and stays consistent.&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>design</category>
      <category>programming</category>
    </item>
    <item>
      <title>📐 CAP Theorem Explained Like You're 5</title>
      <dc:creator>Sreekar Reddy</dc:creator>
      <pubDate>Tue, 28 Apr 2026 22:58:02 +0000</pubDate>
      <link>https://dev.to/esreekarreddy/cap-theorem-explained-like-youre-5-17og</link>
      <guid>https://dev.to/esreekarreddy/cap-theorem-explained-like-youre-5-17og</guid>
      <description>&lt;p&gt;&lt;em&gt;Pick two: consistency, availability, partition tolerance&lt;/em&gt;&lt;/p&gt;

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

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




&lt;h2&gt;
  
  
  The Three Wishes Analogy
&lt;/h2&gt;

&lt;p&gt;A genie says: "Pick any TWO wishes, but not all three"&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Wish 1: Fastest car&lt;/li&gt;
&lt;li&gt;Wish 2: Cheapest car&lt;/li&gt;
&lt;li&gt;Wish 3: Most reliable car&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can have fast + cheap (less reliable), or cheap + reliable (not fast).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CAP is like this—but the real trade-off shows up when the network is split (a partition).&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Three Properties
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;C - Consistency:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reads behave as if there were a single up-to-date copy (strong consistency)&lt;/li&gt;
&lt;li&gt;In practice, “consistency” has levels; CAP discussions usually mean a very strong form&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;A - Availability:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Every request gets a response from a non-failing node&lt;/li&gt;
&lt;li&gt;That response might be an error (the key point is: the system doesn’t stop responding)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;P - Partition Tolerance:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The system keeps operating even if messages between servers are dropped/delayed (a network partition)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Why You Can't Have All Three
&lt;/h2&gt;

&lt;p&gt;Imagine two servers that should stay in sync:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Server A ←─ network break ─→ Server B
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Network breaks. A user writes to Server A.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Option 1: Stay Consistent&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Don't let Server B respond until synced&lt;/li&gt;
&lt;li&gt;But Server B becomes unavailable!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Option 2: Stay Available&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Both servers respond with what they have&lt;/li&gt;
&lt;li&gt;But data is now inconsistent!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;During a partition, you must choose what to prioritize.&lt;/p&gt;




&lt;h2&gt;
  
  
  Real-World Choices
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;CP (Consistency + Partition Tolerance):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bank transactions&lt;/li&gt;
&lt;li&gt;Might be briefly unavailable&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;AP (Availability + Partition Tolerance):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Social media feeds&lt;/li&gt;
&lt;li&gt;Might show slightly stale data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;CA (rarely used):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Only works when you assume no partitions (for example: a single-node system or a very reliable network)&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;CAP Theorem says that when a network partition happens, a distributed system has to trade off between consistency and availability.&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>distributed</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>⚗️ ACID Properties Explained Like You're 5</title>
      <dc:creator>Sreekar Reddy</dc:creator>
      <pubDate>Mon, 27 Apr 2026 22:54:58 +0000</pubDate>
      <link>https://dev.to/esreekarreddy/acid-properties-explained-like-youre-5-4aik</link>
      <guid>https://dev.to/esreekarreddy/acid-properties-explained-like-youre-5-4aik</guid>
      <description>&lt;p&gt;&lt;em&gt;Guarantees for data reliability&lt;/em&gt;&lt;/p&gt;

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

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




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

&lt;p&gt;Transferring money from Account A to B:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Subtract the amount from A&lt;/li&gt;
&lt;li&gt;Add the amount to B&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What if the power goes out between steps?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A lost $100&lt;/li&gt;
&lt;li&gt;B didn't get it&lt;/li&gt;
&lt;li&gt;Money vanished!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;ACID properties are the goals that help prevent this kind of disaster.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What ACID Stands For
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;A - Atomicity:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;"All or nothing"&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Either both steps happen, or neither&lt;/li&gt;
&lt;li&gt;No partial transfers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;C - Consistency:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;"Rules are enforced"&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Balance can't go negative&lt;/li&gt;
&lt;li&gt;Constraints/invariants stay true (according to your schema and business rules)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;I - Isolation:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;"Transactions don't see each other's incomplete work"&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your transfer doesn't mess up someone else's&lt;/li&gt;
&lt;li&gt;Like each transaction runs without being confused by half-finished changes (exact guarantees depend on the isolation level)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;D - Durability:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;"Once done, it stays done"&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Power outage after? Data is still saved&lt;/li&gt;
&lt;li&gt;Written to permanent storage&lt;/li&gt;
&lt;/ul&gt;




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

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

&lt;ul&gt;
&lt;li&gt;Money disappears or duplicates&lt;/li&gt;
&lt;li&gt;Inventory goes negative&lt;/li&gt;
&lt;li&gt;Orders get lost&lt;/li&gt;
&lt;li&gt;Users see incorrect data&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Transactions are more reliable&lt;/li&gt;
&lt;li&gt;Data stays consistent&lt;/li&gt;
&lt;li&gt;You can trust your database&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;Transfer money from A to B:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Start transaction
  Check: A has enough money ✓
  Subtract amount from A
  Add amount to B
Commit transaction (all done, saved!)

If anything fails → Rollback (nothing changes)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






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

&lt;p&gt;ACID properties describe the guarantees a database tries to provide for transactions so changes are applied safely (or rolled back) even when things fail.&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>transactions</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
