<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Amigoscode Newsletter]]></title><description><![CDATA[Dive into the freshest insights, best practices, and bleeding-edge trends in Backend Development and DevOps.]]></description><link>https://blog.amigoscode.com</link><image><url>https://substackcdn.com/image/fetch/$s_!V8hV!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feff36bbe-db18-41f1-8db5-1fa9c901ec16_1080x1080.png</url><title>Amigoscode Newsletter</title><link>https://blog.amigoscode.com</link></image><generator>Substack</generator><lastBuildDate>Wed, 29 Apr 2026 03:38:44 GMT</lastBuildDate><atom:link href="https://blog.amigoscode.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Amigoscode]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[amigoscode@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[amigoscode@substack.com]]></itunes:email><itunes:name><![CDATA[Mama Samba Braima Nelson Djalo]]></itunes:name></itunes:owner><itunes:author><![CDATA[Mama Samba Braima Nelson Djalo]]></itunes:author><googleplay:owner><![CDATA[amigoscode@substack.com]]></googleplay:owner><googleplay:email><![CDATA[amigoscode@substack.com]]></googleplay:email><googleplay:author><![CDATA[Mama Samba Braima Nelson Djalo]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[AI Agents]]></title><description><![CDATA[What They Are, Why They Matter, and Where This Is All Going]]></description><link>https://blog.amigoscode.com/p/ai-agents</link><guid isPermaLink="false">https://blog.amigoscode.com/p/ai-agents</guid><dc:creator><![CDATA[Mama Samba Braima Nelson Djalo]]></dc:creator><pubDate>Thu, 30 Oct 2025 17:36:31 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!mWL5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a67adfc-21b5-4fc2-a07a-af293aa2acc4_543x520.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Over the last year, one term has been popping up everywhere&#8212;from research labs to LinkedIn posts to startup pitch decks: <strong>AI Agents</strong>. The phrase sounds futuristic (and slightly overhyped), but it captures something meaningful about where software is heading.</p><p>So what exactly <em>is</em> an AI agent?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mWL5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a67adfc-21b5-4fc2-a07a-af293aa2acc4_543x520.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mWL5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a67adfc-21b5-4fc2-a07a-af293aa2acc4_543x520.png 424w, https://substackcdn.com/image/fetch/$s_!mWL5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a67adfc-21b5-4fc2-a07a-af293aa2acc4_543x520.png 848w, https://substackcdn.com/image/fetch/$s_!mWL5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a67adfc-21b5-4fc2-a07a-af293aa2acc4_543x520.png 1272w, https://substackcdn.com/image/fetch/$s_!mWL5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a67adfc-21b5-4fc2-a07a-af293aa2acc4_543x520.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mWL5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a67adfc-21b5-4fc2-a07a-af293aa2acc4_543x520.png" width="543" height="520" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9a67adfc-21b5-4fc2-a07a-af293aa2acc4_543x520.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:520,&quot;width&quot;:543,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:225527,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.amigoscode.com/i/177586382?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a67adfc-21b5-4fc2-a07a-af293aa2acc4_543x520.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!mWL5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a67adfc-21b5-4fc2-a07a-af293aa2acc4_543x520.png 424w, https://substackcdn.com/image/fetch/$s_!mWL5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a67adfc-21b5-4fc2-a07a-af293aa2acc4_543x520.png 848w, https://substackcdn.com/image/fetch/$s_!mWL5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a67adfc-21b5-4fc2-a07a-af293aa2acc4_543x520.png 1272w, https://substackcdn.com/image/fetch/$s_!mWL5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a67adfc-21b5-4fc2-a07a-af293aa2acc4_543x520.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Let&#8217;s break it down in plain language.</p><h3><br>AI Foundations </h3><p>Watch this 2 hour community sessions going over AI Foundations</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6sjy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe607be53-64c9-496b-8a2a-7ef80e1c6013_4878x2916.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6sjy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe607be53-64c9-496b-8a2a-7ef80e1c6013_4878x2916.png 424w, https://substackcdn.com/image/fetch/$s_!6sjy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe607be53-64c9-496b-8a2a-7ef80e1c6013_4878x2916.png 848w, https://substackcdn.com/image/fetch/$s_!6sjy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe607be53-64c9-496b-8a2a-7ef80e1c6013_4878x2916.png 1272w, https://substackcdn.com/image/fetch/$s_!6sjy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe607be53-64c9-496b-8a2a-7ef80e1c6013_4878x2916.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6sjy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe607be53-64c9-496b-8a2a-7ef80e1c6013_4878x2916.png" width="1456" height="870" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e607be53-64c9-496b-8a2a-7ef80e1c6013_4878x2916.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:870,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5183131,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.amigoscode.com/i/177586382?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe607be53-64c9-496b-8a2a-7ef80e1c6013_4878x2916.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6sjy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe607be53-64c9-496b-8a2a-7ef80e1c6013_4878x2916.png 424w, https://substackcdn.com/image/fetch/$s_!6sjy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe607be53-64c9-496b-8a2a-7ef80e1c6013_4878x2916.png 848w, https://substackcdn.com/image/fetch/$s_!6sjy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe607be53-64c9-496b-8a2a-7ef80e1c6013_4878x2916.png 1272w, https://substackcdn.com/image/fetch/$s_!6sjy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe607be53-64c9-496b-8a2a-7ef80e1c6013_4878x2916.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.skool.com/amigoscode/classroom/28f271e7?md=0c87a81b56894db4b6e7b7d87fbff18c&quot;,&quot;text&quot;:&quot;Watch here&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.skool.com/amigoscode/classroom/28f271e7?md=0c87a81b56894db4b6e7b7d87fbff18c"><span>Watch here</span></a></p><p></p><h3><strong>From Chatbots to Agents</strong></h3><p>A traditional AI model&#8212;like a chatbot&#8212;responds to input. You ask something, it answers. The interaction is <strong>reactive</strong>. You drive.</p><p>An <strong>AI agent</strong> is different. It doesn&#8217;t just respond &#8212; it <strong>acts</strong>.</p><p>An AI agent:</p><ul><li><p>Has a <strong>goal</strong> (e.g., &#8220;book the cheapest flight to New York next month&#8221;)</p></li><li><p>Can <strong>plan</strong> steps to achieve that goal</p></li><li><p>Can <strong>use tools</strong> (e.g., websites, APIs, code, emails)</p></li><li><p>Can <strong>learn from feedback</strong> and adapt</p></li><li><p>And importantly, can <strong>take actions on its own</strong></p></li></ul><p>If chatbots are calculators, <strong>AI agents are interns</strong>.</p><p>You don&#8217;t tell them every step. You tell them what you want, and they figure out how to get there.</p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mfFJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0277449-c1dc-4fc4-90b7-6ad480ce75b7_639x529.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mfFJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0277449-c1dc-4fc4-90b7-6ad480ce75b7_639x529.png 424w, https://substackcdn.com/image/fetch/$s_!mfFJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0277449-c1dc-4fc4-90b7-6ad480ce75b7_639x529.png 848w, https://substackcdn.com/image/fetch/$s_!mfFJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0277449-c1dc-4fc4-90b7-6ad480ce75b7_639x529.png 1272w, https://substackcdn.com/image/fetch/$s_!mfFJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0277449-c1dc-4fc4-90b7-6ad480ce75b7_639x529.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mfFJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0277449-c1dc-4fc4-90b7-6ad480ce75b7_639x529.png" width="639" height="529" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f0277449-c1dc-4fc4-90b7-6ad480ce75b7_639x529.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:529,&quot;width&quot;:639,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:100230,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.amigoscode.com/i/177586382?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0277449-c1dc-4fc4-90b7-6ad480ce75b7_639x529.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!mfFJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0277449-c1dc-4fc4-90b7-6ad480ce75b7_639x529.png 424w, https://substackcdn.com/image/fetch/$s_!mfFJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0277449-c1dc-4fc4-90b7-6ad480ce75b7_639x529.png 848w, https://substackcdn.com/image/fetch/$s_!mfFJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0277449-c1dc-4fc4-90b7-6ad480ce75b7_639x529.png 1272w, https://substackcdn.com/image/fetch/$s_!mfFJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0277449-c1dc-4fc4-90b7-6ad480ce75b7_639x529.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3></h3><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Amigoscode Newsletter is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3><strong><br>A Simple Example</strong></h3><p>Say you want to research the best 4K camera for filming YouTube content.</p><p><strong>A chatbot</strong> will just answer your question:</p><blockquote><p><strong>&#8220;The Sony A7 IV is a popular option with great low-light performance&#8230;&#8221;</strong></p></blockquote><p>Useful, but passive.</p><p><strong>An AI agent</strong> can:</p><ol><li><p>Search across review sites</p></li><li><p>Compare technical specs</p></li><li><p>Look at current prices across stores</p></li><li><p>Analyze real-user feedback</p></li><li><p>And hand you a ranked list with justification.</p></li></ol><p>You didn&#8217;t just get an answer. You got <strong>work done</strong>.</p><div><hr></div><h3><strong>Why This Matters</strong></h3><p>Software has always been about <strong>instructions</strong>. Click here. Search there. Type this. Everything we do on a computer is a chain of micro-decisions.</p><p>AI agents flip this dynamic.</p><p>Instead of:</p><blockquote><p><strong>&#8220;I will do the task.&#8221;</strong></p></blockquote><p>We move to:</p><blockquote><p><strong>&#8220;I will delegate the task.&#8221;</strong></p></blockquote><p>This has enormous implications:</p><ul><li><p><strong>Productivity shifts upward</strong> because humans focus on outcomes, not steps.</p></li><li><p><strong>Jobs change</strong> from performing tasks to supervising workflows.</p></li><li><p><strong>Software design shifts</strong> away from buttons and menus toward <em>conversational</em> interfaces.</p></li></ul><p>For the first time, computers are starting to behave like <strong>colleagues instead of calculators</strong>.</p><div><hr></div><h3><strong>But Let&#8217;s Be Real: It&#8217;s Early</strong></h3><p>AI agents today are impressive in demos and occasionally mind-blowing in practice.</p><p>But they are also:</p><ul><li><p>Overconfident</p></li><li><p>Error-prone</p></li><li><p>Bad at multi-step reasoning (unless carefully guided)</p></li><li><p>And still learning how to interact with the messy real world</p></li></ul><p>Think of them like very eager interns:<br>&#9989; They can do a lot<br>&#10060; But you do <strong>not</strong> just let them run payroll</p><p>Yet the pace of improvement is steep. What feels like &#8220;early beta&#8221; today will feel baseline soon.</p><p></p><h3><strong>What You Should Do Now</strong></h3><p>If you&#8217;re a builder, leader, business owner, or just someone curious about technology, here&#8217;s the shift to make:</p><p>Stop asking:</p><blockquote><p><strong>&#8220;What can AI do?&#8221;</strong></p></blockquote><p>Start asking:</p><blockquote><p><strong>&#8220;What can I stop doing?&#8221;</strong></p></blockquote><p>Look for:</p><ul><li><p>Tasks that are repetitive</p></li><li><p>Research that takes too long</p></li><li><p>Work that follows rules but consumes attention</p></li></ul><p>These are agent territory.</p><div><hr></div><h3><strong>The Bottom Line</strong></h3><p>AI agents aren&#8217;t about replacing humans. They&#8217;re about <strong>moving humans up a level</strong>.</p><p>From doing work &#8594; to directing work.<br>From process &#8594; to judgment.<br>From clicking &#8594; to thinking.</p><p>We&#8217;re entering an era where your effectiveness may be defined not by how much you can personally execute, but by what you can <strong>delegate to your digital workforce</strong>.</p><p>This is the beginning of software that gets things done <em>for</em> you.</p><p>And that&#8217;s a very big deal.<br></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Amigoscode Newsletter is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Github CI/CD Crash Course]]></title><description><![CDATA[A step-by-step guide to automating your build, test, and deployment process using GitHub Actions.]]></description><link>https://blog.amigoscode.com/p/github-cicd-crash-course</link><guid isPermaLink="false">https://blog.amigoscode.com/p/github-cicd-crash-course</guid><dc:creator><![CDATA[Mama Samba Braima Nelson Djalo]]></dc:creator><pubDate>Wed, 15 Oct 2025 16:00:59 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!00MJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc503ab49-e85b-4c41-91e4-d89e596b3d89_1800x2231.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If you&#8217;re pushing code manually and deploying by hand, it&#8217;s time to level up.<br>In this post, I&#8217;ll show you how to set up a simple <strong>CI/CD pipeline using GitHub Actions</strong> &#8212; the easiest way to automate testing and deployment directly from your GitHub repo.</p><h2>&#128161; What is GitHub Actions?</h2><p>GitHub Actions lets you <strong>automate workflows</strong> in your development lifecycle &#8212; from running tests and building your app to deploying it into production.<br><br>It&#8217;s built right into GitHub, so no extra setup or external tools are needed.</p><p>You define everything using a simple YAML file inside <code>.github/workflows/.</code></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!00MJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc503ab49-e85b-4c41-91e4-d89e596b3d89_1800x2231.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!00MJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc503ab49-e85b-4c41-91e4-d89e596b3d89_1800x2231.png 424w, https://substackcdn.com/image/fetch/$s_!00MJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc503ab49-e85b-4c41-91e4-d89e596b3d89_1800x2231.png 848w, https://substackcdn.com/image/fetch/$s_!00MJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc503ab49-e85b-4c41-91e4-d89e596b3d89_1800x2231.png 1272w, https://substackcdn.com/image/fetch/$s_!00MJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc503ab49-e85b-4c41-91e4-d89e596b3d89_1800x2231.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!00MJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc503ab49-e85b-4c41-91e4-d89e596b3d89_1800x2231.png" width="1456" height="1805" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c503ab49-e85b-4c41-91e4-d89e596b3d89_1800x2231.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1805,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:261052,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.amigoscode.com/i/176241860?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc503ab49-e85b-4c41-91e4-d89e596b3d89_1800x2231.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!00MJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc503ab49-e85b-4c41-91e4-d89e596b3d89_1800x2231.png 424w, https://substackcdn.com/image/fetch/$s_!00MJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc503ab49-e85b-4c41-91e4-d89e596b3d89_1800x2231.png 848w, https://substackcdn.com/image/fetch/$s_!00MJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc503ab49-e85b-4c41-91e4-d89e596b3d89_1800x2231.png 1272w, https://substackcdn.com/image/fetch/$s_!00MJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc503ab49-e85b-4c41-91e4-d89e596b3d89_1800x2231.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"></figcaption></figure></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Amigoscode Newsletter is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><h2>&#9881;&#65039; The Workflow Explained</h2><p>Here&#8217;s a complete example that you can copy and paste</p><pre><code><code>name: CI/CD with GitHub Actions

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repository
        uses: actions/checkout@v2
      - name: Set up Node.js
        uses: actions/setup-node@v3
        with:
          node-version: &#8216;14&#8217;
      - name: Install Dependencies
        run: npm install
      - name: Run Tests
        run: npm test

  deploy:
    needs: build
    runs-on: ubuntu-latest
    steps:
      - name: Deploy to Production
        run: |
          if [ ${{ needs.build.result }} = &#8216;success&#8217; ]; then
            echo &#8220;Deployment logic goes here&#8221;
          else
            echo &#8220;Build failed, skipping deployment&#8221;
          fi
</code></code></pre><div><hr></div><h2>&#128269; How It Works</h2><p><strong>1. Trigger on Push</strong><br>The workflow starts automatically every time you push to the <code>main</code> branch.</p><p><strong>2. Build Job</strong><br>GitHub sets up a fresh Ubuntu environment, checks out your code, installs Node.js, and runs your tests.<br>If the tests pass &#8212; great! The workflow moves to the next job.</p><p><strong>3. Deploy Job</strong><br>This one depends on the <code>build</code> job.<br>It only runs <strong>if the build is successful</strong>. That ensures no bad code ever gets deployed.</p><p></p><h2>&#129504; Why It Matters</h2><p>This simple setup:</p><ul><li><p>Prevents broken builds from going live</p></li><li><p>Gives you instant feedback when tests fail</p></li><li><p>Saves time and reduces human error</p></li><li><p>Brings you closer to true <strong>Continuous Integration and Continuous Deployment</strong></p></li></ul><p>You can expand it further by adding:</p><ul><li><p>Linting</p></li><li><p>Docker builds</p></li><li><p>Staging vs production environments</p></li><li><p>Notifications via Slack or email</p></li></ul><p></p><h2>&#128640; Final Thoughts</h2><p>CI/CD doesn&#8217;t have to be complex.<br>Start with a small workflow like this, then build on it as your project grows.</p><p>Automation is one of the best investments you can make as a developer &#8212; it frees up time, improves reliability, and lets you focus on writing great code.</p><p></p><h2>Course</h2><blockquote><p><strong>CI/CD with GitHub Actions</strong></p><p>Master CI/CD pipelines with GitHub Actions, automate deployments, and implement DevOps best practices</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9psa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F288009e5-ee76-406c-b14f-0d7233e56c54_1920x1080.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9psa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F288009e5-ee76-406c-b14f-0d7233e56c54_1920x1080.webp 424w, https://substackcdn.com/image/fetch/$s_!9psa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F288009e5-ee76-406c-b14f-0d7233e56c54_1920x1080.webp 848w, https://substackcdn.com/image/fetch/$s_!9psa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F288009e5-ee76-406c-b14f-0d7233e56c54_1920x1080.webp 1272w, https://substackcdn.com/image/fetch/$s_!9psa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F288009e5-ee76-406c-b14f-0d7233e56c54_1920x1080.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9psa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F288009e5-ee76-406c-b14f-0d7233e56c54_1920x1080.webp" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/288009e5-ee76-406c-b14f-0d7233e56c54_1920x1080.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;ci-cd-with-github-actions_thumbnail&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="ci-cd-with-github-actions_thumbnail" title="ci-cd-with-github-actions_thumbnail" srcset="https://substackcdn.com/image/fetch/$s_!9psa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F288009e5-ee76-406c-b14f-0d7233e56c54_1920x1080.webp 424w, https://substackcdn.com/image/fetch/$s_!9psa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F288009e5-ee76-406c-b14f-0d7233e56c54_1920x1080.webp 848w, https://substackcdn.com/image/fetch/$s_!9psa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F288009e5-ee76-406c-b14f-0d7233e56c54_1920x1080.webp 1272w, https://substackcdn.com/image/fetch/$s_!9psa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F288009e5-ee76-406c-b14f-0d7233e56c54_1920x1080.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://amigoscode.com/courses/devops/ci-cd-with-github-actions&quot;,&quot;text&quot;:&quot;Learn more&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://amigoscode.com/courses/devops/ci-cd-with-github-actions"><span>Learn more</span></a></p><h2><br>Join our new community</h2><p>We just launched our brand new community to help master software engineering and AI &amp; Automation.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://skool.com/amigoscode&quot;,&quot;text&quot;:&quot;Join here&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://skool.com/amigoscode"><span>Join here</span></a></p><p>See you soon   &#128075;&#127999;</p>]]></content:encoded></item><item><title><![CDATA[What Happens When You Type a URL? DNS Explained for Developers]]></title><description><![CDATA[Learn how DNS works, step-by-step, from the browser to the server. This Amigoscode guide makes DNS easy to understand for developers.]]></description><link>https://blog.amigoscode.com/p/what-happens-when-you-type-a-url</link><guid isPermaLink="false">https://blog.amigoscode.com/p/what-happens-when-you-type-a-url</guid><dc:creator><![CDATA[Mama Samba Braima Nelson Djalo]]></dc:creator><pubDate>Wed, 28 May 2025 16:05:32 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Z0kJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97ba10b0-fb2d-45f8-a88e-08947d2fe8ec_2400x3162.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Have you ever typed a website like <strong>amigoscode.com</strong> into your browser and wondered:</p><p><strong>How does my computer know where to find that site?</strong></p><p>You&#8217;re about to find out. The answer is DNS &#8212; the Domain Name System, often called the phonebook of the internet.</p><p>In this newsletter, we&#8217;ll walk through what really happens when you enter a URL, from your browser to the final IP address. This guide is for developers who want to understand:</p><ul><li><p>What DNS is and why it matters</p></li><li><p>How the lookup process works, step by step</p></li><li><p>What each part of the DNS journey does</p></li><li><p>Common DNS issues and how to debug them</p></li><li><p>Practical tips to apply in real-world projects</p></li></ul><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Z0kJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97ba10b0-fb2d-45f8-a88e-08947d2fe8ec_2400x3162.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Z0kJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97ba10b0-fb2d-45f8-a88e-08947d2fe8ec_2400x3162.png 424w, https://substackcdn.com/image/fetch/$s_!Z0kJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97ba10b0-fb2d-45f8-a88e-08947d2fe8ec_2400x3162.png 848w, https://substackcdn.com/image/fetch/$s_!Z0kJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97ba10b0-fb2d-45f8-a88e-08947d2fe8ec_2400x3162.png 1272w, https://substackcdn.com/image/fetch/$s_!Z0kJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97ba10b0-fb2d-45f8-a88e-08947d2fe8ec_2400x3162.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Z0kJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97ba10b0-fb2d-45f8-a88e-08947d2fe8ec_2400x3162.png" width="1456" height="1918" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/97ba10b0-fb2d-45f8-a88e-08947d2fe8ec_2400x3162.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1918,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1112663,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.amigoscode.com/i/164656069?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97ba10b0-fb2d-45f8-a88e-08947d2fe8ec_2400x3162.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Z0kJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97ba10b0-fb2d-45f8-a88e-08947d2fe8ec_2400x3162.png 424w, https://substackcdn.com/image/fetch/$s_!Z0kJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97ba10b0-fb2d-45f8-a88e-08947d2fe8ec_2400x3162.png 848w, https://substackcdn.com/image/fetch/$s_!Z0kJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97ba10b0-fb2d-45f8-a88e-08947d2fe8ec_2400x3162.png 1272w, https://substackcdn.com/image/fetch/$s_!Z0kJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97ba10b0-fb2d-45f8-a88e-08947d2fe8ec_2400x3162.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.amigoscode.com/subscribe?"><span>Subscribe now</span></a></p><h2><br>What is DNS and Why Does It Matter?</h2><p>DNS, or Domain Name System, is the mechanism that translates domain names (like <code>amigoscode.com</code>) into IP addresses (like <code>192.0.2.123</code>).</p><p>Think of it like your phone&#8217;s contacts list. You don&#8217;t remember everyone&#8217;s number &#8212; you just type in a name. DNS does the same thing for the internet.</p><p>Every time you visit a website, your computer uses DNS to figure out where the site is hosted. Without it, the web as we know it wouldn't function.</p><p></p><h2>DNS Resolution: What Happens When You Type a URL</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BXB8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c3ec88-fa78-4c84-9f4a-6748af9eae10_2278x1672.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BXB8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c3ec88-fa78-4c84-9f4a-6748af9eae10_2278x1672.png 424w, https://substackcdn.com/image/fetch/$s_!BXB8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c3ec88-fa78-4c84-9f4a-6748af9eae10_2278x1672.png 848w, https://substackcdn.com/image/fetch/$s_!BXB8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c3ec88-fa78-4c84-9f4a-6748af9eae10_2278x1672.png 1272w, https://substackcdn.com/image/fetch/$s_!BXB8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c3ec88-fa78-4c84-9f4a-6748af9eae10_2278x1672.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BXB8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c3ec88-fa78-4c84-9f4a-6748af9eae10_2278x1672.png" width="1456" height="1069" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b2c3ec88-fa78-4c84-9f4a-6748af9eae10_2278x1672.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1069,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:381186,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.amigoscode.com/i/164656069?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c3ec88-fa78-4c84-9f4a-6748af9eae10_2278x1672.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!BXB8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c3ec88-fa78-4c84-9f4a-6748af9eae10_2278x1672.png 424w, https://substackcdn.com/image/fetch/$s_!BXB8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c3ec88-fa78-4c84-9f4a-6748af9eae10_2278x1672.png 848w, https://substackcdn.com/image/fetch/$s_!BXB8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c3ec88-fa78-4c84-9f4a-6748af9eae10_2278x1672.png 1272w, https://substackcdn.com/image/fetch/$s_!BXB8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c3ec88-fa78-4c84-9f4a-6748af9eae10_2278x1672.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Here&#8217;s a simplified breakdown of the process, using the standard DNS flow:</p><h3>1. You type <code>amigoscode.com</code> into your browser</h3><p>Your browser needs the IP address to connect to the server hosting the website.</p><h3>2. The local DNS cache is checked</h3><p>If the address was recently looked up, your system already has the answer.</p><h3>3. The DNS Resolver is contacted</h3><p>This server is often provided by your ISP or configured to use a public resolver like Google (8.8.8.8) or Cloudflare (1.1.1.1).</p><h3>4. Resolver queries the Root DNS Server</h3><p>The root server doesn&#8217;t know the IP but does know where <code>.com</code> domains are managed.</p><h3>5. Resolver contacts the TLD DNS Server for <code>.com</code></h3><p>This server responds with a pointer to the authoritative server for <code>amigoscode.com</code>.</p><h3>6. Resolver asks the Authoritative DNS Server</h3><p>This server holds the actual IP address mapped to the domain name.</p><h3>7. The IP address is returned to the resolver</h3><p>The resolver passes it back to your browser.</p><h3>8. The browser makes a request to the server</h3><p>Now it can connect directly using the IP address and load the website.</p><p></p><h2>Key DNS Components to Know</h2><p>Understanding the roles of each server helps you debug and build more effectively.</p><ul><li><p><strong>DNS Resolver:</strong> First point of contact that manages the query</p></li><li><p><strong>Root Server:</strong> Points to top-level domain (TLD) servers</p></li><li><p><strong>TLD Server:</strong> Manages domain extensions like <code>.com</code>, <code>.org</code>, <code>.io</code></p></li><li><p><strong>Authoritative Server:</strong> Stores DNS records for a specific domain</p></li><li><p><strong>Common Record Types:</strong></p><ul><li><p><code>A</code>: Maps a domain to an IPv4 address</p></li><li><p><code>AAAA</code>: Maps to an IPv6 address</p></li><li><p><code>CNAME</code>: Canonical name (alias)</p></li><li><p><code>MX</code>: Mail exchange (email routing)</p></li><li><p><code>TXT</code>: Misc. text data (often for SPF/DKIM)</p></li></ul></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OuVa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13343330-8639-499c-9b88-32070da9647a_2278x1050.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OuVa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13343330-8639-499c-9b88-32070da9647a_2278x1050.png 424w, https://substackcdn.com/image/fetch/$s_!OuVa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13343330-8639-499c-9b88-32070da9647a_2278x1050.png 848w, https://substackcdn.com/image/fetch/$s_!OuVa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13343330-8639-499c-9b88-32070da9647a_2278x1050.png 1272w, https://substackcdn.com/image/fetch/$s_!OuVa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13343330-8639-499c-9b88-32070da9647a_2278x1050.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OuVa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13343330-8639-499c-9b88-32070da9647a_2278x1050.png" width="1456" height="671" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/13343330-8639-499c-9b88-32070da9647a_2278x1050.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:671,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:189643,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.amigoscode.com/i/164656069?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13343330-8639-499c-9b88-32070da9647a_2278x1050.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!OuVa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13343330-8639-499c-9b88-32070da9647a_2278x1050.png 424w, https://substackcdn.com/image/fetch/$s_!OuVa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13343330-8639-499c-9b88-32070da9647a_2278x1050.png 848w, https://substackcdn.com/image/fetch/$s_!OuVa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13343330-8639-499c-9b88-32070da9647a_2278x1050.png 1272w, https://substackcdn.com/image/fetch/$s_!OuVa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13343330-8639-499c-9b88-32070da9647a_2278x1050.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h2>What Can Go Wrong With DNS?</h2><p>DNS failures are common causes of outages. Here are some of the most frequent issues:</p><ul><li><p><strong>Stale cache</strong>: Local or resolver cache may store outdated records</p></li><li><p><strong>Missing records</strong>: An <code>A</code> or <code>CNAME</code> record might not exist</p></li><li><p><strong>Propagation delays</strong>: DNS changes take time to spread</p></li><li><p><strong>Low or high TTLs</strong>: A misconfigured TTL can hurt performance</p></li><li><p><strong>Security risks</strong>: DNS can be vulnerable to spoofing or cache poisoning</p></li></ul><h3>Tools to debug:</h3><ul><li><p><code>dig amigoscode.com</code></p></li><li><p><code>nslookup</code></p></li><li><p>Chrome DevTools &gt; Network tab &gt; DNS timing</p></li></ul><p></p><h2>Practical DNS Tips for Developers</h2><p>Whether you're building apps or configuring your own domain, keep these in mind:</p><ul><li><p><strong>Set TTLs appropriately</strong>: Lower TTLs for dynamic environments; higher for static content</p></li><li><p><strong>Use reliable DNS resolvers</strong>: Cloudflare (1.1.1.1), Google (8.8.8.8), or OpenDNS</p></li><li><p><strong>Enable DNSSEC</strong>: This adds a layer of trust to your DNS records</p></li><li><p><strong>Use CDN-aware DNS</strong>: Platforms like Cloudflare and AWS Route 53 offer latency-based routing</p></li><li><p><strong>Monitor your DNS</strong>: Use uptime tools with DNS checks to catch outages early</p></li></ul><p></p><h2>Wrapping Up</h2><p>Understanding DNS gives you the power to troubleshoot issues faster, deploy with confidence, and architect more resilient applications.</p><p>Now you know what happens when you type a URL into your browser &#8212; it&#8217;s not magic, it&#8217;s DNS.</p><p>If you found this helpful, consider sharing it with another developer who wants to strengthen their fundamentals.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/p/what-happens-when-you-type-a-url?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.amigoscode.com/p/what-happens-when-you-type-a-url?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Java vs Python]]></title><description><![CDATA[What Happens Behind the Scenes?]]></description><link>https://blog.amigoscode.com/p/java-vs-python</link><guid isPermaLink="false">https://blog.amigoscode.com/p/java-vs-python</guid><dc:creator><![CDATA[Mama Samba Braima Nelson Djalo]]></dc:creator><pubDate>Wed, 14 May 2025 16:06:59 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!yqKx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F555769f8-b4e7-4ab5-9ad2-f5e65d809583_2401x3163.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>When you write code in Python or Java, you're usually focused on solving a problem&#8212;not thinking about what happens <em>after</em> you hit "Run." But understanding how your code is executed can give you a big advantage, especially when debugging or optimizing performance.</p><p>Let&#8217;s take a peek under the hood of both languages.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yqKx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F555769f8-b4e7-4ab5-9ad2-f5e65d809583_2401x3163.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yqKx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F555769f8-b4e7-4ab5-9ad2-f5e65d809583_2401x3163.png 424w, https://substackcdn.com/image/fetch/$s_!yqKx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F555769f8-b4e7-4ab5-9ad2-f5e65d809583_2401x3163.png 848w, https://substackcdn.com/image/fetch/$s_!yqKx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F555769f8-b4e7-4ab5-9ad2-f5e65d809583_2401x3163.png 1272w, https://substackcdn.com/image/fetch/$s_!yqKx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F555769f8-b4e7-4ab5-9ad2-f5e65d809583_2401x3163.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yqKx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F555769f8-b4e7-4ab5-9ad2-f5e65d809583_2401x3163.png" width="1456" height="1918" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/555769f8-b4e7-4ab5-9ad2-f5e65d809583_2401x3163.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1918,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1117905,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.amigoscode.com/i/163562782?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F555769f8-b4e7-4ab5-9ad2-f5e65d809583_2401x3163.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!yqKx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F555769f8-b4e7-4ab5-9ad2-f5e65d809583_2401x3163.png 424w, https://substackcdn.com/image/fetch/$s_!yqKx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F555769f8-b4e7-4ab5-9ad2-f5e65d809583_2401x3163.png 848w, https://substackcdn.com/image/fetch/$s_!yqKx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F555769f8-b4e7-4ab5-9ad2-f5e65d809583_2401x3163.png 1272w, https://substackcdn.com/image/fetch/$s_!yqKx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F555769f8-b4e7-4ab5-9ad2-f5e65d809583_2401x3163.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Amigoscode Newsletter is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><br>&#9749; Java Execution Flow</h2><p>Java is a <strong>compiled language</strong> with a hybrid execution model, offering both performance and portability.</p><p>Here&#8217;s the flow of a typical Java program:</p><ol><li><p><strong>Write Java Code</strong>: You create a <code>.java</code> file in your editor.</p></li><li><p><strong>Compilation</strong>: The Java compiler (<code>javac</code>) converts the source file into <strong>bytecode</strong> (<code>.class</code> files).</p></li><li><p><strong>JVM Execution</strong>: The bytecode runs on the <strong>Java Virtual Machine (JVM)</strong>.</p></li><li><p><strong>Just-In-Time (JIT) Compilation</strong>: The JVM includes a <strong>JIT compiler</strong>, which turns bytecode into native machine code on the fly for better performance.</p></li><li><p><strong>Libraries and Runtime</strong>: Java uses the <strong>Java Runtime Environment (JRE)</strong>, including built-in libraries and dependencies, to support program execution.</p></li></ol><blockquote><p>&#9989; Java&#8217;s JIT compiler gives it a speed advantage, especially for long-running or high-load applications.</p></blockquote><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UEkF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50530fdb-c1b9-48db-b521-620a22c77420_2273x1392.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UEkF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50530fdb-c1b9-48db-b521-620a22c77420_2273x1392.png 424w, https://substackcdn.com/image/fetch/$s_!UEkF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50530fdb-c1b9-48db-b521-620a22c77420_2273x1392.png 848w, https://substackcdn.com/image/fetch/$s_!UEkF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50530fdb-c1b9-48db-b521-620a22c77420_2273x1392.png 1272w, https://substackcdn.com/image/fetch/$s_!UEkF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50530fdb-c1b9-48db-b521-620a22c77420_2273x1392.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UEkF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50530fdb-c1b9-48db-b521-620a22c77420_2273x1392.png" width="1456" height="892" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/50530fdb-c1b9-48db-b521-620a22c77420_2273x1392.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:892,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:333868,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.amigoscode.com/i/163562782?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50530fdb-c1b9-48db-b521-620a22c77420_2273x1392.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!UEkF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50530fdb-c1b9-48db-b521-620a22c77420_2273x1392.png 424w, https://substackcdn.com/image/fetch/$s_!UEkF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50530fdb-c1b9-48db-b521-620a22c77420_2273x1392.png 848w, https://substackcdn.com/image/fetch/$s_!UEkF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50530fdb-c1b9-48db-b521-620a22c77420_2273x1392.png 1272w, https://substackcdn.com/image/fetch/$s_!UEkF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50530fdb-c1b9-48db-b521-620a22c77420_2273x1392.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h2>&#128013; Python Execution Flow</h2><p>Python in contrast is often called an <strong>interpreted language</strong>, but there's a bit more going on than just line-by-line interpretation.</p><p>Here&#8217;s what happens when you run a Python program:</p><ol><li><p><strong>Write Python Code</strong>: You create a file with a <code>.py</code> extension.</p></li><li><p><strong>Compilation to Bytecode</strong>: The Python interpreter compiles your code to <strong>bytecode</strong> (<code>.pyc</code>), which is a lower-level, platform-independent representation.</p></li><li><p><strong>Execution by PVM</strong>: The bytecode is executed by the <strong>Python Virtual Machine (PVM)</strong>.</p></li><li><p><strong>Use of Libraries</strong>: Python imports necessary standard or third-party libraries to complete execution.</p></li></ol><blockquote><p>&#9888;&#65039; Python doesn&#8217;t use a JIT compiler by default, which means it interprets code at runtime&#8212;great for flexibility, not always for speed.</p></blockquote><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!S6zF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1cdc967-1496-487c-a3f6-1b4c4079ecb5_2273x1388.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!S6zF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1cdc967-1496-487c-a3f6-1b4c4079ecb5_2273x1388.png 424w, https://substackcdn.com/image/fetch/$s_!S6zF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1cdc967-1496-487c-a3f6-1b4c4079ecb5_2273x1388.png 848w, https://substackcdn.com/image/fetch/$s_!S6zF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1cdc967-1496-487c-a3f6-1b4c4079ecb5_2273x1388.png 1272w, https://substackcdn.com/image/fetch/$s_!S6zF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1cdc967-1496-487c-a3f6-1b4c4079ecb5_2273x1388.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!S6zF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1cdc967-1496-487c-a3f6-1b4c4079ecb5_2273x1388.png" width="1456" height="889" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b1cdc967-1496-487c-a3f6-1b4c4079ecb5_2273x1388.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:889,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:301665,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.amigoscode.com/i/163562782?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1cdc967-1496-487c-a3f6-1b4c4079ecb5_2273x1388.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!S6zF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1cdc967-1496-487c-a3f6-1b4c4079ecb5_2273x1388.png 424w, https://substackcdn.com/image/fetch/$s_!S6zF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1cdc967-1496-487c-a3f6-1b4c4079ecb5_2273x1388.png 848w, https://substackcdn.com/image/fetch/$s_!S6zF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1cdc967-1496-487c-a3f6-1b4c4079ecb5_2273x1388.png 1272w, https://substackcdn.com/image/fetch/$s_!S6zF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1cdc967-1496-487c-a3f6-1b4c4079ecb5_2273x1388.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2></h2><h2>&#128204; Key Takeaways: Python vs Java in the Real World</h2><p>Choosing between Python and Java isn&#8217;t just about syntax or speed&#8212;it often comes down to <strong>what you&#8217;re building</strong> and <strong>who&#8217;s on your team</strong>. Here&#8217;s a deeper look at when and why you might choose one over the other.</p><div><hr></div><h3><strong>Java: Built for Scale and Performance</strong></h3><p>Java is designed with <strong>performance, reliability, and scalability</strong> in mind. It's statically typed and compiled, which helps catch errors early and run programs efficiently across platforms.</p><h4>&#128295; Common Use Cases:</h4><ul><li><p><strong>Enterprise Backend Systems</strong>: Java powers the backend of many large-scale applications and systems, from banking software to e-commerce platforms.</p></li><li><p><strong>Android App Development</strong>: Java was the official language for Android development for years and remains widely used alongside Kotlin.</p></li><li><p><strong>Cloud &amp; Microservices</strong>: With frameworks like Spring Boot, Java is a strong choice for building scalable, distributed systems and APIs.</p></li><li><p><strong>High-Performance Applications</strong>: Java&#8217;s Just-In-Time (JIT) compiler and mature performance tooling make it great for handling high-load environments.</p></li><li><p><strong>Big Data Ecosystems</strong>: Java is also behind the scenes of tools like Hadoop and Apache Spark (even though APIs for them often exist in Python too).</p></li></ul><blockquote><p>&#9989; <strong>Why choose Java?</strong> You&#8217;re building a robust, long-term system that needs high performance, strong type safety, and broad platform support.</p></blockquote><h3>Want to learn Java?</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!N3ML!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a921ef0-f6f3-4329-a49b-196fc22a1b27_1920x1080.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!N3ML!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a921ef0-f6f3-4329-a49b-196fc22a1b27_1920x1080.webp 424w, https://substackcdn.com/image/fetch/$s_!N3ML!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a921ef0-f6f3-4329-a49b-196fc22a1b27_1920x1080.webp 848w, https://substackcdn.com/image/fetch/$s_!N3ML!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a921ef0-f6f3-4329-a49b-196fc22a1b27_1920x1080.webp 1272w, https://substackcdn.com/image/fetch/$s_!N3ML!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a921ef0-f6f3-4329-a49b-196fc22a1b27_1920x1080.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!N3ML!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a921ef0-f6f3-4329-a49b-196fc22a1b27_1920x1080.webp" width="520" height="292.5" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7a921ef0-f6f3-4329-a49b-196fc22a1b27_1920x1080.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:520,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;java-for-beginners_thumbnail&quot;,&quot;title&quot;:&quot;java-for-beginners_thumbnail&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="java-for-beginners_thumbnail" title="java-for-beginners_thumbnail" srcset="https://substackcdn.com/image/fetch/$s_!N3ML!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a921ef0-f6f3-4329-a49b-196fc22a1b27_1920x1080.webp 424w, https://substackcdn.com/image/fetch/$s_!N3ML!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a921ef0-f6f3-4329-a49b-196fc22a1b27_1920x1080.webp 848w, https://substackcdn.com/image/fetch/$s_!N3ML!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a921ef0-f6f3-4329-a49b-196fc22a1b27_1920x1080.webp 1272w, https://substackcdn.com/image/fetch/$s_!N3ML!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a921ef0-f6f3-4329-a49b-196fc22a1b27_1920x1080.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://amigoscode.com/courses&quot;,&quot;text&quot;:&quot;Check here&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://amigoscode.com/courses"><span>Check here</span></a></p><p></p><h3><strong><br>Python: Built for Speed of Development, Not Execution</strong></h3><p>Python is ideal for <strong>rapid development</strong>, experimentation, and readability. Its concise syntax and vast ecosystem of libraries make it a favorite among developers who want to build and iterate quickly.</p><h4>&#128295; Common Use Cases:</h4><ul><li><p><strong>Machine Learning &amp; AI</strong>: Python dominates this space thanks to libraries like <code>TensorFlow</code>, <code>PyTorch</code>, <code>Scikit-learn</code>, and <code>Pandas</code>. Data scientists love Python for its ease of use in prototyping and data manipulation.</p></li><li><p><strong>Data Analysis &amp; Visualization</strong>: Tools like <code>NumPy</code>, <code>Matplotlib</code>, and <code>Seaborn</code> make Python a go-to language for data-driven work.</p></li><li><p><strong>Web Development</strong>: Frameworks like <code>Django</code> and <code>Flask</code> allow fast creation of web apps and APIs.</p></li><li><p><strong>Automation &amp; Scripting</strong>: Python is often used to write scripts that automate repetitive tasks, from file handling to server management.</p></li><li><p><strong>Education</strong>: Its simple syntax makes it perfect for teaching programming to beginners.</p></li></ul><blockquote><p>&#9989; <strong>Why choose Python?</strong> You need to get ideas to production quickly, work with data, or build prototypes without worrying too much about runtime performance.</p></blockquote><p><br>Happy coding.<br></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Amigoscode Newsletter is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The 5 Layers of Software Explained ]]></title><description><![CDATA[Break down the full stack into five essential layers every developer should know]]></description><link>https://blog.amigoscode.com/p/the-5-layers-of-software-explained</link><guid isPermaLink="false">https://blog.amigoscode.com/p/the-5-layers-of-software-explained</guid><dc:creator><![CDATA[Mama Samba Braima Nelson Djalo]]></dc:creator><pubDate>Wed, 30 Apr 2025 16:15:48 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!IK2S!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca20ca0d-252e-4168-b8d4-54ef74b19a73_684x848.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>As software engineers, we often talk about &#8220;the stack&#8221; &#8212; but what does that really mean? Whether you're building a simple to-do app or scaling a full-blown enterprise system, your software is likely made up of these five layers of software.</p><p>Whether you're crafting a side project, building for scale, or just trying to understand what "full-stack" really means, every piece of software you interact with is made up of these five layers: <strong>UI, API, Logic, Database, and Hosting</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IK2S!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca20ca0d-252e-4168-b8d4-54ef74b19a73_684x848.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IK2S!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca20ca0d-252e-4168-b8d4-54ef74b19a73_684x848.gif 424w, https://substackcdn.com/image/fetch/$s_!IK2S!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca20ca0d-252e-4168-b8d4-54ef74b19a73_684x848.gif 848w, https://substackcdn.com/image/fetch/$s_!IK2S!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca20ca0d-252e-4168-b8d4-54ef74b19a73_684x848.gif 1272w, https://substackcdn.com/image/fetch/$s_!IK2S!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca20ca0d-252e-4168-b8d4-54ef74b19a73_684x848.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IK2S!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca20ca0d-252e-4168-b8d4-54ef74b19a73_684x848.gif" width="684" height="848" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ca20ca0d-252e-4168-b8d4-54ef74b19a73_684x848.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:848,&quot;width&quot;:684,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:116398,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.amigoscode.com/i/162547900?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca20ca0d-252e-4168-b8d4-54ef74b19a73_684x848.gif&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!IK2S!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca20ca0d-252e-4168-b8d4-54ef74b19a73_684x848.gif 424w, https://substackcdn.com/image/fetch/$s_!IK2S!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca20ca0d-252e-4168-b8d4-54ef74b19a73_684x848.gif 848w, https://substackcdn.com/image/fetch/$s_!IK2S!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca20ca0d-252e-4168-b8d4-54ef74b19a73_684x848.gif 1272w, https://substackcdn.com/image/fetch/$s_!IK2S!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca20ca0d-252e-4168-b8d4-54ef74b19a73_684x848.gif 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Amigoscode Newsletter is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>1. <strong>UI (User Interface)</strong></h2><p>This is the part your users actually see and touch &#8212; the front door to your application.</p><p>Think HTML for the structure, CSS for styling, JavaScript for interactivity, and frameworks like <strong>React</strong> and <strong>Tailwind</strong> to build modern, responsive UIs. The UI layer is all about <strong>user experience</strong>. If it&#8217;s clunky, slow, or confusing, the best backend in the world won&#8217;t save you.</p><p>&#128073; If your app feels slick and intuitive, you&#8217;ve probably nailed the UI layer.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IT3y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b379fe6-8c66-4b6a-addb-4917809f6de2_590x222.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IT3y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b379fe6-8c66-4b6a-addb-4917809f6de2_590x222.png 424w, https://substackcdn.com/image/fetch/$s_!IT3y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b379fe6-8c66-4b6a-addb-4917809f6de2_590x222.png 848w, https://substackcdn.com/image/fetch/$s_!IT3y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b379fe6-8c66-4b6a-addb-4917809f6de2_590x222.png 1272w, https://substackcdn.com/image/fetch/$s_!IT3y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b379fe6-8c66-4b6a-addb-4917809f6de2_590x222.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IT3y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b379fe6-8c66-4b6a-addb-4917809f6de2_590x222.png" width="590" height="222" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0b379fe6-8c66-4b6a-addb-4917809f6de2_590x222.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:222,&quot;width&quot;:590,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:90409,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.amigoscode.com/i/162547900?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b379fe6-8c66-4b6a-addb-4917809f6de2_590x222.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!IT3y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b379fe6-8c66-4b6a-addb-4917809f6de2_590x222.png 424w, https://substackcdn.com/image/fetch/$s_!IT3y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b379fe6-8c66-4b6a-addb-4917809f6de2_590x222.png 848w, https://substackcdn.com/image/fetch/$s_!IT3y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b379fe6-8c66-4b6a-addb-4917809f6de2_590x222.png 1272w, https://substackcdn.com/image/fetch/$s_!IT3y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b379fe6-8c66-4b6a-addb-4917809f6de2_590x222.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><p></p><div><hr></div><h2>2. <strong>API (Application Programming Interface)</strong></h2><p>The API layer acts as the <strong>middleman</strong> between your frontend and backend.</p><p>It defines how software components talk to each other. REST, GraphQL, gRPC, and even good old SOAP are all protocols you can use here. Sometimes you&#8217;ll also use WebSockets for real-time updates.</p><p>In essence, the API is the translator that helps your frontend say, &#8220;Hey, I need the user&#8217;s data,&#8221; and the backend understands and responds with it.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dVzP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29eed848-f221-4bfc-acf5-2af6d2f72115_590x222.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dVzP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29eed848-f221-4bfc-acf5-2af6d2f72115_590x222.png 424w, https://substackcdn.com/image/fetch/$s_!dVzP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29eed848-f221-4bfc-acf5-2af6d2f72115_590x222.png 848w, https://substackcdn.com/image/fetch/$s_!dVzP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29eed848-f221-4bfc-acf5-2af6d2f72115_590x222.png 1272w, https://substackcdn.com/image/fetch/$s_!dVzP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29eed848-f221-4bfc-acf5-2af6d2f72115_590x222.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dVzP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29eed848-f221-4bfc-acf5-2af6d2f72115_590x222.png" width="590" height="222" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/29eed848-f221-4bfc-acf5-2af6d2f72115_590x222.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:222,&quot;width&quot;:590,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:98584,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.amigoscode.com/i/162547900?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29eed848-f221-4bfc-acf5-2af6d2f72115_590x222.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dVzP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29eed848-f221-4bfc-acf5-2af6d2f72115_590x222.png 424w, https://substackcdn.com/image/fetch/$s_!dVzP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29eed848-f221-4bfc-acf5-2af6d2f72115_590x222.png 848w, https://substackcdn.com/image/fetch/$s_!dVzP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29eed848-f221-4bfc-acf5-2af6d2f72115_590x222.png 1272w, https://substackcdn.com/image/fetch/$s_!dVzP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29eed848-f221-4bfc-acf5-2af6d2f72115_590x222.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div><hr></div><h2>3. <strong>Logic (Business Logic Layer)</strong></h2><p>This is the <strong>brain</strong> of your app &#8212; where the real work happens.</p><p>Here&#8217;s where you define rules like "a user can&#8217;t buy something if they don&#8217;t have enough balance" or "admins can reset passwords." This layer is typically built using languages like <strong>Java</strong>, <strong>Python</strong>, <strong>C#</strong>, or frameworks like <strong>Spring Boot</strong> and <strong>.NET</strong>.</p><p>Good business logic makes your app reliable and secure. It&#8217;s also where bugs often hide, so test it well.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0bQI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc03263f9-ef03-4d65-b1f4-b71a2e31138c_590x222.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0bQI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc03263f9-ef03-4d65-b1f4-b71a2e31138c_590x222.png 424w, https://substackcdn.com/image/fetch/$s_!0bQI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc03263f9-ef03-4d65-b1f4-b71a2e31138c_590x222.png 848w, https://substackcdn.com/image/fetch/$s_!0bQI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc03263f9-ef03-4d65-b1f4-b71a2e31138c_590x222.png 1272w, https://substackcdn.com/image/fetch/$s_!0bQI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc03263f9-ef03-4d65-b1f4-b71a2e31138c_590x222.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0bQI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc03263f9-ef03-4d65-b1f4-b71a2e31138c_590x222.png" width="590" height="222" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c03263f9-ef03-4d65-b1f4-b71a2e31138c_590x222.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:222,&quot;width&quot;:590,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:96563,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.amigoscode.com/i/162547900?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc03263f9-ef03-4d65-b1f4-b71a2e31138c_590x222.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0bQI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc03263f9-ef03-4d65-b1f4-b71a2e31138c_590x222.png 424w, https://substackcdn.com/image/fetch/$s_!0bQI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc03263f9-ef03-4d65-b1f4-b71a2e31138c_590x222.png 848w, https://substackcdn.com/image/fetch/$s_!0bQI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc03263f9-ef03-4d65-b1f4-b71a2e31138c_590x222.png 1272w, https://substackcdn.com/image/fetch/$s_!0bQI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc03263f9-ef03-4d65-b1f4-b71a2e31138c_590x222.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div><hr></div><h2>4. <strong>DB (Database Layer)</strong></h2><p>Your app needs a memory, and that&#8217;s the <strong>database layer</strong>.</p><p>This is where you store everything &#8212; user accounts, product info, transactions, etc. Whether you use relational databases like <strong>PostgreSQL</strong> and <strong>MySQL</strong>, or NoSQL options like <strong>MongoDB</strong> or <strong>CouchDB</strong>, the key is designing schemas that make data easy to access and update.</p><p>Also, don&#8217;t underestimate the value of indexing and backups. Databases are boring&#8230; until they&#8217;re broken.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!a8PC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc93968a4-2858-44ff-96d9-6583b1b8a02a_590x222.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!a8PC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc93968a4-2858-44ff-96d9-6583b1b8a02a_590x222.png 424w, https://substackcdn.com/image/fetch/$s_!a8PC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc93968a4-2858-44ff-96d9-6583b1b8a02a_590x222.png 848w, https://substackcdn.com/image/fetch/$s_!a8PC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc93968a4-2858-44ff-96d9-6583b1b8a02a_590x222.png 1272w, https://substackcdn.com/image/fetch/$s_!a8PC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc93968a4-2858-44ff-96d9-6583b1b8a02a_590x222.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!a8PC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc93968a4-2858-44ff-96d9-6583b1b8a02a_590x222.png" width="590" height="222" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c93968a4-2858-44ff-96d9-6583b1b8a02a_590x222.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:222,&quot;width&quot;:590,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:85720,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.amigoscode.com/i/162547900?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc93968a4-2858-44ff-96d9-6583b1b8a02a_590x222.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!a8PC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc93968a4-2858-44ff-96d9-6583b1b8a02a_590x222.png 424w, https://substackcdn.com/image/fetch/$s_!a8PC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc93968a4-2858-44ff-96d9-6583b1b8a02a_590x222.png 848w, https://substackcdn.com/image/fetch/$s_!a8PC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc93968a4-2858-44ff-96d9-6583b1b8a02a_590x222.png 1272w, https://substackcdn.com/image/fetch/$s_!a8PC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc93968a4-2858-44ff-96d9-6583b1b8a02a_590x222.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div><hr></div><h2>5. <strong>Hosting (Infrastructure Layer)</strong></h2><p>Finally, your code has to <strong>run somewhere</strong>, and that&#8217;s what the hosting layer is for.</p><p>Cloud providers like <strong>AWS</strong>, <strong>Azure</strong>, and <strong>Google Cloud</strong> offer the servers and services to make your app globally accessible. You might use <strong>Docker</strong> to package your app, and <strong>Kubernetes</strong> to manage scaling and deployment.</p><p>This layer is all about <strong>reliability, scalability, and performance</strong>. If your app crashes when traffic spikes, it&#8217;s usually an issue here.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ourU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfdc6b8d-9207-4f12-8519-9395dd72a69b_590x222.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ourU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfdc6b8d-9207-4f12-8519-9395dd72a69b_590x222.png 424w, https://substackcdn.com/image/fetch/$s_!ourU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfdc6b8d-9207-4f12-8519-9395dd72a69b_590x222.png 848w, https://substackcdn.com/image/fetch/$s_!ourU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfdc6b8d-9207-4f12-8519-9395dd72a69b_590x222.png 1272w, https://substackcdn.com/image/fetch/$s_!ourU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfdc6b8d-9207-4f12-8519-9395dd72a69b_590x222.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ourU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfdc6b8d-9207-4f12-8519-9395dd72a69b_590x222.png" width="590" height="222" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dfdc6b8d-9207-4f12-8519-9395dd72a69b_590x222.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:222,&quot;width&quot;:590,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:95925,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.amigoscode.com/i/162547900?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfdc6b8d-9207-4f12-8519-9395dd72a69b_590x222.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ourU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfdc6b8d-9207-4f12-8519-9395dd72a69b_590x222.png 424w, https://substackcdn.com/image/fetch/$s_!ourU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfdc6b8d-9207-4f12-8519-9395dd72a69b_590x222.png 848w, https://substackcdn.com/image/fetch/$s_!ourU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfdc6b8d-9207-4f12-8519-9395dd72a69b_590x222.png 1272w, https://substackcdn.com/image/fetch/$s_!ourU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfdc6b8d-9207-4f12-8519-9395dd72a69b_590x222.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>Question</strong></h2><div class="poll-embed" data-attrs="{&quot;id&quot;:311011}" data-component-name="PollToDOM"></div><p></p><h2><strong>Conclusion</strong></h2><p>These 5 layers &#8212; <strong>UI, API, Logic, DB, and Hosting</strong> &#8212; are more than just architecture jargon. They're the backbone of nearly every modern application. When you understand how they work together, you don&#8217;t just build apps. You build software that scales, performs, and delights users.</p><p>Whether you're a junior dev or a seasoned engineer, mastering each layer will help you level up as a software builder.</p><p>Follow our <strong><a href="https://amigoscode.com/roadmaps">roadmaps</a></strong> to learn about how to build software using these layers.</p><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/p/the-5-layers-of-software-explained/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.amigoscode.com/p/the-5-layers-of-software-explained/comments"><span>Leave a comment</span></a></p>]]></content:encoded></item><item><title><![CDATA[16 API Terms You Should Know ]]></title><description><![CDATA[Learn 16 essential API terms explained in plain English]]></description><link>https://blog.amigoscode.com/p/16-api-terms-you-should-know</link><guid isPermaLink="false">https://blog.amigoscode.com/p/16-api-terms-you-should-know</guid><dc:creator><![CDATA[Mama Samba Braima Nelson Djalo]]></dc:creator><pubDate>Wed, 23 Apr 2025 16:02:38 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!btyi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55eae036-306e-4035-956a-5e20e0e12f4d_644x848.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>"Just send a POST request to the endpoint with the right headers and payload&#8230;"<br><br>Hold up&#8212;<em>what?</em></p><p>If you&#8217;ve ever nodded along in a meeting while frantically Googling what &#8220;rate limiting&#8221; or &#8220;query parameters&#8221; mean, you&#8217;re not alone. I&#8217;ve been there. We all have.</p><p>But here&#8217;s the deal: APIs are everywhere. Your favorite app? Runs on one. Your coffee order app? API. That moment your calendar magically updates after a Slack message? Yup&#8212;API.</p><p>So let&#8217;s strip it all down.</p><p>I&#8217;ll walk you through 16 key API terms using simple language and real-world analogies.</p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!btyi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55eae036-306e-4035-956a-5e20e0e12f4d_644x848.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!btyi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55eae036-306e-4035-956a-5e20e0e12f4d_644x848.gif 424w, https://substackcdn.com/image/fetch/$s_!btyi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55eae036-306e-4035-956a-5e20e0e12f4d_644x848.gif 848w, https://substackcdn.com/image/fetch/$s_!btyi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55eae036-306e-4035-956a-5e20e0e12f4d_644x848.gif 1272w, https://substackcdn.com/image/fetch/$s_!btyi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55eae036-306e-4035-956a-5e20e0e12f4d_644x848.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!btyi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55eae036-306e-4035-956a-5e20e0e12f4d_644x848.gif" width="644" height="848" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/55eae036-306e-4035-956a-5e20e0e12f4d_644x848.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:848,&quot;width&quot;:644,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:406291,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.amigoscode.com/i/161963953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55eae036-306e-4035-956a-5e20e0e12f4d_644x848.gif&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!btyi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55eae036-306e-4035-956a-5e20e0e12f4d_644x848.gif 424w, https://substackcdn.com/image/fetch/$s_!btyi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55eae036-306e-4035-956a-5e20e0e12f4d_644x848.gif 848w, https://substackcdn.com/image/fetch/$s_!btyi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55eae036-306e-4035-956a-5e20e0e12f4d_644x848.gif 1272w, https://substackcdn.com/image/fetch/$s_!btyi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55eae036-306e-4035-956a-5e20e0e12f4d_644x848.gif 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h3>Want to learn how to BUILD APIs using Java and Spring Boot? I got you coved.</h3><p>Enrol here for <a href="https://amigoscode.com/courses/spring-boot">free</a> to get a certificate</p><div id="youtube2-Cw0J6jYJtzw" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;Cw0J6jYJtzw&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/Cw0J6jYJtzw?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Amigoscode Newsletter is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><h1>16 API Terms You Should Know </h1><h3><strong><br>1. Resource</strong></h3><p>Think of a <em>resource</em> like an object in real life. A photo. A user profile. A cat video. In the world of APIs, this is the stuff we&#8217;re asking for or sending.</p><blockquote><p>It's the &#8220;thing&#8221; behind the curtain you want to get or change.</p></blockquote><div><hr></div><h3><strong>2. Request</strong></h3><p>This is you saying, &#8220;Hey server, can I get that cat video?&#8221;</p><div><hr></div><h3><strong>3. Response</strong></h3><p>The server goes, &#8220;Sure, here it is.&#8221; Or sometimes, &#8220;Nope, not today.&#8221;</p><div><hr></div><h3><strong>4. Response Code</strong></h3><p>You&#8217;ve seen &#8216;404 Not Found&#8217; before? That&#8217;s a response code.<br>It&#8217;s like the server sending you a sticky note with a smiley face&#8230; or a passive-aggressive &#8220;Error: You messed up.&#8221;</p><ul><li><p><strong>200</strong> = All good</p></li><li><p><strong>404</strong> = Can&#8217;t find it</p></li><li><p><strong>500</strong> = The server is crying</p></li></ul><div><hr></div><h3><strong>5. Payload</strong></h3><p>Payload = the actual stuff sent in the request or response.<br>Could be text, files, or your grandma&#8217;s cookie recipe. Whatever the data is&#8212;you&#8217;re sending it, or you&#8217;re getting it.</p><div><hr></div><h3><strong>6. Pagination</strong></h3><p>Ever scrolled through 5,000 Instagram posts from your ex&#8217;s new dog? Yeah, that needs <em>pagination</em>. It breaks big data into smaller chunks.</p><div><hr></div><h3><strong>7. Method</strong></h3><p>This is your action verb. APIs don&#8217;t just <em>exist</em>&#8212;they <em>do</em>. Here&#8217;s the quick cheat sheet:</p><ul><li><p><strong>GET</strong> &#8211; Fetch something</p></li><li><p><strong>POST</strong> &#8211; Add something</p></li><li><p><strong>PUT</strong> &#8211; Update something</p></li><li><p><strong>DELETE</strong> &#8211; Yep, you guessed it</p></li></ul><div><hr></div><h3><strong>8. Query Parameters</strong></h3><p>These live in the URL like tiny filters.<br>Example:<br><code>/shoes?color=black&amp;size=10</code></p><p>You're basically whispering to the server: &#8220;I want the black size 10s only, please.&#8221;</p><div><hr></div><h3><strong>9. Authentication</strong></h3><p>Just like you show your ID at a club (or Netflix asks <em>who&#8217;s watching?</em>), authentication proves you are who you say you are.</p><div><hr></div><h3><strong>10. Rate Limiting</strong></h3><p>&#8220;Too many requests, bro.&#8221;<br>APIs don&#8217;t want to be spammed. So they set limits. Like a bouncer at the door saying, &#8220;Whoa, you&#8217;ve had enough.&#8221;</p><div><hr></div><h3><strong>11. API Integration</strong></h3><p>This is when two apps become besties.<br>Like Slack and Google Calendar syncing up so you never miss that 3 p.m. &#8220;optional&#8221; meeting again.</p><div><hr></div><h3><strong>12. API Gateway</strong></h3><p>The bouncer, concierge, and translator all in one.<br>It takes your request, checks it, and passes it on to the right place. Nice.</p><div><hr></div><h3><strong>13. API Lifecycle</strong></h3><p>Every API has a story: it&#8217;s born, it grows, it (maybe) gets retired. That&#8217;s the lifecycle.<br>Version 1.0 was cute. But 2.0? That&#8217;s glow-up material.</p><div><hr></div><h3><strong>14. CRUD</strong></h3><p>Acronym alert! It stands for:</p><ul><li><p><strong>Create</strong></p></li><li><p><strong>Read</strong></p></li><li><p><strong>Update</strong></p></li><li><p><strong>Delete</strong></p></li></ul><p>It&#8217;s the core of what most APIs do. If APIs were a band, CRUD would be the lead singer.</p><div><hr></div><h3><strong>15. Cache</strong></h3><p>Memory lane.<br>Caching is like keeping a copy of your favorite playlist so you don&#8217;t re-download it every time. Speeds things up. No one likes buffering.</p><div><hr></div><h3><strong>16. Client</strong></h3><p>That&#8217;s <em>you</em>. Or your app. Or anything making the request.</p><p>If the server is the chef, the client is the hungry customer shouting out their order.</p><div><hr></div><h2>Final Thoughts</h2><p>I know APIs might seem cold and robotic. But once you get to know the lingo, it all starts to make sense. Like any good friendship, it just takes a little translation, a bit of patience&#8212;and maybe a blog post that doesn&#8217;t make you want to nap.</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Amigoscode Newsletter is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h1><br>Bonus</h1><p>Learn more <a href="https://blog.amigoscode.com/p/api-development-roadmap-for-developers">here</a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!twpJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb170b0e4-15b6-479e-a47c-e2bbee8f1ecb_2400x3694.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!twpJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb170b0e4-15b6-479e-a47c-e2bbee8f1ecb_2400x3694.png 424w, https://substackcdn.com/image/fetch/$s_!twpJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb170b0e4-15b6-479e-a47c-e2bbee8f1ecb_2400x3694.png 848w, https://substackcdn.com/image/fetch/$s_!twpJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb170b0e4-15b6-479e-a47c-e2bbee8f1ecb_2400x3694.png 1272w, https://substackcdn.com/image/fetch/$s_!twpJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb170b0e4-15b6-479e-a47c-e2bbee8f1ecb_2400x3694.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!twpJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb170b0e4-15b6-479e-a47c-e2bbee8f1ecb_2400x3694.png" width="1456" height="2241" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b170b0e4-15b6-479e-a47c-e2bbee8f1ecb_2400x3694.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2241,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2857118,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.amigoscode.com/i/161963953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb170b0e4-15b6-479e-a47c-e2bbee8f1ecb_2400x3694.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!twpJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb170b0e4-15b6-479e-a47c-e2bbee8f1ecb_2400x3694.png 424w, https://substackcdn.com/image/fetch/$s_!twpJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb170b0e4-15b6-479e-a47c-e2bbee8f1ecb_2400x3694.png 848w, https://substackcdn.com/image/fetch/$s_!twpJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb170b0e4-15b6-479e-a47c-e2bbee8f1ecb_2400x3694.png 1272w, https://substackcdn.com/image/fetch/$s_!twpJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb170b0e4-15b6-479e-a47c-e2bbee8f1ecb_2400x3694.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p>]]></content:encoded></item><item><title><![CDATA[7 Architectural Patterns You MUST Know]]></title><description><![CDATA[A simple guide to 7 software architectural patterns &#8212; monolithic, layered, microservices, SOA, MVC, event-driven, and master-slave &#8212; explained in plain English.]]></description><link>https://blog.amigoscode.com/p/7-architectural-patterns-you-must</link><guid isPermaLink="false">https://blog.amigoscode.com/p/7-architectural-patterns-you-must</guid><dc:creator><![CDATA[Mama Samba Braima Nelson Djalo]]></dc:creator><pubDate>Wed, 16 Apr 2025 16:00:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!s_oe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6626ab7-ffda-4bec-b2ed-1ae626df5e7e_644x848.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Let&#8217;s be real &#8212; the words <em>&#8220;software architectural patterns&#8221;</em> sound like something pulled from a dusty textbook or whispered in a late-night DevOps meeting. But here&#8217;s the thing: these patterns shape how your apps work, scale, crash, or thrive. Whether you're building the next big thing or just figuring out how to structure your side project, <strong>understanding architecture isn&#8217;t optional &#8212; it&#8217;s essential.</strong></p><p>Now, I&#8217;m not here to throw jargon at you or pretend software design is some kind of secret society. Nope. This blog is your friendly guide to the <strong>7 architectural patterns</strong> that every modern developer should know &#8212; explained in plain English, with a splash of style and a lot less headache.</p><h2>What&#8217;s an Architectural Pattern?</h2><p>Think of architectural patterns like the layout of a house. Open-plan kitchen? Studio apartment? Mansion with a moat? Each pattern helps organize how your software is built and how the parts talk to each other.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!s_oe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6626ab7-ffda-4bec-b2ed-1ae626df5e7e_644x848.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!s_oe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6626ab7-ffda-4bec-b2ed-1ae626df5e7e_644x848.gif 424w, https://substackcdn.com/image/fetch/$s_!s_oe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6626ab7-ffda-4bec-b2ed-1ae626df5e7e_644x848.gif 848w, https://substackcdn.com/image/fetch/$s_!s_oe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6626ab7-ffda-4bec-b2ed-1ae626df5e7e_644x848.gif 1272w, https://substackcdn.com/image/fetch/$s_!s_oe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6626ab7-ffda-4bec-b2ed-1ae626df5e7e_644x848.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!s_oe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6626ab7-ffda-4bec-b2ed-1ae626df5e7e_644x848.gif" width="644" height="848" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e6626ab7-ffda-4bec-b2ed-1ae626df5e7e_644x848.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:848,&quot;width&quot;:644,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:164428,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.amigoscode.com/i/161326227?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6626ab7-ffda-4bec-b2ed-1ae626df5e7e_644x848.gif&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!s_oe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6626ab7-ffda-4bec-b2ed-1ae626df5e7e_644x848.gif 424w, https://substackcdn.com/image/fetch/$s_!s_oe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6626ab7-ffda-4bec-b2ed-1ae626df5e7e_644x848.gif 848w, https://substackcdn.com/image/fetch/$s_!s_oe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6626ab7-ffda-4bec-b2ed-1ae626df5e7e_644x848.gif 1272w, https://substackcdn.com/image/fetch/$s_!s_oe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6626ab7-ffda-4bec-b2ed-1ae626df5e7e_644x848.gif 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.amigoscode.com/subscribe?"><span>Subscribe now</span></a></p><p></p><h2>&#128680; Quick Update Amigoscode 2.0 is OUT.</h2><div id="youtube2-RpUdtgDsM3c" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;RpUdtgDsM3c&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/RpUdtgDsM3c?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>&#10145;&#65039; Learn more here - <a href="https://amigoscode.com">https://amigoscode.com</a></p><p>Now, let&#8217;s jump in to the 7 Architectural Patterns You MUST Know</p><h2>1. <strong>Monolithic Architecture</strong> &#8212; The All-In-One Classic</h2><p><strong>Main keyword</strong>: monolithic architecture</p><p>You&#8217;ve probably used a monolith today. It&#8217;s your classic all-in-one software &#8212; everything lives together: the <strong>user interface</strong>, <strong>business logic</strong>, and <strong>data access</strong>. One codebase. One deploy. One&#8230; big spaghetti mess if you&#8217;re not careful.</p><ul><li><p>&#9989; Easy to start with.</p></li><li><p>&#10060; Hard to scale or update without breaking something.</p></li></ul><p>It&#8217;s like living in a studio apartment &#8212; cozy, efficient, but if you knock over your coffee, it spills on your bed, desk, and stove.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-g9x!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd41e8d07-fc74-4935-b579-2a0f83105f12_270x453.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-g9x!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd41e8d07-fc74-4935-b579-2a0f83105f12_270x453.png 424w, https://substackcdn.com/image/fetch/$s_!-g9x!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd41e8d07-fc74-4935-b579-2a0f83105f12_270x453.png 848w, https://substackcdn.com/image/fetch/$s_!-g9x!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd41e8d07-fc74-4935-b579-2a0f83105f12_270x453.png 1272w, https://substackcdn.com/image/fetch/$s_!-g9x!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd41e8d07-fc74-4935-b579-2a0f83105f12_270x453.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-g9x!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd41e8d07-fc74-4935-b579-2a0f83105f12_270x453.png" width="270" height="453" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d41e8d07-fc74-4935-b579-2a0f83105f12_270x453.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:453,&quot;width&quot;:270,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:161871,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.amigoscode.com/i/161326227?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd41e8d07-fc74-4935-b579-2a0f83105f12_270x453.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-g9x!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd41e8d07-fc74-4935-b579-2a0f83105f12_270x453.png 424w, https://substackcdn.com/image/fetch/$s_!-g9x!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd41e8d07-fc74-4935-b579-2a0f83105f12_270x453.png 848w, https://substackcdn.com/image/fetch/$s_!-g9x!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd41e8d07-fc74-4935-b579-2a0f83105f12_270x453.png 1272w, https://substackcdn.com/image/fetch/$s_!-g9x!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd41e8d07-fc74-4935-b579-2a0f83105f12_270x453.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div><hr></div><h2>2. <strong>Layered Architecture</strong> &#8212; The Lasagna Stack</h2><p><strong>Also known as</strong>: n-tier architecture</p><p>Ah, the good old <strong>layered approach</strong>. You separate your app into layers:</p><ul><li><p><strong>Presentation Layer</strong> (what users see)</p></li><li><p><strong>Business Layer</strong> (logic and rules)</p></li><li><p><strong>Persistence Layer</strong> (saving stuff)</p></li><li><p><strong>Database Layer</strong> (where stuff lives)</p></li></ul><p>Each layer has its job. No mixing. It&#8217;s clean&#8230; like a tidy lasagna. One bite at a time.</p><ul><li><p>&#9989; Great for structure and team collaboration.</p></li><li><p>&#10060; Can get slow if too many layers get involved.</p><p></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!P_9-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7358acb4-f57d-4d7a-a9da-0cab54660278_556x453.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!P_9-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7358acb4-f57d-4d7a-a9da-0cab54660278_556x453.png 424w, https://substackcdn.com/image/fetch/$s_!P_9-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7358acb4-f57d-4d7a-a9da-0cab54660278_556x453.png 848w, https://substackcdn.com/image/fetch/$s_!P_9-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7358acb4-f57d-4d7a-a9da-0cab54660278_556x453.png 1272w, https://substackcdn.com/image/fetch/$s_!P_9-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7358acb4-f57d-4d7a-a9da-0cab54660278_556x453.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!P_9-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7358acb4-f57d-4d7a-a9da-0cab54660278_556x453.png" width="556" height="453" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7358acb4-f57d-4d7a-a9da-0cab54660278_556x453.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:453,&quot;width&quot;:556,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:229198,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.amigoscode.com/i/161326227?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7358acb4-f57d-4d7a-a9da-0cab54660278_556x453.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!P_9-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7358acb4-f57d-4d7a-a9da-0cab54660278_556x453.png 424w, https://substackcdn.com/image/fetch/$s_!P_9-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7358acb4-f57d-4d7a-a9da-0cab54660278_556x453.png 848w, https://substackcdn.com/image/fetch/$s_!P_9-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7358acb4-f57d-4d7a-a9da-0cab54660278_556x453.png 1272w, https://substackcdn.com/image/fetch/$s_!P_9-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7358acb4-f57d-4d7a-a9da-0cab54660278_556x453.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>3. <strong>Microservices Architecture</strong> &#8212; The Squad Goals</h2><p>Instead of one big monolith, microservices break things into tiny independent services. Each service does one thing really well &#8212; like a squad of specialists. You might have services for users, payments, orders, etc.</p><ul><li><p>&#9989; Easy to scale. One service acts up? Just fix that one.</p></li><li><p>&#10060; More complex to manage and test.</p></li></ul><p>It&#8217;s like running a startup where everyone&#8217;s a freelancer. Flexible but takes good coordination.</p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9LvD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2718d2f-d69e-4396-870c-4db9fd7126f5_556x425.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9LvD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2718d2f-d69e-4396-870c-4db9fd7126f5_556x425.png 424w, https://substackcdn.com/image/fetch/$s_!9LvD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2718d2f-d69e-4396-870c-4db9fd7126f5_556x425.png 848w, https://substackcdn.com/image/fetch/$s_!9LvD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2718d2f-d69e-4396-870c-4db9fd7126f5_556x425.png 1272w, https://substackcdn.com/image/fetch/$s_!9LvD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2718d2f-d69e-4396-870c-4db9fd7126f5_556x425.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9LvD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2718d2f-d69e-4396-870c-4db9fd7126f5_556x425.png" width="556" height="425" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e2718d2f-d69e-4396-870c-4db9fd7126f5_556x425.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:425,&quot;width&quot;:556,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:186025,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.amigoscode.com/i/161326227?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2718d2f-d69e-4396-870c-4db9fd7126f5_556x425.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9LvD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2718d2f-d69e-4396-870c-4db9fd7126f5_556x425.png 424w, https://substackcdn.com/image/fetch/$s_!9LvD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2718d2f-d69e-4396-870c-4db9fd7126f5_556x425.png 848w, https://substackcdn.com/image/fetch/$s_!9LvD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2718d2f-d69e-4396-870c-4db9fd7126f5_556x425.png 1272w, https://substackcdn.com/image/fetch/$s_!9LvD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2718d2f-d69e-4396-870c-4db9fd7126f5_556x425.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div><hr></div><h2>4. <strong>Service-Oriented Architecture (SOA)</strong> &#8212; The Corporate Cousin</h2><p>SOA walks like microservices, but talks like enterprise.</p><p>Everything connects via an <strong>Enterprise Service Bus (ESB)</strong> &#8212; this central hub coordinates communication between services. Think of it like a corporate Slack channel for your software.</p><ul><li><p>&#9989; Good for big businesses with lots of legacy systems.</p></li><li><p>&#10060; ESB can become a bottleneck (and a single point of failure).</p></li></ul><p>It&#8217;s a bit formal &#8212; like business suits and memos &#8212; but gets the job done.</p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0eZx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5894ff39-ed45-48b3-85ad-84f4f20ba1f4_556x453.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0eZx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5894ff39-ed45-48b3-85ad-84f4f20ba1f4_556x453.png 424w, https://substackcdn.com/image/fetch/$s_!0eZx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5894ff39-ed45-48b3-85ad-84f4f20ba1f4_556x453.png 848w, https://substackcdn.com/image/fetch/$s_!0eZx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5894ff39-ed45-48b3-85ad-84f4f20ba1f4_556x453.png 1272w, https://substackcdn.com/image/fetch/$s_!0eZx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5894ff39-ed45-48b3-85ad-84f4f20ba1f4_556x453.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0eZx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5894ff39-ed45-48b3-85ad-84f4f20ba1f4_556x453.png" width="556" height="453" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5894ff39-ed45-48b3-85ad-84f4f20ba1f4_556x453.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:453,&quot;width&quot;:556,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:94804,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.amigoscode.com/i/161326227?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5894ff39-ed45-48b3-85ad-84f4f20ba1f4_556x453.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0eZx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5894ff39-ed45-48b3-85ad-84f4f20ba1f4_556x453.png 424w, https://substackcdn.com/image/fetch/$s_!0eZx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5894ff39-ed45-48b3-85ad-84f4f20ba1f4_556x453.png 848w, https://substackcdn.com/image/fetch/$s_!0eZx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5894ff39-ed45-48b3-85ad-84f4f20ba1f4_556x453.png 1272w, https://substackcdn.com/image/fetch/$s_!0eZx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5894ff39-ed45-48b3-85ad-84f4f20ba1f4_556x453.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div><hr></div><h2>5. <strong>Event-Driven Architecture</strong> &#8212; The Party Animal</h2><p>Here, systems communicate by <strong>sending and reacting to events</strong>. You&#8217;ve got:</p><ul><li><p><strong>Producers</strong> (who fire events)</p></li><li><p><strong>Consumers</strong> (who react)</p></li><li><p>An <strong>Event Broker</strong> (who handles the party invites)</p></li></ul><p>Imagine you&#8217;re at a party. Someone drops a &#8220;New Order Placed&#8221; event. Whoever cares (inventory, billing, email) reacts &#8212; without having to know each other exists.</p><ul><li><p>&#9989; Great for real-time apps.</p></li><li><p>&#10060; Can be tricky to debug when things go sideways.<br></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Mzms!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe68c8750-5224-4ab0-afc9-f19bf3c8bc63_556x425.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Mzms!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe68c8750-5224-4ab0-afc9-f19bf3c8bc63_556x425.png 424w, https://substackcdn.com/image/fetch/$s_!Mzms!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe68c8750-5224-4ab0-afc9-f19bf3c8bc63_556x425.png 848w, https://substackcdn.com/image/fetch/$s_!Mzms!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe68c8750-5224-4ab0-afc9-f19bf3c8bc63_556x425.png 1272w, https://substackcdn.com/image/fetch/$s_!Mzms!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe68c8750-5224-4ab0-afc9-f19bf3c8bc63_556x425.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Mzms!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe68c8750-5224-4ab0-afc9-f19bf3c8bc63_556x425.png" width="556" height="425" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e68c8750-5224-4ab0-afc9-f19bf3c8bc63_556x425.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:425,&quot;width&quot;:556,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:202014,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.amigoscode.com/i/161326227?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe68c8750-5224-4ab0-afc9-f19bf3c8bc63_556x425.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Mzms!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe68c8750-5224-4ab0-afc9-f19bf3c8bc63_556x425.png 424w, https://substackcdn.com/image/fetch/$s_!Mzms!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe68c8750-5224-4ab0-afc9-f19bf3c8bc63_556x425.png 848w, https://substackcdn.com/image/fetch/$s_!Mzms!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe68c8750-5224-4ab0-afc9-f19bf3c8bc63_556x425.png 1272w, https://substackcdn.com/image/fetch/$s_!Mzms!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe68c8750-5224-4ab0-afc9-f19bf3c8bc63_556x425.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div><hr></div><h2>6. <strong>MVC (Model-View-Controller)</strong> &#8212; The Web Developer&#8217;s BFF</h2><p>If you&#8217;ve built any web app ever, you&#8217;ve likely bumped into MVC.</p><ul><li><p><strong>Model</strong> = your data</p></li><li><p><strong>View</strong> = what users see</p></li><li><p><strong>Controller</strong> = the go-between, managing requests and responses</p></li></ul><p>It&#8217;s neat. It&#8217;s organized. It helps you keep your code from turning into a bowl of noodles.</p><ul><li><p>&#9989; Ideal for UI-driven apps.</p></li><li><p>&#10060; Can get messy if your controller starts doing too much.</p><p></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gMoF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5bd548-1b0a-44db-8532-fd0fa6880649_556x453.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gMoF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5bd548-1b0a-44db-8532-fd0fa6880649_556x453.png 424w, https://substackcdn.com/image/fetch/$s_!gMoF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5bd548-1b0a-44db-8532-fd0fa6880649_556x453.png 848w, https://substackcdn.com/image/fetch/$s_!gMoF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5bd548-1b0a-44db-8532-fd0fa6880649_556x453.png 1272w, https://substackcdn.com/image/fetch/$s_!gMoF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5bd548-1b0a-44db-8532-fd0fa6880649_556x453.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gMoF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5bd548-1b0a-44db-8532-fd0fa6880649_556x453.png" width="556" height="453" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ab5bd548-1b0a-44db-8532-fd0fa6880649_556x453.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:453,&quot;width&quot;:556,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:188633,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.amigoscode.com/i/161326227?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5bd548-1b0a-44db-8532-fd0fa6880649_556x453.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gMoF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5bd548-1b0a-44db-8532-fd0fa6880649_556x453.png 424w, https://substackcdn.com/image/fetch/$s_!gMoF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5bd548-1b0a-44db-8532-fd0fa6880649_556x453.png 848w, https://substackcdn.com/image/fetch/$s_!gMoF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5bd548-1b0a-44db-8532-fd0fa6880649_556x453.png 1272w, https://substackcdn.com/image/fetch/$s_!gMoF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5bd548-1b0a-44db-8532-fd0fa6880649_556x453.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>7. <strong>Master-Slave Architecture</strong> &#8212; The Command and Control</h2><p>One <strong>master</strong> directs traffic. Multiple <strong>slaves</strong> follow orders, usually for read operations.</p><p>It&#8217;s like a conductor and an orchestra. The master writes the music; the slaves play the notes. Often used in databases or systems needing high availability.</p><ul><li><p>&#9989; Good for redundancy.</p></li><li><p>&#10060; Can lead to data sync headaches.<br></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_UBo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3354d9f-c07c-45a2-a471-69ad9655b349_270x453.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_UBo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3354d9f-c07c-45a2-a471-69ad9655b349_270x453.png 424w, https://substackcdn.com/image/fetch/$s_!_UBo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3354d9f-c07c-45a2-a471-69ad9655b349_270x453.png 848w, https://substackcdn.com/image/fetch/$s_!_UBo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3354d9f-c07c-45a2-a471-69ad9655b349_270x453.png 1272w, https://substackcdn.com/image/fetch/$s_!_UBo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3354d9f-c07c-45a2-a471-69ad9655b349_270x453.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_UBo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3354d9f-c07c-45a2-a471-69ad9655b349_270x453.png" width="270" height="453" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c3354d9f-c07c-45a2-a471-69ad9655b349_270x453.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:453,&quot;width&quot;:270,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:23708,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.amigoscode.com/i/161326227?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3354d9f-c07c-45a2-a471-69ad9655b349_270x453.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_UBo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3354d9f-c07c-45a2-a471-69ad9655b349_270x453.png 424w, https://substackcdn.com/image/fetch/$s_!_UBo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3354d9f-c07c-45a2-a471-69ad9655b349_270x453.png 848w, https://substackcdn.com/image/fetch/$s_!_UBo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3354d9f-c07c-45a2-a471-69ad9655b349_270x453.png 1272w, https://substackcdn.com/image/fetch/$s_!_UBo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3354d9f-c07c-45a2-a471-69ad9655b349_270x453.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><br>So&#8230; Which Pattern Should <em>You</em> Use?</h2><p>Here&#8217;s the honest answer: <strong>it depends</strong>.</p><ul><li><p>Building a small app? Start with <strong>monolithic</strong> or <strong>layered</strong>.</p></li><li><p>Scaling up? Look at <strong>microservices</strong> or <strong>event-driven</strong>.</p></li><li><p>Working with legacy enterprise stuff? <strong>SOA</strong> might be your path.</p></li><li><p>Building UIs? <strong>MVC</strong> is still a solid bet.</p></li><li><p>Need reliability and backups? Think <strong>master-slave</strong>.</p></li></ul><p>The right pattern depends on your team, your product, and how much complexity you&#8217;re willing to dance with.</p><h2><br>&#10067;Question</h2><div class="poll-embed" data-attrs="{&quot;id&quot;:303242}" data-component-name="PollToDOM"></div><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/p/7-architectural-patterns-you-must/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.amigoscode.com/p/7-architectural-patterns-you-must/comments"><span>Leave a comment</span></a></p><div><hr></div><h2><br>Final Thoughts: Don&#8217;t Marry the Pattern</h2><p>You&#8217;re not locked in. Patterns are tools &#8212; not gospel. You can mix, match, evolve. Sometimes, your architecture will grow out of one pattern and into another. That&#8217;s okay.<br></p><p>The best architects? They know when to break the rules, and when to play it safe.</p></li></ul>]]></content:encoded></item><item><title><![CDATA[9 Books Every Software Engineer Should Read (Seriously)]]></title><description><![CDATA[Curated List of the Best Programming Books to Elevate Your Career in Software Development]]></description><link>https://blog.amigoscode.com/p/9-books-every-software-engineer-should</link><guid isPermaLink="false">https://blog.amigoscode.com/p/9-books-every-software-engineer-should</guid><dc:creator><![CDATA[Mama Samba Braima Nelson Djalo]]></dc:creator><pubDate>Wed, 09 Apr 2025 16:07:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!hjxd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe13de763-8f15-4ba8-8ef5-4075d7b3eebd_351x441.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>So, you're a software engineer. Maybe you're still figuring things out. Maybe you're ten years deep and wondering why your codebase screams every time you open it. Either way, here's something I've learned: the right book at the right time can change everything.</p><p>This list isn't just a pile of tech books&#8212;it&#8217;s a curated bookshelf of hard-won lessons, lightbulb moments, and the kind of advice you'd get from that one developer who's been around the block (but still loves the game). Let&#8217;s dig in.</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Amigoscode Newsletter is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div><hr></div><p><strong>1. Clean Code by Robert C. Martin</strong></p><p>Ah yes, <em>Clean Code</em>&#8212;the developer&#8217;s rite of passage. It's like going to coding therapy. You&#8217;ll discover just how messy your habits are, and that&#8217;s a good thing. Uncle Bob doesn't hold back.</p><p><strong>Why read it?</strong><br>Because messy code is expensive. And you&#8217;re probably writing more of it than you realize.</p><p><strong>Heads-up:</strong><br>It leans on Java examples, but the lessons? Totally universal. Just try not to cry when you realize how bad your old code was.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hjxd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe13de763-8f15-4ba8-8ef5-4075d7b3eebd_351x441.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hjxd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe13de763-8f15-4ba8-8ef5-4075d7b3eebd_351x441.png 424w, https://substackcdn.com/image/fetch/$s_!hjxd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe13de763-8f15-4ba8-8ef5-4075d7b3eebd_351x441.png 848w, https://substackcdn.com/image/fetch/$s_!hjxd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe13de763-8f15-4ba8-8ef5-4075d7b3eebd_351x441.png 1272w, https://substackcdn.com/image/fetch/$s_!hjxd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe13de763-8f15-4ba8-8ef5-4075d7b3eebd_351x441.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hjxd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe13de763-8f15-4ba8-8ef5-4075d7b3eebd_351x441.png" width="351" height="441" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e13de763-8f15-4ba8-8ef5-4075d7b3eebd_351x441.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:441,&quot;width&quot;:351,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:153961,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.amigoscode.com/i/160951011?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe13de763-8f15-4ba8-8ef5-4075d7b3eebd_351x441.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!hjxd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe13de763-8f15-4ba8-8ef5-4075d7b3eebd_351x441.png 424w, https://substackcdn.com/image/fetch/$s_!hjxd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe13de763-8f15-4ba8-8ef5-4075d7b3eebd_351x441.png 848w, https://substackcdn.com/image/fetch/$s_!hjxd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe13de763-8f15-4ba8-8ef5-4075d7b3eebd_351x441.png 1272w, https://substackcdn.com/image/fetch/$s_!hjxd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe13de763-8f15-4ba8-8ef5-4075d7b3eebd_351x441.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div><hr></div><p><strong>2. The Pragmatic Programmer by David Thomas &amp; Andrew Hunt</strong></p><p>This one is like that wise mentor who doesn&#8217;t tell you what to do&#8212;but instead hands you a flashlight and says, &#8220;Here, find your own way. But watch out for that pothole.&#8221;</p><p><strong>Why it works:</strong><br>It doesn&#8217;t just talk about code. It talks about being a better thinker, communicator, and problem-solver. Think of it as a career companion.</p><p><strong>Warning:</strong><br>It&#8217;s more of a conversation than a tutorial. Don&#8217;t expect code samples on every page.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CgbF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97cb3e2b-7b67-46ef-b38f-7b3e2edf7ffe_351x441.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CgbF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97cb3e2b-7b67-46ef-b38f-7b3e2edf7ffe_351x441.png 424w, https://substackcdn.com/image/fetch/$s_!CgbF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97cb3e2b-7b67-46ef-b38f-7b3e2edf7ffe_351x441.png 848w, https://substackcdn.com/image/fetch/$s_!CgbF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97cb3e2b-7b67-46ef-b38f-7b3e2edf7ffe_351x441.png 1272w, https://substackcdn.com/image/fetch/$s_!CgbF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97cb3e2b-7b67-46ef-b38f-7b3e2edf7ffe_351x441.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CgbF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97cb3e2b-7b67-46ef-b38f-7b3e2edf7ffe_351x441.png" width="351" height="441" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/97cb3e2b-7b67-46ef-b38f-7b3e2edf7ffe_351x441.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:441,&quot;width&quot;:351,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:256460,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.amigoscode.com/i/160951011?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97cb3e2b-7b67-46ef-b38f-7b3e2edf7ffe_351x441.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CgbF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97cb3e2b-7b67-46ef-b38f-7b3e2edf7ffe_351x441.png 424w, https://substackcdn.com/image/fetch/$s_!CgbF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97cb3e2b-7b67-46ef-b38f-7b3e2edf7ffe_351x441.png 848w, https://substackcdn.com/image/fetch/$s_!CgbF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97cb3e2b-7b67-46ef-b38f-7b3e2edf7ffe_351x441.png 1272w, https://substackcdn.com/image/fetch/$s_!CgbF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97cb3e2b-7b67-46ef-b38f-7b3e2edf7ffe_351x441.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p><strong>3. Software Engineering at Google</strong></p><p>Want to know how the big dogs manage thousands of engineers working on the same codebase without setting everything on fire? This is it.</p><p><strong>Expect insights like:</strong></p><ul><li><p>How to scale code <em>and</em> humans</p></li><li><p>Why readability beats cleverness</p></li><li><p>How Google makes tech decisions that last years, not months</p></li></ul><p><strong>Real talk:</strong><br>This isn&#8217;t a beginner&#8217;s book. It&#8217;s more like a masterclass in keeping large systems sane.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3y1P!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07eea98f-63a6-4962-88d2-324170103375_351x441.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3y1P!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07eea98f-63a6-4962-88d2-324170103375_351x441.png 424w, https://substackcdn.com/image/fetch/$s_!3y1P!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07eea98f-63a6-4962-88d2-324170103375_351x441.png 848w, https://substackcdn.com/image/fetch/$s_!3y1P!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07eea98f-63a6-4962-88d2-324170103375_351x441.png 1272w, https://substackcdn.com/image/fetch/$s_!3y1P!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07eea98f-63a6-4962-88d2-324170103375_351x441.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3y1P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07eea98f-63a6-4962-88d2-324170103375_351x441.png" width="351" height="441" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/07eea98f-63a6-4962-88d2-324170103375_351x441.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:441,&quot;width&quot;:351,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:94294,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.amigoscode.com/i/160951011?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07eea98f-63a6-4962-88d2-324170103375_351x441.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!3y1P!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07eea98f-63a6-4962-88d2-324170103375_351x441.png 424w, https://substackcdn.com/image/fetch/$s_!3y1P!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07eea98f-63a6-4962-88d2-324170103375_351x441.png 848w, https://substackcdn.com/image/fetch/$s_!3y1P!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07eea98f-63a6-4962-88d2-324170103375_351x441.png 1272w, https://substackcdn.com/image/fetch/$s_!3y1P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07eea98f-63a6-4962-88d2-324170103375_351x441.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p><strong>4. Head First Design Patterns</strong></p><p>Design patterns can be&#8230; dry. This book isn&#8217;t. It&#8217;s weird, funny, visual, and actually helps the concepts stick. It&#8217;s like Schoolhouse Rock for developers.</p><p><strong>What makes it stand out:</strong></p><ul><li><p>Simple language</p></li><li><p>Real-world examples</p></li><li><p>Cartoons that somehow make sense</p></li></ul><p><strong>But fair warning:</strong><br>If you hate playful writing, this may not be your thing. It&#8217;s quirky, not corporate.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aEtG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f08ca95-011c-4b48-843e-6c67b44d0c13_351x441.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aEtG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f08ca95-011c-4b48-843e-6c67b44d0c13_351x441.png 424w, https://substackcdn.com/image/fetch/$s_!aEtG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f08ca95-011c-4b48-843e-6c67b44d0c13_351x441.png 848w, https://substackcdn.com/image/fetch/$s_!aEtG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f08ca95-011c-4b48-843e-6c67b44d0c13_351x441.png 1272w, https://substackcdn.com/image/fetch/$s_!aEtG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f08ca95-011c-4b48-843e-6c67b44d0c13_351x441.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aEtG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f08ca95-011c-4b48-843e-6c67b44d0c13_351x441.png" width="351" height="441" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5f08ca95-011c-4b48-843e-6c67b44d0c13_351x441.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:441,&quot;width&quot;:351,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:125773,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.amigoscode.com/i/160951011?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f08ca95-011c-4b48-843e-6c67b44d0c13_351x441.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!aEtG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f08ca95-011c-4b48-843e-6c67b44d0c13_351x441.png 424w, https://substackcdn.com/image/fetch/$s_!aEtG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f08ca95-011c-4b48-843e-6c67b44d0c13_351x441.png 848w, https://substackcdn.com/image/fetch/$s_!aEtG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f08ca95-011c-4b48-843e-6c67b44d0c13_351x441.png 1272w, https://substackcdn.com/image/fetch/$s_!aEtG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f08ca95-011c-4b48-843e-6c67b44d0c13_351x441.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p><strong>5. Learning SQL by Alan Beaulieu</strong></p><p>SQL is one of those things you <em>think</em> you know&#8212;until you actually need it. This book takes you from SELECT to Jedi.</p><p><strong>Why it's worth your time:</strong><br>It breaks down SQL in plain English, which is exactly what most tutorials forget to do. You&#8217;ll walk away knowing not just how to write queries, but why they work.</p><p><strong>Caveat:</strong><br>It sticks to relational databases, so if you&#8217;re deep into NoSQL land, it might not hit all the notes you want.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SNm2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9e0be19-5641-4af0-8e81-4d8d719e6d75_351x441.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SNm2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9e0be19-5641-4af0-8e81-4d8d719e6d75_351x441.png 424w, https://substackcdn.com/image/fetch/$s_!SNm2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9e0be19-5641-4af0-8e81-4d8d719e6d75_351x441.png 848w, https://substackcdn.com/image/fetch/$s_!SNm2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9e0be19-5641-4af0-8e81-4d8d719e6d75_351x441.png 1272w, https://substackcdn.com/image/fetch/$s_!SNm2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9e0be19-5641-4af0-8e81-4d8d719e6d75_351x441.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SNm2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9e0be19-5641-4af0-8e81-4d8d719e6d75_351x441.png" width="351" height="441" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c9e0be19-5641-4af0-8e81-4d8d719e6d75_351x441.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:441,&quot;width&quot;:351,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:118118,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.amigoscode.com/i/160951011?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9e0be19-5641-4af0-8e81-4d8d719e6d75_351x441.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!SNm2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9e0be19-5641-4af0-8e81-4d8d719e6d75_351x441.png 424w, https://substackcdn.com/image/fetch/$s_!SNm2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9e0be19-5641-4af0-8e81-4d8d719e6d75_351x441.png 848w, https://substackcdn.com/image/fetch/$s_!SNm2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9e0be19-5641-4af0-8e81-4d8d719e6d75_351x441.png 1272w, https://substackcdn.com/image/fetch/$s_!SNm2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9e0be19-5641-4af0-8e81-4d8d719e6d75_351x441.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://www.amigoscode.com/courses/up-and-running-with-sql">Click here for Free SQL Course</a></strong><a href="https://www.amigoscode.com/courses/up-and-running-with-sql"> </a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-xuU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fd75099-8476-4ca7-90e7-a26c0c29f01b_1094x591.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-xuU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fd75099-8476-4ca7-90e7-a26c0c29f01b_1094x591.png 424w, https://substackcdn.com/image/fetch/$s_!-xuU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fd75099-8476-4ca7-90e7-a26c0c29f01b_1094x591.png 848w, https://substackcdn.com/image/fetch/$s_!-xuU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fd75099-8476-4ca7-90e7-a26c0c29f01b_1094x591.png 1272w, https://substackcdn.com/image/fetch/$s_!-xuU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fd75099-8476-4ca7-90e7-a26c0c29f01b_1094x591.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-xuU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fd75099-8476-4ca7-90e7-a26c0c29f01b_1094x591.png" width="1094" height="591" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4fd75099-8476-4ca7-90e7-a26c0c29f01b_1094x591.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:591,&quot;width&quot;:1094,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:279192,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.amigoscode.com/i/160951011?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fd75099-8476-4ca7-90e7-a26c0c29f01b_1094x591.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-xuU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fd75099-8476-4ca7-90e7-a26c0c29f01b_1094x591.png 424w, https://substackcdn.com/image/fetch/$s_!-xuU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fd75099-8476-4ca7-90e7-a26c0c29f01b_1094x591.png 848w, https://substackcdn.com/image/fetch/$s_!-xuU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fd75099-8476-4ca7-90e7-a26c0c29f01b_1094x591.png 1272w, https://substackcdn.com/image/fetch/$s_!-xuU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fd75099-8476-4ca7-90e7-a26c0c29f01b_1094x591.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://www.amigoscode.com/roadmaps/databaseshttps://www.amigoscode.com/roadmaps/databases">Click here to learn more about this roadmap</a></strong></p><div><hr></div><p><strong>6. Clean Architecture by Robert C. Martin</strong></p><p>Yes, another Uncle Bob book. But hear me out: <em>Clean Code</em> is about writing good lines. <em>Clean Architecture</em> is about building good systems. And those are two different skills.</p><p><strong>The value:</strong><br>You&#8217;ll understand why decoupling matters, what &#8220;separation of concerns&#8221; actually means in practice, and how to structure projects that don&#8217;t melt down six months in.</p><p><strong>One thing to note:</strong><br>It&#8217;s abstract at times. Not a tutorial&#8212;more like a blueprint.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nlBm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe393b32c-5456-4d01-a9a2-4e908035dd36_351x441.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nlBm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe393b32c-5456-4d01-a9a2-4e908035dd36_351x441.png 424w, https://substackcdn.com/image/fetch/$s_!nlBm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe393b32c-5456-4d01-a9a2-4e908035dd36_351x441.png 848w, https://substackcdn.com/image/fetch/$s_!nlBm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe393b32c-5456-4d01-a9a2-4e908035dd36_351x441.png 1272w, https://substackcdn.com/image/fetch/$s_!nlBm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe393b32c-5456-4d01-a9a2-4e908035dd36_351x441.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nlBm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe393b32c-5456-4d01-a9a2-4e908035dd36_351x441.png" width="351" height="441" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e393b32c-5456-4d01-a9a2-4e908035dd36_351x441.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:441,&quot;width&quot;:351,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:169608,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.amigoscode.com/i/160951011?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe393b32c-5456-4d01-a9a2-4e908035dd36_351x441.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nlBm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe393b32c-5456-4d01-a9a2-4e908035dd36_351x441.png 424w, https://substackcdn.com/image/fetch/$s_!nlBm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe393b32c-5456-4d01-a9a2-4e908035dd36_351x441.png 848w, https://substackcdn.com/image/fetch/$s_!nlBm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe393b32c-5456-4d01-a9a2-4e908035dd36_351x441.png 1272w, https://substackcdn.com/image/fetch/$s_!nlBm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe393b32c-5456-4d01-a9a2-4e908035dd36_351x441.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p><strong>7. Designing Distributed Systems by Brendan Burns</strong></p><p>Microservices. Kubernetes. Containers. Buzzwords, right? But this book makes them real, with patterns that actually make sense.</p><p><strong>If you&#8217;re building for scale:</strong><br>This is your quick-start guide. It&#8217;s short, direct, and written by someone who helped <em>build Kubernetes</em>.</p><p><strong>Just know:</strong><br>It&#8217;s not super deep. Think &#8220;starter pack&#8221; more than PhD thesis.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DMbG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5560c65-f295-4df9-b616-f2c4fb76cdf8_351x441.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DMbG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5560c65-f295-4df9-b616-f2c4fb76cdf8_351x441.png 424w, https://substackcdn.com/image/fetch/$s_!DMbG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5560c65-f295-4df9-b616-f2c4fb76cdf8_351x441.png 848w, https://substackcdn.com/image/fetch/$s_!DMbG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5560c65-f295-4df9-b616-f2c4fb76cdf8_351x441.png 1272w, https://substackcdn.com/image/fetch/$s_!DMbG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5560c65-f295-4df9-b616-f2c4fb76cdf8_351x441.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DMbG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5560c65-f295-4df9-b616-f2c4fb76cdf8_351x441.png" width="351" height="441" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b5560c65-f295-4df9-b616-f2c4fb76cdf8_351x441.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:441,&quot;width&quot;:351,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:109914,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.amigoscode.com/i/160951011?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5560c65-f295-4df9-b616-f2c4fb76cdf8_351x441.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!DMbG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5560c65-f295-4df9-b616-f2c4fb76cdf8_351x441.png 424w, https://substackcdn.com/image/fetch/$s_!DMbG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5560c65-f295-4df9-b616-f2c4fb76cdf8_351x441.png 848w, https://substackcdn.com/image/fetch/$s_!DMbG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5560c65-f295-4df9-b616-f2c4fb76cdf8_351x441.png 1272w, https://substackcdn.com/image/fetch/$s_!DMbG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5560c65-f295-4df9-b616-f2c4fb76cdf8_351x441.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p><strong>8. DevOps Handbook</strong></p><p>You can&#8217;t ship fast if your pipeline is broken. This book explains why DevOps isn&#8217;t just tools and YAML&#8212;it&#8217;s about culture, collaboration, and continuous improvement.</p><p><strong>Why I recommend it:</strong><br>It&#8217;s packed with real case studies and gives you a clear roadmap for building better workflows, not just better code.</p><p><strong>Heads-up:</strong><br>Some sections are dense. Definitely a book you&#8217;ll read with a highlighter in hand.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Fwlt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cd49b82-5657-4e59-a5bf-bb5786d7a185_351x441.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Fwlt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cd49b82-5657-4e59-a5bf-bb5786d7a185_351x441.png 424w, https://substackcdn.com/image/fetch/$s_!Fwlt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cd49b82-5657-4e59-a5bf-bb5786d7a185_351x441.png 848w, https://substackcdn.com/image/fetch/$s_!Fwlt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cd49b82-5657-4e59-a5bf-bb5786d7a185_351x441.png 1272w, https://substackcdn.com/image/fetch/$s_!Fwlt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cd49b82-5657-4e59-a5bf-bb5786d7a185_351x441.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Fwlt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cd49b82-5657-4e59-a5bf-bb5786d7a185_351x441.png" width="351" height="441" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7cd49b82-5657-4e59-a5bf-bb5786d7a185_351x441.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:441,&quot;width&quot;:351,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:181393,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.amigoscode.com/i/160951011?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cd49b82-5657-4e59-a5bf-bb5786d7a185_351x441.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Fwlt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cd49b82-5657-4e59-a5bf-bb5786d7a185_351x441.png 424w, https://substackcdn.com/image/fetch/$s_!Fwlt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cd49b82-5657-4e59-a5bf-bb5786d7a185_351x441.png 848w, https://substackcdn.com/image/fetch/$s_!Fwlt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cd49b82-5657-4e59-a5bf-bb5786d7a185_351x441.png 1272w, https://substackcdn.com/image/fetch/$s_!Fwlt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cd49b82-5657-4e59-a5bf-bb5786d7a185_351x441.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p><strong>9. Code Complete by Steve McConnell</strong></p><p>This is the encyclopedia of software construction. If <em>Clean Code</em> is the starter kit, <em>Code Complete</em> is the full toolkit.</p><p><strong>You&#8217;ll learn about:</strong></p><ul><li><p>Naming things (yes, again)</p></li><li><p>Code organization</p></li><li><p>Defensive programming</p></li><li><p>The craft of building code that <em>just works</em></p></li></ul><p><strong>It&#8217;s huge.</strong><br>Seriously, this book is thick. But it&#8217;s worth every page.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SRzi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66fa0d6e-fe25-4591-98f6-b07dbfde6d27_351x441.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SRzi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66fa0d6e-fe25-4591-98f6-b07dbfde6d27_351x441.png 424w, https://substackcdn.com/image/fetch/$s_!SRzi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66fa0d6e-fe25-4591-98f6-b07dbfde6d27_351x441.png 848w, https://substackcdn.com/image/fetch/$s_!SRzi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66fa0d6e-fe25-4591-98f6-b07dbfde6d27_351x441.png 1272w, https://substackcdn.com/image/fetch/$s_!SRzi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66fa0d6e-fe25-4591-98f6-b07dbfde6d27_351x441.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SRzi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66fa0d6e-fe25-4591-98f6-b07dbfde6d27_351x441.png" width="351" height="441" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/66fa0d6e-fe25-4591-98f6-b07dbfde6d27_351x441.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:441,&quot;width&quot;:351,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:179933,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.amigoscode.com/i/160951011?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66fa0d6e-fe25-4591-98f6-b07dbfde6d27_351x441.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!SRzi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66fa0d6e-fe25-4591-98f6-b07dbfde6d27_351x441.png 424w, https://substackcdn.com/image/fetch/$s_!SRzi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66fa0d6e-fe25-4591-98f6-b07dbfde6d27_351x441.png 848w, https://substackcdn.com/image/fetch/$s_!SRzi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66fa0d6e-fe25-4591-98f6-b07dbfde6d27_351x441.png 1272w, https://substackcdn.com/image/fetch/$s_!SRzi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66fa0d6e-fe25-4591-98f6-b07dbfde6d27_351x441.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/p/9-books-every-software-engineer-should?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Amigoscode Newsletter! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/p/9-books-every-software-engineer-should?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.amigoscode.com/p/9-books-every-software-engineer-should?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p><p><strong>Final Thoughts</strong></p><p>Let&#8217;s be honest&#8212;no book is going to make you a great developer overnight. But the right one, read at the right time, can spark something big. It might help you debug not just your code, but how you think about solving problems.</p><p>So pick one. Read slowly. Take notes. Let it mess with your brain a little.</p><p>And when it does? You&#8217;ll know you&#8217;re onto something good.</p><p>Also there are other great books that I will share later.</p><div><hr></div><p>If you found this helpful and want more dev-friendly book recs, practical tech tips, or stories from the trenches, subscribe to the newsletter or check out our courses on <a href="http://amigoscode.com">amigoscode.com</a></p>]]></content:encoded></item><item><title><![CDATA[Git Crash Course]]></title><description><![CDATA[Key Concepts for Everyone]]></description><link>https://blog.amigoscode.com/p/git-crash-course</link><guid isPermaLink="false">https://blog.amigoscode.com/p/git-crash-course</guid><dc:creator><![CDATA[Mama Samba Braima Nelson Djalo]]></dc:creator><pubDate>Thu, 31 Oct 2024 17:58:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!j2my!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffd48cf0-788b-4d70-96f1-24b9be307a87_1200x1450.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Git is a powerful tool for developers, but getting started can be overwhelming. </p><p>In this crash course, we'll walk you through the fundamentals of Git, a distributed version control system that helps manage and track changes in source code during software development. Here&#8217;s what you need to know to get started.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!j2my!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffd48cf0-788b-4d70-96f1-24b9be307a87_1200x1450.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!j2my!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffd48cf0-788b-4d70-96f1-24b9be307a87_1200x1450.png 424w, https://substackcdn.com/image/fetch/$s_!j2my!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffd48cf0-788b-4d70-96f1-24b9be307a87_1200x1450.png 848w, https://substackcdn.com/image/fetch/$s_!j2my!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffd48cf0-788b-4d70-96f1-24b9be307a87_1200x1450.png 1272w, https://substackcdn.com/image/fetch/$s_!j2my!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffd48cf0-788b-4d70-96f1-24b9be307a87_1200x1450.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!j2my!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffd48cf0-788b-4d70-96f1-24b9be307a87_1200x1450.png" width="1200" height="1450" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ffd48cf0-788b-4d70-96f1-24b9be307a87_1200x1450.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1450,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:888816,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!j2my!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffd48cf0-788b-4d70-96f1-24b9be307a87_1200x1450.png 424w, https://substackcdn.com/image/fetch/$s_!j2my!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffd48cf0-788b-4d70-96f1-24b9be307a87_1200x1450.png 848w, https://substackcdn.com/image/fetch/$s_!j2my!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffd48cf0-788b-4d70-96f1-24b9be307a87_1200x1450.png 1272w, https://substackcdn.com/image/fetch/$s_!j2my!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffd48cf0-788b-4d70-96f1-24b9be307a87_1200x1450.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Amigoscode Newsletter is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>What is Git?</h3><p>Git is a version control system that allows multiple people to work on code collaboratively while keeping track of every change. It enables developers to experiment freely without risking the main <strong>codebase</strong> and provides a way to revert to previous versions if needed.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0Bg5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c51cb85-96ba-41d0-9aa2-7a0a7833e732_480x220.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0Bg5!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c51cb85-96ba-41d0-9aa2-7a0a7833e732_480x220.gif 424w, https://substackcdn.com/image/fetch/$s_!0Bg5!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c51cb85-96ba-41d0-9aa2-7a0a7833e732_480x220.gif 848w, https://substackcdn.com/image/fetch/$s_!0Bg5!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c51cb85-96ba-41d0-9aa2-7a0a7833e732_480x220.gif 1272w, https://substackcdn.com/image/fetch/$s_!0Bg5!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c51cb85-96ba-41d0-9aa2-7a0a7833e732_480x220.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0Bg5!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c51cb85-96ba-41d0-9aa2-7a0a7833e732_480x220.gif" width="480" height="220" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7c51cb85-96ba-41d0-9aa2-7a0a7833e732_480x220.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:220,&quot;width&quot;:480,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Code Coding GIF by EscuelaDevRock&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Code Coding GIF by EscuelaDevRock" title="Code Coding GIF by EscuelaDevRock" srcset="https://substackcdn.com/image/fetch/$s_!0Bg5!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c51cb85-96ba-41d0-9aa2-7a0a7833e732_480x220.gif 424w, https://substackcdn.com/image/fetch/$s_!0Bg5!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c51cb85-96ba-41d0-9aa2-7a0a7833e732_480x220.gif 848w, https://substackcdn.com/image/fetch/$s_!0Bg5!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c51cb85-96ba-41d0-9aa2-7a0a7833e732_480x220.gif 1272w, https://substackcdn.com/image/fetch/$s_!0Bg5!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c51cb85-96ba-41d0-9aa2-7a0a7833e732_480x220.gif 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><h3><strong>What is a Codebase?</strong></h3><p>A <strong>codebase</strong> is the complete collection of source code for a project or application. It includes all the files, scripts, libraries, and modules necessary to build, run, and maintain the software. Think of it as the entire "body" of code that developers work on to create, update, and improve a program.</p><p>For a typical project, the codebase might contain:</p><ul><li><p><strong>Source Code</strong>: The primary code written in languages like Java, Python, JavaScript, etc.</p></li><li><p><strong>Configuration Files</strong>: Settings and environment configurations that control how the software behaves in different environments.</p></li><li><p><strong>Libraries and Dependencies</strong>: External code and libraries the project relies on.</p></li><li><p><strong>Documentation</strong>: Descriptions of the code, setup instructions, and other notes to help developers understand the project.</p></li><li><p><strong>Tests</strong>: Code written to verify that the software works as expected.</p></li></ul><p>The codebase is stored in a <strong>repository</strong> (or repo), where version control tools like Git keep track of all changes, making it easier to manage, track progress, and collaborate with other developers.</p><h3><br>Question</h3><div class="poll-embed" data-attrs="{&quot;id&quot;:230337}" data-component-name="PollToDOM"></div><p></p><h3><br>Key Git Concepts<br></h3><h4>1. Repository</h4><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NJFX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb33b6b1f-3013-45b8-84b2-50dda2d6d07a_100x100.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NJFX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb33b6b1f-3013-45b8-84b2-50dda2d6d07a_100x100.png 424w, https://substackcdn.com/image/fetch/$s_!NJFX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb33b6b1f-3013-45b8-84b2-50dda2d6d07a_100x100.png 848w, https://substackcdn.com/image/fetch/$s_!NJFX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb33b6b1f-3013-45b8-84b2-50dda2d6d07a_100x100.png 1272w, https://substackcdn.com/image/fetch/$s_!NJFX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb33b6b1f-3013-45b8-84b2-50dda2d6d07a_100x100.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NJFX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb33b6b1f-3013-45b8-84b2-50dda2d6d07a_100x100.png" width="100" height="100" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b33b6b1f-3013-45b8-84b2-50dda2d6d07a_100x100.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:100,&quot;width&quot;:100,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3265,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!NJFX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb33b6b1f-3013-45b8-84b2-50dda2d6d07a_100x100.png 424w, https://substackcdn.com/image/fetch/$s_!NJFX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb33b6b1f-3013-45b8-84b2-50dda2d6d07a_100x100.png 848w, https://substackcdn.com/image/fetch/$s_!NJFX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb33b6b1f-3013-45b8-84b2-50dda2d6d07a_100x100.png 1272w, https://substackcdn.com/image/fetch/$s_!NJFX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb33b6b1f-3013-45b8-84b2-50dda2d6d07a_100x100.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>A Git repository (repo) is a collection of files and the entire history of changes made to those files. It&#8217;s like a folder that tracks the progress of your project over time, making it easier to manage versions and collaborate with others.</p><h4>2. Commit</h4><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3Xm-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe266ea7a-6eb2-4043-865b-d608eea39f0b_100x100.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3Xm-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe266ea7a-6eb2-4043-865b-d608eea39f0b_100x100.png 424w, https://substackcdn.com/image/fetch/$s_!3Xm-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe266ea7a-6eb2-4043-865b-d608eea39f0b_100x100.png 848w, https://substackcdn.com/image/fetch/$s_!3Xm-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe266ea7a-6eb2-4043-865b-d608eea39f0b_100x100.png 1272w, https://substackcdn.com/image/fetch/$s_!3Xm-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe266ea7a-6eb2-4043-865b-d608eea39f0b_100x100.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3Xm-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe266ea7a-6eb2-4043-865b-d608eea39f0b_100x100.png" width="100" height="100" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e266ea7a-6eb2-4043-865b-d608eea39f0b_100x100.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:100,&quot;width&quot;:100,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4527,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!3Xm-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe266ea7a-6eb2-4043-865b-d608eea39f0b_100x100.png 424w, https://substackcdn.com/image/fetch/$s_!3Xm-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe266ea7a-6eb2-4043-865b-d608eea39f0b_100x100.png 848w, https://substackcdn.com/image/fetch/$s_!3Xm-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe266ea7a-6eb2-4043-865b-d608eea39f0b_100x100.png 1272w, https://substackcdn.com/image/fetch/$s_!3Xm-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe266ea7a-6eb2-4043-865b-d608eea39f0b_100x100.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>A commit is a snapshot of changes made to files in your repository. Each commit represents a specific point in the project&#8217;s history. Think of it as a save point that records what your project looked like at a given time.</p><h4>3. Branch</h4><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZY3J!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fff388d-a6d1-4eb6-a246-423aea534859_100x100.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZY3J!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fff388d-a6d1-4eb6-a246-423aea534859_100x100.png 424w, https://substackcdn.com/image/fetch/$s_!ZY3J!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fff388d-a6d1-4eb6-a246-423aea534859_100x100.png 848w, https://substackcdn.com/image/fetch/$s_!ZY3J!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fff388d-a6d1-4eb6-a246-423aea534859_100x100.png 1272w, https://substackcdn.com/image/fetch/$s_!ZY3J!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fff388d-a6d1-4eb6-a246-423aea534859_100x100.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZY3J!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fff388d-a6d1-4eb6-a246-423aea534859_100x100.png" width="100" height="100" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8fff388d-a6d1-4eb6-a246-423aea534859_100x100.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:100,&quot;width&quot;:100,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2904,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ZY3J!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fff388d-a6d1-4eb6-a246-423aea534859_100x100.png 424w, https://substackcdn.com/image/fetch/$s_!ZY3J!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fff388d-a6d1-4eb6-a246-423aea534859_100x100.png 848w, https://substackcdn.com/image/fetch/$s_!ZY3J!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fff388d-a6d1-4eb6-a246-423aea534859_100x100.png 1272w, https://substackcdn.com/image/fetch/$s_!ZY3J!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fff388d-a6d1-4eb6-a246-423aea534859_100x100.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>A branch is an independent line of development. Branching allows you to work on features or fixes without affecting the main codebase. By working on branches, developers can try out ideas, fix bugs, or implement features without disrupting others.</p><h4>4. Merge</h4><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UYYh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49ccea1-fdfc-4795-8a82-5e69847985a0_90x90.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UYYh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49ccea1-fdfc-4795-8a82-5e69847985a0_90x90.png 424w, https://substackcdn.com/image/fetch/$s_!UYYh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49ccea1-fdfc-4795-8a82-5e69847985a0_90x90.png 848w, https://substackcdn.com/image/fetch/$s_!UYYh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49ccea1-fdfc-4795-8a82-5e69847985a0_90x90.png 1272w, https://substackcdn.com/image/fetch/$s_!UYYh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49ccea1-fdfc-4795-8a82-5e69847985a0_90x90.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UYYh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49ccea1-fdfc-4795-8a82-5e69847985a0_90x90.png" width="90" height="90" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f49ccea1-fdfc-4795-8a82-5e69847985a0_90x90.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:90,&quot;width&quot;:90,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2613,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!UYYh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49ccea1-fdfc-4795-8a82-5e69847985a0_90x90.png 424w, https://substackcdn.com/image/fetch/$s_!UYYh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49ccea1-fdfc-4795-8a82-5e69847985a0_90x90.png 848w, https://substackcdn.com/image/fetch/$s_!UYYh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49ccea1-fdfc-4795-8a82-5e69847985a0_90x90.png 1272w, https://substackcdn.com/image/fetch/$s_!UYYh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49ccea1-fdfc-4795-8a82-5e69847985a0_90x90.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Merging is the process of combining changes from different branches. When you finish working on a feature or fix, merging brings those changes back into the main branch (or any other branch), ensuring that everyone has access to the latest updates.</p><h4>5. Pull Request (PR)</h4><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xWaS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72fae23d-da20-436f-86f6-9f4cf33a03b6_90x90.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xWaS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72fae23d-da20-436f-86f6-9f4cf33a03b6_90x90.png 424w, https://substackcdn.com/image/fetch/$s_!xWaS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72fae23d-da20-436f-86f6-9f4cf33a03b6_90x90.png 848w, https://substackcdn.com/image/fetch/$s_!xWaS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72fae23d-da20-436f-86f6-9f4cf33a03b6_90x90.png 1272w, https://substackcdn.com/image/fetch/$s_!xWaS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72fae23d-da20-436f-86f6-9f4cf33a03b6_90x90.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xWaS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72fae23d-da20-436f-86f6-9f4cf33a03b6_90x90.png" width="90" height="90" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/72fae23d-da20-436f-86f6-9f4cf33a03b6_90x90.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:90,&quot;width&quot;:90,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2151,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xWaS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72fae23d-da20-436f-86f6-9f4cf33a03b6_90x90.png 424w, https://substackcdn.com/image/fetch/$s_!xWaS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72fae23d-da20-436f-86f6-9f4cf33a03b6_90x90.png 848w, https://substackcdn.com/image/fetch/$s_!xWaS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72fae23d-da20-436f-86f6-9f4cf33a03b6_90x90.png 1272w, https://substackcdn.com/image/fetch/$s_!xWaS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72fae23d-da20-436f-86f6-9f4cf33a03b6_90x90.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>A pull request is a proposal to merge changes from one branch into another. PRs allow team members to review and discuss code before it&#8217;s merged, improving code quality and facilitating collaboration. It's a vital part of collaborative Git workflows.</p><h4>6. Clone</h4><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!M3Jy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3526364d-cd5a-44dc-bc3e-2ffc04be2c02_90x90.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!M3Jy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3526364d-cd5a-44dc-bc3e-2ffc04be2c02_90x90.png 424w, https://substackcdn.com/image/fetch/$s_!M3Jy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3526364d-cd5a-44dc-bc3e-2ffc04be2c02_90x90.png 848w, https://substackcdn.com/image/fetch/$s_!M3Jy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3526364d-cd5a-44dc-bc3e-2ffc04be2c02_90x90.png 1272w, https://substackcdn.com/image/fetch/$s_!M3Jy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3526364d-cd5a-44dc-bc3e-2ffc04be2c02_90x90.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!M3Jy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3526364d-cd5a-44dc-bc3e-2ffc04be2c02_90x90.png" width="90" height="90" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3526364d-cd5a-44dc-bc3e-2ffc04be2c02_90x90.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:90,&quot;width&quot;:90,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5611,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!M3Jy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3526364d-cd5a-44dc-bc3e-2ffc04be2c02_90x90.png 424w, https://substackcdn.com/image/fetch/$s_!M3Jy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3526364d-cd5a-44dc-bc3e-2ffc04be2c02_90x90.png 848w, https://substackcdn.com/image/fetch/$s_!M3Jy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3526364d-cd5a-44dc-bc3e-2ffc04be2c02_90x90.png 1272w, https://substackcdn.com/image/fetch/$s_!M3Jy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3526364d-cd5a-44dc-bc3e-2ffc04be2c02_90x90.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Cloning creates a copy of a repository on your local machine. This way, you can work on the project offline and push your changes back to the main repository later.</p><h4>7. Push</h4><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tt6g!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6363e8f0-0dc6-453f-925e-384e1a409428_100x100.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tt6g!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6363e8f0-0dc6-453f-925e-384e1a409428_100x100.png 424w, https://substackcdn.com/image/fetch/$s_!tt6g!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6363e8f0-0dc6-453f-925e-384e1a409428_100x100.png 848w, https://substackcdn.com/image/fetch/$s_!tt6g!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6363e8f0-0dc6-453f-925e-384e1a409428_100x100.png 1272w, https://substackcdn.com/image/fetch/$s_!tt6g!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6363e8f0-0dc6-453f-925e-384e1a409428_100x100.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tt6g!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6363e8f0-0dc6-453f-925e-384e1a409428_100x100.png" width="100" height="100" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6363e8f0-0dc6-453f-925e-384e1a409428_100x100.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:100,&quot;width&quot;:100,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4325,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!tt6g!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6363e8f0-0dc6-453f-925e-384e1a409428_100x100.png 424w, https://substackcdn.com/image/fetch/$s_!tt6g!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6363e8f0-0dc6-453f-925e-384e1a409428_100x100.png 848w, https://substackcdn.com/image/fetch/$s_!tt6g!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6363e8f0-0dc6-453f-925e-384e1a409428_100x100.png 1272w, https://substackcdn.com/image/fetch/$s_!tt6g!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6363e8f0-0dc6-453f-925e-384e1a409428_100x100.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Pushing sends your local changes to a remote repository. Once you&#8217;ve committed changes locally, pushing updates the remote repository with your latest work, making it accessible to other team members.</p><h4>8. Pull</h4><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!041Q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98701405-b4d7-445f-8305-d65aa4523ee5_100x100.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!041Q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98701405-b4d7-445f-8305-d65aa4523ee5_100x100.png 424w, https://substackcdn.com/image/fetch/$s_!041Q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98701405-b4d7-445f-8305-d65aa4523ee5_100x100.png 848w, https://substackcdn.com/image/fetch/$s_!041Q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98701405-b4d7-445f-8305-d65aa4523ee5_100x100.png 1272w, https://substackcdn.com/image/fetch/$s_!041Q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98701405-b4d7-445f-8305-d65aa4523ee5_100x100.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!041Q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98701405-b4d7-445f-8305-d65aa4523ee5_100x100.png" width="100" height="100" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/98701405-b4d7-445f-8305-d65aa4523ee5_100x100.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:100,&quot;width&quot;:100,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3634,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!041Q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98701405-b4d7-445f-8305-d65aa4523ee5_100x100.png 424w, https://substackcdn.com/image/fetch/$s_!041Q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98701405-b4d7-445f-8305-d65aa4523ee5_100x100.png 848w, https://substackcdn.com/image/fetch/$s_!041Q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98701405-b4d7-445f-8305-d65aa4523ee5_100x100.png 1272w, https://substackcdn.com/image/fetch/$s_!041Q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98701405-b4d7-445f-8305-d65aa4523ee5_100x100.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Pulling fetches changes from a remote repository to your local machine. If someone else has made updates to the codebase, pulling ensures your local copy reflects the latest version.</p><h4>9. Conflict</h4><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OIkO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b673c68-ba45-499d-9d7c-c7a90804c235_100x100.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OIkO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b673c68-ba45-499d-9d7c-c7a90804c235_100x100.png 424w, https://substackcdn.com/image/fetch/$s_!OIkO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b673c68-ba45-499d-9d7c-c7a90804c235_100x100.png 848w, https://substackcdn.com/image/fetch/$s_!OIkO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b673c68-ba45-499d-9d7c-c7a90804c235_100x100.png 1272w, https://substackcdn.com/image/fetch/$s_!OIkO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b673c68-ba45-499d-9d7c-c7a90804c235_100x100.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OIkO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b673c68-ba45-499d-9d7c-c7a90804c235_100x100.png" width="100" height="100" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9b673c68-ba45-499d-9d7c-c7a90804c235_100x100.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:100,&quot;width&quot;:100,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5955,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!OIkO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b673c68-ba45-499d-9d7c-c7a90804c235_100x100.png 424w, https://substackcdn.com/image/fetch/$s_!OIkO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b673c68-ba45-499d-9d7c-c7a90804c235_100x100.png 848w, https://substackcdn.com/image/fetch/$s_!OIkO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b673c68-ba45-499d-9d7c-c7a90804c235_100x100.png 1272w, https://substackcdn.com/image/fetch/$s_!OIkO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b673c68-ba45-499d-9d7c-c7a90804c235_100x100.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>A conflict occurs when Git can&#8217;t automatically merge changes from different branches. This usually happens when two people edit the same part of a file. Conflicts require manual resolution, where developers decide which changes to keep.<br></p><div><hr></div><p></p><p>Understanding these basic Git concepts is essential for effective collaboration and version control in software development. Whether you're just starting or looking to sharpen your Git skills, grasping these fundamentals will help you navigate Git repositories and work more efficiently with your team.</p><p></p><h4>What about me?</h4><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Xe1r!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7efeffc2-a12a-4149-9536-2ec3eb35692a_490x425.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Xe1r!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7efeffc2-a12a-4149-9536-2ec3eb35692a_490x425.gif 424w, https://substackcdn.com/image/fetch/$s_!Xe1r!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7efeffc2-a12a-4149-9536-2ec3eb35692a_490x425.gif 848w, https://substackcdn.com/image/fetch/$s_!Xe1r!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7efeffc2-a12a-4149-9536-2ec3eb35692a_490x425.gif 1272w, https://substackcdn.com/image/fetch/$s_!Xe1r!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7efeffc2-a12a-4149-9536-2ec3eb35692a_490x425.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Xe1r!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7efeffc2-a12a-4149-9536-2ec3eb35692a_490x425.gif" width="242" height="209.89795918367346" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7efeffc2-a12a-4149-9536-2ec3eb35692a_490x425.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:425,&quot;width&quot;:490,&quot;resizeWidth&quot;:242,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Xe1r!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7efeffc2-a12a-4149-9536-2ec3eb35692a_490x425.gif 424w, https://substackcdn.com/image/fetch/$s_!Xe1r!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7efeffc2-a12a-4149-9536-2ec3eb35692a_490x425.gif 848w, https://substackcdn.com/image/fetch/$s_!Xe1r!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7efeffc2-a12a-4149-9536-2ec3eb35692a_490x425.gif 1272w, https://substackcdn.com/image/fetch/$s_!Xe1r!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7efeffc2-a12a-4149-9536-2ec3eb35692a_490x425.gif 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>I talk about you later&#8230;</p><p>Happy coding Amigos </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Amigoscode Newsletter is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/p/git-crash-course?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption"></p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/p/git-crash-course?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.amigoscode.com/p/git-crash-course?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[11 Data Structures Every Developer Should Know]]></title><description><![CDATA[Master These 11 Data Structures to Excel in Programming and System Design]]></description><link>https://blog.amigoscode.com/p/11-data-structures-every-developer</link><guid isPermaLink="false">https://blog.amigoscode.com/p/11-data-structures-every-developer</guid><dc:creator><![CDATA[Mama Samba Braima Nelson Djalo]]></dc:creator><pubDate>Thu, 24 Oct 2024 16:06:22 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!vKMR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2375df97-a230-4695-bb71-f2b18fc2e3e6_800x991.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If you're a software developer, data structures are your bread and butter. They're the fundamental building blocks of efficient algorithms and system design. Whether you're preparing for coding interviews, optimising your code, or working on complex applications, understanding how to use and implement data structures is essential.</p><p>In this blog post, we&#8217;ll break down <strong>11 data structures</strong> that every developer should be familiar with. These structures are not only common in interviews but are also crucial for writing efficient and scalable code in real-world applications.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vKMR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2375df97-a230-4695-bb71-f2b18fc2e3e6_800x991.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vKMR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2375df97-a230-4695-bb71-f2b18fc2e3e6_800x991.gif 424w, https://substackcdn.com/image/fetch/$s_!vKMR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2375df97-a230-4695-bb71-f2b18fc2e3e6_800x991.gif 848w, https://substackcdn.com/image/fetch/$s_!vKMR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2375df97-a230-4695-bb71-f2b18fc2e3e6_800x991.gif 1272w, https://substackcdn.com/image/fetch/$s_!vKMR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2375df97-a230-4695-bb71-f2b18fc2e3e6_800x991.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vKMR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2375df97-a230-4695-bb71-f2b18fc2e3e6_800x991.gif" width="800" height="991" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2375df97-a230-4695-bb71-f2b18fc2e3e6_800x991.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:991,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3782481,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vKMR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2375df97-a230-4695-bb71-f2b18fc2e3e6_800x991.gif 424w, https://substackcdn.com/image/fetch/$s_!vKMR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2375df97-a230-4695-bb71-f2b18fc2e3e6_800x991.gif 848w, https://substackcdn.com/image/fetch/$s_!vKMR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2375df97-a230-4695-bb71-f2b18fc2e3e6_800x991.gif 1272w, https://substackcdn.com/image/fetch/$s_!vKMR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2375df97-a230-4695-bb71-f2b18fc2e3e6_800x991.gif 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Amigoscode Newsletter is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><h3>1. Array</h3><p>An array is one of the most basic and commonly used data structures. It stores elements in a contiguous block of memory and allows for fast access via indices. Each element in an array is located at an index number, which provides direct access to retrieve or update an element.</p><p><strong>Use Case:</strong> Arrays are ideal for storing lists of elements that require constant-time access and modification. However, resizing arrays can be costly, and inserting or deleting elements from the middle of an array requires shifting elements.</p><p><strong>Example:</strong> A list of numbers <code>[48, 2, 79, 100, 88, 77]</code> stored in an array allows you to quickly access any value using its index, such as <code>array[2]</code> to access <code>79</code>.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Icbn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd53c8b4a-72cf-4638-84a9-7ed4fe438f08_544x200.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Icbn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd53c8b4a-72cf-4638-84a9-7ed4fe438f08_544x200.png 424w, https://substackcdn.com/image/fetch/$s_!Icbn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd53c8b4a-72cf-4638-84a9-7ed4fe438f08_544x200.png 848w, https://substackcdn.com/image/fetch/$s_!Icbn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd53c8b4a-72cf-4638-84a9-7ed4fe438f08_544x200.png 1272w, https://substackcdn.com/image/fetch/$s_!Icbn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd53c8b4a-72cf-4638-84a9-7ed4fe438f08_544x200.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Icbn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd53c8b4a-72cf-4638-84a9-7ed4fe438f08_544x200.png" width="544" height="200" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d53c8b4a-72cf-4638-84a9-7ed4fe438f08_544x200.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:200,&quot;width&quot;:544,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:29836,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Icbn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd53c8b4a-72cf-4638-84a9-7ed4fe438f08_544x200.png 424w, https://substackcdn.com/image/fetch/$s_!Icbn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd53c8b4a-72cf-4638-84a9-7ed4fe438f08_544x200.png 848w, https://substackcdn.com/image/fetch/$s_!Icbn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd53c8b4a-72cf-4638-84a9-7ed4fe438f08_544x200.png 1272w, https://substackcdn.com/image/fetch/$s_!Icbn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd53c8b4a-72cf-4638-84a9-7ed4fe438f08_544x200.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p></p><h3>2. 2D Array</h3><p>A 2D array, also known as a matrix, is an array of arrays. It is used to represent data in a grid format, with rows and columns.</p><p><strong>Use Case:</strong> Common applications of 2D arrays include representing images, game boards, and matrices in mathematical operations.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_JYl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11c055d6-98e9-47d9-9aed-46862d175950_353x310.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_JYl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11c055d6-98e9-47d9-9aed-46862d175950_353x310.png 424w, https://substackcdn.com/image/fetch/$s_!_JYl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11c055d6-98e9-47d9-9aed-46862d175950_353x310.png 848w, https://substackcdn.com/image/fetch/$s_!_JYl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11c055d6-98e9-47d9-9aed-46862d175950_353x310.png 1272w, https://substackcdn.com/image/fetch/$s_!_JYl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11c055d6-98e9-47d9-9aed-46862d175950_353x310.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_JYl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11c055d6-98e9-47d9-9aed-46862d175950_353x310.png" width="353" height="310" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/11c055d6-98e9-47d9-9aed-46862d175950_353x310.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:310,&quot;width&quot;:353,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:29299,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_JYl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11c055d6-98e9-47d9-9aed-46862d175950_353x310.png 424w, https://substackcdn.com/image/fetch/$s_!_JYl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11c055d6-98e9-47d9-9aed-46862d175950_353x310.png 848w, https://substackcdn.com/image/fetch/$s_!_JYl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11c055d6-98e9-47d9-9aed-46862d175950_353x310.png 1272w, https://substackcdn.com/image/fetch/$s_!_JYl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11c055d6-98e9-47d9-9aed-46862d175950_353x310.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h3>3. Queue</h3><p>A queue is a First In, First Out (FIFO) data structure. In a queue, elements are inserted at the rear (back) and removed from the front. It&#8217;s ideal for scenarios where you need to process tasks in the order they arrive.</p><p><strong>Use Case:</strong> Queues are useful in scenarios like task scheduling, handling requests in servers, or breadth-first search in graphs.</p><p><strong>Example:</strong> In a task scheduler, tasks are added to the back of the queue, and the scheduler processes them from the front.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xpxm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d79c88f-8575-4d88-ba75-857040186490_544x200.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xpxm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d79c88f-8575-4d88-ba75-857040186490_544x200.png 424w, https://substackcdn.com/image/fetch/$s_!xpxm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d79c88f-8575-4d88-ba75-857040186490_544x200.png 848w, https://substackcdn.com/image/fetch/$s_!xpxm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d79c88f-8575-4d88-ba75-857040186490_544x200.png 1272w, https://substackcdn.com/image/fetch/$s_!xpxm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d79c88f-8575-4d88-ba75-857040186490_544x200.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xpxm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d79c88f-8575-4d88-ba75-857040186490_544x200.png" width="544" height="200" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9d79c88f-8575-4d88-ba75-857040186490_544x200.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:200,&quot;width&quot;:544,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:9627,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xpxm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d79c88f-8575-4d88-ba75-857040186490_544x200.png 424w, https://substackcdn.com/image/fetch/$s_!xpxm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d79c88f-8575-4d88-ba75-857040186490_544x200.png 848w, https://substackcdn.com/image/fetch/$s_!xpxm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d79c88f-8575-4d88-ba75-857040186490_544x200.png 1272w, https://substackcdn.com/image/fetch/$s_!xpxm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d79c88f-8575-4d88-ba75-857040186490_544x200.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p></p><h3>4. Stack</h3><p>A stack is a Last In, First Out (LIFO) structure where elements are added and removed from the top. It&#8217;s like a stack of books where you can only take from or add to the top.</p><p><strong>Use Case:</strong> Stacks are used in scenarios such as undo operations in text editors, parsing expressions, or managing function calls (call stacks) in programming.</p><p><strong>Example:</strong> When you hit "undo" in a text editor, the last action is removed from the stack of operations.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lPc5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd059421-8546-4c69-8d9d-7da745e2e50f_353x310.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lPc5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd059421-8546-4c69-8d9d-7da745e2e50f_353x310.png 424w, https://substackcdn.com/image/fetch/$s_!lPc5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd059421-8546-4c69-8d9d-7da745e2e50f_353x310.png 848w, https://substackcdn.com/image/fetch/$s_!lPc5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd059421-8546-4c69-8d9d-7da745e2e50f_353x310.png 1272w, https://substackcdn.com/image/fetch/$s_!lPc5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd059421-8546-4c69-8d9d-7da745e2e50f_353x310.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lPc5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd059421-8546-4c69-8d9d-7da745e2e50f_353x310.png" width="353" height="310" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fd059421-8546-4c69-8d9d-7da745e2e50f_353x310.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:310,&quot;width&quot;:353,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:7631,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lPc5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd059421-8546-4c69-8d9d-7da745e2e50f_353x310.png 424w, https://substackcdn.com/image/fetch/$s_!lPc5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd059421-8546-4c69-8d9d-7da745e2e50f_353x310.png 848w, https://substackcdn.com/image/fetch/$s_!lPc5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd059421-8546-4c69-8d9d-7da745e2e50f_353x310.png 1272w, https://substackcdn.com/image/fetch/$s_!lPc5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd059421-8546-4c69-8d9d-7da745e2e50f_353x310.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Question &#10067;</h3><div class="poll-embed" data-attrs="{&quot;id&quot;:227644}" data-component-name="PollToDOM"></div><p></p><h3>5. Graph</h3><p>A graph consists of vertices (nodes) and edges (connections between the nodes). Graphs are used to represent relationships or networks where connections between entities are important.</p><p><strong>Use Case:</strong> Graphs are widely used in networking, social media, and routing algorithms. They are essential for problems involving relationships, such as finding the shortest path between two points or modeling connections between people.</p><p><strong>Example:</strong> A social network can be modeled as a graph, with users as nodes and friendships as edges.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-SPj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff57063dd-19f8-4e07-8dd7-d6b59be43824_353x310.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-SPj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff57063dd-19f8-4e07-8dd7-d6b59be43824_353x310.png 424w, https://substackcdn.com/image/fetch/$s_!-SPj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff57063dd-19f8-4e07-8dd7-d6b59be43824_353x310.png 848w, https://substackcdn.com/image/fetch/$s_!-SPj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff57063dd-19f8-4e07-8dd7-d6b59be43824_353x310.png 1272w, https://substackcdn.com/image/fetch/$s_!-SPj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff57063dd-19f8-4e07-8dd7-d6b59be43824_353x310.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-SPj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff57063dd-19f8-4e07-8dd7-d6b59be43824_353x310.png" width="353" height="310" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f57063dd-19f8-4e07-8dd7-d6b59be43824_353x310.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:310,&quot;width&quot;:353,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:14053,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-SPj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff57063dd-19f8-4e07-8dd7-d6b59be43824_353x310.png 424w, https://substackcdn.com/image/fetch/$s_!-SPj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff57063dd-19f8-4e07-8dd7-d6b59be43824_353x310.png 848w, https://substackcdn.com/image/fetch/$s_!-SPj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff57063dd-19f8-4e07-8dd7-d6b59be43824_353x310.png 1272w, https://substackcdn.com/image/fetch/$s_!-SPj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff57063dd-19f8-4e07-8dd7-d6b59be43824_353x310.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>6. Tree</h3><p>A tree is a hierarchical structure consisting of nodes. Each node has a value and can have children nodes, forming branches. The topmost node is the root, and nodes without children are leaves.</p><p><strong>Use Case:</strong> Trees are useful in representing hierarchical relationships such as file directories, organizational charts, and more.</p><p><strong>Example:</strong> A tree can represent a family hierarchy, with the root being the ancestor and branches leading to descendants.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xGHs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F762806ba-919b-49d5-9027-f370680d4129_353x310.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xGHs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F762806ba-919b-49d5-9027-f370680d4129_353x310.png 424w, https://substackcdn.com/image/fetch/$s_!xGHs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F762806ba-919b-49d5-9027-f370680d4129_353x310.png 848w, https://substackcdn.com/image/fetch/$s_!xGHs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F762806ba-919b-49d5-9027-f370680d4129_353x310.png 1272w, https://substackcdn.com/image/fetch/$s_!xGHs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F762806ba-919b-49d5-9027-f370680d4129_353x310.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xGHs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F762806ba-919b-49d5-9027-f370680d4129_353x310.png" width="353" height="310" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/762806ba-919b-49d5-9027-f370680d4129_353x310.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:310,&quot;width&quot;:353,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:22476,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xGHs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F762806ba-919b-49d5-9027-f370680d4129_353x310.png 424w, https://substackcdn.com/image/fetch/$s_!xGHs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F762806ba-919b-49d5-9027-f370680d4129_353x310.png 848w, https://substackcdn.com/image/fetch/$s_!xGHs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F762806ba-919b-49d5-9027-f370680d4129_353x310.png 1272w, https://substackcdn.com/image/fetch/$s_!xGHs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F762806ba-919b-49d5-9027-f370680d4129_353x310.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>7. Linked List</h3><p>A linked list is a linear data structure where each element (called a node) contains a value and a reference (or pointer) to the next node in the sequence. Unlike arrays, linked lists do not require contiguous memory and can grow or shrink dynamically.</p><p><strong>Use Case:</strong> Linked lists are useful for scenarios where you expect frequent insertions or deletions, especially in the middle of a list.</p><p><strong>Example:</strong> Imagine a music playlist where you can add or remove songs dynamically, and each song is linked to the next.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MQug!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c1910db-0881-4673-b6bd-0a1405a114d7_1119x200.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MQug!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c1910db-0881-4673-b6bd-0a1405a114d7_1119x200.png 424w, https://substackcdn.com/image/fetch/$s_!MQug!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c1910db-0881-4673-b6bd-0a1405a114d7_1119x200.png 848w, https://substackcdn.com/image/fetch/$s_!MQug!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c1910db-0881-4673-b6bd-0a1405a114d7_1119x200.png 1272w, https://substackcdn.com/image/fetch/$s_!MQug!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c1910db-0881-4673-b6bd-0a1405a114d7_1119x200.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MQug!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c1910db-0881-4673-b6bd-0a1405a114d7_1119x200.png" width="1119" height="200" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4c1910db-0881-4673-b6bd-0a1405a114d7_1119x200.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:200,&quot;width&quot;:1119,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:12909,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!MQug!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c1910db-0881-4673-b6bd-0a1405a114d7_1119x200.png 424w, https://substackcdn.com/image/fetch/$s_!MQug!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c1910db-0881-4673-b6bd-0a1405a114d7_1119x200.png 848w, https://substackcdn.com/image/fetch/$s_!MQug!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c1910db-0881-4673-b6bd-0a1405a114d7_1119x200.png 1272w, https://substackcdn.com/image/fetch/$s_!MQug!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c1910db-0881-4673-b6bd-0a1405a114d7_1119x200.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p></p><h3>8. Trie</h3><p>A trie (pronounced "try") is a tree-like data structure used to store strings. It is often used in scenarios where efficient retrieval of a prefix or word is needed, such as in search engines and dictionaries.</p><p><strong>Use Case:</strong> Tries are useful for autocomplete systems or search suggestions, where you need to quickly find words with a common prefix.</p><p><strong>Example:</strong> In an autocomplete feature, when a user types "cat," the trie can quickly suggest words like "catapult" or "catalog."</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IdBG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ec315db-86e9-4a6a-90bf-14ad55087e35_353x310.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IdBG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ec315db-86e9-4a6a-90bf-14ad55087e35_353x310.png 424w, https://substackcdn.com/image/fetch/$s_!IdBG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ec315db-86e9-4a6a-90bf-14ad55087e35_353x310.png 848w, https://substackcdn.com/image/fetch/$s_!IdBG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ec315db-86e9-4a6a-90bf-14ad55087e35_353x310.png 1272w, https://substackcdn.com/image/fetch/$s_!IdBG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ec315db-86e9-4a6a-90bf-14ad55087e35_353x310.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IdBG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ec315db-86e9-4a6a-90bf-14ad55087e35_353x310.png" width="353" height="310" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9ec315db-86e9-4a6a-90bf-14ad55087e35_353x310.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:310,&quot;width&quot;:353,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:21484,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!IdBG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ec315db-86e9-4a6a-90bf-14ad55087e35_353x310.png 424w, https://substackcdn.com/image/fetch/$s_!IdBG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ec315db-86e9-4a6a-90bf-14ad55087e35_353x310.png 848w, https://substackcdn.com/image/fetch/$s_!IdBG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ec315db-86e9-4a6a-90bf-14ad55087e35_353x310.png 1272w, https://substackcdn.com/image/fetch/$s_!IdBG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ec315db-86e9-4a6a-90bf-14ad55087e35_353x310.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h3>9. HashMap</h3><p>A HashMap (or hash table) is a data structure that stores key-value pairs. It uses a hash function to compute an index into an array of buckets from which the desired value can be found.</p><p><strong>Use Case:</strong> HashMaps are perfect for fast lookups by key, such as in caching, database indexing, or counting occurrences of elements.</p><p><strong>Example:</strong> Imagine storing a dictionary where words are the keys and their definitions are the values. A HashMap allows you to quickly find the definition of any word.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!S8hn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff052124f-892b-4bd6-bbec-4d58c70db335_544x200.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!S8hn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff052124f-892b-4bd6-bbec-4d58c70db335_544x200.png 424w, https://substackcdn.com/image/fetch/$s_!S8hn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff052124f-892b-4bd6-bbec-4d58c70db335_544x200.png 848w, https://substackcdn.com/image/fetch/$s_!S8hn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff052124f-892b-4bd6-bbec-4d58c70db335_544x200.png 1272w, https://substackcdn.com/image/fetch/$s_!S8hn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff052124f-892b-4bd6-bbec-4d58c70db335_544x200.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!S8hn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff052124f-892b-4bd6-bbec-4d58c70db335_544x200.png" width="544" height="200" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f052124f-892b-4bd6-bbec-4d58c70db335_544x200.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:200,&quot;width&quot;:544,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:18159,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!S8hn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff052124f-892b-4bd6-bbec-4d58c70db335_544x200.png 424w, https://substackcdn.com/image/fetch/$s_!S8hn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff052124f-892b-4bd6-bbec-4d58c70db335_544x200.png 848w, https://substackcdn.com/image/fetch/$s_!S8hn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff052124f-892b-4bd6-bbec-4d58c70db335_544x200.png 1272w, https://substackcdn.com/image/fetch/$s_!S8hn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff052124f-892b-4bd6-bbec-4d58c70db335_544x200.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p></p><h3>10. HashSet</h3><p>A HashSet is a collection of unique elements. Like a HashMap, it uses a hash function to map elements to buckets, but only stores values, ensuring no duplicates are present.</p><p><strong>Use Case:</strong> HashSets are great when you need to maintain a collection of distinct elements and ensure fast lookups to check if an item is present.</p><p><strong>Example:</strong> A set of unique user IDs for an application could be stored in a HashSet to ensure that no duplicates exist.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!I_U1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1475775c-f9e5-4397-9113-adfb0da9b6b5_544x200.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!I_U1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1475775c-f9e5-4397-9113-adfb0da9b6b5_544x200.png 424w, https://substackcdn.com/image/fetch/$s_!I_U1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1475775c-f9e5-4397-9113-adfb0da9b6b5_544x200.png 848w, https://substackcdn.com/image/fetch/$s_!I_U1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1475775c-f9e5-4397-9113-adfb0da9b6b5_544x200.png 1272w, https://substackcdn.com/image/fetch/$s_!I_U1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1475775c-f9e5-4397-9113-adfb0da9b6b5_544x200.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!I_U1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1475775c-f9e5-4397-9113-adfb0da9b6b5_544x200.png" width="544" height="200" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1475775c-f9e5-4397-9113-adfb0da9b6b5_544x200.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:200,&quot;width&quot;:544,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:11959,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!I_U1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1475775c-f9e5-4397-9113-adfb0da9b6b5_544x200.png 424w, https://substackcdn.com/image/fetch/$s_!I_U1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1475775c-f9e5-4397-9113-adfb0da9b6b5_544x200.png 848w, https://substackcdn.com/image/fetch/$s_!I_U1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1475775c-f9e5-4397-9113-adfb0da9b6b5_544x200.png 1272w, https://substackcdn.com/image/fetch/$s_!I_U1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1475775c-f9e5-4397-9113-adfb0da9b6b5_544x200.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p></p><h3>11. Max Heap</h3><p>A max heap is a special tree-based data structure where each parent node is greater than its children. The largest element is always at the root. Max heaps are commonly used in priority queues.</p><p><strong>Use Case:</strong> Max heaps are ideal for scenarios where you need to maintain the largest (or highest-priority) element at the top, such as job scheduling systems or finding the kth largest element in a dataset.</p><p>Understanding these fundamental data structures is essential for every developer, whether you're preparing for coding interviews or building efficient software. Mastery of these concepts will help you write more optimized and effective code.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sQcs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f01b39c-4db5-4d50-abc5-dbaa9fdc06d2_353x310.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sQcs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f01b39c-4db5-4d50-abc5-dbaa9fdc06d2_353x310.png 424w, https://substackcdn.com/image/fetch/$s_!sQcs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f01b39c-4db5-4d50-abc5-dbaa9fdc06d2_353x310.png 848w, https://substackcdn.com/image/fetch/$s_!sQcs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f01b39c-4db5-4d50-abc5-dbaa9fdc06d2_353x310.png 1272w, https://substackcdn.com/image/fetch/$s_!sQcs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f01b39c-4db5-4d50-abc5-dbaa9fdc06d2_353x310.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sQcs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f01b39c-4db5-4d50-abc5-dbaa9fdc06d2_353x310.png" width="353" height="310" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2f01b39c-4db5-4d50-abc5-dbaa9fdc06d2_353x310.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:310,&quot;width&quot;:353,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:22353,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!sQcs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f01b39c-4db5-4d50-abc5-dbaa9fdc06d2_353x310.png 424w, https://substackcdn.com/image/fetch/$s_!sQcs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f01b39c-4db5-4d50-abc5-dbaa9fdc06d2_353x310.png 848w, https://substackcdn.com/image/fetch/$s_!sQcs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f01b39c-4db5-4d50-abc5-dbaa9fdc06d2_353x310.png 1272w, https://substackcdn.com/image/fetch/$s_!sQcs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f01b39c-4db5-4d50-abc5-dbaa9fdc06d2_353x310.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p></p><h3>Bonus</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DyvK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85c70d15-07b5-43a0-b57c-2b0c76291478_2400x3014.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DyvK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85c70d15-07b5-43a0-b57c-2b0c76291478_2400x3014.png 424w, https://substackcdn.com/image/fetch/$s_!DyvK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85c70d15-07b5-43a0-b57c-2b0c76291478_2400x3014.png 848w, https://substackcdn.com/image/fetch/$s_!DyvK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85c70d15-07b5-43a0-b57c-2b0c76291478_2400x3014.png 1272w, https://substackcdn.com/image/fetch/$s_!DyvK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85c70d15-07b5-43a0-b57c-2b0c76291478_2400x3014.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DyvK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85c70d15-07b5-43a0-b57c-2b0c76291478_2400x3014.png" width="1456" height="1828" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/85c70d15-07b5-43a0-b57c-2b0c76291478_2400x3014.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1828,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2591178,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!DyvK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85c70d15-07b5-43a0-b57c-2b0c76291478_2400x3014.png 424w, https://substackcdn.com/image/fetch/$s_!DyvK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85c70d15-07b5-43a0-b57c-2b0c76291478_2400x3014.png 848w, https://substackcdn.com/image/fetch/$s_!DyvK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85c70d15-07b5-43a0-b57c-2b0c76291478_2400x3014.png 1272w, https://substackcdn.com/image/fetch/$s_!DyvK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85c70d15-07b5-43a0-b57c-2b0c76291478_2400x3014.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div>]]></content:encoded></item><item><title><![CDATA[Spring Security Architecture Explained]]></title><description><![CDATA[Unlocking the Layers of Security in Spring Boot Applications]]></description><link>https://blog.amigoscode.com/p/spring-security-architecture-explained</link><guid isPermaLink="false">https://blog.amigoscode.com/p/spring-security-architecture-explained</guid><dc:creator><![CDATA[Mama Samba Braima Nelson Djalo]]></dc:creator><pubDate>Thu, 17 Oct 2024 16:58:10 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!hnmN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F610c2bdd-9f59-4239-85cf-c4aa40434c46_1200x1487.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In today's world of rapidly evolving cybersecurity threats, protecting your application from unauthorized access is paramount. </p><p>Spring Security, a powerful and flexible framework, plays a critical role in securing Spring Boot applications. </p><p>Whether you're dealing with traditional username/password authentication, JWT tokens, or other custom mechanisms, Spring Security provides the necessary tools to handle authentication and authorization seamlessly.</p><p>In this blog, we'll dive into the <strong>Spring Security architecture</strong>, exploring how various components like the <strong>Security Filter Chain</strong>, <strong>AuthenticationManager</strong>, and <strong>Authentication Providers</strong> work together to secure your application. </p><h1>Diagram</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hnmN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F610c2bdd-9f59-4239-85cf-c4aa40434c46_1200x1487.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hnmN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F610c2bdd-9f59-4239-85cf-c4aa40434c46_1200x1487.png 424w, https://substackcdn.com/image/fetch/$s_!hnmN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F610c2bdd-9f59-4239-85cf-c4aa40434c46_1200x1487.png 848w, https://substackcdn.com/image/fetch/$s_!hnmN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F610c2bdd-9f59-4239-85cf-c4aa40434c46_1200x1487.png 1272w, https://substackcdn.com/image/fetch/$s_!hnmN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F610c2bdd-9f59-4239-85cf-c4aa40434c46_1200x1487.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hnmN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F610c2bdd-9f59-4239-85cf-c4aa40434c46_1200x1487.png" width="1200" height="1487" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/610c2bdd-9f59-4239-85cf-c4aa40434c46_1200x1487.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1487,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:896136,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!hnmN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F610c2bdd-9f59-4239-85cf-c4aa40434c46_1200x1487.png 424w, https://substackcdn.com/image/fetch/$s_!hnmN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F610c2bdd-9f59-4239-85cf-c4aa40434c46_1200x1487.png 848w, https://substackcdn.com/image/fetch/$s_!hnmN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F610c2bdd-9f59-4239-85cf-c4aa40434c46_1200x1487.png 1272w, https://substackcdn.com/image/fetch/$s_!hnmN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F610c2bdd-9f59-4239-85cf-c4aa40434c46_1200x1487.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div class="poll-embed" data-attrs="{&quot;id&quot;:224956}" data-component-name="PollToDOM"></div><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Amigoscode Newsletter is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><h3>1. <strong>Client Request</strong></h3><ul><li><p>A user or client makes a request to the application, usually to access a protected resource.</p></li><li><p>This request is processed by a chain of <strong>Security Filters</strong>.</p></li></ul><h3>2. <strong>Security Filter Chain</strong></h3><ul><li><p><strong>Security Filter A, B, ... N</strong>: These are different filters that apply to the incoming request, where each filter can handle specific types of security logic (like CORS, CSRF protection, and more).</p></li><li><p>One of these filters is responsible for authenticating the user.</p></li></ul><h3>3. <strong>Authentication Flow</strong></h3><ul><li><p><strong>UsernamePassword Authentication Token</strong>: This token represents the user's credentials (username and password) and is passed to the authentication logic.</p></li><li><p>The authentication logic checks if the user credentials are valid. This typically involves checking a database or other identity source.</p></li></ul><h3>4. <strong>AuthenticationManager / ProviderManager</strong></h3><ul><li><p>The <strong>AuthenticationManager</strong> or <strong>ProviderManager</strong> manages the overall authentication process. It delegates the authentication request to different <strong>Authentication Providers</strong> based on the type of authentication required.</p></li></ul><h3>5. <strong>Authentication Providers</strong></h3><ul><li><p><strong>JWTAuthentication Provider</strong>: If you're using JWT (JSON Web Token) for authentication, this provider handles the verification of JWT tokens.</p></li><li><p><strong>DaoAuthentication Provider</strong>: This provider handles traditional authentication using a database, checking user credentials against stored data (e.g., in a relational database).</p></li><li><p><strong>Other Providers (Authentication Provider N)</strong>: You can define multiple custom authentication providers if your application supports multiple methods of authentication (e.g., OAuth2, LDAP).</p></li></ul><h3>6. <strong>UserDetailsService</strong></h3><ul><li><p>The <strong>UserDetailsService</strong> is responsible for loading user-specific data, typically by looking up the user&#8217;s details from a database (using the <strong>DaoAuthenticationProvider</strong>).</p></li><li><p>The <strong>PasswordEncoder</strong> ensures that passwords are securely encoded (hashed) before they are compared during the authentication process.</p></li></ul><h3>7. <strong>SecurityContext &amp; JWT Authentication Filter</strong></h3><ul><li><p>If the user is successfully authenticated, the <strong>SecurityContext</strong> is updated to store the user&#8217;s authentication status.</p></li><li><p>The <strong>JWT Authentication Filter</strong> is responsible for handling JWT tokens, ensuring that valid tokens allow access to protected resources.</p></li></ul><h3>8. <strong>Authentication Request/Response</strong></h3><ul><li><p>Once the authentication is performed by the filters and providers, an <strong>Authentication Request</strong> is sent to the backend.</p></li><li><p>After validation, an <strong>Authentication Response</strong> is returned, which could contain the authentication token (such as a JWT), allowing the client to access secure resources in subsequent requests.</p></li></ul><h3>9. <strong>SecurityContextHeader</strong></h3><ul><li><p>The <strong>SecurityContextHeader</strong> encapsulates important security information like the user&#8217;s <strong>Principal</strong> (authenticated user), <strong>Credentials</strong> (such as the password or token), and <strong>Authorities</strong> (permissions or roles).</p></li><li><p>These fields include:</p><ul><li><p><code>getAuthorities()</code>: Fetches the roles or permissions granted to the user.</p></li><li><p><code>getPassword()</code>, <code>getUsername()</code>: Standard user details.</p></li><li><p><code>isAccountNonExpired()</code>, <code>isAccountNonLocked()</code>, <code>isCredentialsNonExpired()</code>, <code>isEnabled()</code>: These are checks to ensure the user account is in good standing (not expired, locked, etc.).</p><p></p></li></ul></li></ul><div><hr></div><p></p><p>Whether you're just starting with Spring Security or optimizing an existing system, mastering this architecture will empower you to deliver secure and reliable applications. If you&#8217;re ready to take your application security to the next level, implementing these concepts is a great place to start!</p><p></p><div><hr></div><h1>Bonus</h1><h2>21 Java Bean Annotations</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!j1oM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e17d4d8-8069-4b4f-a126-3bcc4484dcad_2400x3024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!j1oM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e17d4d8-8069-4b4f-a126-3bcc4484dcad_2400x3024.png 424w, https://substackcdn.com/image/fetch/$s_!j1oM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e17d4d8-8069-4b4f-a126-3bcc4484dcad_2400x3024.png 848w, https://substackcdn.com/image/fetch/$s_!j1oM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e17d4d8-8069-4b4f-a126-3bcc4484dcad_2400x3024.png 1272w, https://substackcdn.com/image/fetch/$s_!j1oM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e17d4d8-8069-4b4f-a126-3bcc4484dcad_2400x3024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!j1oM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e17d4d8-8069-4b4f-a126-3bcc4484dcad_2400x3024.png" width="1456" height="1835" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0e17d4d8-8069-4b4f-a126-3bcc4484dcad_2400x3024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1835,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2526641,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!j1oM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e17d4d8-8069-4b4f-a126-3bcc4484dcad_2400x3024.png 424w, https://substackcdn.com/image/fetch/$s_!j1oM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e17d4d8-8069-4b4f-a126-3bcc4484dcad_2400x3024.png 848w, https://substackcdn.com/image/fetch/$s_!j1oM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e17d4d8-8069-4b4f-a126-3bcc4484dcad_2400x3024.png 1272w, https://substackcdn.com/image/fetch/$s_!j1oM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e17d4d8-8069-4b4f-a126-3bcc4484dcad_2400x3024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Amigoscode Newsletter is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Essential Annotations Every Spring Developer Should Know]]></title><description><![CDATA[Understanding Key Annotations for Simplified Development]]></description><link>https://blog.amigoscode.com/p/essential-annotations-every-spring</link><guid isPermaLink="false">https://blog.amigoscode.com/p/essential-annotations-every-spring</guid><dc:creator><![CDATA[Mama Samba Braima Nelson Djalo]]></dc:creator><pubDate>Tue, 08 Oct 2024 16:03:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!2A1d!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c3ef633-a5eb-4264-ae2c-7797ffed8a18_595x842.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>Spring Boot</strong> is a powerful framework that simplifies Java application development by providing various annotations. </p><p>These annotations help configure components, manage dependencies, and define behavior in a clear and concise manner. In this blog post, we will explore some of the most commonly used Spring Boot annotations and their purposes.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2A1d!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c3ef633-a5eb-4264-ae2c-7797ffed8a18_595x842.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2A1d!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c3ef633-a5eb-4264-ae2c-7797ffed8a18_595x842.gif 424w, https://substackcdn.com/image/fetch/$s_!2A1d!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c3ef633-a5eb-4264-ae2c-7797ffed8a18_595x842.gif 848w, https://substackcdn.com/image/fetch/$s_!2A1d!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c3ef633-a5eb-4264-ae2c-7797ffed8a18_595x842.gif 1272w, https://substackcdn.com/image/fetch/$s_!2A1d!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c3ef633-a5eb-4264-ae2c-7797ffed8a18_595x842.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2A1d!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c3ef633-a5eb-4264-ae2c-7797ffed8a18_595x842.gif" width="595" height="842" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8c3ef633-a5eb-4264-ae2c-7797ffed8a18_595x842.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:842,&quot;width&quot;:595,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2824332,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!2A1d!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c3ef633-a5eb-4264-ae2c-7797ffed8a18_595x842.gif 424w, https://substackcdn.com/image/fetch/$s_!2A1d!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c3ef633-a5eb-4264-ae2c-7797ffed8a18_595x842.gif 848w, https://substackcdn.com/image/fetch/$s_!2A1d!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c3ef633-a5eb-4264-ae2c-7797ffed8a18_595x842.gif 1272w, https://substackcdn.com/image/fetch/$s_!2A1d!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c3ef633-a5eb-4264-ae2c-7797ffed8a18_595x842.gif 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1><br>Annotations</h1><h3>1. @SpringBootApplication</h3><p>The @SpringBootApplication annotation is a key entry point for Spring Boot applications. It combines three essential annotations:</p><ul><li><p><code>@Configuration</code>: Indicates that the class can be used by the Spring IoC container as a source of bean definitions.</p></li><li><p><code>@EnableAutoConfiguration</code>: Enables Spring Boot&#8217;s auto-configuration feature, which automatically configures your application based on the dependencies in the classpath.</p></li><li><p><code>@ComponentScan</code>: Allows Spring to scan for components, configurations, and services in the specified packages.</p></li></ul><h3>2. @EnableAutoConfiguration</h3><p>The <code>@EnableAutoConfiguration</code> annotation automatically configures your Spring application based on the classpath and other beans. It eliminates the need for manual configuration, allowing developers to focus on building features rather than configuring the framework.</p><h3>3. @SpringBootConfiguration</h3><p>This annotation indicates that a class provides Spring Boot-specific configurations. It acts as a specialized form of the <code>@Configuration</code> annotation, making it clear that the class is intended for Spring Boot applications.</p><h3>4. @ComponentScan</h3><p>The <code>@ComponentScan</code> annotation specifies the packages that Spring should scan for components, configurations, and services. This helps in organizing your code and managing dependencies efficiently.</p><h3>5. @RestController and @Controller</h3><p>These annotations are used for defining web controllers in Spring MVC:</p><ul><li><p><code>@RestController</code>: Combines <code>@Controller</code> and <code>@ResponseBody</code>, indicating that the controller methods will return data directly in the response body.</p></li><li><p><code>@Controller</code>: Used to define a traditional MVC controller that returns views.</p></li></ul><h3>6. @ResponseBody</h3><p>The <code>@ResponseBody</code> annotation indicates that the return type of a method should be written directly to the HTTP response body. It is commonly used in RESTful web services to return JSON or XML data.</p><h3>7. @PathVariable and @RequestParam</h3><p>These annotations are used to bind method parameters to URL variables and request parameters:</p><ul><li><p><code>@PathVariable</code>: Binds a method parameter to a URI template variable.</p></li><li><p><code>@RequestParam</code>: Binds a method parameter to a request parameter.</p><p></p></li></ul><div><hr></div><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Amigoscode Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h1></h1><div><hr></div><h1><br>Question &#129300;</h1><div class="poll-embed" data-attrs="{&quot;id&quot;:221620}" data-component-name="PollToDOM"></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/p/essential-annotations-every-spring/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.amigoscode.com/p/essential-annotations-every-spring/comments"><span>Leave a comment</span></a></p><p></p><div><hr></div><p></p><h3><br>8. @Component, @Service, and @Repository</h3><p>These annotations designate classes as Spring-managed components:</p><ul><li><p><code>@Component</code>: A generic stereotype for any Spring-managed component.</p></li><li><p><code>@Service</code>: Indicates that a class provides business logic and services.</p></li><li><p><code>@Repository</code>: Marks a class as a Data Access Object (DAO) that interacts with the database.</p></li></ul><h3>9. @Autowired</h3><p>The <code>@Autowired</code> annotation marks a constructor, field, setter method, or configuration method for autowiring. It allows Spring to automatically resolve and inject the appropriate beans, simplifying dependency management.</p><h3>10. @Qualifier</h3><p>The <code>@Qualifier</code> annotation specifies which bean to autowire when multiple candidates exist. It helps avoid ambiguity in cases where multiple beans of the same type are present.</p><h3>11. @Primary</h3><p>The <code>@Primary</code> annotation indicates that a bean should be given preference when multiple beans of the same type are available for autowiring.</p><h3>12. @Bean</h3><p>The <code>@Bean</code> annotation declares a method that produces a bean managed by the Spring container. This allows for explicit bean creation and configuration.</p><h3>13. @ConfigurationProperties</h3><p>This annotation binds and validates external configurations to a configuration object. It simplifies the management of application properties.</p><h3>14. @Conditional</h3><p>The <code>@Conditional</code> annotation conditionally includes or excludes parts of the configuration based on certain conditions. This is useful for defining environment-specific configurations.</p><h3>15. @Scheduled</h3><p>The <code>@Scheduled</code> annotation marks a method to be run at periodic intervals, allowing for easy scheduling of tasks within your application.</p><h3>16. @Value</h3><p>The <code>@Value</code> annotation injects values into configuration parameters from property files or environment variables. It allows for dynamic configuration management.</p><h3>17. @PropertySource</h3><p>The <code>@PropertySource</code> annotation specifies a location for properties to be added to Spring&#8217;s environment. It allows for the externalization of configuration.</p><h3>18. @Profile</h3><p>The <code>@Profile</code> annotation indicates that a component is eligible for registration when certain profiles are active. This is useful for defining environment-specific beans.</p><h3>19. Testing Annotations</h3><p>Spring Boot provides various annotations for testing, such as:</p><ul><li><p><code>@SpringBootTest</code>: Used for integration testing of Spring Boot applications.</p></li><li><p><code>@DataJpaTest</code>: Used for testing JPA repositories.</p></li><li><p><code>@WebMvcTest</code>: Used for testing Spring MVC controllers.</p></li></ul><p></p><p>There are other annotations but generally speaking these are the main ones. If you are using Spring Data JPA there are a few more but I will cover them in the next post.<br></p><p>Happy Coding &#129309;</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Amigoscode Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><p></p>]]></content:encoded></item><item><title><![CDATA[Mircroservices Best Practices]]></title><description><![CDATA[Mastering Microservices: Key Practices for Success]]></description><link>https://blog.amigoscode.com/p/mircroservices-best-practices</link><guid isPermaLink="false">https://blog.amigoscode.com/p/mircroservices-best-practices</guid><dc:creator><![CDATA[Mama Samba Braima Nelson Djalo]]></dc:creator><pubDate>Thu, 05 Sep 2024 16:29:35 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!bISW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf6e8032-a8eb-448d-ae09-c5612463e977_2400x3162.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Microservices architecture has become the go-to solution for building scalable, flexible, and resilient applications. Unlike monolithic applications, microservices break down functionalities into small, independent services, each responsible for a specific feature or function. </p><p>This architecture empowers teams to work in parallel, increases the agility of development, and enhances fault tolerance. </p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bISW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf6e8032-a8eb-448d-ae09-c5612463e977_2400x3162.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bISW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf6e8032-a8eb-448d-ae09-c5612463e977_2400x3162.png 424w, https://substackcdn.com/image/fetch/$s_!bISW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf6e8032-a8eb-448d-ae09-c5612463e977_2400x3162.png 848w, https://substackcdn.com/image/fetch/$s_!bISW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf6e8032-a8eb-448d-ae09-c5612463e977_2400x3162.png 1272w, https://substackcdn.com/image/fetch/$s_!bISW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf6e8032-a8eb-448d-ae09-c5612463e977_2400x3162.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bISW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf6e8032-a8eb-448d-ae09-c5612463e977_2400x3162.png" width="1456" height="1918" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cf6e8032-a8eb-448d-ae09-c5612463e977_2400x3162.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1918,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1500100,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!bISW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf6e8032-a8eb-448d-ae09-c5612463e977_2400x3162.png 424w, https://substackcdn.com/image/fetch/$s_!bISW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf6e8032-a8eb-448d-ae09-c5612463e977_2400x3162.png 848w, https://substackcdn.com/image/fetch/$s_!bISW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf6e8032-a8eb-448d-ae09-c5612463e977_2400x3162.png 1272w, https://substackcdn.com/image/fetch/$s_!bISW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf6e8032-a8eb-448d-ae09-c5612463e977_2400x3162.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div><hr></div><p><br>Before we start I just want to let you know that we <strong>Amigoscode</strong> have officially launched <strong><a href="https://portfolly.io/">Portfolly</a></strong>. The one-click portfolio builder for developers.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KNhm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4ffb5d0-e8d0-4b07-a3ef-71ee06c6c681_800x571.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KNhm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4ffb5d0-e8d0-4b07-a3ef-71ee06c6c681_800x571.gif 424w, https://substackcdn.com/image/fetch/$s_!KNhm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4ffb5d0-e8d0-4b07-a3ef-71ee06c6c681_800x571.gif 848w, https://substackcdn.com/image/fetch/$s_!KNhm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4ffb5d0-e8d0-4b07-a3ef-71ee06c6c681_800x571.gif 1272w, https://substackcdn.com/image/fetch/$s_!KNhm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4ffb5d0-e8d0-4b07-a3ef-71ee06c6c681_800x571.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KNhm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4ffb5d0-e8d0-4b07-a3ef-71ee06c6c681_800x571.gif" width="800" height="571" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c4ffb5d0-e8d0-4b07-a3ef-71ee06c6c681_800x571.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:571,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4376158,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!KNhm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4ffb5d0-e8d0-4b07-a3ef-71ee06c6c681_800x571.gif 424w, https://substackcdn.com/image/fetch/$s_!KNhm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4ffb5d0-e8d0-4b07-a3ef-71ee06c6c681_800x571.gif 848w, https://substackcdn.com/image/fetch/$s_!KNhm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4ffb5d0-e8d0-4b07-a3ef-71ee06c6c681_800x571.gif 1272w, https://substackcdn.com/image/fetch/$s_!KNhm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4ffb5d0-e8d0-4b07-a3ef-71ee06c6c681_800x571.gif 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://app.portfolly.io/&quot;,&quot;text&quot;:&quot;Get yours now &#128640;&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://app.portfolly.io/"><span>Get yours now &#128640;</span></a></p><p></p><div><hr></div><p></p><p>Before we start quick question &#128064;</p><div class="poll-embed" data-attrs="{&quot;id&quot;:210208}" data-component-name="PollToDOM"></div><p>I personally start with Monolithic first. I&#8217;ll explain why in a separate blog.</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Amigoscode Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div><hr></div><p></p><p>Alright, lets start.</p><p><br>1. <strong>Docker</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QMW8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb79f33-576b-4d76-96fa-830de1dbd1e8_381x334.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QMW8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb79f33-576b-4d76-96fa-830de1dbd1e8_381x334.png 424w, https://substackcdn.com/image/fetch/$s_!QMW8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb79f33-576b-4d76-96fa-830de1dbd1e8_381x334.png 848w, https://substackcdn.com/image/fetch/$s_!QMW8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb79f33-576b-4d76-96fa-830de1dbd1e8_381x334.png 1272w, https://substackcdn.com/image/fetch/$s_!QMW8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb79f33-576b-4d76-96fa-830de1dbd1e8_381x334.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QMW8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb79f33-576b-4d76-96fa-830de1dbd1e8_381x334.png" width="381" height="334" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4bb79f33-576b-4d76-96fa-830de1dbd1e8_381x334.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:334,&quot;width&quot;:381,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:83917,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!QMW8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb79f33-576b-4d76-96fa-830de1dbd1e8_381x334.png 424w, https://substackcdn.com/image/fetch/$s_!QMW8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb79f33-576b-4d76-96fa-830de1dbd1e8_381x334.png 848w, https://substackcdn.com/image/fetch/$s_!QMW8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb79f33-576b-4d76-96fa-830de1dbd1e8_381x334.png 1272w, https://substackcdn.com/image/fetch/$s_!QMW8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb79f33-576b-4d76-96fa-830de1dbd1e8_381x334.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>Docker is a key tool for microservices. It packages each service into containers, ensuring consistency across multiple environments (development, testing, production). By using Docker, developers can package a microservice, along with all its dependencies, into a single container image that can run anywhere. The Docker Daemon manages these containers and uses a registry to store and retrieve container images.</p><p></p><h3>2. <strong>Container Orchestration (Kubernetes)</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IbUv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05680881-946b-4e3f-b048-4c57cb2e149b_381x333.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IbUv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05680881-946b-4e3f-b048-4c57cb2e149b_381x333.png 424w, https://substackcdn.com/image/fetch/$s_!IbUv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05680881-946b-4e3f-b048-4c57cb2e149b_381x333.png 848w, https://substackcdn.com/image/fetch/$s_!IbUv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05680881-946b-4e3f-b048-4c57cb2e149b_381x333.png 1272w, https://substackcdn.com/image/fetch/$s_!IbUv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05680881-946b-4e3f-b048-4c57cb2e149b_381x333.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IbUv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05680881-946b-4e3f-b048-4c57cb2e149b_381x333.png" width="381" height="333" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/05680881-946b-4e3f-b048-4c57cb2e149b_381x333.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:333,&quot;width&quot;:381,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:101754,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!IbUv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05680881-946b-4e3f-b048-4c57cb2e149b_381x333.png 424w, https://substackcdn.com/image/fetch/$s_!IbUv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05680881-946b-4e3f-b048-4c57cb2e149b_381x333.png 848w, https://substackcdn.com/image/fetch/$s_!IbUv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05680881-946b-4e3f-b048-4c57cb2e149b_381x333.png 1272w, https://substackcdn.com/image/fetch/$s_!IbUv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05680881-946b-4e3f-b048-4c57cb2e149b_381x333.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>As the number of microservices grows, managing them manually becomes complex. Container orchestration platforms, such as <strong>Kubernetes</strong>, automate the deployment, scaling, and management of containerized applications. Kubernetes manages multiple containerized services by running them across nodes in a cluster.</p><p></p><h3>3. <strong>Caching</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aodZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4f0a171-d256-4ad0-9d07-ef28c1f78f27_381x334.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aodZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4f0a171-d256-4ad0-9d07-ef28c1f78f27_381x334.png 424w, https://substackcdn.com/image/fetch/$s_!aodZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4f0a171-d256-4ad0-9d07-ef28c1f78f27_381x334.png 848w, https://substackcdn.com/image/fetch/$s_!aodZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4f0a171-d256-4ad0-9d07-ef28c1f78f27_381x334.png 1272w, https://substackcdn.com/image/fetch/$s_!aodZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4f0a171-d256-4ad0-9d07-ef28c1f78f27_381x334.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aodZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4f0a171-d256-4ad0-9d07-ef28c1f78f27_381x334.png" width="381" height="334" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c4f0a171-d256-4ad0-9d07-ef28c1f78f27_381x334.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:334,&quot;width&quot;:381,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:79346,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!aodZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4f0a171-d256-4ad0-9d07-ef28c1f78f27_381x334.png 424w, https://substackcdn.com/image/fetch/$s_!aodZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4f0a171-d256-4ad0-9d07-ef28c1f78f27_381x334.png 848w, https://substackcdn.com/image/fetch/$s_!aodZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4f0a171-d256-4ad0-9d07-ef28c1f78f27_381x334.png 1272w, https://substackcdn.com/image/fetch/$s_!aodZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4f0a171-d256-4ad0-9d07-ef28c1f78f27_381x334.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Microservices can benefit significantly from caching strategies to improve performance and reduce latency. In this architecture, caching systems like <strong>Redis</strong> or <strong>Memcached</strong> can be used to store frequently accessed data, reducing the load on the database.</p><p></p><p></p><h3>4. <strong>Single Database per Service</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IL5P!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60ce48e0-20b7-4bee-821a-e8ebc58ff576_381x333.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IL5P!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60ce48e0-20b7-4bee-821a-e8ebc58ff576_381x333.png 424w, https://substackcdn.com/image/fetch/$s_!IL5P!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60ce48e0-20b7-4bee-821a-e8ebc58ff576_381x333.png 848w, https://substackcdn.com/image/fetch/$s_!IL5P!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60ce48e0-20b7-4bee-821a-e8ebc58ff576_381x333.png 1272w, https://substackcdn.com/image/fetch/$s_!IL5P!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60ce48e0-20b7-4bee-821a-e8ebc58ff576_381x333.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IL5P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60ce48e0-20b7-4bee-821a-e8ebc58ff576_381x333.png" width="381" height="333" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/60ce48e0-20b7-4bee-821a-e8ebc58ff576_381x333.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:333,&quot;width&quot;:381,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:92526,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!IL5P!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60ce48e0-20b7-4bee-821a-e8ebc58ff576_381x333.png 424w, https://substackcdn.com/image/fetch/$s_!IL5P!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60ce48e0-20b7-4bee-821a-e8ebc58ff576_381x333.png 848w, https://substackcdn.com/image/fetch/$s_!IL5P!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60ce48e0-20b7-4bee-821a-e8ebc58ff576_381x333.png 1272w, https://substackcdn.com/image/fetch/$s_!IL5P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60ce48e0-20b7-4bee-821a-e8ebc58ff576_381x333.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>To ensure that each microservice remains independent, it's a good practice to give each one its own database. While microservices can communicate with each other, their databases should not be shared to maintain service autonomy. Each service should manage its data, ensuring that any issues in one database won&#8217;t affect others.</p><p></p><h3>5. <strong>Distributed Tracing</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JenS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45e8ef49-b4ae-409d-8354-420aa45a3364_380x333.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JenS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45e8ef49-b4ae-409d-8354-420aa45a3364_380x333.png 424w, https://substackcdn.com/image/fetch/$s_!JenS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45e8ef49-b4ae-409d-8354-420aa45a3364_380x333.png 848w, https://substackcdn.com/image/fetch/$s_!JenS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45e8ef49-b4ae-409d-8354-420aa45a3364_380x333.png 1272w, https://substackcdn.com/image/fetch/$s_!JenS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45e8ef49-b4ae-409d-8354-420aa45a3364_380x333.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JenS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45e8ef49-b4ae-409d-8354-420aa45a3364_380x333.png" width="380" height="333" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/45e8ef49-b4ae-409d-8354-420aa45a3364_380x333.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:333,&quot;width&quot;:380,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:85037,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!JenS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45e8ef49-b4ae-409d-8354-420aa45a3364_380x333.png 424w, https://substackcdn.com/image/fetch/$s_!JenS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45e8ef49-b4ae-409d-8354-420aa45a3364_380x333.png 848w, https://substackcdn.com/image/fetch/$s_!JenS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45e8ef49-b4ae-409d-8354-420aa45a3364_380x333.png 1272w, https://substackcdn.com/image/fetch/$s_!JenS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45e8ef49-b4ae-409d-8354-420aa45a3364_380x333.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In a microservices architecture, requests often traverse multiple services, making it difficult to track and debug issues. <strong>Distributed tracing</strong> helps track requests as they move through various services. By tagging requests with trace IDs, you can monitor and analyze how long each service takes to process requests.</p><h3><br>6. <strong>Monitoring and Tracing</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KKeI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F460b8376-72c4-4a0a-a28b-4c920dee1f34_381x333.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KKeI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F460b8376-72c4-4a0a-a28b-4c920dee1f34_381x333.png 424w, https://substackcdn.com/image/fetch/$s_!KKeI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F460b8376-72c4-4a0a-a28b-4c920dee1f34_381x333.png 848w, https://substackcdn.com/image/fetch/$s_!KKeI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F460b8376-72c4-4a0a-a28b-4c920dee1f34_381x333.png 1272w, https://substackcdn.com/image/fetch/$s_!KKeI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F460b8376-72c4-4a0a-a28b-4c920dee1f34_381x333.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KKeI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F460b8376-72c4-4a0a-a28b-4c920dee1f34_381x333.png" width="381" height="333" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/460b8376-72c4-4a0a-a28b-4c920dee1f34_381x333.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:333,&quot;width&quot;:381,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:77095,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!KKeI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F460b8376-72c4-4a0a-a28b-4c920dee1f34_381x333.png 424w, https://substackcdn.com/image/fetch/$s_!KKeI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F460b8376-72c4-4a0a-a28b-4c920dee1f34_381x333.png 848w, https://substackcdn.com/image/fetch/$s_!KKeI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F460b8376-72c4-4a0a-a28b-4c920dee1f34_381x333.png 1272w, https://substackcdn.com/image/fetch/$s_!KKeI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F460b8376-72c4-4a0a-a28b-4c920dee1f34_381x333.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In addition to tracing requests, it&#8217;s vital to monitor both the health and performance of microservices. Monitoring tools like <strong>Prometheus</strong> and <strong>Grafana</strong> provide insights into resource consumption, error rates, and service health, while <strong>tracing tools</strong> help you understand inter-service dependencies.</p><h3><br>7. <strong>Logging</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WZvc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8eea59b9-acc8-4cb4-9b1d-bf727955d354_381x334.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WZvc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8eea59b9-acc8-4cb4-9b1d-bf727955d354_381x334.png 424w, https://substackcdn.com/image/fetch/$s_!WZvc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8eea59b9-acc8-4cb4-9b1d-bf727955d354_381x334.png 848w, https://substackcdn.com/image/fetch/$s_!WZvc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8eea59b9-acc8-4cb4-9b1d-bf727955d354_381x334.png 1272w, https://substackcdn.com/image/fetch/$s_!WZvc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8eea59b9-acc8-4cb4-9b1d-bf727955d354_381x334.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WZvc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8eea59b9-acc8-4cb4-9b1d-bf727955d354_381x334.png" width="381" height="334" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8eea59b9-acc8-4cb4-9b1d-bf727955d354_381x334.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:334,&quot;width&quot;:381,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:87323,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WZvc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8eea59b9-acc8-4cb4-9b1d-bf727955d354_381x334.png 424w, https://substackcdn.com/image/fetch/$s_!WZvc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8eea59b9-acc8-4cb4-9b1d-bf727955d354_381x334.png 848w, https://substackcdn.com/image/fetch/$s_!WZvc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8eea59b9-acc8-4cb4-9b1d-bf727955d354_381x334.png 1272w, https://substackcdn.com/image/fetch/$s_!WZvc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8eea59b9-acc8-4cb4-9b1d-bf727955d354_381x334.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Effective logging is crucial for diagnosing issues, especially in a distributed architecture. Centralized logging platforms like <strong>ELK Stack</strong> (Elasticsearch, Logstash, and Kibana) or <strong>Graylog</strong> aggregate logs from various microservices, making it easier to trace issues across different services.</p><h3><br>8. <strong>Event Bus</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TxTg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25724a6f-1b2a-4728-b9e1-b1abd7151af3_380x334.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TxTg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25724a6f-1b2a-4728-b9e1-b1abd7151af3_380x334.png 424w, https://substackcdn.com/image/fetch/$s_!TxTg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25724a6f-1b2a-4728-b9e1-b1abd7151af3_380x334.png 848w, https://substackcdn.com/image/fetch/$s_!TxTg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25724a6f-1b2a-4728-b9e1-b1abd7151af3_380x334.png 1272w, https://substackcdn.com/image/fetch/$s_!TxTg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25724a6f-1b2a-4728-b9e1-b1abd7151af3_380x334.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TxTg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25724a6f-1b2a-4728-b9e1-b1abd7151af3_380x334.png" width="380" height="334" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/25724a6f-1b2a-4728-b9e1-b1abd7151af3_380x334.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:334,&quot;width&quot;:380,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:73986,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!TxTg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25724a6f-1b2a-4728-b9e1-b1abd7151af3_380x334.png 424w, https://substackcdn.com/image/fetch/$s_!TxTg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25724a6f-1b2a-4728-b9e1-b1abd7151af3_380x334.png 848w, https://substackcdn.com/image/fetch/$s_!TxTg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25724a6f-1b2a-4728-b9e1-b1abd7151af3_380x334.png 1272w, https://substackcdn.com/image/fetch/$s_!TxTg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25724a6f-1b2a-4728-b9e1-b1abd7151af3_380x334.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Microservices often need to communicate asynchronously. An <strong>Event Bus</strong> facilitates this by allowing services to emit and consume events without being tightly coupled. Tools like <strong>Kafka</strong> or <strong>RabbitMQ</strong> enable event-driven communication between services.</p><h3><br>9. <strong>Service Discovery</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fkp1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d2c401e-1d78-4594-945e-c121c6e977fe_381x334.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fkp1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d2c401e-1d78-4594-945e-c121c6e977fe_381x334.png 424w, https://substackcdn.com/image/fetch/$s_!fkp1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d2c401e-1d78-4594-945e-c121c6e977fe_381x334.png 848w, https://substackcdn.com/image/fetch/$s_!fkp1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d2c401e-1d78-4594-945e-c121c6e977fe_381x334.png 1272w, https://substackcdn.com/image/fetch/$s_!fkp1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d2c401e-1d78-4594-945e-c121c6e977fe_381x334.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fkp1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d2c401e-1d78-4594-945e-c121c6e977fe_381x334.png" width="381" height="334" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8d2c401e-1d78-4594-945e-c121c6e977fe_381x334.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:334,&quot;width&quot;:381,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:90516,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!fkp1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d2c401e-1d78-4594-945e-c121c6e977fe_381x334.png 424w, https://substackcdn.com/image/fetch/$s_!fkp1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d2c401e-1d78-4594-945e-c121c6e977fe_381x334.png 848w, https://substackcdn.com/image/fetch/$s_!fkp1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d2c401e-1d78-4594-945e-c121c6e977fe_381x334.png 1272w, https://substackcdn.com/image/fetch/$s_!fkp1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d2c401e-1d78-4594-945e-c121c6e977fe_381x334.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>As microservices are dynamically deployed across multiple nodes and instances, <strong>Service Discovery</strong> becomes essential. Tools like <strong>Consul</strong> or <strong>Eureka</strong> register services with a central registry, allowing other services to discover and communicate with them.</p><h3><br>10. <strong>Load Balancing</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5sxZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49fc1797-a025-4937-8136-bc207e786537_381x334.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5sxZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49fc1797-a025-4937-8136-bc207e786537_381x334.png 424w, https://substackcdn.com/image/fetch/$s_!5sxZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49fc1797-a025-4937-8136-bc207e786537_381x334.png 848w, https://substackcdn.com/image/fetch/$s_!5sxZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49fc1797-a025-4937-8136-bc207e786537_381x334.png 1272w, https://substackcdn.com/image/fetch/$s_!5sxZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49fc1797-a025-4937-8136-bc207e786537_381x334.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5sxZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49fc1797-a025-4937-8136-bc207e786537_381x334.png" width="381" height="334" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/49fc1797-a025-4937-8136-bc207e786537_381x334.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:334,&quot;width&quot;:381,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:82062,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!5sxZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49fc1797-a025-4937-8136-bc207e786537_381x334.png 424w, https://substackcdn.com/image/fetch/$s_!5sxZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49fc1797-a025-4937-8136-bc207e786537_381x334.png 848w, https://substackcdn.com/image/fetch/$s_!5sxZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49fc1797-a025-4937-8136-bc207e786537_381x334.png 1272w, https://substackcdn.com/image/fetch/$s_!5sxZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49fc1797-a025-4937-8136-bc207e786537_381x334.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Load balancing distributes incoming traffic evenly across multiple service instances to avoid overloading a single instance. Tools like <strong>HAProxy</strong> or <strong>Nginx</strong> can act as load balancers in your microservices setup, ensuring high availability and better performance.</p><h3><br>11. <strong>API Gateway</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!S3Lg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09db6476-2042-41e2-8d6a-ac92a9f1ae6d_380x334.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!S3Lg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09db6476-2042-41e2-8d6a-ac92a9f1ae6d_380x334.png 424w, https://substackcdn.com/image/fetch/$s_!S3Lg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09db6476-2042-41e2-8d6a-ac92a9f1ae6d_380x334.png 848w, https://substackcdn.com/image/fetch/$s_!S3Lg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09db6476-2042-41e2-8d6a-ac92a9f1ae6d_380x334.png 1272w, https://substackcdn.com/image/fetch/$s_!S3Lg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09db6476-2042-41e2-8d6a-ac92a9f1ae6d_380x334.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!S3Lg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09db6476-2042-41e2-8d6a-ac92a9f1ae6d_380x334.png" width="380" height="334" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/09db6476-2042-41e2-8d6a-ac92a9f1ae6d_380x334.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:334,&quot;width&quot;:380,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:98747,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!S3Lg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09db6476-2042-41e2-8d6a-ac92a9f1ae6d_380x334.png 424w, https://substackcdn.com/image/fetch/$s_!S3Lg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09db6476-2042-41e2-8d6a-ac92a9f1ae6d_380x334.png 848w, https://substackcdn.com/image/fetch/$s_!S3Lg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09db6476-2042-41e2-8d6a-ac92a9f1ae6d_380x334.png 1272w, https://substackcdn.com/image/fetch/$s_!S3Lg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09db6476-2042-41e2-8d6a-ac92a9f1ae6d_380x334.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>An <strong>API Gateway</strong> acts as a single entry point for all microservices, handling request routing, authentication, rate limiting, and more. Tools like <strong>Kong</strong> or <strong>NGINX</strong> serve as API gateways to manage external requests to various services.</p><p></p><h3>12. <strong>Cloud Provider</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rhQ4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44201de7-410c-4bf9-a77f-374ce7630a26_381x333.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rhQ4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44201de7-410c-4bf9-a77f-374ce7630a26_381x333.png 424w, https://substackcdn.com/image/fetch/$s_!rhQ4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44201de7-410c-4bf9-a77f-374ce7630a26_381x333.png 848w, https://substackcdn.com/image/fetch/$s_!rhQ4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44201de7-410c-4bf9-a77f-374ce7630a26_381x333.png 1272w, https://substackcdn.com/image/fetch/$s_!rhQ4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44201de7-410c-4bf9-a77f-374ce7630a26_381x333.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rhQ4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44201de7-410c-4bf9-a77f-374ce7630a26_381x333.png" width="381" height="333" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/44201de7-410c-4bf9-a77f-374ce7630a26_381x333.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:333,&quot;width&quot;:381,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:68278,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!rhQ4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44201de7-410c-4bf9-a77f-374ce7630a26_381x333.png 424w, https://substackcdn.com/image/fetch/$s_!rhQ4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44201de7-410c-4bf9-a77f-374ce7630a26_381x333.png 848w, https://substackcdn.com/image/fetch/$s_!rhQ4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44201de7-410c-4bf9-a77f-374ce7630a26_381x333.png 1272w, https://substackcdn.com/image/fetch/$s_!rhQ4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44201de7-410c-4bf9-a77f-374ce7630a26_381x333.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Deploying microservices in the cloud offers scalability, resilience, and flexibility. Cloud providers like <strong>AWS</strong>, <strong>Google Cloud</strong>, or <strong>Azure</strong> provide managed services that make it easier to deploy, scale, and monitor your applications in real-time.</p><p></p><div><hr></div><p></p><p>Keep in mind that a successful microservices architecture depends on how well you implement these principles, making it crucial to plan, design, and maintain your services properly from the start.</p><p></p><p>See you soon.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Amigoscode Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[API Development Roadmap For Developers]]></title><description><![CDATA[Complete Guide to Mastering API Development]]></description><link>https://blog.amigoscode.com/p/api-development-roadmap-for-developers</link><guid isPermaLink="false">https://blog.amigoscode.com/p/api-development-roadmap-for-developers</guid><dc:creator><![CDATA[Mama Samba Braima Nelson Djalo]]></dc:creator><pubDate>Wed, 21 Aug 2024 16:36:02 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!MlMN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8059f94c-26ae-45f6-916d-7369149ac9db_2400x3694.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>APIs (Application Programming Interfaces) are the backbone of modern software development. They enable communication between different applications, power integrations, and allow developers to build complex systems that are both scalable and secure. </p><p>If you're starting your API journey or looking to refine your skills, this roadmap will serve as your guide. We'll explore key topics such as API fundamentals, different API styles, security best practices, and much more.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MlMN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8059f94c-26ae-45f6-916d-7369149ac9db_2400x3694.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MlMN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8059f94c-26ae-45f6-916d-7369149ac9db_2400x3694.png 424w, https://substackcdn.com/image/fetch/$s_!MlMN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8059f94c-26ae-45f6-916d-7369149ac9db_2400x3694.png 848w, https://substackcdn.com/image/fetch/$s_!MlMN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8059f94c-26ae-45f6-916d-7369149ac9db_2400x3694.png 1272w, https://substackcdn.com/image/fetch/$s_!MlMN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8059f94c-26ae-45f6-916d-7369149ac9db_2400x3694.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MlMN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8059f94c-26ae-45f6-916d-7369149ac9db_2400x3694.png" width="1456" height="2241" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8059f94c-26ae-45f6-916d-7369149ac9db_2400x3694.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2241,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1202205,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!MlMN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8059f94c-26ae-45f6-916d-7369149ac9db_2400x3694.png 424w, https://substackcdn.com/image/fetch/$s_!MlMN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8059f94c-26ae-45f6-916d-7369149ac9db_2400x3694.png 848w, https://substackcdn.com/image/fetch/$s_!MlMN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8059f94c-26ae-45f6-916d-7369149ac9db_2400x3694.png 1272w, https://substackcdn.com/image/fetch/$s_!MlMN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8059f94c-26ae-45f6-916d-7369149ac9db_2400x3694.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Amigoscode Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><h2>1. <strong>What Are APIs?</strong></h2><p>APIs, short for Application Programming Interfaces, are sets of rules and protocols that allow different software components to communicate with one another. Whether you're building mobile apps, web apps, or integrating third-party services, APIs play a critical role in facilitating these interactions.</p><div><hr></div><h2>2. <strong>Learning the Basics</strong></h2><p>Before diving into API design or implementation, it's essential to understand the underlying protocols and standards that govern API communication, particularly HTTP. Some core concepts include:</p><ul><li><p><strong>HTTP Versions</strong>: Understand the differences between HTTP/1.1, HTTP/2, and HTTP/3.</p></li><li><p><strong>HTTP Methods</strong>: Learn about GET, POST, PUT, DELETE, and more.</p></li><li><p><strong>HTTP Status Codes</strong>: Get familiar with codes such as 200 (OK), 404 (Not Found), and 500 (Server Error).</p></li><li><p><strong>HTTP Headers &amp; Cookies</strong>: Learn how to manage metadata within requests and responses.</p></li><li><p><strong>CORS &amp; Caching</strong>: Understand how to handle cross-origin requests and optimize performance with caching.</p></li></ul><p>These fundamentals are the building blocks of working with APIs effectively.</p><div><hr></div><h2>3. <strong>Exploring Different API Styles</strong></h2><p>Not all APIs are created equal. There are various styles, each with its strengths and weaknesses, depending on the use case:</p><ul><li><p><strong>RESTful APIs</strong>: The most common style, focusing on stateless, resource-based interactions.</p></li><li><p><strong>Simple JSON APIs</strong>: Lightweight and commonly used for data exchange.</p></li><li><p><strong>SOAP APIs</strong>: Known for strict rules and extensive security features, SOAP is typically used in enterprise environments.</p></li><li><p><strong>GraphQL</strong>: Allows for more flexible queries and is great for optimizing data fetching.</p></li><li><p><strong>gRPC</strong>: High-performance and efficient, especially for microservices architecture.</p></li></ul><p>Understanding which API style to use depends on your specific requirements.</p><div class="poll-embed" data-attrs="{&quot;id&quot;:205123}" data-component-name="PollToDOM"></div><p></p><div><hr></div><h2>4. <strong>Building RESTful APIs</strong></h2><p>Building a RESTful API involves more than just exchanging data. Here are some key considerations for designing robust and maintainable APIs:</p><ul><li><p><strong>REST Principles</strong>: Stick to standard RESTful design principles to create scalable and maintainable APIs.</p></li><li><p><strong>URI Design</strong>: Follow best practices for creating intuitive and consistent resource paths.</p></li><li><p><strong>Versioning Strategies</strong>: Always plan for backward compatibility by versioning your API endpoints.</p></li><li><p><strong>Handling CRUD Operations</strong>: Ensure efficient creation, reading, updating, and deletion of resources.</p></li><li><p><strong>Pagination &amp; Rate Limiting</strong>: Implement strategies to control data flow and prevent overloading.</p></li><li><p><strong>Idempotency</strong>: Ensure that multiple identical requests lead to the same outcome, especially for write operations.</p></li><li><p><strong>Error Handling</strong>: Properly handle and communicate errors using standards like RFC 7807.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8Oyr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64308133-295b-4b1e-b1a4-f81a29a77912_1095x580.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8Oyr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64308133-295b-4b1e-b1a4-f81a29a77912_1095x580.png 424w, https://substackcdn.com/image/fetch/$s_!8Oyr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64308133-295b-4b1e-b1a4-f81a29a77912_1095x580.png 848w, https://substackcdn.com/image/fetch/$s_!8Oyr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64308133-295b-4b1e-b1a4-f81a29a77912_1095x580.png 1272w, https://substackcdn.com/image/fetch/$s_!8Oyr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64308133-295b-4b1e-b1a4-f81a29a77912_1095x580.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8Oyr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64308133-295b-4b1e-b1a4-f81a29a77912_1095x580.png" width="1095" height="580" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/64308133-295b-4b1e-b1a4-f81a29a77912_1095x580.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:580,&quot;width&quot;:1095,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:120494,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!8Oyr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64308133-295b-4b1e-b1a4-f81a29a77912_1095x580.png 424w, https://substackcdn.com/image/fetch/$s_!8Oyr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64308133-295b-4b1e-b1a4-f81a29a77912_1095x580.png 848w, https://substackcdn.com/image/fetch/$s_!8Oyr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64308133-295b-4b1e-b1a4-f81a29a77912_1095x580.png 1272w, https://substackcdn.com/image/fetch/$s_!8Oyr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64308133-295b-4b1e-b1a4-f81a29a77912_1095x580.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>5. <strong>Authentication &amp; Authorization Methods</strong></h2><p>API security is critical, and properly managing authentication and authorization is a core component:</p><ul><li><p><strong>Basic Authentication</strong>: The simplest form of authentication, using username and password.</p></li><li><p><strong>Token-Based Authentication</strong>: Tokens, often JWT (JSON Web Tokens), are a more secure and scalable option.</p></li><li><p><strong>OAuth 2.0</strong>: Used by many services, OAuth provides secure delegated access.</p></li><li><p><strong>Session-Based Authentication</strong>: Sessions allow servers to maintain a stateful connection with clients.</p></li><li><p><strong>RBAC &amp; ABAC</strong>: Role-Based Access Control and Attribute-Based Access Control help define who can access specific resources.</p></li></ul><p>These methods ensure that only authorized users can access your API.</p><div><hr></div><h2>6. <strong>Securing Your APIs</strong></h2><p>API security involves more than just authentication. You need to protect your APIs from common vulnerabilities like:</p><ul><li><p><strong>Common Vulnerabilities</strong>: Be aware of threats such as SQL injection, cross-site scripting (XSS), and cross-site request forgery (CSRF).</p></li><li><p><strong>API Security Best Practices</strong>: Enforce strong security measures such as encryption, input validation, and rate limiting to protect your API from attacks.</p></li></ul><div><hr></div><h2>7. <strong>Enhancing API Performance</strong></h2><p>For APIs to be successful in a production environment, they must perform well under heavy load:</p><ul><li><p><strong>Performance Metrics</strong>: Monitor key metrics like response time, throughput, and error rates.</p></li><li><p><strong>Caching Strategies</strong>: Caching can significantly reduce latency and server load.</p></li><li><p><strong>Load Balancing</strong>: Distribute requests evenly across multiple servers to improve availability and reliability.</p></li><li><p><strong>Rate Limiting &amp; Throttling</strong>: Prevent abuse by limiting the number of requests a user can make in a given period.</p></li><li><p><strong>Error Handling &amp; Retries</strong>: Implement logic to handle transient errors and retries effectively.</p></li></ul><div><hr></div><h2>8. <strong>API Integration Patterns</strong></h2><p>Integration patterns help manage complex interactions between multiple services:</p><ul><li><p><strong>Synchronous vs Asynchronous</strong>: Choose between synchronous (real-time) or asynchronous (delayed) communication based on your use case.</p></li><li><p><strong>Event-Driven Architecture</strong>: Use events to trigger actions across distributed systems.</p></li><li><p><strong>API Gateway</strong>: Manage multiple APIs behind a single endpoint for better security and scalability.</p></li><li><p><strong>Messaging Queues &amp; Batch Processing</strong>: Manage large volumes of data and offload tasks with tools like RabbitMQ and Kafka.</p></li></ul><div><hr></div><h2>9. <strong>Real-Time APIs</strong></h2><p>Real-time APIs are becoming more popular as applications require live updates:</p><ul><li><p><strong>WebSockets</strong>: Use WebSockets to establish persistent connections for real-time data flow.</p></li><li><p><strong>Server-Sent Events</strong>: Push updates from the server to the client in real time.</p></li></ul><div><hr></div><h2>10. <strong>API Documentation Tools</strong></h2><p>Good documentation is critical for API usability. Consider using tools like:</p><ul><li><p><strong>Swagger / OpenAPI</strong>: Automatically generate documentation and interactive API consoles.</p></li><li><p><strong>ReadMe.com &amp; Postman</strong>: Create rich, interactive API documentation for developers.</p></li><li><p><strong>Stoplight</strong>: Collaborate on API design and documentation across teams.</p></li></ul><p>These tools ensure that your API is easy to understand and use.</p><div><hr></div><h2>11. <strong>Standards and Compliance</strong></h2><p>APIs must adhere to various standards and regulations, especially when dealing with sensitive data:</p><ul><li><p><strong>GDPR &amp; CCPA</strong>: Protect user data and maintain compliance with global data privacy regulations.</p></li><li><p><strong>PCI DSS &amp; HIPAA</strong>: Ensure secure handling of payment data and healthcare information.</p></li><li><p><strong>PII (Personally Identifiable Information)</strong>: Properly handle and secure PII to prevent data breaches.</p></li></ul><div><hr></div><h1>Bonus</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!deVu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d1bd350-217b-4077-93e0-767daad152eb_1200x1581.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!deVu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d1bd350-217b-4077-93e0-767daad152eb_1200x1581.gif 424w, https://substackcdn.com/image/fetch/$s_!deVu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d1bd350-217b-4077-93e0-767daad152eb_1200x1581.gif 848w, https://substackcdn.com/image/fetch/$s_!deVu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d1bd350-217b-4077-93e0-767daad152eb_1200x1581.gif 1272w, https://substackcdn.com/image/fetch/$s_!deVu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d1bd350-217b-4077-93e0-767daad152eb_1200x1581.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!deVu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d1bd350-217b-4077-93e0-767daad152eb_1200x1581.gif" width="1200" height="1581" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3d1bd350-217b-4077-93e0-767daad152eb_1200x1581.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1581,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3325752,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!deVu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d1bd350-217b-4077-93e0-767daad152eb_1200x1581.gif 424w, https://substackcdn.com/image/fetch/$s_!deVu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d1bd350-217b-4077-93e0-767daad152eb_1200x1581.gif 848w, https://substackcdn.com/image/fetch/$s_!deVu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d1bd350-217b-4077-93e0-767daad152eb_1200x1581.gif 1272w, https://substackcdn.com/image/fetch/$s_!deVu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d1bd350-217b-4077-93e0-767daad152eb_1200x1581.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Amigoscode Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The Testing Pyramid]]></title><description><![CDATA[Layered Testing for Robust Software Development]]></description><link>https://blog.amigoscode.com/p/the-testing-pyramid</link><guid isPermaLink="false">https://blog.amigoscode.com/p/the-testing-pyramid</guid><dc:creator><![CDATA[Mama Samba Braima Nelson Djalo]]></dc:creator><pubDate>Mon, 05 Aug 2024 16:01:01 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!YaNy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F444492da-b179-43d4-8afa-8f4e2df4335b_555x589.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Ensuring the quality and reliability of Java applications is crucial for successful software development. The testing pyramid and various testing frameworks play a vital role in achieving this goal. This guide provides an overview of the testing pyramid followed by a detailed explanation of five popular Java testing frameworks.</p><h3>The Testing Pyramid</h3><p>The testing pyramid is a concept that guides the strategy for test automation in software development. It emphasizes the importance of a balanced approach to testing, with a strong foundation of unit tests and a smaller number of higher-level tests.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Amigoscode Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h4>Layers of the Testing Pyramid:</h4><ul><li><p><strong>Unit Tests</strong>: Form the base of the pyramid, focusing on individual components of the code. They are fast, reliable, and provide immediate feedback.</p></li><li><p><strong>Integration Tests</strong>: Ensure that different components of the application work together as expected. They are broader in scope than unit tests but still relatively fast and reliable.</p></li><li><p><strong>End-to-End Tests</strong>: Test the entire application workflow from start to finish, ensuring that the system as a whole meets the requirements. These tests are slower and more complex but crucial for catching issues that may not be evident in isolated components.</p></li><li><p><strong>UI Tests</strong>: Represent the top layer of the pyramid, focusing on testing the user interface. These tests are the most brittle and time-consuming, but they are essential for ensuring a positive user experience.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YaNy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F444492da-b179-43d4-8afa-8f4e2df4335b_555x589.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YaNy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F444492da-b179-43d4-8afa-8f4e2df4335b_555x589.gif 424w, https://substackcdn.com/image/fetch/$s_!YaNy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F444492da-b179-43d4-8afa-8f4e2df4335b_555x589.gif 848w, https://substackcdn.com/image/fetch/$s_!YaNy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F444492da-b179-43d4-8afa-8f4e2df4335b_555x589.gif 1272w, https://substackcdn.com/image/fetch/$s_!YaNy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F444492da-b179-43d4-8afa-8f4e2df4335b_555x589.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YaNy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F444492da-b179-43d4-8afa-8f4e2df4335b_555x589.gif" width="555" height="589" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/444492da-b179-43d4-8afa-8f4e2df4335b_555x589.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:589,&quot;width&quot;:555,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:689036,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!YaNy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F444492da-b179-43d4-8afa-8f4e2df4335b_555x589.gif 424w, https://substackcdn.com/image/fetch/$s_!YaNy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F444492da-b179-43d4-8afa-8f4e2df4335b_555x589.gif 848w, https://substackcdn.com/image/fetch/$s_!YaNy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F444492da-b179-43d4-8afa-8f4e2df4335b_555x589.gif 1272w, https://substackcdn.com/image/fetch/$s_!YaNy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F444492da-b179-43d4-8afa-8f4e2df4335b_555x589.gif 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h3>5 Testing Frameworks / Libraries For Java Devs</h3><p>To effectively implement the testing pyramid, it's important to choose the right testing frameworks. Here are five popular Java testing frameworks, each with its unique strengths and purposes.</p><h4>1. JUnit</h4><ul><li><p><strong>Purpose</strong>: Widely used for unit testing.</p></li><li><p><strong>Features</strong>: Simple, user-friendly, and integrates well with development tools.</p></li><li><p><strong>Usage</strong>: Ideal for writing and running repeatable tests, ensuring that individual parts of the code (units) function correctly.</p></li></ul><h4>2. TestNG</h4><ul><li><p><strong>Purpose</strong>: Supports various testing categories.</p></li><li><p><strong>Features</strong>: Flexible, scalable, and suitable for both simple and complex tests.</p></li><li><p><strong>Usage</strong>: Offers advanced functionalities such as parallel testing, data-driven testing, and comprehensive reporting, making it a versatile choice for different testing needs.</p></li></ul><h4>3. Selenium</h4><ul><li><p><strong>Purpose</strong>: Automation framework for web browsers.</p></li><li><p><strong>Features</strong>: Cross-platform support, integrates with TestNG/JUnit, and has strong community support.</p></li><li><p><strong>Usage</strong>: Essential for automating web application testing, ensuring that web interfaces function as expected across different browsers and platforms.</p></li></ul><h4>4. Cucumber</h4><ul><li><p><strong>Purpose</strong>: Behavior-driven development (BDD) tool.</p></li><li><p><strong>Features</strong>: Enhances communication with non-technical stakeholders.</p></li><li><p><strong>Usage</strong>: Uses plain language specifications to write tests, which helps bridge the gap between developers and business stakeholders by making test cases more understandable.</p></li></ul><h4>5. Mockito</h4><ul><li><p><strong>Purpose</strong>: Mocking framework for unit tests.</p></li><li><p><strong>Features</strong>: Easy to use, reduces boilerplate code, and integrates with JUnit/TestNG.</p></li><li><p><strong>Usage</strong>: Useful for creating mock objects in unit tests, allowing developers to test parts of the code in isolation without relying on external dependencies.</p></li></ul><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JDGA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61b728bf-bad4-4c13-b286-e73155c023e1_800x1029.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JDGA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61b728bf-bad4-4c13-b286-e73155c023e1_800x1029.gif 424w, https://substackcdn.com/image/fetch/$s_!JDGA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61b728bf-bad4-4c13-b286-e73155c023e1_800x1029.gif 848w, https://substackcdn.com/image/fetch/$s_!JDGA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61b728bf-bad4-4c13-b286-e73155c023e1_800x1029.gif 1272w, https://substackcdn.com/image/fetch/$s_!JDGA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61b728bf-bad4-4c13-b286-e73155c023e1_800x1029.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JDGA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61b728bf-bad4-4c13-b286-e73155c023e1_800x1029.gif" width="800" height="1029" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/61b728bf-bad4-4c13-b286-e73155c023e1_800x1029.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1029,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3974413,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!JDGA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61b728bf-bad4-4c13-b286-e73155c023e1_800x1029.gif 424w, https://substackcdn.com/image/fetch/$s_!JDGA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61b728bf-bad4-4c13-b286-e73155c023e1_800x1029.gif 848w, https://substackcdn.com/image/fetch/$s_!JDGA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61b728bf-bad4-4c13-b286-e73155c023e1_800x1029.gif 1272w, https://substackcdn.com/image/fetch/$s_!JDGA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61b728bf-bad4-4c13-b286-e73155c023e1_800x1029.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1>Question </h1><div class="poll-embed" data-attrs="{&quot;id&quot;:200158}" data-component-name="PollToDOM"></div><p></p><h1>Bonus &#127873; </h1><h3>Types of API Testing</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!j0Ia!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69a59c5d-8721-4c2e-bd2c-173cf5ca6b6a_2400x2974.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!j0Ia!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69a59c5d-8721-4c2e-bd2c-173cf5ca6b6a_2400x2974.png 424w, https://substackcdn.com/image/fetch/$s_!j0Ia!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69a59c5d-8721-4c2e-bd2c-173cf5ca6b6a_2400x2974.png 848w, https://substackcdn.com/image/fetch/$s_!j0Ia!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69a59c5d-8721-4c2e-bd2c-173cf5ca6b6a_2400x2974.png 1272w, https://substackcdn.com/image/fetch/$s_!j0Ia!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69a59c5d-8721-4c2e-bd2c-173cf5ca6b6a_2400x2974.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!j0Ia!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69a59c5d-8721-4c2e-bd2c-173cf5ca6b6a_2400x2974.png" width="1456" height="1804" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/69a59c5d-8721-4c2e-bd2c-173cf5ca6b6a_2400x2974.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1804,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1151185,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!j0Ia!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69a59c5d-8721-4c2e-bd2c-173cf5ca6b6a_2400x2974.png 424w, https://substackcdn.com/image/fetch/$s_!j0Ia!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69a59c5d-8721-4c2e-bd2c-173cf5ca6b6a_2400x2974.png 848w, https://substackcdn.com/image/fetch/$s_!j0Ia!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69a59c5d-8721-4c2e-bd2c-173cf5ca6b6a_2400x2974.png 1272w, https://substackcdn.com/image/fetch/$s_!j0Ia!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69a59c5d-8721-4c2e-bd2c-173cf5ca6b6a_2400x2974.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I&#8217;ll discuss this diagram in a future blog.</p><p>Happy Coding &#128075;&#127999;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Amigoscode Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Git Workflow Explained]]></title><description><![CDATA[From local to remote repo]]></description><link>https://blog.amigoscode.com/p/git-workflow-explained</link><guid isPermaLink="false">https://blog.amigoscode.com/p/git-workflow-explained</guid><dc:creator><![CDATA[Mama Samba Braima Nelson Djalo]]></dc:creator><pubDate>Thu, 25 Jul 2024 16:39:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Zqzp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6bcde20-5a98-4c91-9111-aa2be14c181b_1048x939.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In any collaborative coding project, keeping track of changes, updates, and collaboration is crucial. Git, a distributed version control system, provides a structured workflow to manage this. Here, we'll break down the essential components and commands of the Git workflow.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Zqzp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6bcde20-5a98-4c91-9111-aa2be14c181b_1048x939.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Zqzp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6bcde20-5a98-4c91-9111-aa2be14c181b_1048x939.png 424w, https://substackcdn.com/image/fetch/$s_!Zqzp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6bcde20-5a98-4c91-9111-aa2be14c181b_1048x939.png 848w, https://substackcdn.com/image/fetch/$s_!Zqzp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6bcde20-5a98-4c91-9111-aa2be14c181b_1048x939.png 1272w, https://substackcdn.com/image/fetch/$s_!Zqzp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6bcde20-5a98-4c91-9111-aa2be14c181b_1048x939.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Zqzp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6bcde20-5a98-4c91-9111-aa2be14c181b_1048x939.png" width="1048" height="939" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e6bcde20-5a98-4c91-9111-aa2be14c181b_1048x939.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:939,&quot;width&quot;:1048,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:174122,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Zqzp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6bcde20-5a98-4c91-9111-aa2be14c181b_1048x939.png 424w, https://substackcdn.com/image/fetch/$s_!Zqzp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6bcde20-5a98-4c91-9111-aa2be14c181b_1048x939.png 848w, https://substackcdn.com/image/fetch/$s_!Zqzp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6bcde20-5a98-4c91-9111-aa2be14c181b_1048x939.png 1272w, https://substackcdn.com/image/fetch/$s_!Zqzp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6bcde20-5a98-4c91-9111-aa2be14c181b_1048x939.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h1>Local Repo</h1><p>"Local" refers to the version of the repository that is on your personal computer. This local repository is where you do your work, make changes, and test features.</p><ol><li><p><strong>Working Directory</strong> The working directory is where your current project files reside. This is your main workspace where you create, edit, and delete files.</p><ul><li><p><strong>Add</strong>: Once you've made changes, you use the <code>add</code> command to stage these changes. This prepares the changes to be committed to the repository.</p></li></ul></li><li><p><strong>Staging Area</strong> The staging area is a temporary storage for changes that are meant to be included in the next commit. Think of it as a preview of your next commit snapshot.</p><ul><li><p><strong>Commit</strong>: The <code>commit</code> command takes everything from the staging area and stores it in the local repository. Each commit is a snapshot of your project at a given point in time.</p></li></ul></li><li><p><strong>Local Repository</strong> Your local repository is where all your project&#8217;s commits are stored. This is your personal copy of the project history, which you can manipulate and manage independently of others.</p><ul><li><p><strong>Commit</strong>: As mentioned, <code>commit</code> saves changes to the local repository.</p></li><li><p><strong>Fetch</strong>: The <code>fetch</code> command allows you to see what others have been working on by downloading objects and refs from another repository, without merging these changes into your work.</p></li><li><p><strong>Pull</strong>: The <code>pull</code> command combines <code>fetch</code> and <code>merge</code>, fetching changes from the remote repository and merging them into your local repository in one step.</p></li></ul></li></ol><p></p><h1>Remote Repo</h1><p>"Remote" refers to a version of your repository that is hosted on a server and is typically used to share your work with others.</p><ol><li><p><strong>Remote Repository</strong> The remote repository is a version of your project that is hosted on a server (e.g., GitHub, GitLab). It allows multiple collaborators to push their changes and keep everything in sync.</p><ul><li><p><strong>Push</strong>: The <code>push</code> command uploads your local repository changes to the remote repository, making your commits available to others.</p></li><li><p><strong>Fetch</strong>: As mentioned, <code>fetch</code> retrieves changes from the remote repository to your local repository, allowing you to see updates without integrating them immediately.</p></li></ul></li></ol><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.amigoscode.com/subscribe?"><span>Subscribe now</span></a></p><p></p><h1>The Animation</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!71xW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0369f7e-09f2-4bc4-8942-4dbf72735e82_800x1054.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!71xW!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0369f7e-09f2-4bc4-8942-4dbf72735e82_800x1054.gif 424w, https://substackcdn.com/image/fetch/$s_!71xW!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0369f7e-09f2-4bc4-8942-4dbf72735e82_800x1054.gif 848w, https://substackcdn.com/image/fetch/$s_!71xW!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0369f7e-09f2-4bc4-8942-4dbf72735e82_800x1054.gif 1272w, https://substackcdn.com/image/fetch/$s_!71xW!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0369f7e-09f2-4bc4-8942-4dbf72735e82_800x1054.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!71xW!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0369f7e-09f2-4bc4-8942-4dbf72735e82_800x1054.gif" width="800" height="1054" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a0369f7e-09f2-4bc4-8942-4dbf72735e82_800x1054.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1054,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:9330313,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!71xW!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0369f7e-09f2-4bc4-8942-4dbf72735e82_800x1054.gif 424w, https://substackcdn.com/image/fetch/$s_!71xW!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0369f7e-09f2-4bc4-8942-4dbf72735e82_800x1054.gif 848w, https://substackcdn.com/image/fetch/$s_!71xW!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0369f7e-09f2-4bc4-8942-4dbf72735e82_800x1054.gif 1272w, https://substackcdn.com/image/fetch/$s_!71xW!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0369f7e-09f2-4bc4-8942-4dbf72735e82_800x1054.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>These are the essential Git commands shown at the top of the diagram:</p><ul><li><p>Add: Adds changes in the working directory to the staging area.</p></li><li><p>Commit: Saves the changes from the staging area to the local repository.</p></li><li><p>Push: Uploads local repository changes to the remote repository.</p></li><li><p>Fetch: Downloads objects and refs from another repository.</p></li><li><p>Pull: Fetches and integrates changes from the remote repository into the local repository.</p></li><li><p>Clone: Creates a copy of an existing remote repository.</p></li><li><p>Checkout: Switches branches or restores working tree files.</p></li><li><p>Rebase: Reapplies commits on top of another base tip.</p></li><li><p>Log: Shows the commit logs.</p></li><li><p>Status: Displays the state of the working directory and staging area.</p><p></p></li></ul><h1>Git Crash Course</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!g0ts!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1b91935-38fa-4079-8f40-f282581111cb_2400x2900.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!g0ts!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1b91935-38fa-4079-8f40-f282581111cb_2400x2900.png 424w, https://substackcdn.com/image/fetch/$s_!g0ts!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1b91935-38fa-4079-8f40-f282581111cb_2400x2900.png 848w, https://substackcdn.com/image/fetch/$s_!g0ts!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1b91935-38fa-4079-8f40-f282581111cb_2400x2900.png 1272w, https://substackcdn.com/image/fetch/$s_!g0ts!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1b91935-38fa-4079-8f40-f282581111cb_2400x2900.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!g0ts!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1b91935-38fa-4079-8f40-f282581111cb_2400x2900.png" width="1456" height="1759" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a1b91935-38fa-4079-8f40-f282581111cb_2400x2900.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1759,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2013553,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!g0ts!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1b91935-38fa-4079-8f40-f282581111cb_2400x2900.png 424w, https://substackcdn.com/image/fetch/$s_!g0ts!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1b91935-38fa-4079-8f40-f282581111cb_2400x2900.png 848w, https://substackcdn.com/image/fetch/$s_!g0ts!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1b91935-38fa-4079-8f40-f282581111cb_2400x2900.png 1272w, https://substackcdn.com/image/fetch/$s_!g0ts!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1b91935-38fa-4079-8f40-f282581111cb_2400x2900.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h1>&#128680; Join Git Master Class Waiting List</h1><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.amigoscode.com/courses/git-github&quot;,&quot;text&quot;:&quot;Click here to join waiting list&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.amigoscode.com/courses/git-github"><span>Click here to join waiting list</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QCHs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57c46e1f-5882-4a66-a5e4-7071db3c3325_1916x1064.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QCHs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57c46e1f-5882-4a66-a5e4-7071db3c3325_1916x1064.png 424w, https://substackcdn.com/image/fetch/$s_!QCHs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57c46e1f-5882-4a66-a5e4-7071db3c3325_1916x1064.png 848w, https://substackcdn.com/image/fetch/$s_!QCHs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57c46e1f-5882-4a66-a5e4-7071db3c3325_1916x1064.png 1272w, https://substackcdn.com/image/fetch/$s_!QCHs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57c46e1f-5882-4a66-a5e4-7071db3c3325_1916x1064.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QCHs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57c46e1f-5882-4a66-a5e4-7071db3c3325_1916x1064.png" width="1456" height="809" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/57c46e1f-5882-4a66-a5e4-7071db3c3325_1916x1064.png&quot;,&quot;srcNoWatermark&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f05c8a09-655c-4483-9a66-dd52f80e7afe_1916x1064.png&quot;,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:809,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:390473,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!QCHs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57c46e1f-5882-4a66-a5e4-7071db3c3325_1916x1064.png 424w, https://substackcdn.com/image/fetch/$s_!QCHs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57c46e1f-5882-4a66-a5e4-7071db3c3325_1916x1064.png 848w, https://substackcdn.com/image/fetch/$s_!QCHs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57c46e1f-5882-4a66-a5e4-7071db3c3325_1916x1064.png 1272w, https://substackcdn.com/image/fetch/$s_!QCHs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57c46e1f-5882-4a66-a5e4-7071db3c3325_1916x1064.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.amigoscode.com/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[GraphQL Explained]]></title><description><![CDATA[Understanding GraphQL: The Modern Approach to APIs]]></description><link>https://blog.amigoscode.com/p/graphql-explained</link><guid isPermaLink="false">https://blog.amigoscode.com/p/graphql-explained</guid><dc:creator><![CDATA[Mama Samba Braima Nelson Djalo]]></dc:creator><pubDate>Thu, 18 Jul 2024 16:24:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!x1y9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b229f10-9399-4829-b7ae-4f0abadb908b_800x546.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In the world of web development, APIs (Application Programming Interfaces) are essential for enabling communication between different software systems. Traditional REST APIs have been the standard for years, but GraphQL is emerging as a powerful alternative, offering numerous advantages. </p><p>Let&#8217;s delve into what GraphQL is and why it's becoming a popular choice for developers.</p><p></p><h3>What is GraphQL?</h3><p>GraphQL is a query language for your API and a server-side runtime for executing queries by using a type system you define for your data. It provides a more efficient, powerful, and flexible alternative to REST.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!x1y9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b229f10-9399-4829-b7ae-4f0abadb908b_800x546.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!x1y9!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b229f10-9399-4829-b7ae-4f0abadb908b_800x546.gif 424w, https://substackcdn.com/image/fetch/$s_!x1y9!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b229f10-9399-4829-b7ae-4f0abadb908b_800x546.gif 848w, https://substackcdn.com/image/fetch/$s_!x1y9!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b229f10-9399-4829-b7ae-4f0abadb908b_800x546.gif 1272w, https://substackcdn.com/image/fetch/$s_!x1y9!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b229f10-9399-4829-b7ae-4f0abadb908b_800x546.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!x1y9!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b229f10-9399-4829-b7ae-4f0abadb908b_800x546.gif" width="800" height="546" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0b229f10-9399-4829-b7ae-4f0abadb908b_800x546.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:546,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5188343,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!x1y9!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b229f10-9399-4829-b7ae-4f0abadb908b_800x546.gif 424w, https://substackcdn.com/image/fetch/$s_!x1y9!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b229f10-9399-4829-b7ae-4f0abadb908b_800x546.gif 848w, https://substackcdn.com/image/fetch/$s_!x1y9!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b229f10-9399-4829-b7ae-4f0abadb908b_800x546.gif 1272w, https://substackcdn.com/image/fetch/$s_!x1y9!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b229f10-9399-4829-b7ae-4f0abadb908b_800x546.gif 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/p/graphql-explained?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.amigoscode.com/p/graphql-explained?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p></p><h3>Key Features of GraphQL</h3><ol><li><p><strong>Declarative Data Fetching</strong></p><p>With GraphQL, clients can request exactly the data they need, nothing more and nothing less. This contrasts with REST, where over-fetching or under-fetching data can often be a problem.</p></li><li><p><strong>Hierarchical Structure</strong></p><p>GraphQL queries mirror the data structure. This hierarchical nature allows fetching nested and related data in a single request, reducing the need for multiple API calls.</p></li><li><p><strong>Strongly Typed Schema</strong></p><p>GraphQL uses a strongly typed schema to define the types of data that can be queried. This schema acts as a contract between the client and the server, ensuring that the queries and their responses are predictable and reliable.</p></li><li><p><strong>Real-Time Data Subscriptions</strong></p><p>GraphQL supports real-time data updates through subscriptions. This feature is especially useful for applications that require live updates, such as chat applications or real-time analytics.</p></li><li><p><strong>Single Endpoint</strong></p><p>Unlike REST APIs that typically have multiple endpoints for different resources, GraphQL uses a single endpoint. All interactions with the API are handled through this single endpoint, simplifying the API structure.</p></li><li><p><strong>Self-Documenting API</strong></p><p>GraphQL APIs are self-documenting. The schema provides comprehensive information about the available queries and their structure, making it easier for developers to understand and use the API without external documentation.</p></li></ol><p></p><h3>How GraphQL Works</h3><p>GraphQL operates by using a single endpoint to fetch data from multiple sources. This could be various databases or other APIs. The client sends a query to the server, specifying exactly what data is needed. The server then processes this query and returns only the requested data, efficiently and in a single response.</p><p></p><h3>Why Choose GraphQL?</h3><p>GraphQL addresses many of the shortcomings of REST APIs. It offers flexibility in data fetching, reduces the number of API calls, and provides a clear and strong contract between the client and the server through its typed schema. Moreover, features like real-time updates and self-documentation further enhance its usability and efficiency.</p><p></p><h3>Learn GraphQL with Spring Boot 3</h3><div id="youtube2-uNB2N_w_ypo" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;uNB2N_w_ypo&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/uNB2N_w_ypo?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p></p><h3>Question</h3><div class="poll-embed" data-attrs="{&quot;id&quot;:194834}" data-component-name="PollToDOM"></div><p></p><h3>Conclusion</h3><p>As the demands on web applications grow, so too does the need for more efficient and flexible data fetching methods. GraphQL stands out as a modern solution to these needs, offering significant advantages over traditional REST APIs. Whether you&#8217;re building a simple application or a complex system requiring real-time data updates, GraphQL provides a robust and efficient framework to meet your needs.</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Amigoscode Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Revealing my 3 SaaS Products]]></title><description><![CDATA[Sneak Peek: 3 SaaS Products I&#8217;m About to Release!]]></description><link>https://blog.amigoscode.com/p/revealing-my-3-saas-products</link><guid isPermaLink="false">https://blog.amigoscode.com/p/revealing-my-3-saas-products</guid><dc:creator><![CDATA[Mama Samba Braima Nelson Djalo]]></dc:creator><pubDate>Wed, 10 Jul 2024 16:00:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!5o0u!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b4f9952-60f6-462a-9c02-fbf137051157_480x400.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Over the last few months, I have embarked on a journey to build 3 products.</p><p>It's been an incredible experience, filled with challenges, learning, and a lot of coding. In this blog post, I'll walk you through the tech stack I used, the reasons behind my choices, and why I decided to avoid using Java for these projects. </p><p>Let's dive into the exciting journey of building these products!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5o0u!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b4f9952-60f6-462a-9c02-fbf137051157_480x400.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5o0u!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b4f9952-60f6-462a-9c02-fbf137051157_480x400.gif 424w, https://substackcdn.com/image/fetch/$s_!5o0u!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b4f9952-60f6-462a-9c02-fbf137051157_480x400.gif 848w, https://substackcdn.com/image/fetch/$s_!5o0u!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b4f9952-60f6-462a-9c02-fbf137051157_480x400.gif 1272w, https://substackcdn.com/image/fetch/$s_!5o0u!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b4f9952-60f6-462a-9c02-fbf137051157_480x400.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5o0u!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b4f9952-60f6-462a-9c02-fbf137051157_480x400.gif" width="480" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6b4f9952-60f6-462a-9c02-fbf137051157_480x400.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:480,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2430761,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!5o0u!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b4f9952-60f6-462a-9c02-fbf137051157_480x400.gif 424w, https://substackcdn.com/image/fetch/$s_!5o0u!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b4f9952-60f6-462a-9c02-fbf137051157_480x400.gif 848w, https://substackcdn.com/image/fetch/$s_!5o0u!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b4f9952-60f6-462a-9c02-fbf137051157_480x400.gif 1272w, https://substackcdn.com/image/fetch/$s_!5o0u!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b4f9952-60f6-462a-9c02-fbf137051157_480x400.gif 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h1>The Products</h1><p>1 - <a href="https://amigoscode.com">Amigoscode 2.0 (new website including learning platform)</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lZ_r!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f7bc9ac-71dc-4c2d-b4b8-54ef7e636cd3_11820x11819.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lZ_r!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f7bc9ac-71dc-4c2d-b4b8-54ef7e636cd3_11820x11819.png 424w, https://substackcdn.com/image/fetch/$s_!lZ_r!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f7bc9ac-71dc-4c2d-b4b8-54ef7e636cd3_11820x11819.png 848w, https://substackcdn.com/image/fetch/$s_!lZ_r!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f7bc9ac-71dc-4c2d-b4b8-54ef7e636cd3_11820x11819.png 1272w, https://substackcdn.com/image/fetch/$s_!lZ_r!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f7bc9ac-71dc-4c2d-b4b8-54ef7e636cd3_11820x11819.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lZ_r!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f7bc9ac-71dc-4c2d-b4b8-54ef7e636cd3_11820x11819.png" width="58" height="58" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9f7bc9ac-71dc-4c2d-b4b8-54ef7e636cd3_11820x11819.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1456,&quot;width&quot;:1456,&quot;resizeWidth&quot;:58,&quot;bytes&quot;:888380,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lZ_r!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f7bc9ac-71dc-4c2d-b4b8-54ef7e636cd3_11820x11819.png 424w, https://substackcdn.com/image/fetch/$s_!lZ_r!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f7bc9ac-71dc-4c2d-b4b8-54ef7e636cd3_11820x11819.png 848w, https://substackcdn.com/image/fetch/$s_!lZ_r!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f7bc9ac-71dc-4c2d-b4b8-54ef7e636cd3_11820x11819.png 1272w, https://substackcdn.com/image/fetch/$s_!lZ_r!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f7bc9ac-71dc-4c2d-b4b8-54ef7e636cd3_11820x11819.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://amigoscode.com&quot;,&quot;text&quot;:&quot;Visit new website&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://amigoscode.com"><span>Visit new website</span></a></p><p>2 - <a href="https://portfolly.io">Portfolly (One click portfolio builder for developers)</a> </p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0HNJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69534e76-4b96-427c-a282-93a13c8f21f7_123x29.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0HNJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69534e76-4b96-427c-a282-93a13c8f21f7_123x29.png 424w, https://substackcdn.com/image/fetch/$s_!0HNJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69534e76-4b96-427c-a282-93a13c8f21f7_123x29.png 848w, https://substackcdn.com/image/fetch/$s_!0HNJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69534e76-4b96-427c-a282-93a13c8f21f7_123x29.png 1272w, https://substackcdn.com/image/fetch/$s_!0HNJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69534e76-4b96-427c-a282-93a13c8f21f7_123x29.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0HNJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69534e76-4b96-427c-a282-93a13c8f21f7_123x29.png" width="147" height="34.65853658536585" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/69534e76-4b96-427c-a282-93a13c8f21f7_123x29.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:29,&quot;width&quot;:123,&quot;resizeWidth&quot;:147,&quot;bytes&quot;:1946,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0HNJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69534e76-4b96-427c-a282-93a13c8f21f7_123x29.png 424w, https://substackcdn.com/image/fetch/$s_!0HNJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69534e76-4b96-427c-a282-93a13c8f21f7_123x29.png 848w, https://substackcdn.com/image/fetch/$s_!0HNJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69534e76-4b96-427c-a282-93a13c8f21f7_123x29.png 1272w, https://substackcdn.com/image/fetch/$s_!0HNJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69534e76-4b96-427c-a282-93a13c8f21f7_123x29.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://portfolly.io/&quot;,&quot;text&quot;:&quot;Join waiting list&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://portfolly.io/"><span>Join waiting list</span></a></p><p>3 - iMasjid (Timetable solutions for mosques)</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hC_3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F632efc4d-a3e5-43f3-bf95-7e4a270c9a6c_170x39.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hC_3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F632efc4d-a3e5-43f3-bf95-7e4a270c9a6c_170x39.png 424w, https://substackcdn.com/image/fetch/$s_!hC_3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F632efc4d-a3e5-43f3-bf95-7e4a270c9a6c_170x39.png 848w, https://substackcdn.com/image/fetch/$s_!hC_3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F632efc4d-a3e5-43f3-bf95-7e4a270c9a6c_170x39.png 1272w, https://substackcdn.com/image/fetch/$s_!hC_3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F632efc4d-a3e5-43f3-bf95-7e4a270c9a6c_170x39.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hC_3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F632efc4d-a3e5-43f3-bf95-7e4a270c9a6c_170x39.png" width="202" height="46.34117647058824" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/632efc4d-a3e5-43f3-bf95-7e4a270c9a6c_170x39.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:39,&quot;width&quot;:170,&quot;resizeWidth&quot;:202,&quot;bytes&quot;:2830,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!hC_3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F632efc4d-a3e5-43f3-bf95-7e4a270c9a6c_170x39.png 424w, https://substackcdn.com/image/fetch/$s_!hC_3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F632efc4d-a3e5-43f3-bf95-7e4a270c9a6c_170x39.png 848w, https://substackcdn.com/image/fetch/$s_!hC_3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F632efc4d-a3e5-43f3-bf95-7e4a270c9a6c_170x39.png 1272w, https://substackcdn.com/image/fetch/$s_!hC_3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F632efc4d-a3e5-43f3-bf95-7e4a270c9a6c_170x39.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p></p><h1>The Tech Stack Used</h1><p>Building three products in six months is no small feat, and having the right tools and technologies was crucial. Here's a breakdown of the tech stack that powered these creations:</p><ul><li><p><strong>Git / GitHub:</strong> Version control is essential for managing and collaborating on code. Git and GitHub allowed me to keep track of changes, collaborate with others, and maintain a clean and organized codebase.</p></li><li><p><strong>JavaScript / TypeScript:</strong> These are the backbone of my development process. JavaScript is versatile and widely used, while TypeScript adds type safety, making the code more robust and maintainable.</p></li><li><p><strong>Tailwind CSS:</strong> For styling, I chose Tailwind CSS because of its utility-first approach, which speeds up the development process and ensures a consistent design across all products.</p></li><li><p><strong>Supabase:</strong> Supabase served as the backend service, providing an open-source alternative to Firebase with seamless integration and a developer-friendly experience.</p></li><li><p><strong>Firebase:</strong> Firebase was used for its real-time database and authentication features, which are essential for building scalable and secure applications.</p></li><li><p><strong>Figma:</strong> For UI/UX design, Figma was the tool of choice. Its collaborative features and ease of use made designing interfaces and prototyping a breeze.</p></li></ul><p>One of the standout benefits of this tech stack is that I don't have to worry about infrastructure and deployment. Using Supabase and Firebase allows me to focus on building features and improving user experience rather than managing servers and deployment pipelines. This streamlined approach to development means quicker iteration cycles and faster time to market.</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Amigoscode Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><h1>Why I Did Not Use Java</h1><p>Java is a powerful and popular programming language, known for its robustness and scalability. However, for this particular set of projects, I decided to steer clear of Java for several reasons:</p><ol><li><p><strong>Development Speed:</strong> JavaScript and TypeScript, combined with modern frameworks and libraries, enable rapid development. The dynamic nature of JavaScript allows for quicker iterations and faster prototyping, which was essential given the tight timeline of six months.</p></li><li><p><strong>Project Requirements:</strong> The products I built were more suited to the strengths of JavaScript and TypeScript, especially given the heavy reliance on front-end development and real-time functionalities provided by Supabase and Firebase.</p></li><li><p><strong>Community and Ecosystem:</strong> The ecosystem around JavaScript is vast and vibrant, with a plethora of libraries, frameworks, and tools available. This rich ecosystem allowed me to leverage existing solutions and focus more on building unique features rather than reinventing the wheel.</p></li><li><p><strong>Frontend Focus:</strong> Given that a significant portion of the work involved building user interfaces and ensuring seamless user experiences, JavaScript was the natural choice. It directly integrates with web technologies, making it ideal for front-end development.</p></li><li><p><strong>Infrastructure and Deployment:</strong> Java typically requires more intricate setup for infrastructure and deployment. By using tools like Firebase and Supabase, I could bypass these complexities and deploy my applications effortlessly, allowing me to concentrate on coding and feature development.</p></li></ol><p></p><h1>Question</h1><div class="poll-embed" data-attrs="{&quot;id&quot;:192387}" data-component-name="PollToDOM"></div><p></p><h1>Conclusion</h1><p>Embarking on this journey to build three products in six months has been both challenging and rewarding. The choice of tech stack played a crucial role in the successful development of these products. </p><p>By leveraging the strengths of JavaScript, TypeScript, and the other tools mentioned, I was able to create robust, scalable, and user-friendly applications without the headache of managing infrastructure and deployment.</p><p>Stay tuned for more updates on these products as they get closer to launch. Your feedback and support are invaluable, and I look forward to sharing more details soon. If you have any questions or comments, feel free to leave them below!</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Amigoscode Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[SQL vs NoSQL Explained]]></title><description><![CDATA[Choosing the Right Database for Your Needs]]></description><link>https://blog.amigoscode.com/p/sql-vs-nosql-explained</link><guid isPermaLink="false">https://blog.amigoscode.com/p/sql-vs-nosql-explained</guid><dc:creator><![CDATA[Mama Samba Braima Nelson Djalo]]></dc:creator><pubDate>Tue, 02 Jul 2024 16:00:57 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!sb-O!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b79373b-d764-4423-ac39-9a011f3518c2_800x991.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>When it comes to database management systems (DBMS), there are two primary types that developers and businesses use: SQL (Structured Query Language) databases and NoSQL (Not Only SQL) databases. Each type has its own set of characteristics, advantages, and best use cases. This blog aims to provide a comprehensive understanding of the differences between NoSQL and SQL databases to help you make informed decisions for your projects.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sb-O!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b79373b-d764-4423-ac39-9a011f3518c2_800x991.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sb-O!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b79373b-d764-4423-ac39-9a011f3518c2_800x991.gif 424w, https://substackcdn.com/image/fetch/$s_!sb-O!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b79373b-d764-4423-ac39-9a011f3518c2_800x991.gif 848w, https://substackcdn.com/image/fetch/$s_!sb-O!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b79373b-d764-4423-ac39-9a011f3518c2_800x991.gif 1272w, https://substackcdn.com/image/fetch/$s_!sb-O!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b79373b-d764-4423-ac39-9a011f3518c2_800x991.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sb-O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b79373b-d764-4423-ac39-9a011f3518c2_800x991.gif" width="800" height="991" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6b79373b-d764-4423-ac39-9a011f3518c2_800x991.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:991,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4820478,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!sb-O!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b79373b-d764-4423-ac39-9a011f3518c2_800x991.gif 424w, https://substackcdn.com/image/fetch/$s_!sb-O!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b79373b-d764-4423-ac39-9a011f3518c2_800x991.gif 848w, https://substackcdn.com/image/fetch/$s_!sb-O!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b79373b-d764-4423-ac39-9a011f3518c2_800x991.gif 1272w, https://substackcdn.com/image/fetch/$s_!sb-O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b79373b-d764-4423-ac39-9a011f3518c2_800x991.gif 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div class="poll-embed" data-attrs="{&quot;id&quot;:189847}" data-component-name="PollToDOM"></div><h1><br>SQL </h1><div><hr></div><p>SQL, or Structured Query Language, is a standard programming language specifically designed for managing and manipulating relational databases. It is used to interact with the data stored in a relational database management system (RDBMS) through various operations like querying, updating, and managing the data structure.</p><h2>Characteristics of SQL Databases</h2><ol><li><p><strong>Structured Data</strong>: Ideal for structured data with a clear schema.</p></li><li><p><strong>ACID Compliance</strong>: Ensures Atomicity, Consistency, Isolation, and Durability, which guarantees reliable transactions.</p></li><li><p><strong>Schema-Based</strong>: Requires a predefined schema to organize data, making it rigid but consistent.</p></li><li><p><strong>SQL Language</strong>: Utilizes SQL for querying and maintaining the database.</p></li><li><p><strong>Scalability</strong>: Typically scales vertically (adding more power to an existing machine).</p></li></ol><h2><br>SQL Databases Categories</h2><h3><br>Relational Database Management Systems (RDBMS)</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hAla!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab13b833-f17d-49e2-a635-12093e682593_1464x840.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hAla!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab13b833-f17d-49e2-a635-12093e682593_1464x840.png 424w, https://substackcdn.com/image/fetch/$s_!hAla!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab13b833-f17d-49e2-a635-12093e682593_1464x840.png 848w, https://substackcdn.com/image/fetch/$s_!hAla!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab13b833-f17d-49e2-a635-12093e682593_1464x840.png 1272w, https://substackcdn.com/image/fetch/$s_!hAla!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab13b833-f17d-49e2-a635-12093e682593_1464x840.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hAla!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab13b833-f17d-49e2-a635-12093e682593_1464x840.png" width="1456" height="835" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ab13b833-f17d-49e2-a635-12093e682593_1464x840.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:835,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:48509,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!hAla!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab13b833-f17d-49e2-a635-12093e682593_1464x840.png 424w, https://substackcdn.com/image/fetch/$s_!hAla!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab13b833-f17d-49e2-a635-12093e682593_1464x840.png 848w, https://substackcdn.com/image/fetch/$s_!hAla!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab13b833-f17d-49e2-a635-12093e682593_1464x840.png 1272w, https://substackcdn.com/image/fetch/$s_!hAla!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab13b833-f17d-49e2-a635-12093e682593_1464x840.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Relational Database Management Systems (RDBMS)</strong> use a structured query language (SQL) for defining and manipulating data. RDBMSs store data in tables and use schemas to enforce data integrity and relationships between tables.</p><p><strong>Examples:</strong> MySQL, PostgreSQL, Oracle Database, Microsoft SQL Server</p><p><strong>Use Cases:</strong> Transactional applications, ERP systems, customer relationship management (CRM), financial records</p><h3><br>OLAP (Online Analytical Processing)</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!i2iz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c1a75f3-a8e4-43bc-897b-e17d1d9df099_1464x840.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!i2iz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c1a75f3-a8e4-43bc-897b-e17d1d9df099_1464x840.png 424w, https://substackcdn.com/image/fetch/$s_!i2iz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c1a75f3-a8e4-43bc-897b-e17d1d9df099_1464x840.png 848w, https://substackcdn.com/image/fetch/$s_!i2iz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c1a75f3-a8e4-43bc-897b-e17d1d9df099_1464x840.png 1272w, https://substackcdn.com/image/fetch/$s_!i2iz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c1a75f3-a8e4-43bc-897b-e17d1d9df099_1464x840.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!i2iz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c1a75f3-a8e4-43bc-897b-e17d1d9df099_1464x840.png" width="1456" height="835" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1c1a75f3-a8e4-43bc-897b-e17d1d9df099_1464x840.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:835,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:28352,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!i2iz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c1a75f3-a8e4-43bc-897b-e17d1d9df099_1464x840.png 424w, https://substackcdn.com/image/fetch/$s_!i2iz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c1a75f3-a8e4-43bc-897b-e17d1d9df099_1464x840.png 848w, https://substackcdn.com/image/fetch/$s_!i2iz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c1a75f3-a8e4-43bc-897b-e17d1d9df099_1464x840.png 1272w, https://substackcdn.com/image/fetch/$s_!i2iz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c1a75f3-a8e4-43bc-897b-e17d1d9df099_1464x840.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Online Analytical Processing (OLAP)</strong> systems are designed to support complex queries and are used for data analysis and business intelligence. OLAP systems can handle large volumes of data and provide fast response times for analytical queries.</p><p><strong>Examples:</strong> Microsoft SQL Server Analysis Services (SSAS), Oracle OLAP, SAP BW</p><p><strong>Use Cases:</strong> Data mining, business reporting, sales and marketing analysis, financial forecasting</p><p>These database types serve different purposes and are chosen based on the specific requirements of the application, such as the nature of the data, the type of queries, and the performance needs.</p><h3>When to Use SQL Databases</h3><ul><li><p>Your data is structured and doesn&#8217;t change frequently.</p></li><li><p>You need multi-row transactions and complex queries.</p></li><li><p>Data integrity and consistency are crucial.</p></li><li><p>You have a predictable, fixed schema.<br><br></p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.amigoscode.com/subscribe?"><span>Subscribe now</span></a></p><p></p><h1><br>NoSQL</h1><div><hr></div><p>NoSQL, which stands for "Not Only SQL," refers to a broad class of database management systems that differ from traditional relational databases. NoSQL databases are designed to handle unstructured, semi-structured, and structured data, offering greater flexibility and scalability than SQL databases. They are particularly useful for handling large volumes of data and real-time web applications.</p><h2><br>Characteristics of NoSQL Databases</h2><ol><li><p><strong>Flexible Schema</strong>: Can handle unstructured, semi-structured, or structured data without a fixed schema.</p></li><li><p><strong>Eventual Consistency</strong>: Focuses on eventual consistency over immediate consistency, providing higher availability.</p></li><li><p><strong>Scalability</strong>: Designed for horizontal scalability (adding more servers to distribute load).</p></li><li><p><strong>Varied Data Models</strong>: Supports multiple data models like document, key-value, column-family, and graph.</p></li><li><p><strong>Performance</strong>: Optimized for specific use cases, offering faster read and write operations for large volumes of data.<br></p></li></ol><h2>NoSQL Databases Categories</h2><h3><br>Key-Value Store</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QrnH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cd5e01f-57bb-4b72-acca-e981a7c4170b_1464x840.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QrnH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cd5e01f-57bb-4b72-acca-e981a7c4170b_1464x840.png 424w, https://substackcdn.com/image/fetch/$s_!QrnH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cd5e01f-57bb-4b72-acca-e981a7c4170b_1464x840.png 848w, https://substackcdn.com/image/fetch/$s_!QrnH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cd5e01f-57bb-4b72-acca-e981a7c4170b_1464x840.png 1272w, https://substackcdn.com/image/fetch/$s_!QrnH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cd5e01f-57bb-4b72-acca-e981a7c4170b_1464x840.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QrnH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cd5e01f-57bb-4b72-acca-e981a7c4170b_1464x840.png" width="1456" height="835" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0cd5e01f-57bb-4b72-acca-e981a7c4170b_1464x840.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:835,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:103292,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!QrnH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cd5e01f-57bb-4b72-acca-e981a7c4170b_1464x840.png 424w, https://substackcdn.com/image/fetch/$s_!QrnH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cd5e01f-57bb-4b72-acca-e981a7c4170b_1464x840.png 848w, https://substackcdn.com/image/fetch/$s_!QrnH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cd5e01f-57bb-4b72-acca-e981a7c4170b_1464x840.png 1272w, https://substackcdn.com/image/fetch/$s_!QrnH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cd5e01f-57bb-4b72-acca-e981a7c4170b_1464x840.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>A <strong>Key-Value Store</strong> is a type of NoSQL database that uses a simple key-value method to store data. Each data item is stored as a key and an associated value, similar to a dictionary or a hash table. Key-value stores are designed for simplicity and fast retrieval of values when the key is known.</p><p><strong>Examples:</strong> Redis, DynamoDB, Riak</p><p><strong>Use Cases:</strong> Caching, session management, user profiles, configuration management</p><h3><br>Document Store</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!E5BI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbbcd6f40-cc72-4635-8679-1d21313953ea_1464x840.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!E5BI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbbcd6f40-cc72-4635-8679-1d21313953ea_1464x840.png 424w, https://substackcdn.com/image/fetch/$s_!E5BI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbbcd6f40-cc72-4635-8679-1d21313953ea_1464x840.png 848w, https://substackcdn.com/image/fetch/$s_!E5BI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbbcd6f40-cc72-4635-8679-1d21313953ea_1464x840.png 1272w, https://substackcdn.com/image/fetch/$s_!E5BI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbbcd6f40-cc72-4635-8679-1d21313953ea_1464x840.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!E5BI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbbcd6f40-cc72-4635-8679-1d21313953ea_1464x840.png" width="1456" height="835" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bbcd6f40-cc72-4635-8679-1d21313953ea_1464x840.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:835,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:101346,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!E5BI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbbcd6f40-cc72-4635-8679-1d21313953ea_1464x840.png 424w, https://substackcdn.com/image/fetch/$s_!E5BI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbbcd6f40-cc72-4635-8679-1d21313953ea_1464x840.png 848w, https://substackcdn.com/image/fetch/$s_!E5BI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbbcd6f40-cc72-4635-8679-1d21313953ea_1464x840.png 1272w, https://substackcdn.com/image/fetch/$s_!E5BI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbbcd6f40-cc72-4635-8679-1d21313953ea_1464x840.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>A <strong>Document Store</strong> is another type of NoSQL database designed to store, retrieve, and manage document-oriented information. Documents are typically stored in formats like JSON, BSON, or XML, allowing for a flexible schema that can vary from document to document within a collection.</p><p><strong>Examples:</strong> MongoDB, CouchDB, RavenDB</p><p><strong>Use Cases:</strong> Content management systems, e-commerce applications, real-time analytics</p><h3><br>Graph Database</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ef4K!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33eb78ed-ed37-4339-bfdf-3ddd0a5dab03_1464x840.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ef4K!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33eb78ed-ed37-4339-bfdf-3ddd0a5dab03_1464x840.png 424w, https://substackcdn.com/image/fetch/$s_!ef4K!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33eb78ed-ed37-4339-bfdf-3ddd0a5dab03_1464x840.png 848w, https://substackcdn.com/image/fetch/$s_!ef4K!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33eb78ed-ed37-4339-bfdf-3ddd0a5dab03_1464x840.png 1272w, https://substackcdn.com/image/fetch/$s_!ef4K!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33eb78ed-ed37-4339-bfdf-3ddd0a5dab03_1464x840.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ef4K!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33eb78ed-ed37-4339-bfdf-3ddd0a5dab03_1464x840.png" width="1456" height="835" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/33eb78ed-ed37-4339-bfdf-3ddd0a5dab03_1464x840.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:835,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:73751,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ef4K!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33eb78ed-ed37-4339-bfdf-3ddd0a5dab03_1464x840.png 424w, https://substackcdn.com/image/fetch/$s_!ef4K!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33eb78ed-ed37-4339-bfdf-3ddd0a5dab03_1464x840.png 848w, https://substackcdn.com/image/fetch/$s_!ef4K!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33eb78ed-ed37-4339-bfdf-3ddd0a5dab03_1464x840.png 1272w, https://substackcdn.com/image/fetch/$s_!ef4K!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33eb78ed-ed37-4339-bfdf-3ddd0a5dab03_1464x840.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>A <strong>Graph Database</strong> uses graph structures for semantic queries, with nodes, edges, and properties to represent and store data. Graph databases are particularly well-suited for exploring relationships between entities.</p><p><strong>Examples:</strong> Neo4j, ArangoDB, Amazon Neptune</p><p><strong>Use Cases:</strong> Social networks, recommendation engines, fraud detection, network and IT operations</p><h3><br>Column Store</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gRcX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4908e06a-b116-48f2-b955-1bce710f6cb6_1464x840.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gRcX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4908e06a-b116-48f2-b955-1bce710f6cb6_1464x840.png 424w, https://substackcdn.com/image/fetch/$s_!gRcX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4908e06a-b116-48f2-b955-1bce710f6cb6_1464x840.png 848w, https://substackcdn.com/image/fetch/$s_!gRcX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4908e06a-b116-48f2-b955-1bce710f6cb6_1464x840.png 1272w, https://substackcdn.com/image/fetch/$s_!gRcX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4908e06a-b116-48f2-b955-1bce710f6cb6_1464x840.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gRcX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4908e06a-b116-48f2-b955-1bce710f6cb6_1464x840.png" width="1456" height="835" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4908e06a-b116-48f2-b955-1bce710f6cb6_1464x840.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:835,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:22703,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gRcX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4908e06a-b116-48f2-b955-1bce710f6cb6_1464x840.png 424w, https://substackcdn.com/image/fetch/$s_!gRcX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4908e06a-b116-48f2-b955-1bce710f6cb6_1464x840.png 848w, https://substackcdn.com/image/fetch/$s_!gRcX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4908e06a-b116-48f2-b955-1bce710f6cb6_1464x840.png 1272w, https://substackcdn.com/image/fetch/$s_!gRcX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4908e06a-b116-48f2-b955-1bce710f6cb6_1464x840.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>A <strong>Column Store</strong> (or column-family store) is a type of NoSQL database that stores data by columns rather than by rows. This is particularly advantageous for analytical query workloads where aggregates and summaries over large datasets are common.</p><p><strong>Examples:</strong> Apache Cassandra, HBase, Google Bigtable</p><p><strong>Use Cases:</strong> Data warehousing, business intelligence, real-time analytics</p><h3><br>When to Use NoSQL Databases</h3><ul><li><p>You are dealing with large volumes of unstructured or semi-structured data.</p></li><li><p>Scalability and performance are priorities over consistency.</p></li><li><p>Your application requires a flexible schema to adapt to changing data needs.</p></li><li><p>You are handling large-scale distributed data.</p></li></ul><h1><br>Key Differences Between SQL and NoSQL</h1><div><hr></div><ol><li><p><strong>Data Model</strong>:</p><ul><li><p><strong>SQL</strong>: Relational, with tables, rows, and columns.</p></li><li><p><strong>NoSQL</strong>: Non-relational, with various data models (document, key-value, column-family, graph).</p></li></ul></li><li><p><strong>Schema</strong>:</p><ul><li><p><strong>SQL</strong>: Fixed schema; predefined tables and columns.</p></li><li><p><strong>NoSQL</strong>: Dynamic schema; flexible and adaptable.</p></li></ul></li><li><p><strong>Query Language</strong>:</p><ul><li><p><strong>SQL</strong>: Uses SQL for querying data.</p></li><li><p><strong>NoSQL</strong>: Varies by database type; e.g., MongoDB uses JSON-like queries.</p></li></ul></li><li><p><strong>Scalability</strong>:</p><ul><li><p><strong>SQL</strong>: Vertical scaling.</p></li><li><p><strong>NoSQL</strong>: Horizontal scaling.</p></li></ul></li><li><p><strong>Consistency</strong>:</p><ul><li><p><strong>SQL</strong>: ACID compliance ensures strong consistency.</p></li><li><p><strong>NoSQL</strong>: Typically provides eventual consistency, which can be tuned for stronger consistency if needed.</p></li></ul></li><li><p><strong>Use Cases</strong>:</p><ul><li><p><strong>SQL</strong>: Best for applications requiring multi-row transactions, complex queries, and consistency.</p></li><li><p><strong>NoSQL</strong>: Ideal for applications needing large-scale data storage, real-time analytics, and flexible data models.</p></li></ul></li></ol><h1><br>Need help choosing the right db?</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xrpI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11b024d9-c50a-4b23-b9df-fe8882c85d52_2400x2974.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xrpI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11b024d9-c50a-4b23-b9df-fe8882c85d52_2400x2974.png 424w, https://substackcdn.com/image/fetch/$s_!xrpI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11b024d9-c50a-4b23-b9df-fe8882c85d52_2400x2974.png 848w, https://substackcdn.com/image/fetch/$s_!xrpI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11b024d9-c50a-4b23-b9df-fe8882c85d52_2400x2974.png 1272w, https://substackcdn.com/image/fetch/$s_!xrpI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11b024d9-c50a-4b23-b9df-fe8882c85d52_2400x2974.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xrpI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11b024d9-c50a-4b23-b9df-fe8882c85d52_2400x2974.png" width="1456" height="1804" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/11b024d9-c50a-4b23-b9df-fe8882c85d52_2400x2974.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1804,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:643151,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xrpI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11b024d9-c50a-4b23-b9df-fe8882c85d52_2400x2974.png 424w, https://substackcdn.com/image/fetch/$s_!xrpI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11b024d9-c50a-4b23-b9df-fe8882c85d52_2400x2974.png 848w, https://substackcdn.com/image/fetch/$s_!xrpI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11b024d9-c50a-4b23-b9df-fe8882c85d52_2400x2974.png 1272w, https://substackcdn.com/image/fetch/$s_!xrpI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11b024d9-c50a-4b23-b9df-fe8882c85d52_2400x2974.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1><br>Conclusion</h1><p>Choosing between SQL and NoSQL databases depends on your specific use case, data structure, and scalability needs. SQL databases offer reliability and consistency for structured data, while NoSQL databases provide flexibility and scalability for large-scale, unstructured data.</p><p>Understanding the differences and strengths of each type will enable you to select the right database solution that aligns with your project requirements and business goals. Whether you opt for SQL or NoSQL, the key is to ensure that your database solution can efficiently handle your data needs both now and in the future.</p>]]></content:encoded></item><item><title><![CDATA[Master Git: Understanding Key Commands for Effective Version Control]]></title><description><![CDATA[Fetch, Pull, Revert, Reset, Rebase, and Merge Explained]]></description><link>https://blog.amigoscode.com/p/master-git-understanding-key-commands</link><guid isPermaLink="false">https://blog.amigoscode.com/p/master-git-understanding-key-commands</guid><dc:creator><![CDATA[Mama Samba Braima Nelson Djalo]]></dc:creator><pubDate>Thu, 27 Jun 2024 16:12:22 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!gmuh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b3d07ec-2156-4fb0-be11-e369f1705bf9_800x991.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Git is an essential tool for developers, enabling efficient version control and collaboration. However, with its vast array of commands, it can be overwhelming for beginners to grasp their usage and implications fully.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!p2GT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F092024f1-2375-4a3f-8054-ed2df7a04f60_480x220.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!p2GT!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F092024f1-2375-4a3f-8054-ed2df7a04f60_480x220.gif 424w, https://substackcdn.com/image/fetch/$s_!p2GT!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F092024f1-2375-4a3f-8054-ed2df7a04f60_480x220.gif 848w, https://substackcdn.com/image/fetch/$s_!p2GT!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F092024f1-2375-4a3f-8054-ed2df7a04f60_480x220.gif 1272w, https://substackcdn.com/image/fetch/$s_!p2GT!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F092024f1-2375-4a3f-8054-ed2df7a04f60_480x220.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!p2GT!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F092024f1-2375-4a3f-8054-ed2df7a04f60_480x220.gif" width="192" height="88" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/092024f1-2375-4a3f-8054-ed2df7a04f60_480x220.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:220,&quot;width&quot;:480,&quot;resizeWidth&quot;:192,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Git Github Sticker - Git Github - Discover &amp; Share GIFs&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Git Github Sticker - Git Github - Discover &amp; Share GIFs" title="Git Github Sticker - Git Github - Discover &amp; Share GIFs" srcset="https://substackcdn.com/image/fetch/$s_!p2GT!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F092024f1-2375-4a3f-8054-ed2df7a04f60_480x220.gif 424w, https://substackcdn.com/image/fetch/$s_!p2GT!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F092024f1-2375-4a3f-8054-ed2df7a04f60_480x220.gif 848w, https://substackcdn.com/image/fetch/$s_!p2GT!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F092024f1-2375-4a3f-8054-ed2df7a04f60_480x220.gif 1272w, https://substackcdn.com/image/fetch/$s_!p2GT!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F092024f1-2375-4a3f-8054-ed2df7a04f60_480x220.gif 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>This blog post aims to demystify six crucial Git commands by categorizing and explaining their functionalities.</p><ul><li><p>fetch</p></li><li><p>pull</p></li><li><p>revert</p></li><li><p>reset</p></li><li><p>rebase</p></li><li><p>merge<br></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gmuh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b3d07ec-2156-4fb0-be11-e369f1705bf9_800x991.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gmuh!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b3d07ec-2156-4fb0-be11-e369f1705bf9_800x991.gif 424w, https://substackcdn.com/image/fetch/$s_!gmuh!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b3d07ec-2156-4fb0-be11-e369f1705bf9_800x991.gif 848w, https://substackcdn.com/image/fetch/$s_!gmuh!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b3d07ec-2156-4fb0-be11-e369f1705bf9_800x991.gif 1272w, https://substackcdn.com/image/fetch/$s_!gmuh!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b3d07ec-2156-4fb0-be11-e369f1705bf9_800x991.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gmuh!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b3d07ec-2156-4fb0-be11-e369f1705bf9_800x991.gif" width="800" height="991" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8b3d07ec-2156-4fb0-be11-e369f1705bf9_800x991.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:991,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:6452866,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gmuh!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b3d07ec-2156-4fb0-be11-e369f1705bf9_800x991.gif 424w, https://substackcdn.com/image/fetch/$s_!gmuh!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b3d07ec-2156-4fb0-be11-e369f1705bf9_800x991.gif 848w, https://substackcdn.com/image/fetch/$s_!gmuh!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b3d07ec-2156-4fb0-be11-e369f1705bf9_800x991.gif 1272w, https://substackcdn.com/image/fetch/$s_!gmuh!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b3d07ec-2156-4fb0-be11-e369f1705bf9_800x991.gif 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Now lets dive into each command.</p><p>Please note some still images really make more sense with animation.<br><br></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.amigoscode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.amigoscode.com/subscribe?"><span>Subscribe now</span></a></p><h2><br>Fetching and Synchronizing</h2><div><hr></div><h3>Fetch</h3><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GE7a!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa69009bc-f8a4-486d-b343-5a7a90518cf9_1462x777.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GE7a!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa69009bc-f8a4-486d-b343-5a7a90518cf9_1462x777.png 424w, https://substackcdn.com/image/fetch/$s_!GE7a!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa69009bc-f8a4-486d-b343-5a7a90518cf9_1462x777.png 848w, https://substackcdn.com/image/fetch/$s_!GE7a!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa69009bc-f8a4-486d-b343-5a7a90518cf9_1462x777.png 1272w, https://substackcdn.com/image/fetch/$s_!GE7a!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa69009bc-f8a4-486d-b343-5a7a90518cf9_1462x777.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GE7a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa69009bc-f8a4-486d-b343-5a7a90518cf9_1462x777.png" width="391" height="207.85302197802199" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a69009bc-f8a4-486d-b343-5a7a90518cf9_1462x777.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:774,&quot;width&quot;:1456,&quot;resizeWidth&quot;:391,&quot;bytes&quot;:132997,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!GE7a!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa69009bc-f8a4-486d-b343-5a7a90518cf9_1462x777.png 424w, https://substackcdn.com/image/fetch/$s_!GE7a!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa69009bc-f8a4-486d-b343-5a7a90518cf9_1462x777.png 848w, https://substackcdn.com/image/fetch/$s_!GE7a!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa69009bc-f8a4-486d-b343-5a7a90518cf9_1462x777.png 1272w, https://substackcdn.com/image/fetch/$s_!GE7a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa69009bc-f8a4-486d-b343-5a7a90518cf9_1462x777.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p><br>The <code>fetch</code> command downloads objects and refs from another repository. It updates your remote-tracking branches but doesn&#8217;t merge these changes into your working files. This allows you to review changes before integrating them into your project.</p><p><strong>Usage:</strong></p><pre><code><code>git fetch &lt;remote&gt;</code></code></pre><h3><br>Pull</h3><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Eo4v!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fa16bdd-8e33-414e-aeae-83a17c58e422_1462x780.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Eo4v!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fa16bdd-8e33-414e-aeae-83a17c58e422_1462x780.png 424w, https://substackcdn.com/image/fetch/$s_!Eo4v!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fa16bdd-8e33-414e-aeae-83a17c58e422_1462x780.png 848w, https://substackcdn.com/image/fetch/$s_!Eo4v!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fa16bdd-8e33-414e-aeae-83a17c58e422_1462x780.png 1272w, https://substackcdn.com/image/fetch/$s_!Eo4v!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fa16bdd-8e33-414e-aeae-83a17c58e422_1462x780.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Eo4v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fa16bdd-8e33-414e-aeae-83a17c58e422_1462x780.png" width="441" height="235.34134615384616" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4fa16bdd-8e33-414e-aeae-83a17c58e422_1462x780.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:777,&quot;width&quot;:1456,&quot;resizeWidth&quot;:441,&quot;bytes&quot;:121680,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Eo4v!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fa16bdd-8e33-414e-aeae-83a17c58e422_1462x780.png 424w, https://substackcdn.com/image/fetch/$s_!Eo4v!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fa16bdd-8e33-414e-aeae-83a17c58e422_1462x780.png 848w, https://substackcdn.com/image/fetch/$s_!Eo4v!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fa16bdd-8e33-414e-aeae-83a17c58e422_1462x780.png 1272w, https://substackcdn.com/image/fetch/$s_!Eo4v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fa16bdd-8e33-414e-aeae-83a17c58e422_1462x780.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>The <code>pull</code> command is essentially a combination of <code>fetch</code> and <code>merge</code>. It downloads objects and refs from another repository and immediately merges them into your current branch. This is a more straightforward approach but doesn&#8217;t offer the same level of control as using <code>fetch</code> followed by a manual merge.</p><p><strong>Usage:</strong></p><pre><code>git pull &lt;remote&gt; &lt;branch&gt;</code></pre><p></p><h2>Undoing Changes</h2><div><hr></div><h3>Revert</h3><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xOuO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36cce1fa-934d-4870-912a-5758f1d74ba8_1462x438.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xOuO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36cce1fa-934d-4870-912a-5758f1d74ba8_1462x438.png 424w, https://substackcdn.com/image/fetch/$s_!xOuO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36cce1fa-934d-4870-912a-5758f1d74ba8_1462x438.png 848w, https://substackcdn.com/image/fetch/$s_!xOuO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36cce1fa-934d-4870-912a-5758f1d74ba8_1462x438.png 1272w, https://substackcdn.com/image/fetch/$s_!xOuO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36cce1fa-934d-4870-912a-5758f1d74ba8_1462x438.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xOuO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36cce1fa-934d-4870-912a-5758f1d74ba8_1462x438.png" width="463" height="138.6456043956044" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/36cce1fa-934d-4870-912a-5758f1d74ba8_1462x438.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:436,&quot;width&quot;:1456,&quot;resizeWidth&quot;:463,&quot;bytes&quot;:67214,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xOuO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36cce1fa-934d-4870-912a-5758f1d74ba8_1462x438.png 424w, https://substackcdn.com/image/fetch/$s_!xOuO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36cce1fa-934d-4870-912a-5758f1d74ba8_1462x438.png 848w, https://substackcdn.com/image/fetch/$s_!xOuO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36cce1fa-934d-4870-912a-5758f1d74ba8_1462x438.png 1272w, https://substackcdn.com/image/fetch/$s_!xOuO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36cce1fa-934d-4870-912a-5758f1d74ba8_1462x438.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p></p><p>The <code>revert</code> command creates a new commit that undoes the changes made by a previous commit. It&#8217;s useful for reversing changes in a project while keeping a record of these reversals.</p><p><strong>Usage:</strong></p><pre><code>git revert &lt;commit&gt;</code></pre><h3><br>Reset</h3><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3biG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65f0e30c-2be2-4f4b-94ad-420657239d0c_1462x342.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3biG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65f0e30c-2be2-4f4b-94ad-420657239d0c_1462x342.png 424w, https://substackcdn.com/image/fetch/$s_!3biG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65f0e30c-2be2-4f4b-94ad-420657239d0c_1462x342.png 848w, https://substackcdn.com/image/fetch/$s_!3biG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65f0e30c-2be2-4f4b-94ad-420657239d0c_1462x342.png 1272w, https://substackcdn.com/image/fetch/$s_!3biG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65f0e30c-2be2-4f4b-94ad-420657239d0c_1462x342.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3biG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65f0e30c-2be2-4f4b-94ad-420657239d0c_1462x342.png" width="485" height="113.5885989010989" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/65f0e30c-2be2-4f4b-94ad-420657239d0c_1462x342.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:341,&quot;width&quot;:1456,&quot;resizeWidth&quot;:485,&quot;bytes&quot;:57168,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!3biG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65f0e30c-2be2-4f4b-94ad-420657239d0c_1462x342.png 424w, https://substackcdn.com/image/fetch/$s_!3biG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65f0e30c-2be2-4f4b-94ad-420657239d0c_1462x342.png 848w, https://substackcdn.com/image/fetch/$s_!3biG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65f0e30c-2be2-4f4b-94ad-420657239d0c_1462x342.png 1272w, https://substackcdn.com/image/fetch/$s_!3biG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65f0e30c-2be2-4f4b-94ad-420657239d0c_1462x342.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p></p><p>The <code>reset</code> command is used to move the current branch to a different commit. Depending on the mode used (<code>--soft</code>, <code>--mixed</code>, <code>--hard</code>), it can also modify the index and the working directory to match the specified commit. This command is powerful but can be dangerous as it can rewrite history.</p><p><strong>Usage:</strong></p><pre><code>git reset --soft|--mixed|--hard &lt;commit&gt;</code></pre><h2><br>Manipulating History</h2><div><hr></div><h3>Rebase</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nafp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13e241b2-5c34-4ff4-8bc0-13bd92da9f36_1402x838.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nafp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13e241b2-5c34-4ff4-8bc0-13bd92da9f36_1402x838.png 424w, https://substackcdn.com/image/fetch/$s_!nafp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13e241b2-5c34-4ff4-8bc0-13bd92da9f36_1402x838.png 848w, https://substackcdn.com/image/fetch/$s_!nafp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13e241b2-5c34-4ff4-8bc0-13bd92da9f36_1402x838.png 1272w, https://substackcdn.com/image/fetch/$s_!nafp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13e241b2-5c34-4ff4-8bc0-13bd92da9f36_1402x838.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nafp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13e241b2-5c34-4ff4-8bc0-13bd92da9f36_1402x838.png" width="431" height="257.61626248216834" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/13e241b2-5c34-4ff4-8bc0-13bd92da9f36_1402x838.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:838,&quot;width&quot;:1402,&quot;resizeWidth&quot;:431,&quot;bytes&quot;:88184,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nafp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13e241b2-5c34-4ff4-8bc0-13bd92da9f36_1402x838.png 424w, https://substackcdn.com/image/fetch/$s_!nafp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13e241b2-5c34-4ff4-8bc0-13bd92da9f36_1402x838.png 848w, https://substackcdn.com/image/fetch/$s_!nafp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13e241b2-5c34-4ff4-8bc0-13bd92da9f36_1402x838.png 1272w, https://substackcdn.com/image/fetch/$s_!nafp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13e241b2-5c34-4ff4-8bc0-13bd92da9f36_1402x838.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>The <code>rebase</code> command is used to reapply commits on top of another base tip. It&#8217;s a powerful tool for maintaining a linear project history by moving or combining a sequence of commits to a new base commit.</p><p><strong>Usage:</strong></p><pre><code>git rebase &lt;base&gt;</code></pre><h2><br>Integrating Changes</h2><div><hr></div><h3>Merge</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OBS_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ad989e9-aa4b-488f-84ab-a98c377f46e3_1462x766.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OBS_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ad989e9-aa4b-488f-84ab-a98c377f46e3_1462x766.png 424w, https://substackcdn.com/image/fetch/$s_!OBS_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ad989e9-aa4b-488f-84ab-a98c377f46e3_1462x766.png 848w, https://substackcdn.com/image/fetch/$s_!OBS_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ad989e9-aa4b-488f-84ab-a98c377f46e3_1462x766.png 1272w, https://substackcdn.com/image/fetch/$s_!OBS_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ad989e9-aa4b-488f-84ab-a98c377f46e3_1462x766.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OBS_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ad989e9-aa4b-488f-84ab-a98c377f46e3_1462x766.png" width="473" height="247.87019230769232" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9ad989e9-aa4b-488f-84ab-a98c377f46e3_1462x766.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:763,&quot;width&quot;:1456,&quot;resizeWidth&quot;:473,&quot;bytes&quot;:105322,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!OBS_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ad989e9-aa4b-488f-84ab-a98c377f46e3_1462x766.png 424w, https://substackcdn.com/image/fetch/$s_!OBS_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ad989e9-aa4b-488f-84ab-a98c377f46e3_1462x766.png 848w, https://substackcdn.com/image/fetch/$s_!OBS_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ad989e9-aa4b-488f-84ab-a98c377f46e3_1462x766.png 1272w, https://substackcdn.com/image/fetch/$s_!OBS_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ad989e9-aa4b-488f-84ab-a98c377f46e3_1462x766.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The <code>merge</code> command joins two or more development histories together. It takes the contents of a source branch and integrates them with the current branch, creating a new merge commit in the process.</p><p><strong>Usage:</strong></p><pre><code>git merge &lt;branch&gt;</code></pre><p></p><h1><br>Join waiting list for our 15 hours git course which covers all of these topics and more &#127881;<br></h1><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.amigoscode.com/courses/git-github&quot;,&quot;text&quot;:&quot;Click Here To Join Waiting List&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.amigoscode.com/courses/git-github"><span>Click Here To Join Waiting List</span></a></p><p><br></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7uf9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfe8809f-7d6a-4460-880b-06f405344637_1920x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7uf9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfe8809f-7d6a-4460-880b-06f405344637_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!7uf9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfe8809f-7d6a-4460-880b-06f405344637_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!7uf9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfe8809f-7d6a-4460-880b-06f405344637_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!7uf9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfe8809f-7d6a-4460-880b-06f405344637_1920x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7uf9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfe8809f-7d6a-4460-880b-06f405344637_1920x1080.png" width="727" height="408.9375" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dfe8809f-7d6a-4460-880b-06f405344637_1920x1080.png&quot;,&quot;srcNoWatermark&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6fc9e5f9-32ee-469f-9fa9-04502d1dbac6_1920x1080.webp&quot;,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:727,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;git-github_thumbnail&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="git-github_thumbnail" title="git-github_thumbnail" srcset="https://substackcdn.com/image/fetch/$s_!7uf9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfe8809f-7d6a-4460-880b-06f405344637_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!7uf9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfe8809f-7d6a-4460-880b-06f405344637_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!7uf9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfe8809f-7d6a-4460-880b-06f405344637_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!7uf9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfe8809f-7d6a-4460-880b-06f405344637_1920x1080.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1><br>Including over <strong>230</strong> Slides With Clear Explanations</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vrtB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5623004d-d418-4e5a-a938-a328c913103c_2229x1190.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vrtB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5623004d-d418-4e5a-a938-a328c913103c_2229x1190.png 424w, https://substackcdn.com/image/fetch/$s_!vrtB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5623004d-d418-4e5a-a938-a328c913103c_2229x1190.png 848w, https://substackcdn.com/image/fetch/$s_!vrtB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5623004d-d418-4e5a-a938-a328c913103c_2229x1190.png 1272w, https://substackcdn.com/image/fetch/$s_!vrtB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5623004d-d418-4e5a-a938-a328c913103c_2229x1190.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vrtB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5623004d-d418-4e5a-a938-a328c913103c_2229x1190.png" width="1456" height="777" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5623004d-d418-4e5a-a938-a328c913103c_2229x1190.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:777,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:352607,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vrtB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5623004d-d418-4e5a-a938-a328c913103c_2229x1190.png 424w, https://substackcdn.com/image/fetch/$s_!vrtB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5623004d-d418-4e5a-a938-a328c913103c_2229x1190.png 848w, https://substackcdn.com/image/fetch/$s_!vrtB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5623004d-d418-4e5a-a938-a328c913103c_2229x1190.png 1272w, https://substackcdn.com/image/fetch/$s_!vrtB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5623004d-d418-4e5a-a938-a328c913103c_2229x1190.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1><br>Here is what your learn </h1><blockquote><ul><li><p>Introduction To Git</p></li><li><p>Anatomy of Git Commands</p></li><li><p>Creating Your First Git Repository</p></li><li><p>Tracking Changes In Git</p></li><li><p>Working With Remote Repositories</p></li><li><p>Practical Exercises</p></li><li><p>Excluding Files And Folders In Git</p></li><li><p>Taking A Closer Look At Commits</p></li><li><p>Undoing Changes In Git</p></li><li><p>Force Pushing In Git</p></li><li><p>Working With Branches</p></li><li><p>Synchronizing Changes With Remote Repositories</p></li><li><p>Working With Pull Requests</p></li><li><p>Collaborating On Pull Requests</p></li><li><p>Managing Merge Commits</p></li><li><p>Rebasing In Git</p></li><li><p>Squashing Commits In Git</p></li><li><p>Resolving Merge Conflicts</p></li><li><p>Real-World Examples Of Rebase And Conflicts</p></li><li><p>Using Git Stash</p></li><li><p>Advanced Git Techniques And Best Practices</p></li><li><p>Using Visual Studio Code With Git</p></li><li><p>Git Clients (VSCode, IntelliJ and Others)</p></li><li><p>Open Source And Collaborative Workflows</p></li><li><p>Markdown And Documentation</p></li><li><p>Using Codespaces</p></li><li><p>Continuous Integration And Deployment (CI/CD)</p></li><li><p>Enhancing Security In Git</p></li><li><p>Agile Project Management And Planning</p></li><li><p>AI-Powered Development With GitHub Copilot</p></li></ul></blockquote><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.amigoscode.com/courses/git-github&quot;,&quot;text&quot;:&quot;Click Here To Join Waiting List&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.amigoscode.com/courses/git-github"><span>Click Here To Join Waiting List</span></a></p><p><br>See you on the next post &#129309;</p>]]></content:encoded></item></channel></rss>