<?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[HackerPM]]></title><description><![CDATA[Demystifying Tech jargon for Product Managers]]></description><link>https://www.hackerpm.com</link><image><url>https://www.hackerpm.com/img/substack.png</url><title>HackerPM</title><link>https://www.hackerpm.com</link></image><generator>Substack</generator><lastBuildDate>Sat, 02 May 2026 06:36:01 GMT</lastBuildDate><atom:link href="https://www.hackerpm.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Hamed M]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[hackerpm@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[hackerpm@substack.com]]></itunes:email><itunes:name><![CDATA[Hamed Mohammadpour]]></itunes:name></itunes:owner><itunes:author><![CDATA[Hamed Mohammadpour]]></itunes:author><googleplay:owner><![CDATA[hackerpm@substack.com]]></googleplay:owner><googleplay:email><![CDATA[hackerpm@substack.com]]></googleplay:email><googleplay:author><![CDATA[Hamed Mohammadpour]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Can LLMs really get cheaper?]]></title><description><![CDATA[Exploring the Economic Challenges of Scaling AI Inference]]></description><link>https://www.hackerpm.com/p/can-llms-really-get-cheaper</link><guid isPermaLink="false">https://www.hackerpm.com/p/can-llms-really-get-cheaper</guid><dc:creator><![CDATA[Hamed Mohammadpour]]></dc:creator><pubDate>Fri, 01 Aug 2025 17:17:53 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Ayqc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a4010aa-6f46-4d8a-9d66-8fd4c113fe33_1536x2048.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p>Can LLMs really get cheaper?</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_!Ayqc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a4010aa-6f46-4d8a-9d66-8fd4c113fe33_1536x2048.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ayqc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a4010aa-6f46-4d8a-9d66-8fd4c113fe33_1536x2048.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Ayqc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a4010aa-6f46-4d8a-9d66-8fd4c113fe33_1536x2048.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Ayqc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a4010aa-6f46-4d8a-9d66-8fd4c113fe33_1536x2048.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Ayqc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a4010aa-6f46-4d8a-9d66-8fd4c113fe33_1536x2048.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ayqc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a4010aa-6f46-4d8a-9d66-8fd4c113fe33_1536x2048.jpeg" width="728" height="970.5" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2a4010aa-6f46-4d8a-9d66-8fd4c113fe33_1536x2048.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:1941,&quot;width&quot;:1456,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image&quot;,&quot;title&quot;:&quot;Image&quot;,&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;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="Image" title="Image" srcset="https://substackcdn.com/image/fetch/$s_!Ayqc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a4010aa-6f46-4d8a-9d66-8fd4c113fe33_1536x2048.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Ayqc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a4010aa-6f46-4d8a-9d66-8fd4c113fe33_1536x2048.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Ayqc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a4010aa-6f46-4d8a-9d66-8fd4c113fe33_1536x2048.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Ayqc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a4010aa-6f46-4d8a-9d66-8fd4c113fe33_1536x2048.jpeg 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>Two weeks ago, I asked Peter Welinder, VP of Product at OpenAI, this question.</p><p>Peter explained, "There are two ways for LLM inference to be cheaper:"</p><ol><li><p>Energy prices drop.</p></li><li><p>We find an alternative to NVIDIA.</p></li></ol><p>Then he added:</p><ol><li><p>Energy prices will continue to rise as demand increases much faster than supply.</p></li><li><p>NVIDIA currently has a monopoly, so we'll see about that.</p></li></ol><p>In traditional businesses, you achieve economies of scale by reducing the cost per unit. Later, you sell the items with some margin, which, at scale, covers fixed costs (factory, equipment, employees, rent, etc.).</p><p>Model training is a fixed cost; however, the issue lies in the variable cost of inference. Being bound by energy prices, hardware/infrastructure, and the growing size of models (meaning more compute to train [fixed cost] and more expensive inference [variable cost]), the only logical approach is to increase prices.</p><p>However, competition emerges, providing better models in different areas every 3&#8211;6 months, raising consumer expectations for quality. With almost zero switching costs and no brand loyalty (like with Coke/Pepsi), R&amp;D spending is increasing even more, adding to the total cost.</p><p>Now we have:</p><ul><li><p>Models that are expensive to train.</p></li><li><p>AI labs can't (yet) charge a premium for providing the model.</p></li><li><p>Energy prices are not decreasing.</p></li><li><p>Heavily invested AI labs need to generate revenue at some point (within 12&#8211;24 months).</p></li></ul><p>Given these factors, I don&#8217;t see a way for prices to decrease, assuming market dynamics remain the same.</p><p>LLMs gained popularity through a UX innovation with ChatGPT. Now, it seems we need a financial innovation to sustain their growth.</p><p>What do you think?</p><div class="poll-embed" data-attrs="{&quot;id&quot;:354849}" data-component-name="PollToDOM"></div><p></p>]]></content:encoded></item><item><title><![CDATA[What is an API? Learn theory and practice using Cursor (GET/POST/PUT/DELETE)]]></title><description><![CDATA[Dive into the world of REST APIs with HackerPM's comprehensive guide for Product Managers! In this video, we break down the technical jargon and demystify REST APIs, making them accessible for PMs]]></description><link>https://www.hackerpm.com/p/what-is-an-api-learn-theory-and-practice</link><guid isPermaLink="false">https://www.hackerpm.com/p/what-is-an-api-learn-theory-and-practice</guid><dc:creator><![CDATA[Hamed Mohammadpour]]></dc:creator><pubDate>Sun, 01 Sep 2024 20:05:52 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/ctBke4pbkxM" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#128269; What you'll learn:</p><ul><li><p>The fundamentals of REST architecture</p></li><li><p>Key REST methods: GET, POST, PUT, DELETE</p></li><li><p>Code example using Node.js</p></li><li><p>Hands-on demonstration with Postman </p></li></ul><p>Whether you're new to APIs or looking to level up your technical knowledge, this course provides practical insights to help you communicate effectively with your engineering team. We'll walk you through code examples and show you how to use essential tools like Postman to interact with APIs. </p><div id="youtube2-ctBke4pbkxM" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;ctBke4pbkxM&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/ctBke4pbkxM?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><p>&#128218; Topics covered:</p><ul><li><p>What is REST? </p></li><li><p>REST architectural constraints </p></li><li><p>Understanding API requests and responses </p></li><li><p>Implementing a simple API server in Node.js</p></li><li><p>Testing APIs with Postman </p></li></ul><p>Don't let technical terms intimidate you! By the end of this video, you'll have a solid grasp of REST APIs and be ready to dive deeper into the world of API development. </p><p>&#128104;&#8205;&#128187; Perfect for: - Product Managers - Aspiring Technical PMs - Anyone looking to understand APIs better </p><p>&#128279; Resources: </p><ol><li><p>Course slides and materials are available on</p></li></ol><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;a55feec2-d1ad-4eaf-bd2d-8a52a759a6e4&quot;,&quot;caption&quot;:&quot;I'll join a challenge my friend Rasam Sheibeh has set to start an Advent Calendar this year.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Day 1 - REST APIs&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:135941051,&quot;name&quot;:&quot;Hamed Mohammadpour&quot;,&quot;bio&quot;:&quot;Centroid of Outliers&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/237915f2-8006-4d05-b64e-bf10db71496a_1500x1500.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2022-12-01T17:42:00.000Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d8bb25c4-38e7-4936-aedf-c120fe7516b3_2000x1333.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://www.hackerpm.com/p/day-1-rest-apis&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:137061355,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:3,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;HackerPM&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6729a0ba-5365-409a-94e4-8cced47d412a_742x742.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p></p><ol start="2"><li><p><a href="https://github.com/HamedMP/HackerPM-Crash-Course">HackerPM Crash Course repository on Github</a></p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hcac!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad48fe30-c4c6-47a6-a13f-0da2c802ff71_2846x1812.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hcac!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad48fe30-c4c6-47a6-a13f-0da2c802ff71_2846x1812.png 424w, https://substackcdn.com/image/fetch/$s_!hcac!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad48fe30-c4c6-47a6-a13f-0da2c802ff71_2846x1812.png 848w, https://substackcdn.com/image/fetch/$s_!hcac!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad48fe30-c4c6-47a6-a13f-0da2c802ff71_2846x1812.png 1272w, https://substackcdn.com/image/fetch/$s_!hcac!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad48fe30-c4c6-47a6-a13f-0da2c802ff71_2846x1812.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hcac!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad48fe30-c4c6-47a6-a13f-0da2c802ff71_2846x1812.png" width="1456" height="927" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ad48fe30-c4c6-47a6-a13f-0da2c802ff71_2846x1812.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:927,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1758453,&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_!hcac!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad48fe30-c4c6-47a6-a13f-0da2c802ff71_2846x1812.png 424w, https://substackcdn.com/image/fetch/$s_!hcac!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad48fe30-c4c6-47a6-a13f-0da2c802ff71_2846x1812.png 848w, https://substackcdn.com/image/fetch/$s_!hcac!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad48fe30-c4c6-47a6-a13f-0da2c802ff71_2846x1812.png 1272w, https://substackcdn.com/image/fetch/$s_!hcac!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad48fe30-c4c6-47a6-a13f-0da2c802ff71_2846x1812.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>Hope you enjoy this video! Let me know what you think in the comments. Bye! &#128075;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.hackerpm.com/p/what-is-an-api-learn-theory-and-practice/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://www.hackerpm.com/p/what-is-an-api-learn-theory-and-practice/comments"><span>Leave a comment</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Build a Landing Page in Minutes, No Code Needed - It's AI Magic! ✨]]></title><description><![CDATA[Have you ever dreamt of building a web app but got overwhelmed by the sheer amount of code? Well, dream no more!]]></description><link>https://www.hackerpm.com/p/build-a-landing-page-in-minutes-no</link><guid isPermaLink="false">https://www.hackerpm.com/p/build-a-landing-page-in-minutes-no</guid><dc:creator><![CDATA[Hamed Mohammadpour]]></dc:creator><pubDate>Thu, 29 Aug 2024 12:32:08 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/-YjFYGaJAjw" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Have you ever dreamt of building a web app but got overwhelmed by the sheer amount of code? Well, dream no more! In my latest YouTube video, I'll show you how to create a slick landing page using AI tools in Cursor. No coding experience is required!</p><p>We'll go step-by-step, from brainstorming the app name to deploying the final product. You'll see how AI can help generate UI, write compelling copy, and even troubleshoot errors. It's like having a coding wizard by your side! &#129497;&#8205;&#9794;&#65039;</p><p>In the video, I will go over a 10-step guide on how to build the landing page:</p><ol><li><p>Download Cursor and sign up for a free account.</p></li><li><p>Choose a project name and specify that it&#8217;s a web application.</p></li><li><p>Install the necessary tools including Versal, a tool that helps generate UI, Cloud 3.5, an AI tool to help generate code, and a GitHub account for hosting the code.</p></li><li><p>Use the chat function in Cursor to brainstorm a name for the application.</p></li><li><p>Use  Cursor to create a Next.js app.</p></li><li><p>Use the chat function again in Cursor to write a landing page copy that is optimized for conversion.</p></li><li><p>Use the composer function in Cursor to automatically apply the code for the landing page copy.</p></li><li><p>Preview the landing page in the browser.</p></li><li><p>Push the code to a GitHub repository.</p></li><li><p>Use Vercel to deploy the landing page.</p></li></ol><p>Enjoy and let me know your feedback and questions in the comments!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.hackerpm.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://www.hackerpm.com/subscribe?"><span>Subscribe now</span></a></p><p></p><h3>Useful Links</h3><ol><li><p>Cursor: https://www.cursor.com</p></li><li><p>Vercel:  https://vercel.com</p></li></ol><div id="youtube2--YjFYGaJAjw" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;-YjFYGaJAjw&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/-YjFYGaJAjw?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>]]></content:encoded></item><item><title><![CDATA[Day 23 - Serverless movement]]></title><description><![CDATA[Serverless computing was invented in order to address the challenges and complexities of managing infrastructure in traditional computing models. Let's explore this concept in more detail.]]></description><link>https://www.hackerpm.com/p/day-23-serverless-movement</link><guid isPermaLink="false">https://www.hackerpm.com/p/day-23-serverless-movement</guid><dc:creator><![CDATA[Hamed Mohammadpour]]></dc:creator><pubDate>Fri, 23 Dec 2022 15:51:52 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3fd389-420e-41af-ac5a-8bad6a1150a2_870x500.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KK6_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfe4d46f-eace-4319-ba31-7eb273244855_600x270.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KK6_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfe4d46f-eace-4319-ba31-7eb273244855_600x270.png 424w, https://substackcdn.com/image/fetch/$s_!KK6_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfe4d46f-eace-4319-ba31-7eb273244855_600x270.png 848w, https://substackcdn.com/image/fetch/$s_!KK6_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfe4d46f-eace-4319-ba31-7eb273244855_600x270.png 1272w, https://substackcdn.com/image/fetch/$s_!KK6_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfe4d46f-eace-4319-ba31-7eb273244855_600x270.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KK6_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfe4d46f-eace-4319-ba31-7eb273244855_600x270.png" width="600" height="270" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bfe4d46f-eace-4319-ba31-7eb273244855_600x270.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:270,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Day 23 - Serverless movement&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="Day 23 - Serverless movement" title="Day 23 - Serverless movement" srcset="https://substackcdn.com/image/fetch/$s_!KK6_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfe4d46f-eace-4319-ba31-7eb273244855_600x270.png 424w, https://substackcdn.com/image/fetch/$s_!KK6_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfe4d46f-eace-4319-ba31-7eb273244855_600x270.png 848w, https://substackcdn.com/image/fetch/$s_!KK6_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfe4d46f-eace-4319-ba31-7eb273244855_600x270.png 1272w, https://substackcdn.com/image/fetch/$s_!KK6_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfe4d46f-eace-4319-ba31-7eb273244855_600x270.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>Today, we're going to be discussing the concept of <strong>serverless computing</strong> and how it can be used to deploy software products. This is the other side of the coin compared to yesterday, where we talked about <a href="hackerpm.com/day-22-server-softwares-nginx-apacher-http/">Web Servers</a> and why we need them.</p><p><strong>Serverless computing</strong> is a way of building and running applications and services without the need to manage infrastructure. This means that developers do not have to worry about setting up and maintaining servers and can instead focus on writing and deploying code.</p><p>But before jumping into it, a small <strong>announcement</strong>! (super big actually)</p><h1>&#128227; Upcoming course for HackerPM</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!a_ZH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a2e3686-4d5c-400e-910a-a30c3492b3eb_512x512.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!a_ZH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a2e3686-4d5c-400e-910a-a30c3492b3eb_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!a_ZH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a2e3686-4d5c-400e-910a-a30c3492b3eb_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!a_ZH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a2e3686-4d5c-400e-910a-a30c3492b3eb_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!a_ZH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a2e3686-4d5c-400e-910a-a30c3492b3eb_512x512.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!a_ZH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a2e3686-4d5c-400e-910a-a30c3492b3eb_512x512.png" width="512" height="512" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9a2e3686-4d5c-400e-910a-a30c3492b3eb_512x512.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:512,&quot;width&quot;:512,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&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="" srcset="https://substackcdn.com/image/fetch/$s_!a_ZH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a2e3686-4d5c-400e-910a-a30c3492b3eb_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!a_ZH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a2e3686-4d5c-400e-910a-a30c3492b3eb_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!a_ZH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a2e3686-4d5c-400e-910a-a30c3492b3eb_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!a_ZH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a2e3686-4d5c-400e-910a-a30c3492b3eb_512x512.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><em>I'm working on building a live, 2-week-long cohort-based course for Product Managers to learn technical concepts with ease and get ready for managing technical products. You&#8217;ll learn how to tackle a new technical product, how to do technical discovery together with your engineers as well as how to build long and sustaining relationships with them.</em></p><p><em>I&#8217;ve worked on this topic for the last 5 years working at leading scale-ups in the Nordics. Now I&#8217;d love to teach you. <strong>Fill out <a href="https://maven.com/forms/2969b4">this survey</a> to get on the waitlist &amp; be the first to hear when enrollments open.</strong></em></p><blockquote><p>&#127873; You'll also get a 10% discount on the final price (and 20% if you are a pro member of HackerPM).</p></blockquote><h1>Why Serverless?</h1><p>After a small announcement, back to the topic. &#129299;</p><p>Serverless computing was invented in order to a<strong>ddress the challenges and complexities of managing infrastructure </strong>in traditional computing models. In the past, developers had to worry about setting up and maintaining servers, as well as scaling the infrastructure to meet the needs of their applications. This required a significant amount of time and effort and could be a barrier to getting applications to market quickly.</p><p>In a serverless model, the provider (such as <strong>AWS, Azure, or Google Cloud</strong>) is responsible for executing the code and scaling the application as needed. The provider charges for the actual execution of the code, rather than for a pre-allocated amount of computing resources. This can lead to cost savings, as the developer only pays for the resources that are actually used, rather than for a fixed amount of computing capacity.</p><h1>Comparison to web servers</h1><p>If you remember from <a href="hackerpm.com/day-22-server-softwares-nginx-apacher-http/">yesterday's post</a>, a web server software such as <strong>Apache or NGINX</strong> is a program that runs on a server and is responsible for handling <strong>HTTP</strong> requests an<strong>d serving web content</strong>. In this model, the developer is responsible for setting up and maintaining the server and the web server software, as well as deploying the application code.</p><p>One key difference between serverless computing and web server software is the level of <strong>control and responsibility</strong> the developer has over the underlying infrastructure. With <strong>serverless computing</strong>, the provider is responsible for executing the code and scaling the application as needed, while with web server software the developer is responsible for setting up and maintaining the server and the web server software.</p><p>Another difference is the way that the developer is <strong>charged for the use of computing resources</strong>. In a serverless model, the developer is only charged for the <strong>actual execution of the code</strong>, rather than for a <strong>pre-allocated amount </strong>of computing resources. This can lead to cost savings, as the developer only pays for the resources that are actually used, rather than for a fixed amount of computing capacity.</p><p>Let's explore popular Serverless providers in the market.</p><h1>Does serverless actually mean no servers?</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!a9pF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50655508-7dbe-4e70-ada5-0b77f6f19c3c_498x375.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!a9pF!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50655508-7dbe-4e70-ada5-0b77f6f19c3c_498x375.gif 424w, https://substackcdn.com/image/fetch/$s_!a9pF!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50655508-7dbe-4e70-ada5-0b77f6f19c3c_498x375.gif 848w, https://substackcdn.com/image/fetch/$s_!a9pF!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50655508-7dbe-4e70-ada5-0b77f6f19c3c_498x375.gif 1272w, https://substackcdn.com/image/fetch/$s_!a9pF!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50655508-7dbe-4e70-ada5-0b77f6f19c3c_498x375.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!a9pF!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50655508-7dbe-4e70-ada5-0b77f6f19c3c_498x375.gif" width="498" height="375" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/50655508-7dbe-4e70-ada5-0b77f6f19c3c_498x375.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:375,&quot;width&quot;:498,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&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="" title="" srcset="https://substackcdn.com/image/fetch/$s_!a9pF!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50655508-7dbe-4e70-ada5-0b77f6f19c3c_498x375.gif 424w, https://substackcdn.com/image/fetch/$s_!a9pF!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50655508-7dbe-4e70-ada5-0b77f6f19c3c_498x375.gif 848w, https://substackcdn.com/image/fetch/$s_!a9pF!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50655508-7dbe-4e70-ada5-0b77f6f19c3c_498x375.gif 1272w, https://substackcdn.com/image/fetch/$s_!a9pF!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50655508-7dbe-4e70-ada5-0b77f6f19c3c_498x375.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>Any program on the computer runs on the hardware, as well as serverless applications are run on the servers, but this part is not exposed to the developers and is self-managed by the vendors.</p><blockquote><p>So in the end, the general mental model we have of how online software products work is still correct.</p></blockquote><h1>AWS Lambda</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0wrt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3fd389-420e-41af-ac5a-8bad6a1150a2_870x500.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0wrt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3fd389-420e-41af-ac5a-8bad6a1150a2_870x500.png 424w, https://substackcdn.com/image/fetch/$s_!0wrt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3fd389-420e-41af-ac5a-8bad6a1150a2_870x500.png 848w, https://substackcdn.com/image/fetch/$s_!0wrt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3fd389-420e-41af-ac5a-8bad6a1150a2_870x500.png 1272w, https://substackcdn.com/image/fetch/$s_!0wrt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3fd389-420e-41af-ac5a-8bad6a1150a2_870x500.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0wrt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3fd389-420e-41af-ac5a-8bad6a1150a2_870x500.png" width="870" height="500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ce3fd389-420e-41af-ac5a-8bad6a1150a2_870x500.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:500,&quot;width&quot;:870,&quot;resizeWidth&quot;:null,&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_!0wrt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3fd389-420e-41af-ac5a-8bad6a1150a2_870x500.png 424w, https://substackcdn.com/image/fetch/$s_!0wrt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3fd389-420e-41af-ac5a-8bad6a1150a2_870x500.png 848w, https://substackcdn.com/image/fetch/$s_!0wrt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3fd389-420e-41af-ac5a-8bad6a1150a2_870x500.png 1272w, https://substackcdn.com/image/fetch/$s_!0wrt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3fd389-420e-41af-ac5a-8bad6a1150a2_870x500.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>Amazon Web Services (</strong>AWS<strong>)</strong> <strong>Lambda</strong> is a serverless computing platform. It is a service that allows developers to run code without having to worry about the underlying infrastructure.</p><p>With <strong>AWS Lambda</strong>, developers can upload their code and the service will automatically execute it in response to specific events or triggers. These events or triggers can include things like a change in a database, a message arriving in a message queue, or a request to an API.</p><p>One of the key benefits of using AWS Lambda is that it <strong>automatically scales the execution of the code</strong> based on the number of incoming requests or events. This means that the developer does not have to worry about provisioning or managing servers, and can instead focus on writing and deploying code.</p><p>AWS Lambda is charged based on the number of requests for the function and the duration of the execution. This means that the developer only pays for the resources that are actually used, rather than for a fixed amount of computing capacity.</p><ul><li><p><a href="https://aws.amazon.com/serverless/">Link</a> to Serverless page on AWS</p></li></ul><blockquote><p>As you'll notice, there are many different services only in Amazon Web Services to support "Serverless" architecture. We touched only Lambda as one of the key elements in the serverless package.</p></blockquote><h1>Google Cloud Functions</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8O1N!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4f4039e-34b7-45b6-b5fb-b1344f779c75_1600x782.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8O1N!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4f4039e-34b7-45b6-b5fb-b1344f779c75_1600x782.png 424w, https://substackcdn.com/image/fetch/$s_!8O1N!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4f4039e-34b7-45b6-b5fb-b1344f779c75_1600x782.png 848w, https://substackcdn.com/image/fetch/$s_!8O1N!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4f4039e-34b7-45b6-b5fb-b1344f779c75_1600x782.png 1272w, https://substackcdn.com/image/fetch/$s_!8O1N!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4f4039e-34b7-45b6-b5fb-b1344f779c75_1600x782.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8O1N!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4f4039e-34b7-45b6-b5fb-b1344f779c75_1600x782.png" width="1456" height="712" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f4f4039e-34b7-45b6-b5fb-b1344f779c75_1600x782.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:712,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&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_!8O1N!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4f4039e-34b7-45b6-b5fb-b1344f779c75_1600x782.png 424w, https://substackcdn.com/image/fetch/$s_!8O1N!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4f4039e-34b7-45b6-b5fb-b1344f779c75_1600x782.png 848w, https://substackcdn.com/image/fetch/$s_!8O1N!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4f4039e-34b7-45b6-b5fb-b1344f779c75_1600x782.png 1272w, https://substackcdn.com/image/fetch/$s_!8O1N!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4f4039e-34b7-45b6-b5fb-b1344f779c75_1600x782.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>Google Cloud Functions</strong> is a serverless computing platform offered by <strong>Google Cloud</strong>. It allows developers to run code in response to specific events or triggers, without the need to worry about the underlying infrastructure.</p><p>Like <strong>AWS Lambda</strong>, <strong>Google Cloud Functions</strong> automatically scales the execution of the code based on the number of incoming requests or events.</p><p>Google Cloud Functions is charged based on the number of invocations of the function and the duration of the execution, just like AWS Lambda.</p><h2>Comparison between Lambda, Cloud Functions, and Azure's Serverless offering</h2><p>In one photo:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-pAW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa78cc33-dea3-4a4f-89a8-f76698e3a3c3_2053x1553.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-pAW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa78cc33-dea3-4a4f-89a8-f76698e3a3c3_2053x1553.png 424w, https://substackcdn.com/image/fetch/$s_!-pAW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa78cc33-dea3-4a4f-89a8-f76698e3a3c3_2053x1553.png 848w, https://substackcdn.com/image/fetch/$s_!-pAW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa78cc33-dea3-4a4f-89a8-f76698e3a3c3_2053x1553.png 1272w, https://substackcdn.com/image/fetch/$s_!-pAW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa78cc33-dea3-4a4f-89a8-f76698e3a3c3_2053x1553.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-pAW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa78cc33-dea3-4a4f-89a8-f76698e3a3c3_2053x1553.png" width="1456" height="1101" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fa78cc33-dea3-4a4f-89a8-f76698e3a3c3_2053x1553.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1101,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&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_!-pAW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa78cc33-dea3-4a4f-89a8-f76698e3a3c3_2053x1553.png 424w, https://substackcdn.com/image/fetch/$s_!-pAW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa78cc33-dea3-4a4f-89a8-f76698e3a3c3_2053x1553.png 848w, https://substackcdn.com/image/fetch/$s_!-pAW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa78cc33-dea3-4a4f-89a8-f76698e3a3c3_2053x1553.png 1272w, https://substackcdn.com/image/fetch/$s_!-pAW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa78cc33-dea3-4a4f-89a8-f76698e3a3c3_2053x1553.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>Other providers</h1><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UwuN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28b9a2da-112d-4286-8c4f-579836bead2c_824x215.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UwuN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28b9a2da-112d-4286-8c4f-579836bead2c_824x215.png 424w, https://substackcdn.com/image/fetch/$s_!UwuN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28b9a2da-112d-4286-8c4f-579836bead2c_824x215.png 848w, https://substackcdn.com/image/fetch/$s_!UwuN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28b9a2da-112d-4286-8c4f-579836bead2c_824x215.png 1272w, https://substackcdn.com/image/fetch/$s_!UwuN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28b9a2da-112d-4286-8c4f-579836bead2c_824x215.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UwuN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28b9a2da-112d-4286-8c4f-579836bead2c_824x215.png" width="824" height="215" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/28b9a2da-112d-4286-8c4f-579836bead2c_824x215.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:215,&quot;width&quot;:824,&quot;resizeWidth&quot;:null,&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_!UwuN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28b9a2da-112d-4286-8c4f-579836bead2c_824x215.png 424w, https://substackcdn.com/image/fetch/$s_!UwuN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28b9a2da-112d-4286-8c4f-579836bead2c_824x215.png 848w, https://substackcdn.com/image/fetch/$s_!UwuN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28b9a2da-112d-4286-8c4f-579836bead2c_824x215.png 1272w, https://substackcdn.com/image/fetch/$s_!UwuN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28b9a2da-112d-4286-8c4f-579836bead2c_824x215.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>AWS Lambda and Google Cloud Functions are only the tips of the Serverless iceberg. There are many more providers in the market, ranging from enterprise-grade to open-source ones. Here is a quick list of other popular serverless choices:</p><ol><li><p><strong>Azure Functions</strong>: A serverless computing platform offered by Microsoft Azure that allows developers to run code in response to specific events or triggers.</p></li><li><p><strong>IBM Cloud Functions</strong>: A serverless computing platform offered by IBM Cloud that allows developers to run code in response to specific events or triggers.</p></li><li><p><strong>Oracle Cloud Functions</strong>: A serverless computing platform offered by Oracle Cloud that allows developers to run code in response to specific events or triggers.</p></li><li><p><strong>AWS Fargate</strong>: A fully managed container execution service offered by AWS that allows developers to deploy and run containerized applications without the need to worry about the underlying infrastructure.</p></li><li><p><strong>Google Cloud Run</strong>: A fully managed serverless platform offered by Google Cloud that allows developers to deploy <strong><a href="hackerpm.com/day-21-data-and-data/">containerized</a> applications</strong>.</p></li><li><p><strong>Azure Container Instances</strong>: A serverless computing platform offered by Microsoft Azure that allows developers to deploy and run <a href="hackerpm.com/day-21-data-and-data/">containerized</a> applications.</p></li></ol><h2>The updated mental model for Serverless architecture</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4r9m!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fc62391-e6a1-47f7-9dfa-12cec74e0eb8_1400x649.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4r9m!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fc62391-e6a1-47f7-9dfa-12cec74e0eb8_1400x649.png 424w, https://substackcdn.com/image/fetch/$s_!4r9m!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fc62391-e6a1-47f7-9dfa-12cec74e0eb8_1400x649.png 848w, https://substackcdn.com/image/fetch/$s_!4r9m!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fc62391-e6a1-47f7-9dfa-12cec74e0eb8_1400x649.png 1272w, https://substackcdn.com/image/fetch/$s_!4r9m!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fc62391-e6a1-47f7-9dfa-12cec74e0eb8_1400x649.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4r9m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fc62391-e6a1-47f7-9dfa-12cec74e0eb8_1400x649.png" width="1400" height="649" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3fc62391-e6a1-47f7-9dfa-12cec74e0eb8_1400x649.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:649,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&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_!4r9m!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fc62391-e6a1-47f7-9dfa-12cec74e0eb8_1400x649.png 424w, https://substackcdn.com/image/fetch/$s_!4r9m!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fc62391-e6a1-47f7-9dfa-12cec74e0eb8_1400x649.png 848w, https://substackcdn.com/image/fetch/$s_!4r9m!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fc62391-e6a1-47f7-9dfa-12cec74e0eb8_1400x649.png 1272w, https://substackcdn.com/image/fetch/$s_!4r9m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fc62391-e6a1-47f7-9dfa-12cec74e0eb8_1400x649.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 quick recap:</p><ul><li><p><a href="hackerpm.com/day-14/">Frontend frameworks</a> to build the client-facing application.</p></li><li><p>The Serverless infrastructure to host the application logic (in comparison to a <a href="hackerpm.com/dy-17-backend-frameworks/">backend framework</a> and <a href="hackerpm.com/day-22-server-softwares-nginx-apacher-http/">web servers</a>)</p></li><li><p><a href="hackerpm.com/day-18-databases-part-1/">Databases</a> and other libraries, if any (such as authentication, notification, ...) stay the same as before. &nbsp;</p></li></ul><h1>To be serverless or not? That's the question</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zGKM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d641084-9f69-4429-b917-c20777077109_640x360.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zGKM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d641084-9f69-4429-b917-c20777077109_640x360.png 424w, https://substackcdn.com/image/fetch/$s_!zGKM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d641084-9f69-4429-b917-c20777077109_640x360.png 848w, https://substackcdn.com/image/fetch/$s_!zGKM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d641084-9f69-4429-b917-c20777077109_640x360.png 1272w, https://substackcdn.com/image/fetch/$s_!zGKM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d641084-9f69-4429-b917-c20777077109_640x360.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zGKM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d641084-9f69-4429-b917-c20777077109_640x360.png" width="640" height="360" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4d641084-9f69-4429-b917-c20777077109_640x360.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:360,&quot;width&quot;:640,&quot;resizeWidth&quot;:null,&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_!zGKM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d641084-9f69-4429-b917-c20777077109_640x360.png 424w, https://substackcdn.com/image/fetch/$s_!zGKM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d641084-9f69-4429-b917-c20777077109_640x360.png 848w, https://substackcdn.com/image/fetch/$s_!zGKM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d641084-9f69-4429-b917-c20777077109_640x360.png 1272w, https://substackcdn.com/image/fetch/$s_!zGKM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d641084-9f69-4429-b917-c20777077109_640x360.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>Product managers</strong> should consider a number of factors when deciding whether to use a <strong>web server or a serverless architecture</strong>. Some of the key considerations include:</p><ol><li><p><strong>Cost</strong>: Serverless computing can be more cost-effective in some cases, as the developer is only charged for the actual execution of the code, rather than for a pre-allocated amount of computing resources.</p></li><li><p><strong>Scalability</strong>: Serverless computing allows for automatic scaling of the application based on the number of incoming requests or events. This can be useful for applications that experience fluctuations in traffic.</p></li><li><p><strong>Time to market</strong>: Serverless computing can allow for faster development and deployment of applications, as the developer does not have to worry about setting up and maintaining infrastructure.</p></li><li><p><strong>Complexity</strong>: Serverless computing can be simpler for developers to use, as they do not have to worry about managing infrastructure.</p></li><li><p><strong>Integration with other services</strong>: Some serverless platforms, such as AWS Lambda and Google Cloud Functions, offer a wide range of integrations with other services, which can be useful for building more complex applications.</p></li></ol><p><strong>Overall</strong>, serverless computing can be a cost-effective and efficient way to deploy applications, as it allows developers to focus on writing code and allows the provider to handle the underlying infrastructure.</p><p>Thank you for reading, and we hope you found this information helpful. Until next time!</p>]]></content:encoded></item><item><title><![CDATA[Day 22 - Server Software, Nginx and Apache]]></title><description><![CDATA[I wanted to take a few minutes to talk about server software and how it relates to the products we manage.]]></description><link>https://www.hackerpm.com/p/day-22-server-softwares-nginx-apacher-http</link><guid isPermaLink="false">https://www.hackerpm.com/p/day-22-server-softwares-nginx-apacher-http</guid><dc:creator><![CDATA[Hamed Mohammadpour]]></dc:creator><pubDate>Thu, 22 Dec 2022 18:39:24 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/2be3994c-9605-4198-a8c9-c01da5ada23a_2000x958.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!l9Kh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4b2b027-1ad9-4ffa-9cd5-36c547ed81c1_2000x958.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!l9Kh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4b2b027-1ad9-4ffa-9cd5-36c547ed81c1_2000x958.jpeg 424w, https://substackcdn.com/image/fetch/$s_!l9Kh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4b2b027-1ad9-4ffa-9cd5-36c547ed81c1_2000x958.jpeg 848w, https://substackcdn.com/image/fetch/$s_!l9Kh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4b2b027-1ad9-4ffa-9cd5-36c547ed81c1_2000x958.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!l9Kh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4b2b027-1ad9-4ffa-9cd5-36c547ed81c1_2000x958.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!l9Kh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4b2b027-1ad9-4ffa-9cd5-36c547ed81c1_2000x958.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e4b2b027-1ad9-4ffa-9cd5-36c547ed81c1_2000x958.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Day 22 - Server Software, Nginx and Apache&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="Day 22 - Server Software, Nginx and Apache" title="Day 22 - Server Software, Nginx and Apache" srcset="https://substackcdn.com/image/fetch/$s_!l9Kh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4b2b027-1ad9-4ffa-9cd5-36c547ed81c1_2000x958.jpeg 424w, https://substackcdn.com/image/fetch/$s_!l9Kh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4b2b027-1ad9-4ffa-9cd5-36c547ed81c1_2000x958.jpeg 848w, https://substackcdn.com/image/fetch/$s_!l9Kh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4b2b027-1ad9-4ffa-9cd5-36c547ed81c1_2000x958.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!l9Kh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4b2b027-1ad9-4ffa-9cd5-36c547ed81c1_2000x958.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>But before that, as we are only a few days away from the end of the #<strong>AdventCalendar</strong> series, let's have a look back at the content we covered over the past 3 weeks.</p><h1>Summary of the past three weeks in 2 minutes</h1><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oWUz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd3595ea-dce8-4021-92ce-a53fbfb7555d_498x225.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oWUz!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd3595ea-dce8-4021-92ce-a53fbfb7555d_498x225.gif 424w, https://substackcdn.com/image/fetch/$s_!oWUz!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd3595ea-dce8-4021-92ce-a53fbfb7555d_498x225.gif 848w, https://substackcdn.com/image/fetch/$s_!oWUz!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd3595ea-dce8-4021-92ce-a53fbfb7555d_498x225.gif 1272w, https://substackcdn.com/image/fetch/$s_!oWUz!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd3595ea-dce8-4021-92ce-a53fbfb7555d_498x225.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oWUz!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd3595ea-dce8-4021-92ce-a53fbfb7555d_498x225.gif" width="498" height="225" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dd3595ea-dce8-4021-92ce-a53fbfb7555d_498x225.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:225,&quot;width&quot;:498,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&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="" title="" srcset="https://substackcdn.com/image/fetch/$s_!oWUz!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd3595ea-dce8-4021-92ce-a53fbfb7555d_498x225.gif 424w, https://substackcdn.com/image/fetch/$s_!oWUz!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd3595ea-dce8-4021-92ce-a53fbfb7555d_498x225.gif 848w, https://substackcdn.com/image/fetch/$s_!oWUz!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd3595ea-dce8-4021-92ce-a53fbfb7555d_498x225.gif 1272w, https://substackcdn.com/image/fetch/$s_!oWUz!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd3595ea-dce8-4021-92ce-a53fbfb7555d_498x225.gif 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><p>Here are some common technologies that are often used in modern software development:</p><ul><li><p><strong>Programming languages</strong>: Some popular programming languages used in software development today include Java, Python, C#, C++, and JavaScript. Even though we haven't covered this, we assume we are all aware of the fact that there are several different programming languages, each with its pros/cons, community, and use cases. A hacky introduction to popular ones will be a series soon!</p></li><li><p><strong>Web development frameworks</strong>: These frameworks provide a structure for building web applications and include tools for routing, templates, and database access. Examples include Django (Python), Ruby on Rails (Ruby), and ASP.NET (C#). We covered these on <strong><a href="hackerpm.com/dy-17-backend-frameworks/">Day 17, Backend Frameworks</a></strong>.</p></li><li><p><strong>Database technologies</strong>: Many software applications use databases to store data, and there are several database management systems (DBMS) to choose from. Some popular DBMSs include MySQL, PostgreSQL, and Microsoft SQL Server. Check out <strong><a href="hackerpm.com/day-18-databases-part-1/">Day 18</a></strong> for more info on DBs.</p></li><li><p><strong>Cloud computing platforms</strong>: Cloud computing platforms such as Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform provide a range of services including computing, storage, and networking that can be accessed over the internet. This an adjacent topic for today's, but not exactly. We'll take <strong>Cloud computing</strong> when we are <strong>building a product together, over a newsletter, </strong>isn't that cool? &#129321;</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_!OLe5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a120e82-343c-4508-b02e-a8dcafdcfc93_498x266.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OLe5!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a120e82-343c-4508-b02e-a8dcafdcfc93_498x266.gif 424w, https://substackcdn.com/image/fetch/$s_!OLe5!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a120e82-343c-4508-b02e-a8dcafdcfc93_498x266.gif 848w, https://substackcdn.com/image/fetch/$s_!OLe5!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a120e82-343c-4508-b02e-a8dcafdcfc93_498x266.gif 1272w, https://substackcdn.com/image/fetch/$s_!OLe5!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a120e82-343c-4508-b02e-a8dcafdcfc93_498x266.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OLe5!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a120e82-343c-4508-b02e-a8dcafdcfc93_498x266.gif" width="498" height="266" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6a120e82-343c-4508-b02e-a8dcafdcfc93_498x266.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:266,&quot;width&quot;:498,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&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="" title="" srcset="https://substackcdn.com/image/fetch/$s_!OLe5!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a120e82-343c-4508-b02e-a8dcafdcfc93_498x266.gif 424w, https://substackcdn.com/image/fetch/$s_!OLe5!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a120e82-343c-4508-b02e-a8dcafdcfc93_498x266.gif 848w, https://substackcdn.com/image/fetch/$s_!OLe5!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a120e82-343c-4508-b02e-a8dcafdcfc93_498x266.gif 1272w, https://substackcdn.com/image/fetch/$s_!OLe5!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a120e82-343c-4508-b02e-a8dcafdcfc93_498x266.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><ul><li><p><strong>Containerization</strong>: Containerization technologies such as <strong>Docker</strong> allow developers to package their applications and dependencies into a container that can be easily deployed and run on any machine. We explained this topic on <strong><a href="hackerpm.com/day-21-data-and-data/">Day 21, Containerization</a></strong> for Product Managers.</p></li><li><p><strong>Version control systems</strong>: Version control systems such as Git allow developers to track changes to their codebase and collaborate with other team members. Don't forget to check out the 3 part tutorial on <strong>Git</strong>: <strong><a href="hackerpm.com/day-4/">Part 1</a></strong>, <strong><a href="hackerpm.com/day-5-git-2/">Part 2</a></strong>, and <strong><a href="hackerpm.com/day-6-git-3/">Part 3</a></strong>.</p></li><li><p><strong>Continuous integration and deployment (CI/CD) tools</strong>: CI/CD tools such as Jenkins, CircleCI, and Travis CI automate the process of building, testing, and deploying code changes. Learn more on CI/CD on <strong><a href="hackerpm.com/day-7-devops-1/">Day 7</a>, </strong>and <strong><a href="hackerpm.com/day-8-devops-2/">Day 8</a></strong>.</p></li><li><p><strong>Server software</strong>: Server software such as Nginx and Apache are used to host web applications and serve web content to users. We will cover this in today's session!</p></li></ul><blockquote><p>&#128525; With this, you can say you have a full view of most of the technologies used in a typical software development project.&nbsp;</p></blockquote><h1>Server software</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lWjx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F104002f4-c598-45b9-a765-e41026d48cfa_2048x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lWjx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F104002f4-c598-45b9-a765-e41026d48cfa_2048x1024.png 424w, https://substackcdn.com/image/fetch/$s_!lWjx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F104002f4-c598-45b9-a765-e41026d48cfa_2048x1024.png 848w, https://substackcdn.com/image/fetch/$s_!lWjx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F104002f4-c598-45b9-a765-e41026d48cfa_2048x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!lWjx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F104002f4-c598-45b9-a765-e41026d48cfa_2048x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lWjx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F104002f4-c598-45b9-a765-e41026d48cfa_2048x1024.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/104002f4-c598-45b9-a765-e41026d48cfa_2048x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&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_!lWjx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F104002f4-c598-45b9-a765-e41026d48cfa_2048x1024.png 424w, https://substackcdn.com/image/fetch/$s_!lWjx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F104002f4-c598-45b9-a765-e41026d48cfa_2048x1024.png 848w, https://substackcdn.com/image/fetch/$s_!lWjx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F104002f4-c598-45b9-a765-e41026d48cfa_2048x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!lWjx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F104002f4-c598-45b9-a765-e41026d48cfa_2048x1024.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>First, let's define what we mean by the server software. Simply put, the server software is a type of software that <strong>runs on a server and enables it to host web applications</strong>, serve static content, or perform other tasks. Some examples of server software include Nginx, Apache HTTP Server, and Microsoft IIS.</p><p>Now, let's dive a little deeper into two of these server software options, NGINX and Apache HTTP Server.</p><h1>NGINX</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rN26!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd4d95a-e403-4ad2-a3c9-e2eed59e0159_1200x675.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rN26!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd4d95a-e403-4ad2-a3c9-e2eed59e0159_1200x675.png 424w, https://substackcdn.com/image/fetch/$s_!rN26!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd4d95a-e403-4ad2-a3c9-e2eed59e0159_1200x675.png 848w, https://substackcdn.com/image/fetch/$s_!rN26!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd4d95a-e403-4ad2-a3c9-e2eed59e0159_1200x675.png 1272w, https://substackcdn.com/image/fetch/$s_!rN26!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd4d95a-e403-4ad2-a3c9-e2eed59e0159_1200x675.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rN26!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd4d95a-e403-4ad2-a3c9-e2eed59e0159_1200x675.png" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2dd4d95a-e403-4ad2-a3c9-e2eed59e0159_1200x675.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:675,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&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_!rN26!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd4d95a-e403-4ad2-a3c9-e2eed59e0159_1200x675.png 424w, https://substackcdn.com/image/fetch/$s_!rN26!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd4d95a-e403-4ad2-a3c9-e2eed59e0159_1200x675.png 848w, https://substackcdn.com/image/fetch/$s_!rN26!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd4d95a-e403-4ad2-a3c9-e2eed59e0159_1200x675.png 1272w, https://substackcdn.com/image/fetch/$s_!rN26!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd4d95a-e403-4ad2-a3c9-e2eed59e0159_1200x675.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.nginx.com/">NGINX</a></strong> (pronounced "<strong>engine x</strong>") is a web server that is often used to host web applications and serve static content, such as images and HTML files. It is known for its high performance, stability, and low resource consumption, making it a popular choice for web servers.</p><p><strong>NGINX</strong> can also be used as a <strong>reverse proxy, load balancer, and HTTP cach</strong>e.</p><p>As a <strong>reverse proxy</strong>, it can r<strong>oute traffic from the internet to one or more back-end servers</strong>, which can be helpful in several scenarios, such as serving multiple applications from the same domain, load balancing, and offloading SSL/TLS termination.</p><p>As a <strong>load balancer</strong>, NGINX can <strong>distribute incoming requests to multiple servers</strong> to improve performance and reliability.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IhOJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff753b646-ef06-4809-9834-37ceff9f25ec_1720x862.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IhOJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff753b646-ef06-4809-9834-37ceff9f25ec_1720x862.png 424w, https://substackcdn.com/image/fetch/$s_!IhOJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff753b646-ef06-4809-9834-37ceff9f25ec_1720x862.png 848w, https://substackcdn.com/image/fetch/$s_!IhOJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff753b646-ef06-4809-9834-37ceff9f25ec_1720x862.png 1272w, https://substackcdn.com/image/fetch/$s_!IhOJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff753b646-ef06-4809-9834-37ceff9f25ec_1720x862.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IhOJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff753b646-ef06-4809-9834-37ceff9f25ec_1720x862.png" width="1456" height="730" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f753b646-ef06-4809-9834-37ceff9f25ec_1720x862.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:730,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&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_!IhOJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff753b646-ef06-4809-9834-37ceff9f25ec_1720x862.png 424w, https://substackcdn.com/image/fetch/$s_!IhOJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff753b646-ef06-4809-9834-37ceff9f25ec_1720x862.png 848w, https://substackcdn.com/image/fetch/$s_!IhOJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff753b646-ef06-4809-9834-37ceff9f25ec_1720x862.png 1272w, https://substackcdn.com/image/fetch/$s_!IhOJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff753b646-ef06-4809-9834-37ceff9f25ec_1720x862.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 <strong>an HTTP cache</strong>, it can <strong>store commonly requested content in memory</strong>, reducing the load on back-end servers and improving the response time for users.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!l27f!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ae91544-6070-487d-be5e-c73cb023a9f5_700x322.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!l27f!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ae91544-6070-487d-be5e-c73cb023a9f5_700x322.png 424w, https://substackcdn.com/image/fetch/$s_!l27f!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ae91544-6070-487d-be5e-c73cb023a9f5_700x322.png 848w, https://substackcdn.com/image/fetch/$s_!l27f!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ae91544-6070-487d-be5e-c73cb023a9f5_700x322.png 1272w, https://substackcdn.com/image/fetch/$s_!l27f!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ae91544-6070-487d-be5e-c73cb023a9f5_700x322.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!l27f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ae91544-6070-487d-be5e-c73cb023a9f5_700x322.png" width="700" height="322" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5ae91544-6070-487d-be5e-c73cb023a9f5_700x322.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:322,&quot;width&quot;:700,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&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="" title="" srcset="https://substackcdn.com/image/fetch/$s_!l27f!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ae91544-6070-487d-be5e-c73cb023a9f5_700x322.png 424w, https://substackcdn.com/image/fetch/$s_!l27f!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ae91544-6070-487d-be5e-c73cb023a9f5_700x322.png 848w, https://substackcdn.com/image/fetch/$s_!l27f!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ae91544-6070-487d-be5e-c73cb023a9f5_700x322.png 1272w, https://substackcdn.com/image/fetch/$s_!l27f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ae91544-6070-487d-be5e-c73cb023a9f5_700x322.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>Some alternatives to NGINX include Apache HTTP Server and Microsoft IIS. Both of these servers are also widely used and have similar features, but NGINX is generally considered to be faster and more efficient than Apache and has a smaller memory footprint than IIS.</p><p>In comparison to other web servers, NGINX has several benefits:</p><ul><li><p><strong>High performance</strong>: NGINX is known for its fast performance and can handle a large number of concurrent connections with minimal resources.</p></li><li><p><strong>Low resource consumption</strong>: NGINX has a small memory footprint and can run on relatively low-powered machines, making it a good choice for environments with limited resources.</p></li><li><p><strong>Modular architecture</strong>: NGINX is built on a modular architecture, allowing users to choose the features they need and minimizing the risk of security vulnerabilities.</p></li><li><p><strong>Versatility</strong>: In addition to serving as a web server, NGINX can also be used as a reverse proxy, load balancer, and HTTP cache, making it a versatile tool for web infrastructure.</p></li><li><p><strong>Wide adoption</strong>: NGINX is widely used by several high-traffic websites, including <strong>Netflix</strong>, <strong>Dropbox</strong>, and <strong>Airbnb</strong>, giving it a proven track record of stability and reliability.</p></li></ul><h1>Apache HTTP Server</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!V-74!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd67ce5ef-af66-48f0-b112-33e1c0bcde4c_500x250.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!V-74!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd67ce5ef-af66-48f0-b112-33e1c0bcde4c_500x250.png 424w, https://substackcdn.com/image/fetch/$s_!V-74!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd67ce5ef-af66-48f0-b112-33e1c0bcde4c_500x250.png 848w, https://substackcdn.com/image/fetch/$s_!V-74!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd67ce5ef-af66-48f0-b112-33e1c0bcde4c_500x250.png 1272w, https://substackcdn.com/image/fetch/$s_!V-74!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd67ce5ef-af66-48f0-b112-33e1c0bcde4c_500x250.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!V-74!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd67ce5ef-af66-48f0-b112-33e1c0bcde4c_500x250.png" width="500" height="250" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d67ce5ef-af66-48f0-b112-33e1c0bcde4c_500x250.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:250,&quot;width&quot;:500,&quot;resizeWidth&quot;:null,&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_!V-74!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd67ce5ef-af66-48f0-b112-33e1c0bcde4c_500x250.png 424w, https://substackcdn.com/image/fetch/$s_!V-74!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd67ce5ef-af66-48f0-b112-33e1c0bcde4c_500x250.png 848w, https://substackcdn.com/image/fetch/$s_!V-74!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd67ce5ef-af66-48f0-b112-33e1c0bcde4c_500x250.png 1272w, https://substackcdn.com/image/fetch/$s_!V-74!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd67ce5ef-af66-48f0-b112-33e1c0bcde4c_500x250.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 href="https://httpd.apache.org/">Apache HTTP Server</a> is a popular <strong>open-source </strong>web server that is widely used to <strong>host web applications and serve static content</strong>, such as images and HTML files. It is developed and maintained by the Apache Software Foundation and is available for several operating systems, including <strong>Linux, Unix, and Windows.</strong></p><p>Apache HTTP Server is known for its <strong>stability, security, and flexibility</strong>. It supports a wide range of features, including support for multiple protocols (such as <strong>HTTP and HTTPS</strong>), <strong>virtual hosting</strong> (allowing a single server to host multiple websites), and the ability to run multiple modules that can extend its functionality.</p><p>One of the main advantages of Apache HTTP Server is its widespread adoption and large user community. It has been around for a long time and has a proven track record of stability and reliability. There is also a wide range of <strong>third-party modules </strong>available that can be used to extend its functionality, such as mod_rewrite (for <strong>URL rewriting</strong>) and mod_ssl (for <strong>SSL/TLS support</strong>).</p><p>In comparison to other web servers, <strong>Apache HTTP Server</strong> has several benefits:</p><ul><li><p><strong>Wide adoption</strong>: Apache HTTP Server is widely used by a large number of websites, giving it a proven track record of stability and reliability.</p></li><li><p><strong>Customization</strong>: Apache HTTP Server is highly customizable and can be extended with a range of third-party modules.</p></li><li><p><strong>Security</strong>: Apache HTTP Server has several security features, such as support for SSL/TLS and the ability to run in a chroot environment.</p></li><li><p><strong>Flexibility</strong>: Apache HTTP Server can be used to host multiple websites on a single server and can support a variety of protocols.</p></li><li><p><strong>Community support</strong>: Apache HTTP Server has a large user community, which provides a wealth of resources and support for users.</p></li></ul><h1>Recap</h1><p>In summary, server software is a type of software that runs on a server and enables it to host web applications, serve static content, or perform other tasks. Some examples of server software include Nginx, Apache HTTP Server, and Microsoft IIS. These options have different features and capabilities, and it's important to consider the specific needs of our products when choosing the right server software.</p><p>Now, you might be wondering why these different server software options <strong>matter for the products we manage</strong>. The server software that we choose can <strong>have a significant impact on the performance, security, and scalability of our products.</strong> It's important to consider the specific needs of our products and choose the server software that will best meet those needs.</p><p>I hope this helps to give you a better understanding of server software and how it relates to the products we manage. If you have any questions or would like to learn more, don't hesitate to reach out.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PbaP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe43a2521-ea17-4669-9871-41d60de08848_498x277.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PbaP!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe43a2521-ea17-4669-9871-41d60de08848_498x277.gif 424w, https://substackcdn.com/image/fetch/$s_!PbaP!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe43a2521-ea17-4669-9871-41d60de08848_498x277.gif 848w, https://substackcdn.com/image/fetch/$s_!PbaP!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe43a2521-ea17-4669-9871-41d60de08848_498x277.gif 1272w, https://substackcdn.com/image/fetch/$s_!PbaP!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe43a2521-ea17-4669-9871-41d60de08848_498x277.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PbaP!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe43a2521-ea17-4669-9871-41d60de08848_498x277.gif" width="498" height="277" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e43a2521-ea17-4669-9871-41d60de08848_498x277.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:277,&quot;width&quot;:498,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&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="" title="" srcset="https://substackcdn.com/image/fetch/$s_!PbaP!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe43a2521-ea17-4669-9871-41d60de08848_498x277.gif 424w, https://substackcdn.com/image/fetch/$s_!PbaP!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe43a2521-ea17-4669-9871-41d60de08848_498x277.gif 848w, https://substackcdn.com/image/fetch/$s_!PbaP!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe43a2521-ea17-4669-9871-41d60de08848_498x277.gif 1272w, https://substackcdn.com/image/fetch/$s_!PbaP!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe43a2521-ea17-4669-9871-41d60de08848_498x277.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>]]></content:encoded></item><item><title><![CDATA[Day 21 - Containers, Docker, and K8s]]></title><description><![CDATA[In this post, we'll provide a high-level overview of these powerful tools and show you how to get started using Docker and Kubernetes.]]></description><link>https://www.hackerpm.com/p/day-21-data-and-data</link><guid isPermaLink="false">https://www.hackerpm.com/p/day-21-data-and-data</guid><dc:creator><![CDATA[Hamed Mohammadpour]]></dc:creator><pubDate>Wed, 21 Dec 2022 20:43:05 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/6b6e2a2c-76dd-400f-ab35-c098cc927f02_2000x1330.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!p4bI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac961888-e596-46ca-8187-5650b998f5e6_2000x1330.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!p4bI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac961888-e596-46ca-8187-5650b998f5e6_2000x1330.jpeg 424w, https://substackcdn.com/image/fetch/$s_!p4bI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac961888-e596-46ca-8187-5650b998f5e6_2000x1330.jpeg 848w, https://substackcdn.com/image/fetch/$s_!p4bI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac961888-e596-46ca-8187-5650b998f5e6_2000x1330.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!p4bI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac961888-e596-46ca-8187-5650b998f5e6_2000x1330.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!p4bI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac961888-e596-46ca-8187-5650b998f5e6_2000x1330.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ac961888-e596-46ca-8187-5650b998f5e6_2000x1330.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Day 21 - Containers, Docker, and K8s&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="Day 21 - Containers, Docker, and K8s" title="Day 21 - Containers, Docker, and K8s" srcset="https://substackcdn.com/image/fetch/$s_!p4bI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac961888-e596-46ca-8187-5650b998f5e6_2000x1330.jpeg 424w, https://substackcdn.com/image/fetch/$s_!p4bI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac961888-e596-46ca-8187-5650b998f5e6_2000x1330.jpeg 848w, https://substackcdn.com/image/fetch/$s_!p4bI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac961888-e596-46ca-8187-5650b998f5e6_2000x1330.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!p4bI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac961888-e596-46ca-8187-5650b998f5e6_2000x1330.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>One of the technologies that are less than 10 years old but is commonly used today is Docker and the concept of Containerization of software.</p><p>In this post, we'll provide a high-level overview of these powerful tools and show you how to get started using Docker and Kubernetes.</p><p>At a super high level, Docker, Kubernetes, and all the other "containerization" platforms help with breaking down the code to microservices and running them across different environments with ease (or as easy as it gets &#128556;). It's the most common way for companies to build Saas products today.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!r4uU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42365a8b-a4c7-4f81-8a54-b53d8ee8bc32_1241x525.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!r4uU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42365a8b-a4c7-4f81-8a54-b53d8ee8bc32_1241x525.png 424w, https://substackcdn.com/image/fetch/$s_!r4uU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42365a8b-a4c7-4f81-8a54-b53d8ee8bc32_1241x525.png 848w, https://substackcdn.com/image/fetch/$s_!r4uU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42365a8b-a4c7-4f81-8a54-b53d8ee8bc32_1241x525.png 1272w, https://substackcdn.com/image/fetch/$s_!r4uU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42365a8b-a4c7-4f81-8a54-b53d8ee8bc32_1241x525.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!r4uU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42365a8b-a4c7-4f81-8a54-b53d8ee8bc32_1241x525.png" width="1241" height="525" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/42365a8b-a4c7-4f81-8a54-b53d8ee8bc32_1241x525.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:525,&quot;width&quot;:1241,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&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="" srcset="https://substackcdn.com/image/fetch/$s_!r4uU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42365a8b-a4c7-4f81-8a54-b53d8ee8bc32_1241x525.png 424w, https://substackcdn.com/image/fetch/$s_!r4uU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42365a8b-a4c7-4f81-8a54-b53d8ee8bc32_1241x525.png 848w, https://substackcdn.com/image/fetch/$s_!r4uU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42365a8b-a4c7-4f81-8a54-b53d8ee8bc32_1241x525.png 1272w, https://substackcdn.com/image/fetch/$s_!r4uU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42365a8b-a4c7-4f81-8a54-b53d8ee8bc32_1241x525.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>You might recognize the <a href="hackerpm.com/day-7-devops-1/">DevOps</a> and <a href="hackerpm.com/day-3/">Microservices</a> above which we explained before. &#128526;</p><h3>Get the <a href="https://www.canva.com/design/DAFVZ8Qe-HA/JomXcdEUun36Dat2aLmdzg/view?utm_content=DAFVZ8Qe-HA&amp;utm_campaign=designshare&amp;utm_medium=link&amp;utm_source=publishsharelink">slides for this post for quick review.</a></h3><h1>What is Containerization?</h1><p>Containerization is a software development technique in which applications are packaged and deployed in lightweight, standalone containers. Containers allow applications to be run in isolated environments, which helps to ensure that they are portable and can be easily deployed and run on any machine.</p><p>For engineers, Containerization simplifies the process of developing, testing, and deploying applications by eliminating the need to worry about differences in infrastructure and dependencies. It allows engineers to focus on writing code, rather than worrying about the underlying infrastructure.</p><p>It can also make it easier to scale applications and deploy them to different environments, such as between development, staging, and production environments. Remember <a href="hackerpm.com/day-10-enviornments/">Environments</a>? &#128521;</p><h1>What containerization platforms are out there?</h1><p>There are a number of containerization platforms that are popular among developers for packaging and deploying applications in containers. Some of the most popular include:</p><h2>Docker</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AvtE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8025d00-f624-4ede-9c7e-b60ed256852b_1840x779.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AvtE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8025d00-f624-4ede-9c7e-b60ed256852b_1840x779.png 424w, https://substackcdn.com/image/fetch/$s_!AvtE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8025d00-f624-4ede-9c7e-b60ed256852b_1840x779.png 848w, https://substackcdn.com/image/fetch/$s_!AvtE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8025d00-f624-4ede-9c7e-b60ed256852b_1840x779.png 1272w, https://substackcdn.com/image/fetch/$s_!AvtE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8025d00-f624-4ede-9c7e-b60ed256852b_1840x779.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AvtE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8025d00-f624-4ede-9c7e-b60ed256852b_1840x779.png" width="1456" height="616" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c8025d00-f624-4ede-9c7e-b60ed256852b_1840x779.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:616,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&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_!AvtE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8025d00-f624-4ede-9c7e-b60ed256852b_1840x779.png 424w, https://substackcdn.com/image/fetch/$s_!AvtE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8025d00-f624-4ede-9c7e-b60ed256852b_1840x779.png 848w, https://substackcdn.com/image/fetch/$s_!AvtE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8025d00-f624-4ede-9c7e-b60ed256852b_1840x779.png 1272w, https://substackcdn.com/image/fetch/$s_!AvtE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8025d00-f624-4ede-9c7e-b60ed256852b_1840x779.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>Docker is a containerization platform that is widely used for developing, deploying, and running applications in containers. It is easy to use and has a large ecosystem of tools and resources.</p><h2>Kubernetes</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!o0IH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe08d11b-c64a-4996-a520-ce9755100c8d_1024x512.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!o0IH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe08d11b-c64a-4996-a520-ce9755100c8d_1024x512.png 424w, https://substackcdn.com/image/fetch/$s_!o0IH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe08d11b-c64a-4996-a520-ce9755100c8d_1024x512.png 848w, https://substackcdn.com/image/fetch/$s_!o0IH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe08d11b-c64a-4996-a520-ce9755100c8d_1024x512.png 1272w, https://substackcdn.com/image/fetch/$s_!o0IH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe08d11b-c64a-4996-a520-ce9755100c8d_1024x512.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!o0IH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe08d11b-c64a-4996-a520-ce9755100c8d_1024x512.png" width="1024" height="512" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/be08d11b-c64a-4996-a520-ce9755100c8d_1024x512.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:512,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&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_!o0IH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe08d11b-c64a-4996-a520-ce9755100c8d_1024x512.png 424w, https://substackcdn.com/image/fetch/$s_!o0IH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe08d11b-c64a-4996-a520-ce9755100c8d_1024x512.png 848w, https://substackcdn.com/image/fetch/$s_!o0IH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe08d11b-c64a-4996-a520-ce9755100c8d_1024x512.png 1272w, https://substackcdn.com/image/fetch/$s_!o0IH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe08d11b-c64a-4996-a520-ce9755100c8d_1024x512.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>Kubernetes is an open-source container orchestration platform that is designed to be scalable and flexible. It is often used to manage large-scale deployments of containerized applications, and it is supported by all major cloud providers.</p><blockquote><p>&#129299; Have you seen Kubernetes being written as "K8s"? (which is still pronounced the same as "Kubernetes"). This technique of abbreviating is called "<a href="https://en.wikipedia.org/wiki/Numeronym">Numeronym</a>". In the case of K8s, it's the first letter K, the last letter s, and 8 is the number of letters in between.<br>You might have also seen <code>i18n</code> which is short for "Internationalisation", just like K8s.</p></blockquote><h2><a href="https://mesos.apache.org/">Apache Mesos</a></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TnW6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1290cc0b-5a47-43fc-956e-8511500831be_800x392.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TnW6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1290cc0b-5a47-43fc-956e-8511500831be_800x392.png 424w, https://substackcdn.com/image/fetch/$s_!TnW6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1290cc0b-5a47-43fc-956e-8511500831be_800x392.png 848w, https://substackcdn.com/image/fetch/$s_!TnW6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1290cc0b-5a47-43fc-956e-8511500831be_800x392.png 1272w, https://substackcdn.com/image/fetch/$s_!TnW6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1290cc0b-5a47-43fc-956e-8511500831be_800x392.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TnW6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1290cc0b-5a47-43fc-956e-8511500831be_800x392.png" width="800" height="392" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1290cc0b-5a47-43fc-956e-8511500831be_800x392.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:392,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&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_!TnW6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1290cc0b-5a47-43fc-956e-8511500831be_800x392.png 424w, https://substackcdn.com/image/fetch/$s_!TnW6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1290cc0b-5a47-43fc-956e-8511500831be_800x392.png 848w, https://substackcdn.com/image/fetch/$s_!TnW6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1290cc0b-5a47-43fc-956e-8511500831be_800x392.png 1272w, https://substackcdn.com/image/fetch/$s_!TnW6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1290cc0b-5a47-43fc-956e-8511500831be_800x392.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>Apache Mesos is a cluster manager that can be used to manage containers as well as other types of workloads. It is designed to be highly scalable and is used in a number of large-scale deployments.</p><h2>Amazon Elastic Container Service (ECS)</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uZsa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffafafc41-398c-42b3-8fc1-352fbae86ac1_929x472.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uZsa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffafafc41-398c-42b3-8fc1-352fbae86ac1_929x472.png 424w, https://substackcdn.com/image/fetch/$s_!uZsa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffafafc41-398c-42b3-8fc1-352fbae86ac1_929x472.png 848w, https://substackcdn.com/image/fetch/$s_!uZsa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffafafc41-398c-42b3-8fc1-352fbae86ac1_929x472.png 1272w, https://substackcdn.com/image/fetch/$s_!uZsa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffafafc41-398c-42b3-8fc1-352fbae86ac1_929x472.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uZsa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffafafc41-398c-42b3-8fc1-352fbae86ac1_929x472.png" width="929" height="472" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fafafc41-398c-42b3-8fc1-352fbae86ac1_929x472.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:472,&quot;width&quot;:929,&quot;resizeWidth&quot;:null,&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_!uZsa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffafafc41-398c-42b3-8fc1-352fbae86ac1_929x472.png 424w, https://substackcdn.com/image/fetch/$s_!uZsa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffafafc41-398c-42b3-8fc1-352fbae86ac1_929x472.png 848w, https://substackcdn.com/image/fetch/$s_!uZsa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffafafc41-398c-42b3-8fc1-352fbae86ac1_929x472.png 1272w, https://substackcdn.com/image/fetch/$s_!uZsa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffafafc41-398c-42b3-8fc1-352fbae86ac1_929x472.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>Amazon ECS is a fully managed container orchestration service provided by <strong>Amazon Web Services (AWS)</strong>. It is designed to be easy to use and integrates seamlessly with other AWS services.</p><h2>Azure Container Service (ACS)</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3WhK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ef4edb8-361c-4eca-8d41-e7d1e134a251_650x450.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3WhK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ef4edb8-361c-4eca-8d41-e7d1e134a251_650x450.png 424w, https://substackcdn.com/image/fetch/$s_!3WhK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ef4edb8-361c-4eca-8d41-e7d1e134a251_650x450.png 848w, https://substackcdn.com/image/fetch/$s_!3WhK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ef4edb8-361c-4eca-8d41-e7d1e134a251_650x450.png 1272w, https://substackcdn.com/image/fetch/$s_!3WhK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ef4edb8-361c-4eca-8d41-e7d1e134a251_650x450.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3WhK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ef4edb8-361c-4eca-8d41-e7d1e134a251_650x450.png" width="650" height="450" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9ef4edb8-361c-4eca-8d41-e7d1e134a251_650x450.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:450,&quot;width&quot;:650,&quot;resizeWidth&quot;:null,&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_!3WhK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ef4edb8-361c-4eca-8d41-e7d1e134a251_650x450.png 424w, https://substackcdn.com/image/fetch/$s_!3WhK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ef4edb8-361c-4eca-8d41-e7d1e134a251_650x450.png 848w, https://substackcdn.com/image/fetch/$s_!3WhK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ef4edb8-361c-4eca-8d41-e7d1e134a251_650x450.png 1272w, https://substackcdn.com/image/fetch/$s_!3WhK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ef4edb8-361c-4eca-8d41-e7d1e134a251_650x450.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>Azure Container Service is a fully managed container orchestration service provided by Microsoft Azure. It supports a number of different container orchestrators, including Kubernetes, and Docker Swarm.</p><p>We'll cover Docker and Kubernetes in this post.</p><h1>What is Docker?</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PAu5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3610519-f637-4396-b913-e859c3bd01ca_400x400.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PAu5!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3610519-f637-4396-b913-e859c3bd01ca_400x400.gif 424w, https://substackcdn.com/image/fetch/$s_!PAu5!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3610519-f637-4396-b913-e859c3bd01ca_400x400.gif 848w, https://substackcdn.com/image/fetch/$s_!PAu5!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3610519-f637-4396-b913-e859c3bd01ca_400x400.gif 1272w, https://substackcdn.com/image/fetch/$s_!PAu5!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3610519-f637-4396-b913-e859c3bd01ca_400x400.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PAu5!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3610519-f637-4396-b913-e859c3bd01ca_400x400.gif" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a3610519-f637-4396-b913-e859c3bd01ca_400x400.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&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="" title="" srcset="https://substackcdn.com/image/fetch/$s_!PAu5!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3610519-f637-4396-b913-e859c3bd01ca_400x400.gif 424w, https://substackcdn.com/image/fetch/$s_!PAu5!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3610519-f637-4396-b913-e859c3bd01ca_400x400.gif 848w, https://substackcdn.com/image/fetch/$s_!PAu5!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3610519-f637-4396-b913-e859c3bd01ca_400x400.gif 1272w, https://substackcdn.com/image/fetch/$s_!PAu5!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3610519-f637-4396-b913-e859c3bd01ca_400x400.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><strong><a href="https://www.docker.com/">Docker</a></strong> is a <em><strong>containerization platform </strong></em>that allows developers to package and deploy applications in lightweight, standalone containers. Containers allow applications to be run in isolated environments, which helps to ensure that they are portable and can be easily deployed and run on any machine.</p><p>Using Docker can simplify the process of developing, testing, and deploying applications by eliminating the need to worry about differences in infrastructure and dependencies. It allows engineers to focus on writing code, rather than worrying about the underlying infrastructure.</p><p>Docker is widely used today because it offers a number of benefits, including:</p><ul><li><p><strong>Portability</strong>: Docker containers can be easily moved between different environments, such as between development, staging, and production environments.</p></li><li><p><strong>Isolation</strong>: Docker containers provide isolated environments for running applications, which helps to ensure that applications do not interfere with each other.</p></li><li><p><strong>Resource efficiency</strong>: Docker containers are lightweight and can be more resource-efficient than traditional virtual machines.</p></li></ul><h1>Common terms in Conterization-verse</h1><p>Or more correctly, in Docker-world!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Jo9l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9da36e95-d072-4963-b51a-4bcdafba48d2_432x498.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Jo9l!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9da36e95-d072-4963-b51a-4bcdafba48d2_432x498.gif 424w, https://substackcdn.com/image/fetch/$s_!Jo9l!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9da36e95-d072-4963-b51a-4bcdafba48d2_432x498.gif 848w, https://substackcdn.com/image/fetch/$s_!Jo9l!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9da36e95-d072-4963-b51a-4bcdafba48d2_432x498.gif 1272w, https://substackcdn.com/image/fetch/$s_!Jo9l!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9da36e95-d072-4963-b51a-4bcdafba48d2_432x498.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Jo9l!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9da36e95-d072-4963-b51a-4bcdafba48d2_432x498.gif" width="432" height="498" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9da36e95-d072-4963-b51a-4bcdafba48d2_432x498.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:498,&quot;width&quot;:432,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&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="" title="" srcset="https://substackcdn.com/image/fetch/$s_!Jo9l!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9da36e95-d072-4963-b51a-4bcdafba48d2_432x498.gif 424w, https://substackcdn.com/image/fetch/$s_!Jo9l!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9da36e95-d072-4963-b51a-4bcdafba48d2_432x498.gif 848w, https://substackcdn.com/image/fetch/$s_!Jo9l!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9da36e95-d072-4963-b51a-4bcdafba48d2_432x498.gif 1272w, https://substackcdn.com/image/fetch/$s_!Jo9l!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9da36e95-d072-4963-b51a-4bcdafba48d2_432x498.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><h2>Dockerfile</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eROi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10a7a41d-5a05-4100-8bbe-e2f274bb1cee_1000x496.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eROi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10a7a41d-5a05-4100-8bbe-e2f274bb1cee_1000x496.png 424w, https://substackcdn.com/image/fetch/$s_!eROi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10a7a41d-5a05-4100-8bbe-e2f274bb1cee_1000x496.png 848w, https://substackcdn.com/image/fetch/$s_!eROi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10a7a41d-5a05-4100-8bbe-e2f274bb1cee_1000x496.png 1272w, https://substackcdn.com/image/fetch/$s_!eROi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10a7a41d-5a05-4100-8bbe-e2f274bb1cee_1000x496.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eROi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10a7a41d-5a05-4100-8bbe-e2f274bb1cee_1000x496.png" width="1000" height="496" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/10a7a41d-5a05-4100-8bbe-e2f274bb1cee_1000x496.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:496,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&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_!eROi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10a7a41d-5a05-4100-8bbe-e2f274bb1cee_1000x496.png 424w, https://substackcdn.com/image/fetch/$s_!eROi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10a7a41d-5a05-4100-8bbe-e2f274bb1cee_1000x496.png 848w, https://substackcdn.com/image/fetch/$s_!eROi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10a7a41d-5a05-4100-8bbe-e2f274bb1cee_1000x496.png 1272w, https://substackcdn.com/image/fetch/$s_!eROi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10a7a41d-5a05-4100-8bbe-e2f274bb1cee_1000x496.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>Dockerfile</strong> is a text file that contains <strong>instructions</strong> for building a <strong>Docker image</strong>. It is used to automate the process of building and deploying applications in containers.</p><p>It allows developers to define the steps needed to build an image and package an application in a container, which can make it easier to deploy the application to different environments.</p><p>A <strong>Dockerfile</strong> typically starts with a <strong>base image</strong>, which is an image that provides the foundation for the container. The base image might be an operating system image, such as Ubuntu or CentOS, or it might be an image containing a specific application or framework.</p><h2>Image</h2><div data-attrs="{&quot;url&quot;:&quot;hackerpm.com/content/images/2022/12/image-59.png&quot;}" data-component-name="AssetErrorToDOM"><picture><img src="/img/missing-image.png" height="455" width="728"></picture></div><p>An <strong>image</strong> is a blueprint for a <strong>container</strong>. It is a package that contains <strong>the code, libraries, and dependencies</strong> needed to run an application.</p><h2>Container</h2><p>A container is a lightweight, standalone package that contains an application and its dependencies. It is designed to be portable and can be easily run on any machine.</p><h2>Containerization platform</h2><p>A containerization platform is a piece of software that allows developers to package and deploy applications in containers. Examples of containerization platforms include Docker and Kubernetes.</p><h2>Registry</h2><p>A registry is a repository of images. It is a place where images can be stored, shared, and downloaded.</p><p>All in all, putting all the concepts together, here are the pieces of Docker put together:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!T0k5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10bfd43b-9c4d-4343-82ff-454eb2c77a9f_1202x446.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!T0k5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10bfd43b-9c4d-4343-82ff-454eb2c77a9f_1202x446.png 424w, https://substackcdn.com/image/fetch/$s_!T0k5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10bfd43b-9c4d-4343-82ff-454eb2c77a9f_1202x446.png 848w, https://substackcdn.com/image/fetch/$s_!T0k5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10bfd43b-9c4d-4343-82ff-454eb2c77a9f_1202x446.png 1272w, https://substackcdn.com/image/fetch/$s_!T0k5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10bfd43b-9c4d-4343-82ff-454eb2c77a9f_1202x446.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!T0k5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10bfd43b-9c4d-4343-82ff-454eb2c77a9f_1202x446.png" width="1202" height="446" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/10bfd43b-9c4d-4343-82ff-454eb2c77a9f_1202x446.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:446,&quot;width&quot;:1202,&quot;resizeWidth&quot;:null,&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_!T0k5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10bfd43b-9c4d-4343-82ff-454eb2c77a9f_1202x446.png 424w, https://substackcdn.com/image/fetch/$s_!T0k5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10bfd43b-9c4d-4343-82ff-454eb2c77a9f_1202x446.png 848w, https://substackcdn.com/image/fetch/$s_!T0k5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10bfd43b-9c4d-4343-82ff-454eb2c77a9f_1202x446.png 1272w, https://substackcdn.com/image/fetch/$s_!T0k5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10bfd43b-9c4d-4343-82ff-454eb2c77a9f_1202x446.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>Kubernetes</h1><p>Kubernetes is an open-source platform for automating the deployment, scaling, and management of containerized applications. It consists of a number of components that work together to provide a flexible and powerful platform for managing containers.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4BXn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0b2ac6a-b2eb-4bd8-af5b-24030806e51c_1616x860.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4BXn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0b2ac6a-b2eb-4bd8-af5b-24030806e51c_1616x860.png 424w, https://substackcdn.com/image/fetch/$s_!4BXn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0b2ac6a-b2eb-4bd8-af5b-24030806e51c_1616x860.png 848w, https://substackcdn.com/image/fetch/$s_!4BXn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0b2ac6a-b2eb-4bd8-af5b-24030806e51c_1616x860.png 1272w, https://substackcdn.com/image/fetch/$s_!4BXn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0b2ac6a-b2eb-4bd8-af5b-24030806e51c_1616x860.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4BXn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0b2ac6a-b2eb-4bd8-af5b-24030806e51c_1616x860.png" width="1456" height="775" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c0b2ac6a-b2eb-4bd8-af5b-24030806e51c_1616x860.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:775,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&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_!4BXn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0b2ac6a-b2eb-4bd8-af5b-24030806e51c_1616x860.png 424w, https://substackcdn.com/image/fetch/$s_!4BXn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0b2ac6a-b2eb-4bd8-af5b-24030806e51c_1616x860.png 848w, https://substackcdn.com/image/fetch/$s_!4BXn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0b2ac6a-b2eb-4bd8-af5b-24030806e51c_1616x860.png 1272w, https://substackcdn.com/image/fetch/$s_!4BXn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0b2ac6a-b2eb-4bd8-af5b-24030806e51c_1616x860.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>At a high level, Kubernetes works by deploying containers onto a cluster of machines and then managing the containers to ensure that they are running as intended. The Kubernetes control plane is responsible for coordinating the activities of the various components in the cluster and making decisions about how to manage the containers.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BzPI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fd14c26-4b9f-4798-9d75-f533e40f24d6_720x228.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BzPI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fd14c26-4b9f-4798-9d75-f533e40f24d6_720x228.png 424w, https://substackcdn.com/image/fetch/$s_!BzPI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fd14c26-4b9f-4798-9d75-f533e40f24d6_720x228.png 848w, https://substackcdn.com/image/fetch/$s_!BzPI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fd14c26-4b9f-4798-9d75-f533e40f24d6_720x228.png 1272w, https://substackcdn.com/image/fetch/$s_!BzPI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fd14c26-4b9f-4798-9d75-f533e40f24d6_720x228.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BzPI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fd14c26-4b9f-4798-9d75-f533e40f24d6_720x228.png" width="720" height="228" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0fd14c26-4b9f-4798-9d75-f533e40f24d6_720x228.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:228,&quot;width&quot;:720,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&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="" title="" srcset="https://substackcdn.com/image/fetch/$s_!BzPI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fd14c26-4b9f-4798-9d75-f533e40f24d6_720x228.png 424w, https://substackcdn.com/image/fetch/$s_!BzPI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fd14c26-4b9f-4798-9d75-f533e40f24d6_720x228.png 848w, https://substackcdn.com/image/fetch/$s_!BzPI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fd14c26-4b9f-4798-9d75-f533e40f24d6_720x228.png 1272w, https://substackcdn.com/image/fetch/$s_!BzPI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fd14c26-4b9f-4798-9d75-f533e40f24d6_720x228.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Here are some of the key components of Kubernetes and how they work together:</p><ul><li><p><strong>Master nodes:</strong> The master nodes are the central control plane of the cluster. They consist of a number of components, including the API server, scheduler, and controller manager, which work together to manage the cluster.</p></li><li><p><strong>Worker nodes:</strong> The worker nodes are the machines on which the containers are actually deployed and run. Each worker node runs a <strong>kubelet</strong>, which is responsible for managing the containers on that node.</p></li><li><p><strong>Pods</strong>: A pod is the basic unit of deployment in Kubernetes. It is a logical host for one or more containers, and all the containers in a pod share the same network namespace and storage.</p></li><li><p><strong>Deployments</strong>: A deployment is a higher-level object that manages the deployment of a set of replicas of a pod. It ensures that the specified number of replicas are running at all times, and it can be used to roll out updates to the pods.</p></li><li><p><strong>Services</strong>: A service is an abstract way to expose a set of pods to external traffic. It provides a stable IP address and DNS name for the pods, and it can load balance traffic to the pods.</p></li></ul><p>Overall, Kubernetes is a complex system with many components that work together to provide a flexible and powerful platform for managing containerized applications.</p><h1>Docker vs. K8s</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-DCe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4edad566-46d1-4742-ba01-63593fc7a220_1616x794.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-DCe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4edad566-46d1-4742-ba01-63593fc7a220_1616x794.png 424w, https://substackcdn.com/image/fetch/$s_!-DCe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4edad566-46d1-4742-ba01-63593fc7a220_1616x794.png 848w, https://substackcdn.com/image/fetch/$s_!-DCe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4edad566-46d1-4742-ba01-63593fc7a220_1616x794.png 1272w, https://substackcdn.com/image/fetch/$s_!-DCe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4edad566-46d1-4742-ba01-63593fc7a220_1616x794.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-DCe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4edad566-46d1-4742-ba01-63593fc7a220_1616x794.png" width="1456" height="715" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4edad566-46d1-4742-ba01-63593fc7a220_1616x794.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:715,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&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_!-DCe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4edad566-46d1-4742-ba01-63593fc7a220_1616x794.png 424w, https://substackcdn.com/image/fetch/$s_!-DCe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4edad566-46d1-4742-ba01-63593fc7a220_1616x794.png 848w, https://substackcdn.com/image/fetch/$s_!-DCe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4edad566-46d1-4742-ba01-63593fc7a220_1616x794.png 1272w, https://substackcdn.com/image/fetch/$s_!-DCe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4edad566-46d1-4742-ba01-63593fc7a220_1616x794.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>Docker and Kubernetes are both tools for developing and deploying applications in <strong>containers</strong>, but they have some key differences:</p><ul><li><p><strong>Scope</strong>: Docker is primarily a containerization platform, while Kubernetes is a container orchestration platform. This means that Docker is focused on building and running individual containers, while Kubernetes is focused on managing a cluster of containers and scaling applications across multiple machines.</p></li><li><p><strong>Architecture</strong>: Docker uses a client-server architecture, with a daemon running on the host machine and a command-line interface (CLI) for interacting with the daemon. Kubernetes has a more complex architecture, with a number of components that work together to manage the cluster, including the API server, scheduler, and controller manager.</p></li><li><p><strong>Ecosystem</strong>: Docker has a large ecosystem of tools and resources, including a registry for sharing images and a number of third-party tools for managing containers. Kubernetes also has a large ecosystem, but it tends to be more focused on enterprise-grade tools and solutions.</p></li><li><p><strong>Deployment</strong>: Docker can be used to deploy applications in a variety of settings, including cloud and on-premises environments. Kubernetes is particularly well-suited to cloud deployments, and it is supported by all major cloud providers.</p></li></ul><h2>Container vs. Virtual Machines</h2><p>You might have heard about Virtual Machines (from somewhere &#128064;). Containers and virtual machines are both technologies that allow developers to run applications in isolated environments. However, they have some key differences:</p><ul><li><p><strong>Isolation</strong>: Both containers and virtual machines <strong>provide isolation</strong> by running applications in separate environments, but they achieve this in different ways. <strong>Virtual machines use hardware virtualization</strong> to create a completely separate environment for each application, including a separate operating system and hardware resources. Containers, on the other hand, use <strong>operating system-level virtualization</strong> to share the host operating system and hardware resources but provide isolation for applications at the process and namespace levels.</p></li><li><p><strong>Resource usage</strong>: <strong>Containers are generally more lightweight and resource-efficient than virtual machines</strong>, as they do not require a separate operating system and hardware resources for each application. This can make them more cost-effective for running applications in the cloud or on other shared resources.</p></li><li><p>Deployment: Virtual machines are typically <strong>deployed as a single entity</strong>, with the operating system and application bundled together. This can make them more difficult to deploy and manage at scale, as they require more resources and take longer to start up. Containers, on the other hand, are designed to be lightweight and portable, and they can be easily deployed and scaled using container orchestration platforms like Kubernetes.</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_!Sk5p!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6234acc2-f1dd-46dd-991b-fc7d7f7dc9c7_1920x972.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Sk5p!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6234acc2-f1dd-46dd-991b-fc7d7f7dc9c7_1920x972.png 424w, https://substackcdn.com/image/fetch/$s_!Sk5p!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6234acc2-f1dd-46dd-991b-fc7d7f7dc9c7_1920x972.png 848w, https://substackcdn.com/image/fetch/$s_!Sk5p!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6234acc2-f1dd-46dd-991b-fc7d7f7dc9c7_1920x972.png 1272w, https://substackcdn.com/image/fetch/$s_!Sk5p!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6234acc2-f1dd-46dd-991b-fc7d7f7dc9c7_1920x972.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Sk5p!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6234acc2-f1dd-46dd-991b-fc7d7f7dc9c7_1920x972.png" width="1456" height="737" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6234acc2-f1dd-46dd-991b-fc7d7f7dc9c7_1920x972.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:737,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&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_!Sk5p!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6234acc2-f1dd-46dd-991b-fc7d7f7dc9c7_1920x972.png 424w, https://substackcdn.com/image/fetch/$s_!Sk5p!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6234acc2-f1dd-46dd-991b-fc7d7f7dc9c7_1920x972.png 848w, https://substackcdn.com/image/fetch/$s_!Sk5p!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6234acc2-f1dd-46dd-991b-fc7d7f7dc9c7_1920x972.png 1272w, https://substackcdn.com/image/fetch/$s_!Sk5p!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6234acc2-f1dd-46dd-991b-fc7d7f7dc9c7_1920x972.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>Containers may be a good choice for applications that require isolation and portability, but have modest resource requirements, while virtual machines may be a better fit for applications with more demanding resource requirements or that require a dedicated operating system.</p><h1>If you want to test them out</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MQN6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51903ef0-dc86-4ae7-ac4c-35915b56e737_498x280.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MQN6!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51903ef0-dc86-4ae7-ac4c-35915b56e737_498x280.gif 424w, https://substackcdn.com/image/fetch/$s_!MQN6!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51903ef0-dc86-4ae7-ac4c-35915b56e737_498x280.gif 848w, https://substackcdn.com/image/fetch/$s_!MQN6!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51903ef0-dc86-4ae7-ac4c-35915b56e737_498x280.gif 1272w, https://substackcdn.com/image/fetch/$s_!MQN6!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51903ef0-dc86-4ae7-ac4c-35915b56e737_498x280.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MQN6!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51903ef0-dc86-4ae7-ac4c-35915b56e737_498x280.gif" width="498" height="280" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/51903ef0-dc86-4ae7-ac4c-35915b56e737_498x280.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:280,&quot;width&quot;:498,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&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="" title="" srcset="https://substackcdn.com/image/fetch/$s_!MQN6!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51903ef0-dc86-4ae7-ac4c-35915b56e737_498x280.gif 424w, https://substackcdn.com/image/fetch/$s_!MQN6!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51903ef0-dc86-4ae7-ac4c-35915b56e737_498x280.gif 848w, https://substackcdn.com/image/fetch/$s_!MQN6!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51903ef0-dc86-4ae7-ac4c-35915b56e737_498x280.gif 1272w, https://substackcdn.com/image/fetch/$s_!MQN6!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51903ef0-dc86-4ae7-ac4c-35915b56e737_498x280.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><h2>Getting Started with Docker</h2><p>To get started using Docker, you'll need to install it on your machine. You can download the Docker Desktop for Windows or macOS from the Docker website.</p><p>Once Docker is installed, you can use the <code>docker run</code> command to pull an image from a registry (such as Docker Hub) and run it as a container. For example, to run an Ubuntu container, you could use the following command:</p><pre><code>docker run -it ubuntu</code></pre><p>This will pull the latest version of the Ubuntu image from Docker Hub and run it as a container. You can then use the <code>docker exec</code> command to execute commands inside the container. For example, to start a bash shell inside the container, you could use the following command:</p><pre><code>docker exec -it &lt;container-name&gt; bash</code></pre><h2>Getting Started with Kubernetes</h2><p>To get started using Kubernetes, you'll need to install it on your machine. You can download the Kubernetes command-line tool, <strong>kubectl</strong>, from the Kubernetes website.</p><p>Once <strong>kubectl</strong> is installed, you can use it to interact with a Kubernetes cluster. You can use the <code>kubectl create</code> command to create resources in the cluster, such as pods and deployments. For example, to create a deployment that runs a single replica of an <strong>nginx</strong> container (more on this later), you could use the following command:</p><pre><code>kubectl create deployment nginx --image=nginx</code></pre><p>You can use the <code>kubectl get</code> command to list the resources in the cluster, and the <code>kubectl describe</code> command to get more information about a particular resource.</p><h1>Summary</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3gyu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b44dbf1-21ca-47b3-ae36-82ac05995ad8_1241x525.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3gyu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b44dbf1-21ca-47b3-ae36-82ac05995ad8_1241x525.png 424w, https://substackcdn.com/image/fetch/$s_!3gyu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b44dbf1-21ca-47b3-ae36-82ac05995ad8_1241x525.png 848w, https://substackcdn.com/image/fetch/$s_!3gyu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b44dbf1-21ca-47b3-ae36-82ac05995ad8_1241x525.png 1272w, https://substackcdn.com/image/fetch/$s_!3gyu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b44dbf1-21ca-47b3-ae36-82ac05995ad8_1241x525.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3gyu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b44dbf1-21ca-47b3-ae36-82ac05995ad8_1241x525.png" width="1241" height="525" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0b44dbf1-21ca-47b3-ae36-82ac05995ad8_1241x525.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:525,&quot;width&quot;:1241,&quot;resizeWidth&quot;:null,&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_!3gyu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b44dbf1-21ca-47b3-ae36-82ac05995ad8_1241x525.png 424w, https://substackcdn.com/image/fetch/$s_!3gyu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b44dbf1-21ca-47b3-ae36-82ac05995ad8_1241x525.png 848w, https://substackcdn.com/image/fetch/$s_!3gyu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b44dbf1-21ca-47b3-ae36-82ac05995ad8_1241x525.png 1272w, https://substackcdn.com/image/fetch/$s_!3gyu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b44dbf1-21ca-47b3-ae36-82ac05995ad8_1241x525.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>Docker and Kubernetes are powerful tools for developing, deploying, and managing applications. They can help to streamline the development and deployment process and make it easier to scale applications.</p><p>I hope this post has provided a useful introduction to these tools and has given you the confidence to start using them in your projects.</p><p><strong>Happy containerizing!</strong></p>]]></content:encoded></item><item><title><![CDATA[Day 20 - Common data types and data structures]]></title><description><![CDATA[As product managers, it's important to have a basic understanding of data types, as they play a crucial role in how we design and develop our products.]]></description><link>https://www.hackerpm.com/p/day-20-data-and-database-part-3</link><guid isPermaLink="false">https://www.hackerpm.com/p/day-20-data-and-database-part-3</guid><dc:creator><![CDATA[Hamed Mohammadpour]]></dc:creator><pubDate>Tue, 20 Dec 2022 20:16:18 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/52650925-d840-4623-9ea9-b3bc442bec79_2000x2000.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YhIU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc07e1cfc-8459-45f8-bf14-f747637478cf_2000x2000.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YhIU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc07e1cfc-8459-45f8-bf14-f747637478cf_2000x2000.jpeg 424w, https://substackcdn.com/image/fetch/$s_!YhIU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc07e1cfc-8459-45f8-bf14-f747637478cf_2000x2000.jpeg 848w, https://substackcdn.com/image/fetch/$s_!YhIU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc07e1cfc-8459-45f8-bf14-f747637478cf_2000x2000.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!YhIU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc07e1cfc-8459-45f8-bf14-f747637478cf_2000x2000.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YhIU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc07e1cfc-8459-45f8-bf14-f747637478cf_2000x2000.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c07e1cfc-8459-45f8-bf14-f747637478cf_2000x2000.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Day 20 - Common data types and data structures&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="Day 20 - Common data types and data structures" title="Day 20 - Common data types and data structures" srcset="https://substackcdn.com/image/fetch/$s_!YhIU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc07e1cfc-8459-45f8-bf14-f747637478cf_2000x2000.jpeg 424w, https://substackcdn.com/image/fetch/$s_!YhIU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc07e1cfc-8459-45f8-bf14-f747637478cf_2000x2000.jpeg 848w, https://substackcdn.com/image/fetch/$s_!YhIU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc07e1cfc-8459-45f8-bf14-f747637478cf_2000x2000.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!YhIU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc07e1cfc-8459-45f8-bf14-f747637478cf_2000x2000.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>I hope you enjoyed <a href="hackerpm.com/day-19-data-and-databases/">yesterday's</a> post on the modeling language you can use to design a database. I'm looking forward to your submissions for the "<strong>Design a Database in ERD</strong>" challenge. The submission <a href="https://forms.gle/MiAtdtLT6Gr4uzQy5">form is here</a>.</p><p>In today's post, we are going to go one step deeper in database design and learn more about data. And more correctly about Data Types and Data structures.</p><p>Buckle up, it'll be a geeky road ahead! You can also go over the <a href="https://www.canva.com/design/DAFVVDO2HXQ/Jc6FonJcKl0C62NzSbdv9A/view?utm_content=DAFVVDO2HXQ&amp;utm_campaign=designshare&amp;utm_medium=link&amp;utm_source=publishsharelink">slides over 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_!uHwF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7e085c1-b92e-4b98-963b-adb09d121ab1_498x278.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uHwF!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7e085c1-b92e-4b98-963b-adb09d121ab1_498x278.gif 424w, https://substackcdn.com/image/fetch/$s_!uHwF!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7e085c1-b92e-4b98-963b-adb09d121ab1_498x278.gif 848w, https://substackcdn.com/image/fetch/$s_!uHwF!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7e085c1-b92e-4b98-963b-adb09d121ab1_498x278.gif 1272w, https://substackcdn.com/image/fetch/$s_!uHwF!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7e085c1-b92e-4b98-963b-adb09d121ab1_498x278.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uHwF!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7e085c1-b92e-4b98-963b-adb09d121ab1_498x278.gif" width="498" height="278" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a7e085c1-b92e-4b98-963b-adb09d121ab1_498x278.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:278,&quot;width&quot;:498,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&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="" title="" srcset="https://substackcdn.com/image/fetch/$s_!uHwF!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7e085c1-b92e-4b98-963b-adb09d121ab1_498x278.gif 424w, https://substackcdn.com/image/fetch/$s_!uHwF!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7e085c1-b92e-4b98-963b-adb09d121ab1_498x278.gif 848w, https://substackcdn.com/image/fetch/$s_!uHwF!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7e085c1-b92e-4b98-963b-adb09d121ab1_498x278.gif 1272w, https://substackcdn.com/image/fetch/$s_!uHwF!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7e085c1-b92e-4b98-963b-adb09d121ab1_498x278.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><h1>Data types</h1><p>As product managers, it's important to have a basic understanding of data types, as they play a crucial role in how <strong>we design and develop our products</strong>.</p><p>Data types define the <strong>kind of data that a program can handle</strong> and the <strong>operations that can be performed on that data</strong>. In this post, we'll take a look at some common data types and why they are important for product managers to know about.</p><h2>Common data types</h2><h3>Integer</h3><p>An integer is a whole number that can be positive, negative, or zero. Examples include <code>42</code>, <code>-23</code>, and <code>0</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_!KOBn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87c48688-f6c6-4380-acb9-5780a1282061_498x361.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KOBn!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87c48688-f6c6-4380-acb9-5780a1282061_498x361.gif 424w, https://substackcdn.com/image/fetch/$s_!KOBn!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87c48688-f6c6-4380-acb9-5780a1282061_498x361.gif 848w, https://substackcdn.com/image/fetch/$s_!KOBn!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87c48688-f6c6-4380-acb9-5780a1282061_498x361.gif 1272w, https://substackcdn.com/image/fetch/$s_!KOBn!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87c48688-f6c6-4380-acb9-5780a1282061_498x361.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KOBn!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87c48688-f6c6-4380-acb9-5780a1282061_498x361.gif" width="498" height="361" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/87c48688-f6c6-4380-acb9-5780a1282061_498x361.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:361,&quot;width&quot;:498,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&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="" title="" srcset="https://substackcdn.com/image/fetch/$s_!KOBn!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87c48688-f6c6-4380-acb9-5780a1282061_498x361.gif 424w, https://substackcdn.com/image/fetch/$s_!KOBn!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87c48688-f6c6-4380-acb9-5780a1282061_498x361.gif 848w, https://substackcdn.com/image/fetch/$s_!KOBn!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87c48688-f6c6-4380-acb9-5780a1282061_498x361.gif 1272w, https://substackcdn.com/image/fetch/$s_!KOBn!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87c48688-f6c6-4380-acb9-5780a1282061_498x361.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><h3>Floating point</h3><p>A floating point number is a number with a decimal point and can represent fractional values. Examples include <code>3.14</code>, <code>-0.01</code>, and <code>1.0</code>.</p><h3>String</h3><p>A string is a sequence of characters and is often used to represent text. Examples include <code>"Hello, world!"</code>, <code>"This is a string"</code>, and <code>"123"</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_!s377!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59af51d9-bb61-477f-b379-4df230aeae7d_498x280.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!s377!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59af51d9-bb61-477f-b379-4df230aeae7d_498x280.gif 424w, https://substackcdn.com/image/fetch/$s_!s377!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59af51d9-bb61-477f-b379-4df230aeae7d_498x280.gif 848w, https://substackcdn.com/image/fetch/$s_!s377!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59af51d9-bb61-477f-b379-4df230aeae7d_498x280.gif 1272w, https://substackcdn.com/image/fetch/$s_!s377!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59af51d9-bb61-477f-b379-4df230aeae7d_498x280.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!s377!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59af51d9-bb61-477f-b379-4df230aeae7d_498x280.gif" width="498" height="280" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/59af51d9-bb61-477f-b379-4df230aeae7d_498x280.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:280,&quot;width&quot;:498,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&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="" title="" srcset="https://substackcdn.com/image/fetch/$s_!s377!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59af51d9-bb61-477f-b379-4df230aeae7d_498x280.gif 424w, https://substackcdn.com/image/fetch/$s_!s377!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59af51d9-bb61-477f-b379-4df230aeae7d_498x280.gif 848w, https://substackcdn.com/image/fetch/$s_!s377!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59af51d9-bb61-477f-b379-4df230aeae7d_498x280.gif 1272w, https://substackcdn.com/image/fetch/$s_!s377!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59af51d9-bb61-477f-b379-4df230aeae7d_498x280.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><h3>Boolean</h3><p>A boolean is a data type that can have one of two values: <code>True</code> or <code>False</code>. Examples include <code>True</code>, <code>False</code>, and <code>False</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_!8Y8o!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F005c86a9-bbfa-4ed8-ae34-649e34ad53c5_498x498.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8Y8o!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F005c86a9-bbfa-4ed8-ae34-649e34ad53c5_498x498.gif 424w, https://substackcdn.com/image/fetch/$s_!8Y8o!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F005c86a9-bbfa-4ed8-ae34-649e34ad53c5_498x498.gif 848w, https://substackcdn.com/image/fetch/$s_!8Y8o!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F005c86a9-bbfa-4ed8-ae34-649e34ad53c5_498x498.gif 1272w, https://substackcdn.com/image/fetch/$s_!8Y8o!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F005c86a9-bbfa-4ed8-ae34-649e34ad53c5_498x498.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8Y8o!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F005c86a9-bbfa-4ed8-ae34-649e34ad53c5_498x498.gif" width="498" height="498" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/005c86a9-bbfa-4ed8-ae34-649e34ad53c5_498x498.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:498,&quot;width&quot;:498,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&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="" title="" srcset="https://substackcdn.com/image/fetch/$s_!8Y8o!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F005c86a9-bbfa-4ed8-ae34-649e34ad53c5_498x498.gif 424w, https://substackcdn.com/image/fetch/$s_!8Y8o!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F005c86a9-bbfa-4ed8-ae34-649e34ad53c5_498x498.gif 848w, https://substackcdn.com/image/fetch/$s_!8Y8o!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F005c86a9-bbfa-4ed8-ae34-649e34ad53c5_498x498.gif 1272w, https://substackcdn.com/image/fetch/$s_!8Y8o!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F005c86a9-bbfa-4ed8-ae34-649e34ad53c5_498x498.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><h3>Array</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YKX7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a51384d-8368-419e-bd75-06a96ecf1aec_768x317.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YKX7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a51384d-8368-419e-bd75-06a96ecf1aec_768x317.png 424w, https://substackcdn.com/image/fetch/$s_!YKX7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a51384d-8368-419e-bd75-06a96ecf1aec_768x317.png 848w, https://substackcdn.com/image/fetch/$s_!YKX7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a51384d-8368-419e-bd75-06a96ecf1aec_768x317.png 1272w, https://substackcdn.com/image/fetch/$s_!YKX7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a51384d-8368-419e-bd75-06a96ecf1aec_768x317.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YKX7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a51384d-8368-419e-bd75-06a96ecf1aec_768x317.png" width="768" height="317" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5a51384d-8368-419e-bd75-06a96ecf1aec_768x317.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:317,&quot;width&quot;:768,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&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="" title="" srcset="https://substackcdn.com/image/fetch/$s_!YKX7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a51384d-8368-419e-bd75-06a96ecf1aec_768x317.png 424w, https://substackcdn.com/image/fetch/$s_!YKX7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a51384d-8368-419e-bd75-06a96ecf1aec_768x317.png 848w, https://substackcdn.com/image/fetch/$s_!YKX7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a51384d-8368-419e-bd75-06a96ecf1aec_768x317.png 1272w, https://substackcdn.com/image/fetch/$s_!YKX7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a51384d-8368-419e-bd75-06a96ecf1aec_768x317.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 array is a data type that stores a collection of values and can be of any data type. Examples include <code>[1, 2, 3]</code>, <code>["a", "b", "c"]</code>, and <code>[True, False, True]</code>.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!D1qK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ccca3b1-0584-4d62-822d-61396e3d7470_498x189.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!D1qK!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ccca3b1-0584-4d62-822d-61396e3d7470_498x189.gif 424w, https://substackcdn.com/image/fetch/$s_!D1qK!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ccca3b1-0584-4d62-822d-61396e3d7470_498x189.gif 848w, https://substackcdn.com/image/fetch/$s_!D1qK!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ccca3b1-0584-4d62-822d-61396e3d7470_498x189.gif 1272w, https://substackcdn.com/image/fetch/$s_!D1qK!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ccca3b1-0584-4d62-822d-61396e3d7470_498x189.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!D1qK!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ccca3b1-0584-4d62-822d-61396e3d7470_498x189.gif" width="498" height="189" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1ccca3b1-0584-4d62-822d-61396e3d7470_498x189.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:189,&quot;width&quot;:498,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&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="" title="" srcset="https://substackcdn.com/image/fetch/$s_!D1qK!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ccca3b1-0584-4d62-822d-61396e3d7470_498x189.gif 424w, https://substackcdn.com/image/fetch/$s_!D1qK!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ccca3b1-0584-4d62-822d-61396e3d7470_498x189.gif 848w, https://substackcdn.com/image/fetch/$s_!D1qK!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ccca3b1-0584-4d62-822d-61396e3d7470_498x189.gif 1272w, https://substackcdn.com/image/fetch/$s_!D1qK!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ccca3b1-0584-4d62-822d-61396e3d7470_498x189.gif 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h3>Dictionary</h3><p>A dictionary (also called a map or associative array) is a data type that stores a collection of key-value pairs, where each key is associated with a value. Examples include <code>{"a": 1, "b": 2, "c": 3}</code>, <code>{"name": "John", "age": 30}</code>, and <code>{"True": "Yes", "False": "No"}</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_!mcpx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41d91077-a33c-40ac-890e-1087bd96ebf3_498x379.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mcpx!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41d91077-a33c-40ac-890e-1087bd96ebf3_498x379.gif 424w, https://substackcdn.com/image/fetch/$s_!mcpx!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41d91077-a33c-40ac-890e-1087bd96ebf3_498x379.gif 848w, https://substackcdn.com/image/fetch/$s_!mcpx!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41d91077-a33c-40ac-890e-1087bd96ebf3_498x379.gif 1272w, https://substackcdn.com/image/fetch/$s_!mcpx!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41d91077-a33c-40ac-890e-1087bd96ebf3_498x379.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mcpx!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41d91077-a33c-40ac-890e-1087bd96ebf3_498x379.gif" width="498" height="379" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/41d91077-a33c-40ac-890e-1087bd96ebf3_498x379.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:379,&quot;width&quot;:498,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&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="" title="" srcset="https://substackcdn.com/image/fetch/$s_!mcpx!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41d91077-a33c-40ac-890e-1087bd96ebf3_498x379.gif 424w, https://substackcdn.com/image/fetch/$s_!mcpx!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41d91077-a33c-40ac-890e-1087bd96ebf3_498x379.gif 848w, https://substackcdn.com/image/fetch/$s_!mcpx!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41d91077-a33c-40ac-890e-1087bd96ebf3_498x379.gif 1272w, https://substackcdn.com/image/fetch/$s_!mcpx!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41d91077-a33c-40ac-890e-1087bd96ebf3_498x379.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><h3>Set</h3><p>A set is a data type that stores a collection of unique values and does not allow duplicate values. Sets are often used for tasks like searching and filtering and can be implemented using various data structures such as hashtables or trees.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oSvP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd82b2ed-177a-4a9f-a454-3e70feb7356b_811x397.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oSvP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd82b2ed-177a-4a9f-a454-3e70feb7356b_811x397.png 424w, https://substackcdn.com/image/fetch/$s_!oSvP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd82b2ed-177a-4a9f-a454-3e70feb7356b_811x397.png 848w, https://substackcdn.com/image/fetch/$s_!oSvP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd82b2ed-177a-4a9f-a454-3e70feb7356b_811x397.png 1272w, https://substackcdn.com/image/fetch/$s_!oSvP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd82b2ed-177a-4a9f-a454-3e70feb7356b_811x397.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oSvP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd82b2ed-177a-4a9f-a454-3e70feb7356b_811x397.png" width="811" height="397" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cd82b2ed-177a-4a9f-a454-3e70feb7356b_811x397.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:397,&quot;width&quot;:811,&quot;resizeWidth&quot;:null,&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_!oSvP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd82b2ed-177a-4a9f-a454-3e70feb7356b_811x397.png 424w, https://substackcdn.com/image/fetch/$s_!oSvP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd82b2ed-177a-4a9f-a454-3e70feb7356b_811x397.png 848w, https://substackcdn.com/image/fetch/$s_!oSvP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd82b2ed-177a-4a9f-a454-3e70feb7356b_811x397.png 1272w, https://substackcdn.com/image/fetch/$s_!oSvP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd82b2ed-177a-4a9f-a454-3e70feb7356b_811x397.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>Tuple</h3><p>A tuple is a data type that stores a fixed-length sequence of values and can be of any data type. Tuples are often used to store related pieces of data that should not be modified and can be accessed using indexing or unpacking.</p><p>Mainly used in Python, tuples are similar to lists except for the following:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9qhY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd63a0cb6-35f0-41ed-aff5-7295732eba45_1280x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9qhY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd63a0cb6-35f0-41ed-aff5-7295732eba45_1280x720.png 424w, https://substackcdn.com/image/fetch/$s_!9qhY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd63a0cb6-35f0-41ed-aff5-7295732eba45_1280x720.png 848w, https://substackcdn.com/image/fetch/$s_!9qhY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd63a0cb6-35f0-41ed-aff5-7295732eba45_1280x720.png 1272w, https://substackcdn.com/image/fetch/$s_!9qhY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd63a0cb6-35f0-41ed-aff5-7295732eba45_1280x720.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9qhY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd63a0cb6-35f0-41ed-aff5-7295732eba45_1280x720.png" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d63a0cb6-35f0-41ed-aff5-7295732eba45_1280x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&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_!9qhY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd63a0cb6-35f0-41ed-aff5-7295732eba45_1280x720.png 424w, https://substackcdn.com/image/fetch/$s_!9qhY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd63a0cb6-35f0-41ed-aff5-7295732eba45_1280x720.png 848w, https://substackcdn.com/image/fetch/$s_!9qhY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd63a0cb6-35f0-41ed-aff5-7295732eba45_1280x720.png 1272w, https://substackcdn.com/image/fetch/$s_!9qhY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd63a0cb6-35f0-41ed-aff5-7295732eba45_1280x720.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 quick guide on the nomenclature here:</p><ul><li><p><strong>Immutable</strong> means the tuple object can't be modified after it's created. If you want to change something, you need to create a new one with a copy of the data + the modified element.</p></li><li><p>Because they are immutable, their size will be <strong>fixed</strong> too. (as no element can be added or removed).</p></li></ul><h3>Function</h3><p>A function is a data type that represents a block of code that can be executed and can accept parameters, and return a result. Functions are often used to encapsulate reusable code and can be passed as arguments or returned as values from other functions.</p><blockquote><p>Examples of languages that <code>function</code> is a data types are Javascript and C/C++.</p></blockquote><h3>Object</h3><p>An object is a data type that represents a complex data structure and can contain a combination of different data types and methods. Examples might include an object representing a person, with properties such as name, age, and address.</p><blockquote><p>&#129299; When designing a database, most of the time we are designing the tables to copy the Objects used in the code and save them in databases. This concept is called "persisting" the data. Most of the time there will be additional columns in the table that are not part of the object, such as data it's created, edited, deleted, etc.</p></blockquote><h3>Class</h3><p>A class is a data type that represents a blueprint for creating objects and can contain data (properties) and behavior (methods). Classes are often used to model real-world concepts and can be used to create objects that share a common structure and behavior.</p><blockquote><p>In another word, <strong>Objects are created from Classes</strong>.</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_!aHyh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4921f547-978f-4ef5-8862-395f0b4415aa_695x322.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aHyh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4921f547-978f-4ef5-8862-395f0b4415aa_695x322.png 424w, https://substackcdn.com/image/fetch/$s_!aHyh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4921f547-978f-4ef5-8862-395f0b4415aa_695x322.png 848w, https://substackcdn.com/image/fetch/$s_!aHyh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4921f547-978f-4ef5-8862-395f0b4415aa_695x322.png 1272w, https://substackcdn.com/image/fetch/$s_!aHyh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4921f547-978f-4ef5-8862-395f0b4415aa_695x322.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aHyh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4921f547-978f-4ef5-8862-395f0b4415aa_695x322.png" width="695" height="322" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4921f547-978f-4ef5-8862-395f0b4415aa_695x322.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:322,&quot;width&quot;:695,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&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="" title="" srcset="https://substackcdn.com/image/fetch/$s_!aHyh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4921f547-978f-4ef5-8862-395f0b4415aa_695x322.png 424w, https://substackcdn.com/image/fetch/$s_!aHyh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4921f547-978f-4ef5-8862-395f0b4415aa_695x322.png 848w, https://substackcdn.com/image/fetch/$s_!aHyh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4921f547-978f-4ef5-8862-395f0b4415aa_695x322.png 1272w, https://substackcdn.com/image/fetch/$s_!aHyh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4921f547-978f-4ef5-8862-395f0b4415aa_695x322.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><figcaption class="image-caption"><strong>E.g. we have a </strong><code>Student</code> class, with 3 objects named John, Sophia, and Lily.</figcaption></figure></div><h3><strong>Enum</strong></h3><p>An enum (short for enumeration) is a data type that represents a set of predefined constants and is often used to represent a set of related values that do not change. Enums can be used to make code more readable and prevent the use of magic values.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RFpg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc714d956-8943-483e-aa43-05611ec20bd6_466x504.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RFpg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc714d956-8943-483e-aa43-05611ec20bd6_466x504.png 424w, https://substackcdn.com/image/fetch/$s_!RFpg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc714d956-8943-483e-aa43-05611ec20bd6_466x504.png 848w, https://substackcdn.com/image/fetch/$s_!RFpg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc714d956-8943-483e-aa43-05611ec20bd6_466x504.png 1272w, https://substackcdn.com/image/fetch/$s_!RFpg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc714d956-8943-483e-aa43-05611ec20bd6_466x504.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RFpg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc714d956-8943-483e-aa43-05611ec20bd6_466x504.png" width="466" height="504" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c714d956-8943-483e-aa43-05611ec20bd6_466x504.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:504,&quot;width&quot;:466,&quot;resizeWidth&quot;:null,&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_!RFpg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc714d956-8943-483e-aa43-05611ec20bd6_466x504.png 424w, https://substackcdn.com/image/fetch/$s_!RFpg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc714d956-8943-483e-aa43-05611ec20bd6_466x504.png 848w, https://substackcdn.com/image/fetch/$s_!RFpg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc714d956-8943-483e-aa43-05611ec20bd6_466x504.png 1272w, https://substackcdn.com/image/fetch/$s_!RFpg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc714d956-8943-483e-aa43-05611ec20bd6_466x504.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><strong>Wrap up</strong></h1><p>It's important to note that the specific data types and their characteristics will vary depending on the programming language being used. Some languages, such as dynamically typed languages like Python, have a more flexible type system and allow for the creation of custom data types, while other languages, such as statically typed languages like Java, have a more rigid type system and define a fixed set of data types.</p><p>Understanding data types is an essential skill for product managers, as it can help us make informed decisions about how to design and develop our products, communicate more effectively with technical team members, and understand the trade-offs and limitations of different approaches. I hope this post has provided a helpful overview of some common data types, and encourages you to continue learning and exploring this important topic.</p>]]></content:encoded></item><item><title><![CDATA[Day 19 - Data and Databases, Part 2 - Design a Database with UML]]></title><description><![CDATA[Let's design a database with UML and entity relationship diagrams, using the Top-down learning approach.]]></description><link>https://www.hackerpm.com/p/day-19-data-and-databases</link><guid isPermaLink="false">https://www.hackerpm.com/p/day-19-data-and-databases</guid><dc:creator><![CDATA[Hamed Mohammadpour]]></dc:creator><pubDate>Mon, 19 Dec 2022 20:21:58 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/96100df2-9e91-48f3-bcae-6c54ce6bea9c_2000x1333.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0BEV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc3dd01f-f5d5-4f77-b55b-0d83f68ca49f_2000x1333.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0BEV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc3dd01f-f5d5-4f77-b55b-0d83f68ca49f_2000x1333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!0BEV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc3dd01f-f5d5-4f77-b55b-0d83f68ca49f_2000x1333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!0BEV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc3dd01f-f5d5-4f77-b55b-0d83f68ca49f_2000x1333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!0BEV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc3dd01f-f5d5-4f77-b55b-0d83f68ca49f_2000x1333.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0BEV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc3dd01f-f5d5-4f77-b55b-0d83f68ca49f_2000x1333.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dc3dd01f-f5d5-4f77-b55b-0d83f68ca49f_2000x1333.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Day 19 - Data and Databases, Part 2 - Design a Database with UML&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="Day 19 - Data and Databases, Part 2 - Design a Database with UML" title="Day 19 - Data and Databases, Part 2 - Design a Database with UML" srcset="https://substackcdn.com/image/fetch/$s_!0BEV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc3dd01f-f5d5-4f77-b55b-0d83f68ca49f_2000x1333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!0BEV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc3dd01f-f5d5-4f77-b55b-0d83f68ca49f_2000x1333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!0BEV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc3dd01f-f5d5-4f77-b55b-0d83f68ca49f_2000x1333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!0BEV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc3dd01f-f5d5-4f77-b55b-0d83f68ca49f_2000x1333.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>If you missed yesterday's post, check it out <a href="hackerpm.com/day-18-databases-part-1/">here</a>. We introduced basic concepts about Data, Data types, What is a Database (DB), and different Database types, such as Relational and NoSQL databases.</p><p>We also touched upon several commonly used terms around Data and databases, such as Transactions, Normalisation, and Primary Key.</p><p>In today's post, we'll explore working with Databases <strong>hands-on</strong>, from a schematic perspective. By <em>schematic,</em> I mean being able to read UML diagrams and Entity Relationships (ER).</p><p>Why hands-on? Because I think it's the best way to learn something that sounds complex. This is called Top-down Learning and looks something like this:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zwjx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86259655-2774-4f9d-bc39-da8cd210173b_648x312.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zwjx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86259655-2774-4f9d-bc39-da8cd210173b_648x312.png 424w, https://substackcdn.com/image/fetch/$s_!zwjx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86259655-2774-4f9d-bc39-da8cd210173b_648x312.png 848w, https://substackcdn.com/image/fetch/$s_!zwjx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86259655-2774-4f9d-bc39-da8cd210173b_648x312.png 1272w, https://substackcdn.com/image/fetch/$s_!zwjx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86259655-2774-4f9d-bc39-da8cd210173b_648x312.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zwjx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86259655-2774-4f9d-bc39-da8cd210173b_648x312.png" width="648" height="312" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/86259655-2774-4f9d-bc39-da8cd210173b_648x312.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:312,&quot;width&quot;:648,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&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="" srcset="https://substackcdn.com/image/fetch/$s_!zwjx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86259655-2774-4f9d-bc39-da8cd210173b_648x312.png 424w, https://substackcdn.com/image/fetch/$s_!zwjx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86259655-2774-4f9d-bc39-da8cd210173b_648x312.png 848w, https://substackcdn.com/image/fetch/$s_!zwjx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86259655-2774-4f9d-bc39-da8cd210173b_648x312.png 1272w, https://substackcdn.com/image/fetch/$s_!zwjx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86259655-2774-4f9d-bc39-da8cd210173b_648x312.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>According to the Merriam-Webster dictionary, Top-Down refers to the breaking down of large general aspects (as of a problem) into smaller more detailed constituents: working from the general to the specific.</p><p>In this post, we'll explore Data and Databases from this angle, and with the best, I can make it Top-down. &#128516;</p><h2><a href="https://www.canva.com/design/DAFVNh6IMQM/043yblUrV7DU_uI3RLeYbA/view?utm_content=DAFVNh6IMQM&amp;utm_campaign=designshare&amp;utm_medium=link&amp;utm_source=publishsharelink">Slides can be found here</a></h2><h1>What do we need?</h1><p>If I want to break down Databases top-down, after we have covered the basics yesterday, I'll walk you through how to <strong>Design a Database by yourself</strong>. Sounds scary?</p><p>Well, it shouldn't be. Because we will do it all "on paper" and there is no cost for any mistakes. You can design any app you want (or use) in any way you'd like.</p><p>But before jumping into designing, we need to know how we are going to design a database. For that, we'll get familiar with <strong>UML</strong> first.</p><h1>What is UML?</h1><p>UML (like any other concept) can be deep and complex by itself, but let's touch on this in the Top-down approach too. We will learn only the things we need.</p><blockquote><p><strong>UML (Unified Modeling Language)</strong> is a standardized modeling language that is used to create visual diagrams of software systems. It is a visual language that is used to represent the <strong>structure</strong> and <strong>behavior</strong> of a system, including the <strong>relationships</strong> and <strong>interactions</strong> between different <strong>elements</strong> of the system.</p></blockquote><p>UML includes a set of graphical notation elements that can be used to create visual models of a system. These elements include things like <strong>classes, objects, relationships, and interactions</strong>. The UML specification defines a set of rules for using these elements to create visual models of a system, and these models can be used to communicate the design of a system to stakeholders and developers.</p><p>These symbols (and a UML chart) look something like below. (Note it's a Cheat Sheet, so the text is explaining the symbol itself).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lzZZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc47b3ed-f75f-4a2a-9131-d9f4010f59ef_1354x1144.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lzZZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc47b3ed-f75f-4a2a-9131-d9f4010f59ef_1354x1144.png 424w, https://substackcdn.com/image/fetch/$s_!lzZZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc47b3ed-f75f-4a2a-9131-d9f4010f59ef_1354x1144.png 848w, https://substackcdn.com/image/fetch/$s_!lzZZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc47b3ed-f75f-4a2a-9131-d9f4010f59ef_1354x1144.png 1272w, https://substackcdn.com/image/fetch/$s_!lzZZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc47b3ed-f75f-4a2a-9131-d9f4010f59ef_1354x1144.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lzZZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc47b3ed-f75f-4a2a-9131-d9f4010f59ef_1354x1144.png" width="1354" height="1144" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dc47b3ed-f75f-4a2a-9131-d9f4010f59ef_1354x1144.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1144,&quot;width&quot;:1354,&quot;resizeWidth&quot;:null,&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_!lzZZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc47b3ed-f75f-4a2a-9131-d9f4010f59ef_1354x1144.png 424w, https://substackcdn.com/image/fetch/$s_!lzZZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc47b3ed-f75f-4a2a-9131-d9f4010f59ef_1354x1144.png 848w, https://substackcdn.com/image/fetch/$s_!lzZZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc47b3ed-f75f-4a2a-9131-d9f4010f59ef_1354x1144.png 1272w, https://substackcdn.com/image/fetch/$s_!lzZZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc47b3ed-f75f-4a2a-9131-d9f4010f59ef_1354x1144.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>UML is often used to create diagrams that represent the structure of a system, including class diagrams that show the relationships between different classes, and sequence diagrams that show the interactions between objects and their relationships over time. UML is also used to create activity diagrams that show the flow of activities within a system, and state machine diagrams that show the different states that an object can be in and the transitions between those states.</p><p>In that sense, UML is like a map. Map of the system we are building, in the data and class levels.&nbsp;</p><blockquote><p>Note that UML can be used for many more applciations and there are many different types, such as Structural (Class Diagram, Component Diagram, Package Diagram,..) and Behavioural (Activity, Communication, Interaction Diagrams, ...).<br>Today we focus on ERD (Entity Relationship Diagrams) to be specific.</p></blockquote><h1>Example UML diagram</h1><p>Before jumping to understanding the pieces inside the map (which would be "normal" in a bottom-up approach, as we did in school), let's have a look at a complete UML for a database and then explore each element of it.</p><p>Let's look at a sample UML diagram like below.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!D3--!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb2bcf6-a911-4a0a-bc97-28b5933f21d0_504x491.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!D3--!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb2bcf6-a911-4a0a-bc97-28b5933f21d0_504x491.png 424w, https://substackcdn.com/image/fetch/$s_!D3--!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb2bcf6-a911-4a0a-bc97-28b5933f21d0_504x491.png 848w, https://substackcdn.com/image/fetch/$s_!D3--!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb2bcf6-a911-4a0a-bc97-28b5933f21d0_504x491.png 1272w, https://substackcdn.com/image/fetch/$s_!D3--!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb2bcf6-a911-4a0a-bc97-28b5933f21d0_504x491.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!D3--!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb2bcf6-a911-4a0a-bc97-28b5933f21d0_504x491.png" width="504" height="491" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4bb2bcf6-a911-4a0a-bc97-28b5933f21d0_504x491.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:491,&quot;width&quot;:504,&quot;resizeWidth&quot;:null,&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_!D3--!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb2bcf6-a911-4a0a-bc97-28b5933f21d0_504x491.png 424w, https://substackcdn.com/image/fetch/$s_!D3--!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb2bcf6-a911-4a0a-bc97-28b5933f21d0_504x491.png 848w, https://substackcdn.com/image/fetch/$s_!D3--!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb2bcf6-a911-4a0a-bc97-28b5933f21d0_504x491.png 1272w, https://substackcdn.com/image/fetch/$s_!D3--!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb2bcf6-a911-4a0a-bc97-28b5933f21d0_504x491.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 chart above has two main object types:</p><ol><li><p>Boxes (called Entities)</p></li><li><p>and Lines, connecting the boxes, probably showing their "relationship".</p></li></ol><h1>ERD basics</h1><p>A quick for me to dive into a new concept in the Top-down approach is always looking at the "cheat sheets" available for that topic.</p><p>&#129299; I will use UML and ERD interchangeably going forward. ERD is a subset of UML diagrams, but in this post, we only talk about ERD diagrams.</p><p>You can start by searching for "<strong>ERD Chear sheet</strong>" and you'll get many images like the one below, explaining basic elements in one or a few pages.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vonp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a324b71-b230-4c9a-8418-a66b2abbda4b_527x611.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vonp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a324b71-b230-4c9a-8418-a66b2abbda4b_527x611.png 424w, https://substackcdn.com/image/fetch/$s_!vonp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a324b71-b230-4c9a-8418-a66b2abbda4b_527x611.png 848w, https://substackcdn.com/image/fetch/$s_!vonp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a324b71-b230-4c9a-8418-a66b2abbda4b_527x611.png 1272w, https://substackcdn.com/image/fetch/$s_!vonp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a324b71-b230-4c9a-8418-a66b2abbda4b_527x611.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vonp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a324b71-b230-4c9a-8418-a66b2abbda4b_527x611.png" width="527" height="611" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5a324b71-b230-4c9a-8418-a66b2abbda4b_527x611.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:611,&quot;width&quot;:527,&quot;resizeWidth&quot;:null,&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_!vonp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a324b71-b230-4c9a-8418-a66b2abbda4b_527x611.png 424w, https://substackcdn.com/image/fetch/$s_!vonp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a324b71-b230-4c9a-8418-a66b2abbda4b_527x611.png 848w, https://substackcdn.com/image/fetch/$s_!vonp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a324b71-b230-4c9a-8418-a66b2abbda4b_527x611.png 1272w, https://substackcdn.com/image/fetch/$s_!vonp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a324b71-b230-4c9a-8418-a66b2abbda4b_527x611.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><strong>Homework</strong></h1><p>Having the above cheat sheets and an app of your choice (for example Uber, Airbnb, Netflix, Amazon,...) design the ERD for each entity you can think of and connect them using the association links (cardinalities).</p><h2>Which tools you can use?</h2><p>You can use tools such as <a href="https://miro.com/templates/entity-relationship-diagram/">Miro</a> and <a href="https://lucidchart.zendesk.com/hc/en-us/articles/207299756-Entity-Relationship-Diagrams">Lucidchart</a>, among many others, to design your ERD.</p><p>More resources to read on ERD if you need any help:</p><ul><li><p><a href="https://www.lucidchart.com/pages/er-diagrams">ER Diagrams by Lucidchart</a></p></li><li><p><a href="https://www.databasestar.com/entity-relationship-diagram/">A Guide to the Entity Relationship Diagram (ERD)</a></p></li><li><p><a href="https://www.visual-paradigm.com/guide/data-modeling/what-is-entity-relationship-diagram/">What is Entity Relationship Diagram (ERD)?</a><br></p></li><li><p></p></li></ul><p>Have fun diagramming!</p>]]></content:encoded></item><item><title><![CDATA[Day 18 - Data and Databases, Part 1]]></title><description><![CDATA[Everything Product Managers should know about Data and Databases, explained step by step. Part 1]]></description><link>https://www.hackerpm.com/p/day-18-databases-part-1</link><guid isPermaLink="false">https://www.hackerpm.com/p/day-18-databases-part-1</guid><dc:creator><![CDATA[Hamed Mohammadpour]]></dc:creator><pubDate>Sun, 18 Dec 2022 17:49:41 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/8a1a4c16-5b9e-47af-bb78-94e1cb4c7fa8_2000x1333.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Gjj8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8b480b2-6e23-4e79-9c36-82815078ce37_2000x1333.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Gjj8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8b480b2-6e23-4e79-9c36-82815078ce37_2000x1333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Gjj8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8b480b2-6e23-4e79-9c36-82815078ce37_2000x1333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Gjj8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8b480b2-6e23-4e79-9c36-82815078ce37_2000x1333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Gjj8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8b480b2-6e23-4e79-9c36-82815078ce37_2000x1333.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Gjj8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8b480b2-6e23-4e79-9c36-82815078ce37_2000x1333.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c8b480b2-6e23-4e79-9c36-82815078ce37_2000x1333.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Day 18 - Data and Databases, Part 1&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="Day 18 - Data and Databases, Part 1" title="Day 18 - Data and Databases, Part 1" srcset="https://substackcdn.com/image/fetch/$s_!Gjj8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8b480b2-6e23-4e79-9c36-82815078ce37_2000x1333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Gjj8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8b480b2-6e23-4e79-9c36-82815078ce37_2000x1333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Gjj8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8b480b2-6e23-4e79-9c36-82815078ce37_2000x1333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Gjj8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8b480b2-6e23-4e79-9c36-82815078ce37_2000x1333.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>One of the core concepts in any modern software product is Data and Databases. I can't write or emphasize enough the importance of <strong>Data and "Insights"</strong>. The best I can do is to say:</p><blockquote><p>Data is not the new oil, it's even more valuable and important!</p></blockquote><p>In the next couple of episodes, I'll cover more on Data and its related concepts, so you can feel more comfortable talking about Data and Data products, as well as be able to utilize it more and more in your day-to-day work.</p><h3><a href="https://www.canva.com/design/DAFVH9nTGvE/u374mGYiR6t7tqs3GVz1fg/view?utm_content=DAFVH9nTGvE&amp;utm_campaign=designshare&amp;utm_medium=link&amp;utm_source=publishsharelink">Slides can be found here</a></h3><h1>What is Data?</h1><p>Just to cover the basics, let's go with our definition of Data:</p><blockquote><p>Data is a collection of facts, statistics, or other pieces of information that can be used to inform decisions or support conclusions.</p></blockquote><p>Data can be numerical, textual, or graphical (<strong>data type</strong>) and can be collected from a variety of sources, such as databases, surveys, experiments, or observations.</p><h2>Importance of Data</h2><p>Data is a valuable asset for organizations and individuals, as it provides insights and information that can be used to make informed decisions and take strategic actions. Here are a few reasons why data is important:</p><ul><li><p>Data helps to drive business growth and innovation: By analyzing data, companies can identify trends and patterns, and use this information to improve their products, services, and processes. Data can also help businesses to identify new opportunities and make better decisions about where to invest resources.</p></li><li><p>Data can improve efficiency and productivity: By analyzing data, organizations can identify inefficiencies and areas for improvement in their operations. Data can also help to automate and streamline processes, which can increase productivity and reduce costs.</p></li><li><p>Data helps to inform decision-making: Data provides a factual basis for making decisions, rather than relying on assumptions or gut feelings. By analyzing data, organizations and individuals can make more informed and accurate decisions.</p></li><li><p>Data is a key component of analytics and machine learning: Data is the fuel that powers analytics and machine learning algorithms and is used to train these systems to make predictions, detect patterns, and take actions.</p></li><li><p>Data can be used to personalize experiences and create targeted marketing: By analyzing data about customer behavior and preferences, companies can create personalized experiences and targeted marketing campaigns that are more likely to be successful.</p></li></ul><p>Overall, data is a critical asset that can be used to drive growth, improve efficiency, inform decision-making, and create personalized experiences.</p><h2>Qualities of Valuable Data</h2><p>Just like "oil" which is not refined and not all oils are equal, Data should have several characteristics to be valuable and useful. These characteristics are:</p><ol><li><p><strong>Accuracy</strong>: Data should be accurate and free from errors, in order to be reliable and trustworthy.</p></li><li><p><strong>Relevance</strong>: Data should be relevant to the problem or decision at hand, and should provide useful information for the context in which it is being used.</p></li><li><p><strong>Completeness</strong>: Data should be complete and contain all relevant information, in order to provide a comprehensive and accurate view of the situation.</p></li><li><p><strong>Timeliness</strong>: Data should be current and up-to-date, in order to be relevant and useful.</p></li><li><p><strong>Accessibility</strong>: Data should be easily accessible and available to those who need it, in a format that is easy to use and understand.</p></li></ol><p>By having these characteristics, data can be valuable and useful for a variety of purposes, including decision-making, problem-solving, and analysis. If any of these characteristics are under question or not verifiable, you might need to think twice before basing your "next big decision" on it.</p><blockquote><p>&#128202; There is a lot to say about "Data-driven" decisions which deserve their own series after we covered the basics of Data and are comfortable with using and analyzing it.</p></blockquote><h1>What is a Database and why do we need it?</h1><p>To go over the breadth quickly, our next stop in the "universe of data" &#129680; is <strong>Databases</strong>. It's defined as:</p><blockquote><p>A database is a <strong>structured collection of data</strong>, usually stored and accessed electronically. It is a way to <strong>organize</strong> and <strong>store</strong> data that can be easily accessed, updated, and managed by computers.</p></blockquote><p>In other words, a collection of data in an organized manner (easy to store, find, retrieve, edit, ...) is called a Database.</p><p>This organization of data helps us to utilize it for the purpose we have. (Note: There should be a purpose with data collection and analysis, sometimes we forget about this simple concept &#128584;)</p><p>The history of databases dates back to the 1960s when the first database management systems were developed. These early systems were used to store and manage large amounts of data for scientific and government applications. In the following decades, databases became more widely used in business and other industries, and the development of the Internet and the World Wide Web led to the creation of many new database-driven applications.</p><p>Databases are used in a wide variety of applications, including online stores, social media platforms, banking systems, and customer relationship management systems. They are an integral part of modern software development and are used to store and manage data for many different types of applications.</p><blockquote><p>&#9757;&#65039;Fun fact: the word "database" was coined by IBM researcher Dr. Edgar F. Codd in the 1960s when he was working on the development of the first relational database management system.</p></blockquote><h2>Different types of Databases</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!y433!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5182d212-647b-4b0e-8df7-a5ecf91c2967_2000x758.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!y433!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5182d212-647b-4b0e-8df7-a5ecf91c2967_2000x758.png 424w, https://substackcdn.com/image/fetch/$s_!y433!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5182d212-647b-4b0e-8df7-a5ecf91c2967_2000x758.png 848w, https://substackcdn.com/image/fetch/$s_!y433!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5182d212-647b-4b0e-8df7-a5ecf91c2967_2000x758.png 1272w, https://substackcdn.com/image/fetch/$s_!y433!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5182d212-647b-4b0e-8df7-a5ecf91c2967_2000x758.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!y433!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5182d212-647b-4b0e-8df7-a5ecf91c2967_2000x758.png" width="1456" height="552" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5182d212-647b-4b0e-8df7-a5ecf91c2967_2000x758.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:552,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&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_!y433!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5182d212-647b-4b0e-8df7-a5ecf91c2967_2000x758.png 424w, https://substackcdn.com/image/fetch/$s_!y433!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5182d212-647b-4b0e-8df7-a5ecf91c2967_2000x758.png 848w, https://substackcdn.com/image/fetch/$s_!y433!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5182d212-647b-4b0e-8df7-a5ecf91c2967_2000x758.png 1272w, https://substackcdn.com/image/fetch/$s_!y433!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5182d212-647b-4b0e-8df7-a5ecf91c2967_2000x758.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>Because there are many different types of data and we might use them for different purposes, naturally we need a different way to store and organize them.</p><p>There are several types of databases, including<strong> relational databases</strong>, which store data in tables with rows and columns, and non-relational databases, which store data in a more flexible format.</p><p>Some common examples of <em>relational databases</em> include <strong>MySQL, Oracle, and Microsoft SQL Server</strong>. <em>Non-relational databases</em> include <strong>MongoDB, Cassandra, and Redis.</strong></p><p>When choosing a database for a particular application, it is important to consider the<strong> type of data</strong> that will be stored, the<strong> number of users</strong> who will be accessing the database, and the <strong>performance and scalability</strong> requirements of the application.</p><blockquote><p>Are these the only database types we have?</p></blockquote><p>Actually "No!", there are many more database (DB) types, depending on how we categorize them (how the data is stored, whether is it central or distributed, what data type is stored and so on). Let's go over these types in more detail:</p><h2>Relational Database</h2><p>Relational databases are organized into tables with rows and columns, and SQL is used to create, modify, and query these tables. <strong>SQL (Structured Query Language)</strong> is a programming language that is used to manage and manipulate data stored in <strong>relational databases</strong>.</p><h2>NoSQL Database</h2><p><strong>NoSQL (Not Only SQL)</strong> is a term used to describe a category of databases that are designed to handle <strong>large amounts of unstructured or semi-structured data.</strong> These databases are typically non-relational, meaning that they do not use the table-based structure of relational databases. Instead, they use more flexible data models that can store data in a variety of formats, including documents, key-value pairs, and graphs. Some common examples of NoSQL databases include MongoDB, Cassandra, and Redis.</p><p>Other types of Non-relational databases are:</p><ul><li><p>Column-based</p></li><li><p>Key-value database</p></li><li><p>Graph database</p></li><li><p>Document or Object-oriented database</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_!zx8w!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff868cba-a493-4a43-9f83-403a4c878961_800x400.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zx8w!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff868cba-a493-4a43-9f83-403a4c878961_800x400.png 424w, https://substackcdn.com/image/fetch/$s_!zx8w!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff868cba-a493-4a43-9f83-403a4c878961_800x400.png 848w, https://substackcdn.com/image/fetch/$s_!zx8w!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff868cba-a493-4a43-9f83-403a4c878961_800x400.png 1272w, https://substackcdn.com/image/fetch/$s_!zx8w!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff868cba-a493-4a43-9f83-403a4c878961_800x400.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zx8w!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff868cba-a493-4a43-9f83-403a4c878961_800x400.png" width="800" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ff868cba-a493-4a43-9f83-403a4c878961_800x400.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&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_!zx8w!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff868cba-a493-4a43-9f83-403a4c878961_800x400.png 424w, https://substackcdn.com/image/fetch/$s_!zx8w!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff868cba-a493-4a43-9f83-403a4c878961_800x400.png 848w, https://substackcdn.com/image/fetch/$s_!zx8w!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff868cba-a493-4a43-9f83-403a4c878961_800x400.png 1272w, https://substackcdn.com/image/fetch/$s_!zx8w!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff868cba-a493-4a43-9f83-403a4c878961_800x400.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><strong>Column-based Database and more</strong></h1><p><strong>Column-based </strong>databases are a type of database that stores data in columns rather than rows. This allows for more efficient querying and faster access to specific data points. Column-based databases are often used for <strong>data warehousing and analytics applications</strong>, where large amounts of data need to be analyzed and queried quickly. Some examples of column-based databases include <strong>Apache Cassandra and Apache HBase</strong>.</p><p>Other types of databases include object-oriented databases, which store data as objects in an object-oriented programming language, and graph databases, which store data as nodes and edges in a graph structure.</p><p>It is important to choose the right type of database for a particular application, based on the data being stored, the performance and scalability requirements, and the needs of the application.</p><h1>Concepts around Data and Databases</h1><p>Now that we touched Data and Databases at a very high level (we'll get our hands dirty with SQL too, but that's for another day, my friend &#128521;), let's go over some key concepts that you might hear or see when talking about Data:</p><h2>Data model</h2><p>A data model is a way of organizing and structuring data in a database. Different types of data models include the relational model, which organizes data into tables with rows and columns, and the object-oriented model, which organizes data as objects in a programming language.</p><h2>Table</h2><p>In a relational database, a table is a collection of data organized into rows and columns. Tables are used to store data in a structured format, and each row represents a unique record, while each column represents a specific piece of information about that record.</p><h2>Primary key</h2><p>A primary key is a column or set of columns in a table that uniquely identifies each row in the table. Primary keys are used to ensure the integrity and uniqueness of data in a table.</p><h2>Foreign key</h2><p>A foreign key is a column or set of columns in a table that refers to the primary key of another table. Foreign keys are used to establish relationships between tables in a database.</p><h2>Index</h2><p>An index is a data structure that helps to improve the performance of queries by allowing the database to quickly locate specific rows in a table. Indexes can be created on one or more columns in a table.</p><h2>Query</h2><p>A query is a request to retrieve data from a database. Queries are written in a specialized language, such as SQL, and are used to search, filter, and manipulate data in a database.</p><h2>Normalization</h2><p>Normalization is the process of organizing a database in a way that reduces redundancy and dependency. Normalized databases are more efficient and easier to maintain than non-normalized databases.</p><p>I used to hear a lot when engineers were talking "but that denormalizes the data and that's not good". There are places where "denormalization" is helpful, but overall, because of the reduction in redundancy, engineers like it more.</p><h2>Transaction</h2><p>A transaction is a group of database operations that are treated as a single unit. Transactions are used to ensure the consistency and integrity of data in a database, by either committing all the operations in the transaction or rolling back any changes if an error occurs.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hzID!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86e6687e-ff74-4058-9c6a-4537dcd59220_498x280.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hzID!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86e6687e-ff74-4058-9c6a-4537dcd59220_498x280.gif 424w, https://substackcdn.com/image/fetch/$s_!hzID!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86e6687e-ff74-4058-9c6a-4537dcd59220_498x280.gif 848w, https://substackcdn.com/image/fetch/$s_!hzID!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86e6687e-ff74-4058-9c6a-4537dcd59220_498x280.gif 1272w, https://substackcdn.com/image/fetch/$s_!hzID!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86e6687e-ff74-4058-9c6a-4537dcd59220_498x280.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hzID!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86e6687e-ff74-4058-9c6a-4537dcd59220_498x280.gif" width="498" height="280" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/86e6687e-ff74-4058-9c6a-4537dcd59220_498x280.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:280,&quot;width&quot;:498,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&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="" title="" srcset="https://substackcdn.com/image/fetch/$s_!hzID!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86e6687e-ff74-4058-9c6a-4537dcd59220_498x280.gif 424w, https://substackcdn.com/image/fetch/$s_!hzID!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86e6687e-ff74-4058-9c6a-4537dcd59220_498x280.gif 848w, https://substackcdn.com/image/fetch/$s_!hzID!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86e6687e-ff74-4058-9c6a-4537dcd59220_498x280.gif 1272w, https://substackcdn.com/image/fetch/$s_!hzID!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86e6687e-ff74-4058-9c6a-4537dcd59220_498x280.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>Let's call it a (sun)day and explore more concepts on Data in the following days!</p><p>What is your experience with working with Data? How comfortable are you with querying the data you need for your product? Let me know in the comments. &#128591;&#127995;</p><p>Check <a href="https://www.canva.com/design/DAFVH9nTGvE/u374mGYiR6t7tqs3GVz1fg/view?utm_content=DAFVH9nTGvE&amp;utm_campaign=designshare&amp;utm_medium=link&amp;utm_source=publishsharelink">today&#8217;s slides over here.</a></p>]]></content:encoded></item><item><title><![CDATA[Day 17 - Backend Frameworks]]></title><description><![CDATA[Yesterday, we walked over basic Mental Models for Saas products, and now we have a framework to refer to when talking about different technologies.]]></description><link>https://www.hackerpm.com/p/dy-17-backend-frameworks</link><guid isPermaLink="false">https://www.hackerpm.com/p/dy-17-backend-frameworks</guid><dc:creator><![CDATA[Hamed Mohammadpour]]></dc:creator><pubDate>Sat, 17 Dec 2022 20:02:59 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/0ce2c917-4986-402a-b320-4bdd43341f55_2000x1333.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Unx5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f8a57fe-c8cd-4c2d-a85a-c25411b4c6dd_2000x1333.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Unx5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f8a57fe-c8cd-4c2d-a85a-c25411b4c6dd_2000x1333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Unx5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f8a57fe-c8cd-4c2d-a85a-c25411b4c6dd_2000x1333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Unx5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f8a57fe-c8cd-4c2d-a85a-c25411b4c6dd_2000x1333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Unx5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f8a57fe-c8cd-4c2d-a85a-c25411b4c6dd_2000x1333.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Unx5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f8a57fe-c8cd-4c2d-a85a-c25411b4c6dd_2000x1333.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5f8a57fe-c8cd-4c2d-a85a-c25411b4c6dd_2000x1333.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Day 17 - Backend Frameworks&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="Day 17 - Backend Frameworks" title="Day 17 - Backend Frameworks" srcset="https://substackcdn.com/image/fetch/$s_!Unx5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f8a57fe-c8cd-4c2d-a85a-c25411b4c6dd_2000x1333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Unx5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f8a57fe-c8cd-4c2d-a85a-c25411b4c6dd_2000x1333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Unx5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f8a57fe-c8cd-4c2d-a85a-c25411b4c6dd_2000x1333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Unx5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f8a57fe-c8cd-4c2d-a85a-c25411b4c6dd_2000x1333.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Yesterday, we walked over basic <a href="hackerpm.com/day-16-mental-models-for-saas-products/">Mental Models for Saas products</a>, and now we have a framework to refer to when talking about different technologies.</p><p>As a refresher, let's look at the first mental mode, a basic setup for a Saas product:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Nltw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1fbee09-42a7-4cab-82e6-fc7027be06f3_2000x1001.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Nltw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1fbee09-42a7-4cab-82e6-fc7027be06f3_2000x1001.png 424w, https://substackcdn.com/image/fetch/$s_!Nltw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1fbee09-42a7-4cab-82e6-fc7027be06f3_2000x1001.png 848w, https://substackcdn.com/image/fetch/$s_!Nltw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1fbee09-42a7-4cab-82e6-fc7027be06f3_2000x1001.png 1272w, https://substackcdn.com/image/fetch/$s_!Nltw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1fbee09-42a7-4cab-82e6-fc7027be06f3_2000x1001.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Nltw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1fbee09-42a7-4cab-82e6-fc7027be06f3_2000x1001.png" width="1456" height="729" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c1fbee09-42a7-4cab-82e6-fc7027be06f3_2000x1001.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:729,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&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="" srcset="https://substackcdn.com/image/fetch/$s_!Nltw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1fbee09-42a7-4cab-82e6-fc7027be06f3_2000x1001.png 424w, https://substackcdn.com/image/fetch/$s_!Nltw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1fbee09-42a7-4cab-82e6-fc7027be06f3_2000x1001.png 848w, https://substackcdn.com/image/fetch/$s_!Nltw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1fbee09-42a7-4cab-82e6-fc7027be06f3_2000x1001.png 1272w, https://substackcdn.com/image/fetch/$s_!Nltw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1fbee09-42a7-4cab-82e6-fc7027be06f3_2000x1001.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>We have previously discussed:</p><ol><li><p><a href="hackerpm.com/day-14/">Frontend Frameworks</a></p></li><li><p>and <a href="hackerpm.com/day-1-rest-apis/">APIs</a>.</p></li></ol><p>Even though there is a lot more detail we can cover in the topics above, we first focus on having a good overall understanding of the systems, before a deep dive. For Product Managers as <em>Generalists</em>, "breadth is first, depth second." :)</p><h1>What is the Backend?</h1><p>One reason to start with Frontend frameworks is that they are easier to understand as they are tangible. You always see and touch them (via your mouse or your fingers when using touch screens).</p><p>Backend on the other hand is more "abstract". It's all the code running in a computer on the "cloud", namely called a "Server".</p><p>The <strong>Backend</strong> is responsible for handling the logic and data storage for the application. The backend is typically built using programming languages, and it is responsible for performing tasks such as storing and retrieving data from a database, processing business logic, and communicating with external APIs.</p><p>Together, the frontend and backend of an application work together to provide a seamless user experience and enable the application to perform its intended functions.</p><p>Note that in the definition above, the <strong>Backend</strong> is also responsible for storing the data, but for thinking about applications in a <strong>Modular</strong> way, I decided to separate them visually.</p><h1>Well-known Backend Frameworks</h1><p>There are many popular backend frameworks that are widely used for building web applications, each with its own set of features, history, pros, and cons. Here are a few examples:</p><h2>PHP</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cVsm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6557c525-e5d7-420c-b5d8-13bdb14121dd_1280x800.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cVsm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6557c525-e5d7-420c-b5d8-13bdb14121dd_1280x800.png 424w, https://substackcdn.com/image/fetch/$s_!cVsm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6557c525-e5d7-420c-b5d8-13bdb14121dd_1280x800.png 848w, https://substackcdn.com/image/fetch/$s_!cVsm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6557c525-e5d7-420c-b5d8-13bdb14121dd_1280x800.png 1272w, https://substackcdn.com/image/fetch/$s_!cVsm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6557c525-e5d7-420c-b5d8-13bdb14121dd_1280x800.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cVsm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6557c525-e5d7-420c-b5d8-13bdb14121dd_1280x800.png" width="1280" height="800" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6557c525-e5d7-420c-b5d8-13bdb14121dd_1280x800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:800,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&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_!cVsm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6557c525-e5d7-420c-b5d8-13bdb14121dd_1280x800.png 424w, https://substackcdn.com/image/fetch/$s_!cVsm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6557c525-e5d7-420c-b5d8-13bdb14121dd_1280x800.png 848w, https://substackcdn.com/image/fetch/$s_!cVsm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6557c525-e5d7-420c-b5d8-13bdb14121dd_1280x800.png 1272w, https://substackcdn.com/image/fetch/$s_!cVsm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6557c525-e5d7-420c-b5d8-13bdb14121dd_1280x800.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.php.net/">PHP</a></strong> (Hypertext Preprocessor) is a popular programming language that is commonly used for building web applications. It was originally developed in the <em>mid-1990s</em> as a set of scripts that were used to create and manage web pages. Over time, it has evolved into a full-featured programming language that is used for a wide range of purposes, including building web applications, creating command-line scripts, and interacting with databases.</p><p><strong>PHP</strong> has traditionally been a popular choice for building web applications due to its simplicity, ease of use, and wide range of built-in features. It is often used in combination with a <strong>LAMP stack</strong> (Linux, Apache, MySQL, and PHP, more explanation below), which is a common setup for building dynamic web applications. Many well-known websites, including Facebook, Wikipedia, and WordPress, have been built using PHP.</p><p>However, in recent years, other programming languages and frameworks have gained popularity as alternatives to PHP for building web applications. For example, <strong>Python, Ruby, and JavaScript</strong> have all become popular choices for building web applications, and frameworks such as <strong>Django, Ruby on Rails, and Express.js</strong> have become widely used for building web applications with these 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_!dXHl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68933556-62a0-4330-9f11-f743fb376f60_1200x771.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dXHl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68933556-62a0-4330-9f11-f743fb376f60_1200x771.png 424w, https://substackcdn.com/image/fetch/$s_!dXHl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68933556-62a0-4330-9f11-f743fb376f60_1200x771.png 848w, https://substackcdn.com/image/fetch/$s_!dXHl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68933556-62a0-4330-9f11-f743fb376f60_1200x771.png 1272w, https://substackcdn.com/image/fetch/$s_!dXHl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68933556-62a0-4330-9f11-f743fb376f60_1200x771.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dXHl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68933556-62a0-4330-9f11-f743fb376f60_1200x771.png" width="1200" height="771" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/68933556-62a0-4330-9f11-f743fb376f60_1200x771.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:771,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&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_!dXHl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68933556-62a0-4330-9f11-f743fb376f60_1200x771.png 424w, https://substackcdn.com/image/fetch/$s_!dXHl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68933556-62a0-4330-9f11-f743fb376f60_1200x771.png 848w, https://substackcdn.com/image/fetch/$s_!dXHl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68933556-62a0-4330-9f11-f743fb376f60_1200x771.png 1272w, https://substackcdn.com/image/fetch/$s_!dXHl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68933556-62a0-4330-9f11-f743fb376f60_1200x771.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><figcaption class="image-caption">The popularity of three common languages, PHP, Python, and Java compared to the number of questions asked in StackOverflow.</figcaption></figure></div><h2>Django</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ON5A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e356b4b-930e-4983-a265-8c55792feb50_1200x650.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ON5A!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e356b4b-930e-4983-a265-8c55792feb50_1200x650.png 424w, https://substackcdn.com/image/fetch/$s_!ON5A!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e356b4b-930e-4983-a265-8c55792feb50_1200x650.png 848w, https://substackcdn.com/image/fetch/$s_!ON5A!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e356b4b-930e-4983-a265-8c55792feb50_1200x650.png 1272w, https://substackcdn.com/image/fetch/$s_!ON5A!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e356b4b-930e-4983-a265-8c55792feb50_1200x650.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ON5A!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e356b4b-930e-4983-a265-8c55792feb50_1200x650.png" width="1200" height="650" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8e356b4b-930e-4983-a265-8c55792feb50_1200x650.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:650,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&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_!ON5A!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e356b4b-930e-4983-a265-8c55792feb50_1200x650.png 424w, https://substackcdn.com/image/fetch/$s_!ON5A!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e356b4b-930e-4983-a265-8c55792feb50_1200x650.png 848w, https://substackcdn.com/image/fetch/$s_!ON5A!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e356b4b-930e-4983-a265-8c55792feb50_1200x650.png 1272w, https://substackcdn.com/image/fetch/$s_!ON5A!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e356b4b-930e-4983-a265-8c55792feb50_1200x650.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.djangoproject.com/">Django</a></strong> is a high-level Python web framework that encourages rapid development and clean, pragmatic design. It was developed in the mid-2000s and has since become a popular choice for web development due to its emphasis on <strong>convention over configuration</strong> and its extensive set of built-in features. Django is used by sites such as <strong>Instagram, Pinterest, and The Washington Post</strong>. Some pros of using Django include its robust set of <strong>features, strong security measures, and ability to scale to handle high traffic</strong>. Some cons include a longer learning curve for those unfamiliar with Python and the <strong>potential for slower performance</strong> compared to some other frameworks.</p><p>&#128161;</p><p>Another popular backend framework for Python is <a href="https://flask.palletsprojects.com/en/2.2.x/">Flask</a>, which we don't cover in this post.&nbsp;</p><h2>Ruby on Rails</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wxNY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e57dcf2-b054-4395-b136-a77d9b8ee67e_1200x630.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wxNY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e57dcf2-b054-4395-b136-a77d9b8ee67e_1200x630.png 424w, https://substackcdn.com/image/fetch/$s_!wxNY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e57dcf2-b054-4395-b136-a77d9b8ee67e_1200x630.png 848w, https://substackcdn.com/image/fetch/$s_!wxNY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e57dcf2-b054-4395-b136-a77d9b8ee67e_1200x630.png 1272w, https://substackcdn.com/image/fetch/$s_!wxNY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e57dcf2-b054-4395-b136-a77d9b8ee67e_1200x630.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wxNY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e57dcf2-b054-4395-b136-a77d9b8ee67e_1200x630.png" width="1200" height="630" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9e57dcf2-b054-4395-b136-a77d9b8ee67e_1200x630.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&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_!wxNY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e57dcf2-b054-4395-b136-a77d9b8ee67e_1200x630.png 424w, https://substackcdn.com/image/fetch/$s_!wxNY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e57dcf2-b054-4395-b136-a77d9b8ee67e_1200x630.png 848w, https://substackcdn.com/image/fetch/$s_!wxNY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e57dcf2-b054-4395-b136-a77d9b8ee67e_1200x630.png 1272w, https://substackcdn.com/image/fetch/$s_!wxNY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e57dcf2-b054-4395-b136-a77d9b8ee67e_1200x630.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>Ruby on Rails</strong> is a full-stack web framework written in Ruby that is designed to make building web applications easier and more efficient. It was developed in the early 2000s and has become popular for its emphasis on convention over configuration and its use of the MVC (model-view-controller) architecture. Ruby on Rails is used by sites such as Airbnb, GitHub, and Hulu. Some pros of using Ruby on Rails include its simplicity and ease of use, a large and active community, and the ability to build applications quickly. Some cons include potential performance issues at scale and a smaller pool of developers compared to some other frameworks.</p><h2>ASP.NET</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HlPy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf766d29-ed3e-4fbc-b1cb-4d5669467f70_600x338.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HlPy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf766d29-ed3e-4fbc-b1cb-4d5669467f70_600x338.png 424w, https://substackcdn.com/image/fetch/$s_!HlPy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf766d29-ed3e-4fbc-b1cb-4d5669467f70_600x338.png 848w, https://substackcdn.com/image/fetch/$s_!HlPy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf766d29-ed3e-4fbc-b1cb-4d5669467f70_600x338.png 1272w, https://substackcdn.com/image/fetch/$s_!HlPy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf766d29-ed3e-4fbc-b1cb-4d5669467f70_600x338.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HlPy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf766d29-ed3e-4fbc-b1cb-4d5669467f70_600x338.png" width="600" height="338" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bf766d29-ed3e-4fbc-b1cb-4d5669467f70_600x338.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:338,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&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_!HlPy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf766d29-ed3e-4fbc-b1cb-4d5669467f70_600x338.png 424w, https://substackcdn.com/image/fetch/$s_!HlPy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf766d29-ed3e-4fbc-b1cb-4d5669467f70_600x338.png 848w, https://substackcdn.com/image/fetch/$s_!HlPy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf766d29-ed3e-4fbc-b1cb-4d5669467f70_600x338.png 1272w, https://substackcdn.com/image/fetch/$s_!HlPy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf766d29-ed3e-4fbc-b1cb-4d5669467f70_600x338.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://dotnet.microsoft.com/en-us/apps/aspnet">ASP.NET</a></strong> (Active Server Pages .NET) is a web framework developed by Microsoft that is designed to build dynamic web applications using the .NET framework. It is written in C# and uses the MVC (model-view-controller) architecture.</p><p>ASP.NET was first released in 2002 and has since become a popular choice for building web applications due to its strong performance, support for a wide range of languages and platforms, and integration with other Microsoft technologies. It is used by sites such as GoDaddy and Visual Studio.</p><p>Some pros of using ASP.NET include its strong performance, support for a wide range of languages and platforms, and integration with other Microsoft technologies. Some cons include a steeper learning curve for those unfamiliar with C# and a smaller community compared to some other frameworks.</p><h2>Express.js</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rwkE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7671c20-8174-4239-97e3-2c2015daeb36_1400x613.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rwkE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7671c20-8174-4239-97e3-2c2015daeb36_1400x613.png 424w, https://substackcdn.com/image/fetch/$s_!rwkE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7671c20-8174-4239-97e3-2c2015daeb36_1400x613.png 848w, https://substackcdn.com/image/fetch/$s_!rwkE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7671c20-8174-4239-97e3-2c2015daeb36_1400x613.png 1272w, https://substackcdn.com/image/fetch/$s_!rwkE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7671c20-8174-4239-97e3-2c2015daeb36_1400x613.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rwkE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7671c20-8174-4239-97e3-2c2015daeb36_1400x613.png" width="1400" height="613" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f7671c20-8174-4239-97e3-2c2015daeb36_1400x613.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:613,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&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_!rwkE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7671c20-8174-4239-97e3-2c2015daeb36_1400x613.png 424w, https://substackcdn.com/image/fetch/$s_!rwkE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7671c20-8174-4239-97e3-2c2015daeb36_1400x613.png 848w, https://substackcdn.com/image/fetch/$s_!rwkE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7671c20-8174-4239-97e3-2c2015daeb36_1400x613.png 1272w, https://substackcdn.com/image/fetch/$s_!rwkE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7671c20-8174-4239-97e3-2c2015daeb36_1400x613.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 href="https://expressjs.com/">Express.js</a> is a minimalist web framework for Node.js that is designed to be flexible and easy to use. It is built on top of the Node.js runtime and is a popular choice for building web applications with JavaScript. Express.js is used by sites such as MySpace and AccuWeather. Some pros of using Express.js include its simplicity, flexibility, and ability to handle high traffic. Some cons include a lack of built-in features compared to some other frameworks and the need to use third-party libraries to add additional functionality.</p><p>Ultimately, the choice of backend framework will depend on your specific needs and requirements. Some factors to consider when deciding which framework to use include the programming language you are comfortable with, the type of application you are building, and the level of complexity and scalability you need.</p><h1>What are Stacks then?</h1><p>If you remember from <a href="hackerpm.com/day-13-tech-stacks/">Day 13, Tech Stacks</a>, we defined a stack as:</p><blockquote><p>Stack is the combination of technologies and tools that are used to build and run a web application. Different stacks are designed for different purposes and may include different combinations of technologies for the frontend (client-side) and backend (server-side) of the application.</p></blockquote><p>Stacks are the combination of Database, Backend, and Frontend framework to build the application. Because some technologies work better or easier together, these acronyms were created to refer to them, just to name a few:</p><ol><li><p>LAMP</p></li><li><p>MEAN</p></li><li><p>MERN</p></li><li><p>MEVN</p></li></ol><p>We haven't covered Databases in detail yet, but bear with me, we'll get into that too. &#128521;</p><h2>LAMP stack:</h2><p><strong>LAMP</strong> stands for <strong>Linux, Apache, MySQL, and PHP</strong>. It is a stack that is commonly used for building dynamic web applications. Linux is the operating system, Apache is the web server, MySQL is the database management system, and PHP is the programming language used to build the application.</p><h2>MEAN stack</h2><p><strong>MEAN</strong> stands for <strong>MongoDB, Express.js, AngularJS, and Node.js</strong>. It is a stack that is used for building web applications with JavaScript on both the frontend and backend. MongoDB is the database, Express.js is the web framework, AngularJS is the frontend framework, and Node.js is the runtime environment.</p><h2>MERN stack</h2><p><strong>MERN</strong> stands for <strong>MongoDB, Express.js, React, and Node.js</strong>. It is similar to the MEAN stack, but it uses React as the frontend framework instead of AngularJS.</p><h2>MEVN stack</h2><p><strong>MEVN</strong> stands for <strong>MongoDB, Express.js, Vue.js, and Node.js</strong>. It is similar to the MEAN stack, but it uses Vue.js as the frontend framework instead of AngularJS.</p><blockquote><p>&#128161; For a refresher on React, Angular, and Vue.js, refer to our post on <a href="hackerpm.com/day-14/">Frontend Frameworks on Day 14</a> of the #adventcalendar.&nbsp;</p></blockquote><p>These are just a few examples of different stacks that are commonly used in web development. There are many other variations and combinations of technologies that can be used to build web applications, and the choice of the stack will depend on the specific needs and requirements of the application being developed.</p><p>Did you learn new aspects of Backend frameworks? Share what else a Product Manager should know about backend frameworks in the comments below.</p><p>Check the slides for <a href="https://www.canva.com/design/DAFVCwS5r78/YKnySu_TRecQGi8kIq6AdA/view?utm_content=DAFVCwS5r78&amp;utm_campaign=designshare&amp;utm_medium=link&amp;utm_source=publishsharelink">Backend frameworks over here.</a></p>]]></content:encoded></item><item><title><![CDATA[Day 16 - Mental Models for Saas products]]></title><description><![CDATA[Mental models for how Saas companies structure their products, from databases, backend, and frontend.]]></description><link>https://www.hackerpm.com/p/day-16-mental-models-for-saas-products</link><guid isPermaLink="false">https://www.hackerpm.com/p/day-16-mental-models-for-saas-products</guid><dc:creator><![CDATA[Hamed Mohammadpour]]></dc:creator><pubDate>Fri, 16 Dec 2022 20:12:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f33919-f655-49b6-9bd5-0cd67f0c8171_2325x1720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dHeG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f33919-f655-49b6-9bd5-0cd67f0c8171_2325x1720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dHeG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f33919-f655-49b6-9bd5-0cd67f0c8171_2325x1720.png 424w, https://substackcdn.com/image/fetch/$s_!dHeG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f33919-f655-49b6-9bd5-0cd67f0c8171_2325x1720.png 848w, https://substackcdn.com/image/fetch/$s_!dHeG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f33919-f655-49b6-9bd5-0cd67f0c8171_2325x1720.png 1272w, https://substackcdn.com/image/fetch/$s_!dHeG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f33919-f655-49b6-9bd5-0cd67f0c8171_2325x1720.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dHeG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f33919-f655-49b6-9bd5-0cd67f0c8171_2325x1720.png" width="1456" height="1077" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/43f33919-f655-49b6-9bd5-0cd67f0c8171_2325x1720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1077,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Day 16 - Mental Models for Saas products&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="Day 16 - Mental Models for Saas products" title="Day 16 - Mental Models for Saas products" srcset="https://substackcdn.com/image/fetch/$s_!dHeG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f33919-f655-49b6-9bd5-0cd67f0c8171_2325x1720.png 424w, https://substackcdn.com/image/fetch/$s_!dHeG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f33919-f655-49b6-9bd5-0cd67f0c8171_2325x1720.png 848w, https://substackcdn.com/image/fetch/$s_!dHeG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f33919-f655-49b6-9bd5-0cd67f0c8171_2325x1720.png 1272w, https://substackcdn.com/image/fetch/$s_!dHeG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f33919-f655-49b6-9bd5-0cd67f0c8171_2325x1720.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>Yesterday I mentioned that I'd like to take a step back from different technologies and details and look at the big picture of digital and SAAS products.</p><p>The benefit of having a mental model for us Product Managers is countless, in the next section, let's get deeper into it.</p><h1>Importance of Mental Models</h1><p>Mental models are frameworks that help us understand and make sense of the world around us. They are simplified representations of complex systems, e.g. how <strong>Uber, HelloFresh, Miro, or Amplitude</strong> work in high levels.</p><p>They allow us to process information more efficiently and make better decisions. Mental models are essential for problem-solving and decision-making because they help us to break down complex issues into smaller, more manageable pieces and to identify patterns and relationships. Two tasks that Product Managers do constantly.</p><p>Using mental models can help us to:</p><ul><li><p>Understand and analyze complex systems</p></li><li><p>Make informed decisions</p></li><li><p>Identify cause-and-effect relationships</p></li><li><p>Predict outcomes</p></li><li><p>Solve problems effectively</p></li></ul><p>Mental models are not always accurate, and it is important to constantly update and revise them based on new information and experiences. However, they can be a valuable tool for understanding and navigating the complex systems we are dealing with.</p><h1>Different categories of Saas products</h1><p>There are many different ways Saas companies and online service providers (who might not be necessarily Sass with a subscription fee) provide value to their end customers.</p><p>In this post, we will cover 3 common and simple methods, at a high level.</p><p>Notes to keep in mind:</p><ol><li><p>We are covering technical setup for the value delivery done by the product. The company might have other products and services that are valuable for the company, but that's for another post to cover. Such products and services can be Physical products, Access to the customer base, initial training, support, and consultants, ...</p></li><li><p>Last disclaimer, the world of IT and technical setup are quite complex, and I didn't find any other post around these mental models. These are only simplifications and there are many more innovative ways or even a mixture of the base models in the real world. Ping me if you have seen such categorization or have an idea about new models that I haven't covered.</p></li></ol><p>The three mental models we'll cover are:</p><ol><li><p>Simple Saas model</p></li><li><p>Simple Mobile application</p></li><li><p>Simple Data Provider Company.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QNWg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F575465a0-8247-49c6-9a06-ea7c7a3e45fd_2325x1720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QNWg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F575465a0-8247-49c6-9a06-ea7c7a3e45fd_2325x1720.png 424w, https://substackcdn.com/image/fetch/$s_!QNWg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F575465a0-8247-49c6-9a06-ea7c7a3e45fd_2325x1720.png 848w, https://substackcdn.com/image/fetch/$s_!QNWg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F575465a0-8247-49c6-9a06-ea7c7a3e45fd_2325x1720.png 1272w, https://substackcdn.com/image/fetch/$s_!QNWg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F575465a0-8247-49c6-9a06-ea7c7a3e45fd_2325x1720.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QNWg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F575465a0-8247-49c6-9a06-ea7c7a3e45fd_2325x1720.png" width="1456" height="1077" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/575465a0-8247-49c6-9a06-ea7c7a3e45fd_2325x1720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1077,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&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_!QNWg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F575465a0-8247-49c6-9a06-ea7c7a3e45fd_2325x1720.png 424w, https://substackcdn.com/image/fetch/$s_!QNWg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F575465a0-8247-49c6-9a06-ea7c7a3e45fd_2325x1720.png 848w, https://substackcdn.com/image/fetch/$s_!QNWg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F575465a0-8247-49c6-9a06-ea7c7a3e45fd_2325x1720.png 1272w, https://substackcdn.com/image/fetch/$s_!QNWg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F575465a0-8247-49c6-9a06-ea7c7a3e45fd_2325x1720.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>Okay, enough with the intro, and let's get into it! &#128526;</p><h1>1. <strong>Simple Saas</strong> model</h1><p><em>Database, Backend, and Frontend.</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fEon!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7a1b74c-9b6e-4a88-a01c-b3b622bc8a9c_2644x1512.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fEon!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7a1b74c-9b6e-4a88-a01c-b3b622bc8a9c_2644x1512.png 424w, https://substackcdn.com/image/fetch/$s_!fEon!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7a1b74c-9b6e-4a88-a01c-b3b622bc8a9c_2644x1512.png 848w, https://substackcdn.com/image/fetch/$s_!fEon!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7a1b74c-9b6e-4a88-a01c-b3b622bc8a9c_2644x1512.png 1272w, https://substackcdn.com/image/fetch/$s_!fEon!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7a1b74c-9b6e-4a88-a01c-b3b622bc8a9c_2644x1512.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fEon!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7a1b74c-9b6e-4a88-a01c-b3b622bc8a9c_2644x1512.png" width="1456" height="833" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f7a1b74c-9b6e-4a88-a01c-b3b622bc8a9c_2644x1512.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:833,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&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_!fEon!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7a1b74c-9b6e-4a88-a01c-b3b622bc8a9c_2644x1512.png 424w, https://substackcdn.com/image/fetch/$s_!fEon!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7a1b74c-9b6e-4a88-a01c-b3b622bc8a9c_2644x1512.png 848w, https://substackcdn.com/image/fetch/$s_!fEon!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7a1b74c-9b6e-4a88-a01c-b3b622bc8a9c_2644x1512.png 1272w, https://substackcdn.com/image/fetch/$s_!fEon!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7a1b74c-9b6e-4a88-a01c-b3b622bc8a9c_2644x1512.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 this common setup, the application consists of the following main pieces:</p><ol><li><p>Frontend</p></li><li><p>Backend</p></li><li><p>Database</p></li><li><p>A way for Frontend to talk to the Backend</p></li></ol><p>And that's it, almost.</p><p>As you can see, even this simple mental model, can help us understand what we mean by <a href="hackerpm.com/day-14/">different frontend frameworks (as in Day 14)</a> or where <a href="hackerpm.com/day-1-rest-apis/">API</a> is used. &nbsp;</p><p>General comments about this setup:</p><ol><li><p>The end user can be divided into several groups which are ignored in this simplification. An example can be Amazon, where the "DB-Backend-Frontend" for Sellers and Buyers can be quite different (even though they share a lot of resources).</p></li><li><p>The communication between Frontend and Backend doesn't necessarily need to be API, but it's chosen here because of its simplicity, and popularity. Other technologies such as GRPC and GraphQL can be used to connect different pieces.</p></li><li><p>We wrap the Database as generally as possible. Most of the time, the company's value is created by having proprietary data which is either produced by its other software or gathered from other producers. We'll dive into the Data side of things more in the future.</p></li></ol><blockquote><p>&#128161;Note: Even though I haven't posted anything on GRPC, or GraphQL, but as soon as you know what they are used for, i.e. the communication between two different pieces of software, you are well ahead of many other Product Managers and "business" stakeholders. So kudos to arriving to this point! &#129395;</p></blockquote><h1>2. Mobile application model</h1><p><em>Database, Backend, &lt;a way to communicate with the app&gt; and the Mobile app.</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!415-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9615e12-9831-4b23-9092-f471dcd86026_2658x1504.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!415-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9615e12-9831-4b23-9092-f471dcd86026_2658x1504.png 424w, https://substackcdn.com/image/fetch/$s_!415-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9615e12-9831-4b23-9092-f471dcd86026_2658x1504.png 848w, https://substackcdn.com/image/fetch/$s_!415-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9615e12-9831-4b23-9092-f471dcd86026_2658x1504.png 1272w, https://substackcdn.com/image/fetch/$s_!415-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9615e12-9831-4b23-9092-f471dcd86026_2658x1504.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!415-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9615e12-9831-4b23-9092-f471dcd86026_2658x1504.png" width="1456" height="824" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a9615e12-9831-4b23-9092-f471dcd86026_2658x1504.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:824,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&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_!415-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9615e12-9831-4b23-9092-f471dcd86026_2658x1504.png 424w, https://substackcdn.com/image/fetch/$s_!415-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9615e12-9831-4b23-9092-f471dcd86026_2658x1504.png 848w, https://substackcdn.com/image/fetch/$s_!415-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9615e12-9831-4b23-9092-f471dcd86026_2658x1504.png 1272w, https://substackcdn.com/image/fetch/$s_!415-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9615e12-9831-4b23-9092-f471dcd86026_2658x1504.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 second common model is of course model for Mobile applications. Even though it's very simple and looks quite the same as a normal web-based Saas company, due to the increase in popularity and impact, I believe it needs its section.</p><p>On popularity, first time in 2017 the traffic from Mobile devices passed the traffic from other devices, such as desktops and tablets, according to <a href="https://www.statista.com/statistics/277125/share-of-website-traffic-coming-from-mobile-devices/">Statista</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_!RfKA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cdd1e63-b826-4b01-8048-99d2d56506cf_1000x743.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RfKA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cdd1e63-b826-4b01-8048-99d2d56506cf_1000x743.png 424w, https://substackcdn.com/image/fetch/$s_!RfKA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cdd1e63-b826-4b01-8048-99d2d56506cf_1000x743.png 848w, https://substackcdn.com/image/fetch/$s_!RfKA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cdd1e63-b826-4b01-8048-99d2d56506cf_1000x743.png 1272w, https://substackcdn.com/image/fetch/$s_!RfKA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cdd1e63-b826-4b01-8048-99d2d56506cf_1000x743.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RfKA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cdd1e63-b826-4b01-8048-99d2d56506cf_1000x743.png" width="1000" height="743" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7cdd1e63-b826-4b01-8048-99d2d56506cf_1000x743.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:743,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&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_!RfKA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cdd1e63-b826-4b01-8048-99d2d56506cf_1000x743.png 424w, https://substackcdn.com/image/fetch/$s_!RfKA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cdd1e63-b826-4b01-8048-99d2d56506cf_1000x743.png 848w, https://substackcdn.com/image/fetch/$s_!RfKA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cdd1e63-b826-4b01-8048-99d2d56506cf_1000x743.png 1272w, https://substackcdn.com/image/fetch/$s_!RfKA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cdd1e63-b826-4b01-8048-99d2d56506cf_1000x743.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><ol><li><p>The technologies for building Mobile apps were quite different from those for Web App development. Namely "Native apps" is the term used for developing platform-specific apps. With the introduction of cross-platform frameworks such as React Native, Flutter, and Cordova,... this gap is getting smaller but still, there is quite a difference.</p></li><li><p>Mobile has its strengths and weaknesses. On one side, mobile devices provide new capabilities that are not available in most desktops, such as GPS, easy access to Cameras, touch screens, ..., but on the other hand, screen size and stable connectivity might be a challenge in developing mobile apps.</p></li></ol><h1>3. Data providers</h1><p><em>Databases, Backend, and APIs.</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hAQw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F725c5604-781f-4516-8f69-e61bb4027722_2000x1001.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hAQw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F725c5604-781f-4516-8f69-e61bb4027722_2000x1001.png 424w, https://substackcdn.com/image/fetch/$s_!hAQw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F725c5604-781f-4516-8f69-e61bb4027722_2000x1001.png 848w, https://substackcdn.com/image/fetch/$s_!hAQw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F725c5604-781f-4516-8f69-e61bb4027722_2000x1001.png 1272w, https://substackcdn.com/image/fetch/$s_!hAQw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F725c5604-781f-4516-8f69-e61bb4027722_2000x1001.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hAQw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F725c5604-781f-4516-8f69-e61bb4027722_2000x1001.png" width="1456" height="729" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/725c5604-781f-4516-8f69-e61bb4027722_2000x1001.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:729,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&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_!hAQw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F725c5604-781f-4516-8f69-e61bb4027722_2000x1001.png 424w, https://substackcdn.com/image/fetch/$s_!hAQw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F725c5604-781f-4516-8f69-e61bb4027722_2000x1001.png 848w, https://substackcdn.com/image/fetch/$s_!hAQw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F725c5604-781f-4516-8f69-e61bb4027722_2000x1001.png 1272w, https://substackcdn.com/image/fetch/$s_!hAQw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F725c5604-781f-4516-8f69-e61bb4027722_2000x1001.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 last mental model for today is the Data provider model.</p><p>In the first model, I mentioned that the Database side might be more complicated than just the "database". One example is when the main data is provided by a 3rd party company.</p><p>An example of this setup can be Trading apps, where the Price for Stocks and Bonds are provided by Market Data Providers, and the "app" is only an interface to show the data nicely.</p><p>If you are working on a Data provider or API products, your end product is not a Web-based app or a mobile app, but it's the data and the APIs (plus its documentation, authentication, and authorization) that are your product.</p><p>Note that your customer can be an internal team too.</p><p>A popular example of API companies is <a href="https://stripe.com/">Stripe</a> and <a href="https://openweathermap.org/api">Open Weather App</a>.</p><p>And that's a wrap for today.</p><p>What do you think about these mental models? What are your favorite models that helped you a lot in your life and career so far?</p><p></p><p>As always, you can check the slides for <a href="https://www.canva.com/design/DAFU9MhBIU0/5_CwG7A5Dym3bIW-cv98lw/watch?utm_content=DAFU9MhBIU0&amp;utm_campaign=designshare&amp;utm_medium=link&amp;utm_source=publishsharelink">this post over here</a>.</p>]]></content:encoded></item><item><title><![CDATA[Day 15 - Overview of Digital Products and their components (Preview)]]></title><description><![CDATA[Summary of last 14 days of advent calendar, for PMs who want to be more technical]]></description><link>https://www.hackerpm.com/p/day-15-overview-of-digital-products-and-its-components</link><guid isPermaLink="false">https://www.hackerpm.com/p/day-15-overview-of-digital-products-and-its-components</guid><dc:creator><![CDATA[Hamed Mohammadpour]]></dc:creator><pubDate>Thu, 15 Dec 2022 15:32:34 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/2a5bc786-a9b6-4f40-a95a-043eead07fcd_2000x1334.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uvGp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73458c93-de1b-4028-ba3e-8174bbed7959_2000x1334.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uvGp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73458c93-de1b-4028-ba3e-8174bbed7959_2000x1334.jpeg 424w, https://substackcdn.com/image/fetch/$s_!uvGp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73458c93-de1b-4028-ba3e-8174bbed7959_2000x1334.jpeg 848w, https://substackcdn.com/image/fetch/$s_!uvGp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73458c93-de1b-4028-ba3e-8174bbed7959_2000x1334.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!uvGp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73458c93-de1b-4028-ba3e-8174bbed7959_2000x1334.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uvGp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73458c93-de1b-4028-ba3e-8174bbed7959_2000x1334.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/73458c93-de1b-4028-ba3e-8174bbed7959_2000x1334.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Day 15 - Overview of Digital Products and their components (Preview)&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="Day 15 - Overview of Digital Products and their components (Preview)" title="Day 15 - Overview of Digital Products and their components (Preview)" srcset="https://substackcdn.com/image/fetch/$s_!uvGp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73458c93-de1b-4028-ba3e-8174bbed7959_2000x1334.jpeg 424w, https://substackcdn.com/image/fetch/$s_!uvGp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73458c93-de1b-4028-ba3e-8174bbed7959_2000x1334.jpeg 848w, https://substackcdn.com/image/fetch/$s_!uvGp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73458c93-de1b-4028-ba3e-8174bbed7959_2000x1334.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!uvGp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73458c93-de1b-4028-ba3e-8174bbed7959_2000x1334.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>If you have been with me in the last 14 days, you've seen quite a lot. We have touched on interesting technical concepts that are useful for Product Managers in understanding what their team is going through and why things are the way they are &#129299;. More specifically, we touched upon the following concepts:</p><ul><li><p><a href="hackerpm.com/day-1-rest-apis/">Day 1</a>: What is a <strong>REST API</strong>?</p></li><li><p><a href="hackerpm.com/day-2/">Day 2</a>:<strong> Webhooks</strong>, why we use them, and how they are different than APIs.</p></li><li><p><a href="hackerpm.com/day-3/">Day 3</a>: <strong>Microservices vs. Monolith architecture</strong>, what are their pros and cons, and when we should use each architecture?</p></li><li><p>Day <a href="hackerpm.com/day-4/">4</a>, <a href="hackerpm.com/day-5-git-2/">5</a>, <a href="hackerpm.com/day-6-git-3/">6</a>: We talked about <strong>Git</strong>, and how its shared repositories allow engineers to work on a single product in scale. As I said in the material, I believe it is the most underlooked technology piece because everything we have around us is partly thanks to having <strong>Git</strong>. (bold statement but I think so)</p></li><li><p><a href="hackerpm.com/day-7-devops-1/">Day 7</a> and <a href="hackerpm.com/day-8-devops-2/">8</a>: <strong>DevOps</strong>, what it means, and why we have it. (do you still remember? &#128521;)</p></li><li><p><a href="hackerpm.com/day-9-backend-frontend-fullstack/">Day 9</a>: <strong>Engineers</strong>, and their many many different types &#128119;&#127997;</p></li><li><p><a href="hackerpm.com/day-10-enviornments/">Day 10</a>: <strong>Environments</strong> and stages: A newly developed feature goes from a developer's laptop <strong>(local machine) up to the production environment.</strong></p></li><li><p><a href="hackerpm.com/day-11-feature-flags/">Day 11</a> and <a href="hackerpm.com/day-12-feature-flags-2/">12</a>: <strong>Feature Flags</strong>, and how we can control who can see the new feature we are launching (and why we might roll it out that way).</p></li><li><p><a href="hackerpm.com/day-13-tech-stacks/">Day 13</a> and <a href="hackerpm.com/day-14/">14</a>: <strong>Tech Stacks</strong>, how they are similar to <em>Lego pieces</em>, and how knowing them can be helpful for PMs. Also yesterday we went deeper into popular Frontend frameworks, talking about React, Angular, and Vue.js.</p></li></ul><p>It's a good base so far. I planned to publish the Backend frameworks for today, but in today's post, I want us to take a step back and look at the big picture.</p><p>How these different technologies and concepts are fitting together, will help with understanding any other concept much easier.</p><p>The next post will be about the Technical Map of Digital Products, as best as I can, with as much as I have experience with. Like any other map, No map is perfect, but it needs to be good enough to help us navigate our way. And I hope it will be a good enough map to start with. You can see a preview of it below:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QCCk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e5ae70b-9b1e-41e7-9e01-d08347db6460_2388x1675.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QCCk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e5ae70b-9b1e-41e7-9e01-d08347db6460_2388x1675.png 424w, https://substackcdn.com/image/fetch/$s_!QCCk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e5ae70b-9b1e-41e7-9e01-d08347db6460_2388x1675.png 848w, https://substackcdn.com/image/fetch/$s_!QCCk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e5ae70b-9b1e-41e7-9e01-d08347db6460_2388x1675.png 1272w, https://substackcdn.com/image/fetch/$s_!QCCk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e5ae70b-9b1e-41e7-9e01-d08347db6460_2388x1675.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QCCk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e5ae70b-9b1e-41e7-9e01-d08347db6460_2388x1675.png" width="1456" height="1021" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7e5ae70b-9b1e-41e7-9e01-d08347db6460_2388x1675.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1021,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&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="" srcset="https://substackcdn.com/image/fetch/$s_!QCCk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e5ae70b-9b1e-41e7-9e01-d08347db6460_2388x1675.png 424w, https://substackcdn.com/image/fetch/$s_!QCCk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e5ae70b-9b1e-41e7-9e01-d08347db6460_2388x1675.png 848w, https://substackcdn.com/image/fetch/$s_!QCCk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e5ae70b-9b1e-41e7-9e01-d08347db6460_2388x1675.png 1272w, https://substackcdn.com/image/fetch/$s_!QCCk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e5ae70b-9b1e-41e7-9e01-d08347db6460_2388x1675.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>Take care and see you tomorrow! <br>Love you &#128140;</p>]]></content:encoded></item><item><title><![CDATA[Day 14 - Tech Stacks for Frontend, Part 2]]></title><description><![CDATA[Frontend frameworks demystified. A deep-dive into React, Angular, and Vue.js for Product Managers]]></description><link>https://www.hackerpm.com/p/day-14</link><guid isPermaLink="false">https://www.hackerpm.com/p/day-14</guid><dc:creator><![CDATA[Hamed Mohammadpour]]></dc:creator><pubDate>Wed, 14 Dec 2022 13:13:11 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/fa0858e2-f528-4265-b63c-cae09f9e6fb1_2000x1333.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EvSR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0f47334-1661-4c2e-ba5c-6cbd04577daf_2000x1333.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EvSR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0f47334-1661-4c2e-ba5c-6cbd04577daf_2000x1333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!EvSR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0f47334-1661-4c2e-ba5c-6cbd04577daf_2000x1333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!EvSR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0f47334-1661-4c2e-ba5c-6cbd04577daf_2000x1333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!EvSR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0f47334-1661-4c2e-ba5c-6cbd04577daf_2000x1333.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EvSR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0f47334-1661-4c2e-ba5c-6cbd04577daf_2000x1333.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c0f47334-1661-4c2e-ba5c-6cbd04577daf_2000x1333.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Day 14 - Tech Stacks for Frontend, Part 2&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="Day 14 - Tech Stacks for Frontend, Part 2" title="Day 14 - Tech Stacks for Frontend, Part 2" srcset="https://substackcdn.com/image/fetch/$s_!EvSR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0f47334-1661-4c2e-ba5c-6cbd04577daf_2000x1333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!EvSR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0f47334-1661-4c2e-ba5c-6cbd04577daf_2000x1333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!EvSR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0f47334-1661-4c2e-ba5c-6cbd04577daf_2000x1333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!EvSR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0f47334-1661-4c2e-ba5c-6cbd04577daf_2000x1333.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>In the <a href="hackerpm.com/day-13-tech-stacks/">first part of the series on Tech Stacks</a>, we talked about how they are like pieces of Lego and why general knowledge about them is helpful for Product Managers.</p><p>In today's post, we'll cover popular front-end frameworks and some key features about them.</p><h2>Before we jump in</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bXqT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1845a68b-c936-4d66-9407-4b1667620dc3_2000x1333.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bXqT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1845a68b-c936-4d66-9407-4b1667620dc3_2000x1333.png 424w, https://substackcdn.com/image/fetch/$s_!bXqT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1845a68b-c936-4d66-9407-4b1667620dc3_2000x1333.png 848w, https://substackcdn.com/image/fetch/$s_!bXqT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1845a68b-c936-4d66-9407-4b1667620dc3_2000x1333.png 1272w, https://substackcdn.com/image/fetch/$s_!bXqT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1845a68b-c936-4d66-9407-4b1667620dc3_2000x1333.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bXqT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1845a68b-c936-4d66-9407-4b1667620dc3_2000x1333.png" width="1456" height="970" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1845a68b-c936-4d66-9407-4b1667620dc3_2000x1333.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:970,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&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="" srcset="https://substackcdn.com/image/fetch/$s_!bXqT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1845a68b-c936-4d66-9407-4b1667620dc3_2000x1333.png 424w, https://substackcdn.com/image/fetch/$s_!bXqT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1845a68b-c936-4d66-9407-4b1667620dc3_2000x1333.png 848w, https://substackcdn.com/image/fetch/$s_!bXqT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1845a68b-c936-4d66-9407-4b1667620dc3_2000x1333.png 1272w, https://substackcdn.com/image/fetch/$s_!bXqT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1845a68b-c936-4d66-9407-4b1667620dc3_2000x1333.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>If you have noticed, not only do I want to describe the concept we are talking about (<strong>the "What"</strong>), but I would like to give an idea of<strong> the "why"</strong> we need them in the first place too.</p><p>This way, you can remember knowledge for a longer time as well and when faced with a new instance of the same concept, in this case, a new web framework, you will grasp it much easier and independently.</p><h1>Recap on what is a software development framework</h1><p>Software development frameworks provide a set of tools and standards for developing software applications.</p><p>These frameworks can help simplify the development process by providing a common structure for the code, as well as pre-built modules and components that can be used to implement common functionality. This can save time and effort for developers, and can also help ensure that the resulting software is more consistent and maintainable.</p><p>Some examples of software development frameworks include Ruby on Rails for web applications, Angular for front-end web development, and TensorFlow for machine learning.</p><h1>Frontend Frameworks</h1><p>Keeping the quest for the "why" in mind, let's explore briefly why we need a front-end framework in the first place. Why not simple HTML, CSS, and Javascript not enough to build modern web applications?</p><h2>The What</h2><p><strong>Frontend frameworks</strong> are used to facilitate the development of user interfaces for web applications. These frameworks provide a set of pre-written code and tools that can be used to build user interfaces that are consistent, responsive, and easy to use.</p><h2>Pre-framework era</h2><p>It's a very rough division, but let's go back to the time when using frameworks was not common among developers, either they didn't exist or they were too young and companies haven't had the chance to migrate or create a new application based on them.</p><p>Before the existence of front-end frameworks, developers had to build user interfaces from scratch, which required a lot of time and effort. This often resulted in user interfaces that were difficult to maintain and scale, and that lacked consistent design and functionality. In short, a lot of headaches and a very long time to market.</p><p>It is also worth looking into the design of popular websites back in, let's say 2005. I'll let you explore them by yourself here:</p><p><a href="https://www.webdesignmuseum.org/gallery/youtube-2005">Web Design MuseumWeb Design Museum</a></p><p>Or this gold mine of <a href="https://content.time.com/time/specials/packages/0,28757,1949266,00.html">Best websites according to Time</a> in 2005.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DAmx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb03e1d5-6e35-40bc-830f-40cf9aaaa405_830x790.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DAmx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb03e1d5-6e35-40bc-830f-40cf9aaaa405_830x790.png 424w, https://substackcdn.com/image/fetch/$s_!DAmx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb03e1d5-6e35-40bc-830f-40cf9aaaa405_830x790.png 848w, https://substackcdn.com/image/fetch/$s_!DAmx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb03e1d5-6e35-40bc-830f-40cf9aaaa405_830x790.png 1272w, https://substackcdn.com/image/fetch/$s_!DAmx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb03e1d5-6e35-40bc-830f-40cf9aaaa405_830x790.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DAmx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb03e1d5-6e35-40bc-830f-40cf9aaaa405_830x790.png" width="830" height="790" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bb03e1d5-6e35-40bc-830f-40cf9aaaa405_830x790.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:790,&quot;width&quot;:830,&quot;resizeWidth&quot;:null,&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_!DAmx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb03e1d5-6e35-40bc-830f-40cf9aaaa405_830x790.png 424w, https://substackcdn.com/image/fetch/$s_!DAmx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb03e1d5-6e35-40bc-830f-40cf9aaaa405_830x790.png 848w, https://substackcdn.com/image/fetch/$s_!DAmx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb03e1d5-6e35-40bc-830f-40cf9aaaa405_830x790.png 1272w, https://substackcdn.com/image/fetch/$s_!DAmx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb03e1d5-6e35-40bc-830f-40cf9aaaa405_830x790.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>With the advent of frontend frameworks, developers can now build user interfaces more quickly and easily by using pre-written code and components provided by the framework. This can help to improve the consistency, responsiveness, and overall quality of the user interface.</p><p>It can also make the development process more efficient, as developers can reuse and extend the components provided by the framework instead of having to write everything from scratch.</p><p>As a result,<strong> frontend frameworks</strong> have become an essential part of modern web development.</p><p>If you remember from Day 9, we talked about the website that surveys different Javascript frameworks and technologies, called <a href="https://2021.stateofjs.com/">State of JS</a>.</p><p>Now let's look into the popular frameworks for Frontend and explore them. We have to rely on 2021 data because the survey for 2022 is ongoing.</p><blockquote><p>&#128161; If you are a software developer, head to the <a href="https://survey.devographics.com/survey/state-of-js/2022">survey</a> to provide data &#128588;&#127995;</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_!2F13!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fec92e6-1073-4941-bde6-8e4fb9d3a3bd_2696x1616.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2F13!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fec92e6-1073-4941-bde6-8e4fb9d3a3bd_2696x1616.png 424w, https://substackcdn.com/image/fetch/$s_!2F13!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fec92e6-1073-4941-bde6-8e4fb9d3a3bd_2696x1616.png 848w, https://substackcdn.com/image/fetch/$s_!2F13!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fec92e6-1073-4941-bde6-8e4fb9d3a3bd_2696x1616.png 1272w, https://substackcdn.com/image/fetch/$s_!2F13!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fec92e6-1073-4941-bde6-8e4fb9d3a3bd_2696x1616.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2F13!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fec92e6-1073-4941-bde6-8e4fb9d3a3bd_2696x1616.png" width="1456" height="873" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4fec92e6-1073-4941-bde6-8e4fb9d3a3bd_2696x1616.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:873,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&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_!2F13!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fec92e6-1073-4941-bde6-8e4fb9d3a3bd_2696x1616.png 424w, https://substackcdn.com/image/fetch/$s_!2F13!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fec92e6-1073-4941-bde6-8e4fb9d3a3bd_2696x1616.png 848w, https://substackcdn.com/image/fetch/$s_!2F13!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fec92e6-1073-4941-bde6-8e4fb9d3a3bd_2696x1616.png 1272w, https://substackcdn.com/image/fetch/$s_!2F13!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fec92e6-1073-4941-bde6-8e4fb9d3a3bd_2696x1616.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><ol><li><p><a href="https://reactjs.org/">React</a></p></li><li><p><a href="https://angular.io/">Angular</a></p></li><li><p>and <a href="https://vuejs.org/">Vue.js</a></p></li></ol><p>Also, note the rise of Svelte in the charts. I'm very curious about the results for 2022 &#129488;. You can get a hint from the trends on StackOverflow too:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ubGK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64856a12-d454-4810-9b93-f27e803442ac_1456x952.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ubGK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64856a12-d454-4810-9b93-f27e803442ac_1456x952.png 424w, https://substackcdn.com/image/fetch/$s_!ubGK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64856a12-d454-4810-9b93-f27e803442ac_1456x952.png 848w, https://substackcdn.com/image/fetch/$s_!ubGK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64856a12-d454-4810-9b93-f27e803442ac_1456x952.png 1272w, https://substackcdn.com/image/fetch/$s_!ubGK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64856a12-d454-4810-9b93-f27e803442ac_1456x952.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ubGK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64856a12-d454-4810-9b93-f27e803442ac_1456x952.png" width="1456" height="952" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/64856a12-d454-4810-9b93-f27e803442ac_1456x952.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:952,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&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_!ubGK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64856a12-d454-4810-9b93-f27e803442ac_1456x952.png 424w, https://substackcdn.com/image/fetch/$s_!ubGK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64856a12-d454-4810-9b93-f27e803442ac_1456x952.png 848w, https://substackcdn.com/image/fetch/$s_!ubGK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64856a12-d454-4810-9b93-f27e803442ac_1456x952.png 1272w, https://substackcdn.com/image/fetch/$s_!ubGK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64856a12-d454-4810-9b93-f27e803442ac_1456x952.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><strong><a href="https://reactjs.org/?ref=hackerpm.com">React</a></strong></h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bNaU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7736f0f-7953-4210-be00-5b000830a60b_1920x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bNaU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7736f0f-7953-4210-be00-5b000830a60b_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!bNaU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7736f0f-7953-4210-be00-5b000830a60b_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!bNaU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7736f0f-7953-4210-be00-5b000830a60b_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!bNaU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7736f0f-7953-4210-be00-5b000830a60b_1920x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bNaU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7736f0f-7953-4210-be00-5b000830a60b_1920x1080.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d7736f0f-7953-4210-be00-5b000830a60b_1920x1080.png&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;&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="" title="" srcset="https://substackcdn.com/image/fetch/$s_!bNaU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7736f0f-7953-4210-be00-5b000830a60b_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!bNaU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7736f0f-7953-4210-be00-5b000830a60b_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!bNaU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7736f0f-7953-4210-be00-5b000830a60b_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!bNaU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7736f0f-7953-4210-be00-5b000830a60b_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><p><strong>React</strong> is a JavaScript library for building user interfaces. It was created by Meta (Facebook back then) in May 2013 and is used by many companies and developers to build web applications.</p><p>React's core concept is the <strong>use of components</strong> to build user interfaces. In React, a component is a piece of code that represents a part of the user interface, such as a button or a form. Components can be reused and composed to build complex user interfaces, which makes the development process more efficient and modular.</p><p>One of the main reasons to use React is its <strong>efficiency</strong>. React uses a <strong>virtual DOM</strong> (Document Object Model) to update the user interface, which makes the process of rendering components to the screen faster and more efficient. This can help to improve the performance of web applications, especially those with large and complex user interfaces.</p><p>Another advantage of React is its <strong>flexibility</strong>. React components can be used in different contexts, such as in a web browser, on a mobile device, or on a server. This allows developers to build applications that can run on multiple platforms, and to reuse components across different projects.</p><p>Some potential drawbacks of using React include its steep learning curve and the need to write code in JavaScript or Typescript.</p><p>React also has a large ecosystem of third-party libraries and tools, which can make it difficult to choose the right ones for a given project. Overall, however, React is a popular and powerful tool for building user interfaces and is widely used by developers.</p><p>Components in React are written in <code>.jsx</code> or <code>.tsx</code> (if using Typescript) and it looks like this:</p><pre><code>function Welcome(props) {
  return &lt;h1&gt;Hello, {props.name}&lt;/h1&gt;;
}

function App() {
  return (
    &lt;div&gt;
      &lt;Welcome name="Sara" /&gt;
      &lt;Welcome name="Cahal" /&gt;
      &lt;Welcome name="Edite" /&gt;
    &lt;/div&gt;
  );
}</code></pre><h1><a href="https://angular.io/">Angular</a></h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KxiX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c296122-df0f-4c4d-a576-84247511fc47_1520x800.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KxiX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c296122-df0f-4c4d-a576-84247511fc47_1520x800.png 424w, https://substackcdn.com/image/fetch/$s_!KxiX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c296122-df0f-4c4d-a576-84247511fc47_1520x800.png 848w, https://substackcdn.com/image/fetch/$s_!KxiX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c296122-df0f-4c4d-a576-84247511fc47_1520x800.png 1272w, https://substackcdn.com/image/fetch/$s_!KxiX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c296122-df0f-4c4d-a576-84247511fc47_1520x800.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KxiX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c296122-df0f-4c4d-a576-84247511fc47_1520x800.png" width="1456" height="766" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3c296122-df0f-4c4d-a576-84247511fc47_1520x800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:766,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&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_!KxiX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c296122-df0f-4c4d-a576-84247511fc47_1520x800.png 424w, https://substackcdn.com/image/fetch/$s_!KxiX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c296122-df0f-4c4d-a576-84247511fc47_1520x800.png 848w, https://substackcdn.com/image/fetch/$s_!KxiX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c296122-df0f-4c4d-a576-84247511fc47_1520x800.png 1272w, https://substackcdn.com/image/fetch/$s_!KxiX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c296122-df0f-4c4d-a576-84247511fc47_1520x800.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>Angular is a JavaScript framework for building web applications and apps in JavaScript, HTML, and TypeScript. It was created by Google, kinda a competitor for React. Note that what we refer to as Angular nowadays is a successor to AngularJS (or more specifically AngularJS Version 2.0 and onward which was released on October 2014 is renamed to Angular, due to its huge overhaul).</p><p>The core concepts of Angular, just like React, include components, directives, and services. Components are the building blocks of Angular applications and are the most basic UI elements. Directives are markers on a DOM element that tells Angular to attach a specific behavior to that DOM element. Services are reusable pieces of code that can be injected into different components to provide specific functionality.</p><p>One reason to use Angular is that it allows for the creation of reusable components, which can make development faster and more efficient. Additionally, Angular offers strong support for building complex, large-scale applications, and has a large and active community.</p><p>Angular uses <code>ng-*</code> HTML properties to connect code with HTLM elements. An example Angular code will look like:</p><pre><code>&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"&gt;&lt;/script&gt;
&lt;body&gt;

&lt;div ng-app="" ng-init="firstName='John'"&gt;

&lt;p&gt;The name is &lt;span ng-bind="firstName"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;
</code></pre><h1><a href="https://vuejs.org/">Vue.js</a></h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uF47!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15379a03-14ae-4d4a-9444-0f637e135d0b_960x640.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uF47!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15379a03-14ae-4d4a-9444-0f637e135d0b_960x640.png 424w, https://substackcdn.com/image/fetch/$s_!uF47!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15379a03-14ae-4d4a-9444-0f637e135d0b_960x640.png 848w, https://substackcdn.com/image/fetch/$s_!uF47!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15379a03-14ae-4d4a-9444-0f637e135d0b_960x640.png 1272w, https://substackcdn.com/image/fetch/$s_!uF47!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15379a03-14ae-4d4a-9444-0f637e135d0b_960x640.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uF47!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15379a03-14ae-4d4a-9444-0f637e135d0b_960x640.png" width="960" height="640" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/15379a03-14ae-4d4a-9444-0f637e135d0b_960x640.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:640,&quot;width&quot;:960,&quot;resizeWidth&quot;:null,&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_!uF47!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15379a03-14ae-4d4a-9444-0f637e135d0b_960x640.png 424w, https://substackcdn.com/image/fetch/$s_!uF47!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15379a03-14ae-4d4a-9444-0f637e135d0b_960x640.png 848w, https://substackcdn.com/image/fetch/$s_!uF47!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15379a03-14ae-4d4a-9444-0f637e135d0b_960x640.png 1272w, https://substackcdn.com/image/fetch/$s_!uF47!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15379a03-14ae-4d4a-9444-0f637e135d0b_960x640.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>Vue.js is a JavaScript framework for building web applications and user interfaces. It was first created in February 2014 by Evan You, a former employee of Google who used Angular in several projects.</p><p>The core concepts of <strong>Vue.js, like Angular and React,</strong> include <strong>components</strong>, <strong>reactive data binding</strong>, and the <strong>virtual DOM</strong>.</p><p><strong>Reactive data binding</strong> means that when data in the application changes, the user interface updates automatically. The virtual DOM is an in-memory representation of the actual DOM, which allows Vue.js to update the UI efficiently by only changing the parts of the DOM that have actually changed.</p><p>One reason to use Vue.js is that it is <strong>easy to learn and use</strong>, especially for developers who are already familiar with <strong>JavaScript</strong>. Vue.js also has a small size and good performance, making it well-suited for building fast, lightweight applications. Additionally, Vue.js has a strong focus on developer experience, with helpful error messages and a focus on making the code readable and maintainable.</p><p>Some potential drawbacks of using Vue.js include a relatively small community compared to other JavaScript frameworks, which can make it harder to find support and resources. Additionally, Vue.js may not be as well-suited for building large-scale, complex applications as other frameworks like Angular.</p><p>In comparison to Angular, Vue.js is generally considered to be easier to learn and use, with a shallower learning curve. Vue.js also has a smaller size and better performance than Angular. However, Angular has a larger and more active community and may be better suited for building larger, more complex applications.</p><p>In comparison to React, Vue.js and React have many similar features and capabilities. Both use components and a virtual DOM, and both have strong performance and a focus on developer experience. However, Vue.js has a more straightforward and intuitive API, which may make it easier to learn and use for some developers. React, on the other hand, has a larger community and a more robust ecosystem of third-party libraries and tools.</p><h1>Comparison and Summary</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2a6b!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16952522-cce8-415a-b40b-964558dd9266_2000x1333.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2a6b!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16952522-cce8-415a-b40b-964558dd9266_2000x1333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!2a6b!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16952522-cce8-415a-b40b-964558dd9266_2000x1333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!2a6b!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16952522-cce8-415a-b40b-964558dd9266_2000x1333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!2a6b!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16952522-cce8-415a-b40b-964558dd9266_2000x1333.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2a6b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16952522-cce8-415a-b40b-964558dd9266_2000x1333.jpeg" width="5272" height="3515" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/16952522-cce8-415a-b40b-964558dd9266_2000x1333.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:3515,&quot;width&quot;:5272,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Young men working at a coffee bar in the city center Bruges. &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="Young men working at a coffee bar in the city center Bruges. " title="Young men working at a coffee bar in the city center Bruges. " srcset="https://substackcdn.com/image/fetch/$s_!2a6b!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16952522-cce8-415a-b40b-964558dd9266_2000x1333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!2a6b!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16952522-cce8-415a-b40b-964558dd9266_2000x1333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!2a6b!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16952522-cce8-415a-b40b-964558dd9266_2000x1333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!2a6b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16952522-cce8-415a-b40b-964558dd9266_2000x1333.jpeg 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><figcaption class="image-caption">Photo by <a href="https://unsplash.com/@jonasleupe?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Jonas Leupe</a> / <a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Unsplash</a></figcaption></figure></div><p>In the end, React, Angular, and Vue.js are all popular JavaScript frameworks for building web applications and user interfaces. All three frameworks have their own strengths and weaknesses, and the best choice for a particular project will depend on the specific requirements and use cases.</p><p>React is a good choice for building complex, large-scale applications, and has a large and active community. It is also well-suited for building applications that will be used on different platforms, such as web, mobile, and desktop.</p><p>Angular is a good choice for building large, complex applications, and has a large and active community. It offers a powerful set of tools and features and has strong support for building reusable components.</p><p>Vue.js is a good choice for building lightweight, fast applications, and has a focus on ease of use and developer experience. It is also a good choice for developers who are new to JavaScript frameworks, as it has a relatively shallow learning curve.</p><p>Overall, the best choice of the framework will depend on the specific requirements and use cases of the project. A developer should consider factors such as the size and complexity of the project, the desired performance and scalability, and the availability of resources and support from the community.</p><p>What do you think about Frontend frameworks? Which one are you using in your company?</p><p>Let me know in the comments below or reply to the email.</p><p></p><p>Get the <a href="https://www.canva.com/design/DAFUu8cQ9PI/DxvFaEqL8Gch9uRJS3Topw/view?utm_content=DAFUu8cQ9PI&amp;utm_campaign=designshare&amp;utm_medium=link&amp;utm_source=publishsharelink">full slides for this post over here.</a></p>]]></content:encoded></item><item><title><![CDATA[Day 13 - Tech Stacks & why they are important, Part 1]]></title><description><![CDATA[Everything a Product Manager should know about Tech Stacks, and why!]]></description><link>https://www.hackerpm.com/p/day-13-tech-stacks</link><guid isPermaLink="false">https://www.hackerpm.com/p/day-13-tech-stacks</guid><dc:creator><![CDATA[Hamed Mohammadpour]]></dc:creator><pubDate>Tue, 13 Dec 2022 12:21:57 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/98b16c95-9c14-4072-9d50-70cf147fb20a_2000x1333.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hjvw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea6ce792-9bdc-407b-99e6-05fc24873386_2000x1333.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hjvw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea6ce792-9bdc-407b-99e6-05fc24873386_2000x1333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!hjvw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea6ce792-9bdc-407b-99e6-05fc24873386_2000x1333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!hjvw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea6ce792-9bdc-407b-99e6-05fc24873386_2000x1333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!hjvw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea6ce792-9bdc-407b-99e6-05fc24873386_2000x1333.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hjvw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea6ce792-9bdc-407b-99e6-05fc24873386_2000x1333.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ea6ce792-9bdc-407b-99e6-05fc24873386_2000x1333.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Day 13 - Tech Stacks &amp; why they are important, Part 1&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="Day 13 - Tech Stacks &amp; why they are important, Part 1" title="Day 13 - Tech Stacks &amp; why they are important, Part 1" srcset="https://substackcdn.com/image/fetch/$s_!hjvw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea6ce792-9bdc-407b-99e6-05fc24873386_2000x1333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!hjvw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea6ce792-9bdc-407b-99e6-05fc24873386_2000x1333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!hjvw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea6ce792-9bdc-407b-99e6-05fc24873386_2000x1333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!hjvw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea6ce792-9bdc-407b-99e6-05fc24873386_2000x1333.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Or What my engineer means when she says:</p><blockquote><p><strong>"I need more time because the new project is in React."</strong></p></blockquote><h1>What is a Tech Stack?</h1><p>Software development has increased in complexity and variety over the past few years, let alone decades.</p><p>All the new libraries and frameworks are created to satisfy a special need or improve on an existing one. All of these helped to build &#8230;</p>
      <p>
          <a href="https://www.hackerpm.com/p/day-13-tech-stacks">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Day 12 - Feature Flags 2]]></title><description><![CDATA[Or What my engineer means when she says: "Do you want to release our <big feature> incrementally with feature flags?"]]></description><link>https://www.hackerpm.com/p/day-12-feature-flags-2</link><guid isPermaLink="false">https://www.hackerpm.com/p/day-12-feature-flags-2</guid><dc:creator><![CDATA[Hamed Mohammadpour]]></dc:creator><pubDate>Mon, 12 Dec 2022 15:41:55 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/d34e86e5-6e9a-4f92-b188-b27593356da6_2000x1333.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qIrP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17f0f46e-b321-4003-a770-0f9ae1ba1fc1_2000x1333.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qIrP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17f0f46e-b321-4003-a770-0f9ae1ba1fc1_2000x1333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qIrP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17f0f46e-b321-4003-a770-0f9ae1ba1fc1_2000x1333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qIrP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17f0f46e-b321-4003-a770-0f9ae1ba1fc1_2000x1333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qIrP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17f0f46e-b321-4003-a770-0f9ae1ba1fc1_2000x1333.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qIrP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17f0f46e-b321-4003-a770-0f9ae1ba1fc1_2000x1333.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/17f0f46e-b321-4003-a770-0f9ae1ba1fc1_2000x1333.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Day 12 - Feature Flags 2&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="Day 12 - Feature Flags 2" title="Day 12 - Feature Flags 2" srcset="https://substackcdn.com/image/fetch/$s_!qIrP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17f0f46e-b321-4003-a770-0f9ae1ba1fc1_2000x1333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qIrP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17f0f46e-b321-4003-a770-0f9ae1ba1fc1_2000x1333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qIrP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17f0f46e-b321-4003-a770-0f9ae1ba1fc1_2000x1333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qIrP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17f0f46e-b321-4003-a770-0f9ae1ba1fc1_2000x1333.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><h1>Recap on Feature Flags 1</h1><p><strong><a href="www.hackerpm.com/day-11-feature-flags/">Yesterday</a></strong> we learned that by using Feature Flags (FF) we can control how a piece of our software, or a product feature will be distributed among our users.</p><p>We talked that we may want this because of:</p><ul><li><p><strong>Rollout</strong> released in stages</p></li><li><p><strong>Compare</strong> two variations at the same time (e.g. in A/B tests)</p></li><li><p>The feature is <strong>temporary</strong> and is relevant for a portion of users (e.g. Alert boxes, Reminders, ...)</p></li></ul><h1>Any standards?</h1><p>Depending on what you want to do, Feature Flags' design and implementation can be straightforward or a nightmare.</p><p>Even though there are several tools and services that provide A/B testing and Feature Flags functionality, integrating with them and their cost are hurdles in their adaptations.</p><p>So most of the FF systems I worked with, were implemented in-house (and that works well, thanks to very talented engineers who worked on it).</p><h1>Best Practices</h1><p>I'd like to touch on some practical aspects of Feature Flags that I learned over the years using them in production.</p><h2>Server-side vs. Client-side FF</h2><p>Most of the tools I am going to mention in the next section are helpful for Client-side testing. But what is Client-side FF and how they are different from Server-side?</p><h3>Client Side Feature Flags</h3><p>... are done by placing a cookie on the user's browser to determine which variation of the test to show them.</p><p>It's mainly useful for testing on Landing pages and websites where there isn't any login required to see the page or content.</p><h3>Server Side Feature Flags</h3><p>Whenever you need to play around with features behind a login, for users, things get more interesting.</p><p>In these cases, a simple <code>cookie</code> will not help anymore and your app needs to read the flags from your server (the backend, or your FF management provider).</p><p>In this case, having FF management (either developed internally or from a 3rd-party provider (3pp)) is more important. Using this tool, you want to have these functionalities:</p><ul><li><p><strong>Create</strong> a new feature flag and see a list of all active/inactive ones.</p></li><li><p><strong>Assign users </strong>(or customers, if you are in B2B) to it in several ways, such as: At <strong>random</strong> based on a %, predefined. customers<strong> based on a property</strong> (email, location, ...)</p></li><li><p><strong>Enable or disable it</strong> with ease. (make sure your software handles the edge cases).</p></li><li><p>Some fancy 3rd party tools also provide <strong>tracking and reports</strong> on the feature flag (how many users/customers saw it, ...) but this is not a must. You can track this better in your own Tracking plan (topic for another day). It's more of a nice-to-have.</p></li></ul><p>All of this helps you to be independent of the engineers and modify the App's functionalities based on the real-time data, with a toggle of a switch, rather than a new code deployment (and going through all the 3-4 environments, <a href="hackerpm.com/day-10-enviornments/">remember Environments</a>?)</p><p>Remember that you would still need the newly created feature flag to be in the code, so initializing a feature flag on the dashboard is not enough. But after your engineers insert it in the right place in the code (see the code example below), you can control the feature from the dashboard. &nbsp;</p><h2>Flags should Enable functionalities</h2><p>Even though feature flags are simple <code>boolean</code> variables, it's important to use them as "<strong>enablers</strong>" and not disablers.</p><p>This is especially important as you move to Server-side FF because there might be a lag while getting the FF from the server or even a bug in FF implementation (a small typo for example), and in these cases, <strong>the software needs to default to the standard features, not the experimented ones</strong>.</p><p>Let me give an example:</p><p>Let's say you just finished developing a fancy new widget on the dashboard of your app and you want to roll it out for 10% of the users if it is working well, and is useful for the users, and ... (all the product usability things).</p><p>You can do this in two ways, logically:</p><ol><li><p><strong>Enable the widget for selected users</strong> (what you should do)</p></li><li><p>Disable it for the users who are not selected (oh no &#128584;)</p></li></ol><p>In this case, you should opt for naming and default values in the following way (in pseudocode):</p><pre><code>// default value if for some reasons, ff_manager is not working or the variable doesn't exist

if (ff_manager.show_new_widget(user_id, default = False) ){ 
    // insert the new widget
} else {
    // do nothing :)
}</code></pre><h2>Be careful of conflicting feature flags</h2><p>If you are running lots of A/B tests and are not careful with defining the scope of Feature Flags, your end data may not be very reliable, depending on how the code is implemented.</p><p>This is more of a nuance in the implementation detail, but keep an eye on it and go through it with your engineer to make sure the feature flags are working as expected.</p><h1>Tools and software</h1><p>As I mentioned before, I've only used internal implementation of Feature Flags functionality but during the implementation and discovery, I've checked a few providers that are worth mentioning. With a simple Google search, you can find many providers. Some have public pricing, but others require contacting their Sales team to get a quote (which is very annoying IMO.)</p><blockquote><p>&#9888;&#65039; Disclaimer: I'm by no means sponsoring or promoting them. Your own due diligence before purchasing or integrating with them is required.</p></blockquote><p>These tools are:</p><ul><li><p>Google Optimize (<a href="https://optimize.google.com/">https://optimize.google.com/</a>)</p></li><li><p>Firebase Remote Config, also by Google (<a href="https://firebase.google.com/products/remote-config">https://firebase.google.com/products/remote-config</a>)</p></li><li><p>Optimizely (<a href="https://www.optimizely.com/">https://www.optimizely.com/</a>)</p></li><li><p>VWO (<a href="https://vwo.com/">https://vwo.com/</a>)</p></li><li><p>LaunchDarkly (<a href="https://launchdarkly.com/">https://launchdarkly.com/</a>)</p></li><li><p>Statsig (<a href="https://statsig.com/">https://statsig.com/</a>)</p></li><li><p>Flagship (<a href="https://www.flagship.io/">https://www.flagship.io/</a>)</p></li><li><p>Feature Flag by Split: <a href="https://www.split.io/product/feature-flags/">https://www.split.io/product/feature-flags/</a></p></li><li><p>CofigCat (<a href="https://configcat.com/">https://configcat.com/</a>)</p></li></ul><h1>References</h1><p>Some good articles and resources I came across while I was researching Feature Flags:</p><ol><li><p>Feature-Flags (<a href="https://www.feature-flags.net/">https://www.feature-flags.net/</a>)</p></li><li><p>A great article by JOSH PITZALIS on nitty-gritty details of Feature Flags: <a href="https://usabilitygeek.com/a-b-testing-the-words-in-your-product/">https://usabilitygeek.com/a-b-testing-the-words-in-your-product/</a></p></li><li><p>All the tools above :)</p></li></ol><h1>Slides for today&#8217;s post</h1><p>Here is the <a href="https://www.canva.com/design/DAFUjB_AAnE/dBkI25-rHMK452tGKQfc6g/view?utm_content=DAFUjB_AAnE&amp;utm_campaign=designshare&amp;utm_medium=link&amp;utm_source=publishsharelink">slide for today&#8217;s post</a>.</p>]]></content:encoded></item><item><title><![CDATA[Day 11 - Feature Flags 1]]></title><description><![CDATA[Or What my engineer means when she says: "Do you want to release our <big feature> incrementally with feature flags?"]]></description><link>https://www.hackerpm.com/p/day-11-feature-flags</link><guid isPermaLink="false">https://www.hackerpm.com/p/day-11-feature-flags</guid><dc:creator><![CDATA[Hamed Mohammadpour]]></dc:creator><pubDate>Sun, 11 Dec 2022 21:22:47 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/f2a4312c-35f8-45f1-af77-719e8731a64e_2000x1333.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DXRa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32c487cf-c6e8-4821-8590-54260dbe9d66_2000x1333.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DXRa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32c487cf-c6e8-4821-8590-54260dbe9d66_2000x1333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!DXRa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32c487cf-c6e8-4821-8590-54260dbe9d66_2000x1333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!DXRa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32c487cf-c6e8-4821-8590-54260dbe9d66_2000x1333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!DXRa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32c487cf-c6e8-4821-8590-54260dbe9d66_2000x1333.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DXRa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32c487cf-c6e8-4821-8590-54260dbe9d66_2000x1333.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/32c487cf-c6e8-4821-8590-54260dbe9d66_2000x1333.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Day 11 - Feature Flags 1&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="Day 11 - Feature Flags 1" title="Day 11 - Feature Flags 1" srcset="https://substackcdn.com/image/fetch/$s_!DXRa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32c487cf-c6e8-4821-8590-54260dbe9d66_2000x1333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!DXRa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32c487cf-c6e8-4821-8590-54260dbe9d66_2000x1333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!DXRa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32c487cf-c6e8-4821-8590-54260dbe9d66_2000x1333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!DXRa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32c487cf-c6e8-4821-8590-54260dbe9d66_2000x1333.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Or What my engineer means when she says:</p><blockquote><p><strong>Do you want to release our &lt;big feature&gt; incrementally with feature flags?</strong></p></blockquote><p>Yesterday we talked about different environments our app is running on, mainly:</p><ol><li><p><strong>Development</strong> environment (env).</p></li><li><p><strong>Testing</strong> env.</p></li><li><p><strong>Staging</strong> env.</p></li><li><p>and <strong>Production</strong> env.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AbMZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F037e282c-af53-4637-b5c7-351208e1f6ff_452x357.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AbMZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F037e282c-af53-4637-b5c7-351208e1f6ff_452x357.png 424w, https://substackcdn.com/image/fetch/$s_!AbMZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F037e282c-af53-4637-b5c7-351208e1f6ff_452x357.png 848w, https://substackcdn.com/image/fetch/$s_!AbMZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F037e282c-af53-4637-b5c7-351208e1f6ff_452x357.png 1272w, https://substackcdn.com/image/fetch/$s_!AbMZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F037e282c-af53-4637-b5c7-351208e1f6ff_452x357.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AbMZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F037e282c-af53-4637-b5c7-351208e1f6ff_452x357.png" width="452" height="357" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/037e282c-af53-4637-b5c7-351208e1f6ff_452x357.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:357,&quot;width&quot;:452,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&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="" srcset="https://substackcdn.com/image/fetch/$s_!AbMZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F037e282c-af53-4637-b5c7-351208e1f6ff_452x357.png 424w, https://substackcdn.com/image/fetch/$s_!AbMZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F037e282c-af53-4637-b5c7-351208e1f6ff_452x357.png 848w, https://substackcdn.com/image/fetch/$s_!AbMZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F037e282c-af53-4637-b5c7-351208e1f6ff_452x357.png 1272w, https://substackcdn.com/image/fetch/$s_!AbMZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F037e282c-af53-4637-b5c7-351208e1f6ff_452x357.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><strong>What if Prod is not enough?</strong></p><p>Now imagine you have a feature that works well on testing and staging environments but:</p><ul><li><p><em>it's so big that you don't want to release it to everyone yet</em> or</p></li><li><p><em>is just an idea and you want to gather feedback from real users</em> or</p></li><li><p><em>is a variation of the current design and you want to compare its performance before enabling it for everyone</em></p></li><li><p>is only relevant for a portion of users (based on location, products they bought, membership type, behaviors, ...)</p></li></ul><p>or many more cases where you need to release a piece of code only to a portion of your users (either at <strong>random</strong>, e.g. 5%, or <strong>targeted</strong>, e.g. all users based in Germany).</p><div><hr></div><p>You can achieve some of the above with an <code>if/else</code> clause in your code but what if you also:</p><ul><li><p>want to "<strong>track</strong>" their behavior as well, and</p></li><li><p>in case it has any side effects, you want to "<strong>disable</strong>" the feature immediately and roll back the app to its previous version.</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_!RsSd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fb8754d-b583-400c-bd9a-dba575b75965_2000x1333.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RsSd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fb8754d-b583-400c-bd9a-dba575b75965_2000x1333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!RsSd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fb8754d-b583-400c-bd9a-dba575b75965_2000x1333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!RsSd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fb8754d-b583-400c-bd9a-dba575b75965_2000x1333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!RsSd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fb8754d-b583-400c-bd9a-dba575b75965_2000x1333.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RsSd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fb8754d-b583-400c-bd9a-dba575b75965_2000x1333.jpeg" width="5472" height="3648" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1fb8754d-b583-400c-bd9a-dba575b75965_2000x1333.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:3648,&quot;width&quot;:5472,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Charting Goals&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="Charting Goals" title="Charting Goals" srcset="https://substackcdn.com/image/fetch/$s_!RsSd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fb8754d-b583-400c-bd9a-dba575b75965_2000x1333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!RsSd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fb8754d-b583-400c-bd9a-dba575b75965_2000x1333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!RsSd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fb8754d-b583-400c-bd9a-dba575b75965_2000x1333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!RsSd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fb8754d-b583-400c-bd9a-dba575b75965_2000x1333.jpeg 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><figcaption class="image-caption">Photo by <a href="https://unsplash.com/@isaacmsmith?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Isaac Smith</a> / <a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Unsplash</a></figcaption></figure></div><p>Well, feature flags are a software pattern to enable exactly these functionalities.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Yqq7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75a24cb2-bc36-4910-8154-0af13cb0ea39_780x490.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Yqq7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75a24cb2-bc36-4910-8154-0af13cb0ea39_780x490.png 424w, https://substackcdn.com/image/fetch/$s_!Yqq7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75a24cb2-bc36-4910-8154-0af13cb0ea39_780x490.png 848w, https://substackcdn.com/image/fetch/$s_!Yqq7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75a24cb2-bc36-4910-8154-0af13cb0ea39_780x490.png 1272w, https://substackcdn.com/image/fetch/$s_!Yqq7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75a24cb2-bc36-4910-8154-0af13cb0ea39_780x490.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Yqq7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75a24cb2-bc36-4910-8154-0af13cb0ea39_780x490.png" width="780" height="490" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/75a24cb2-bc36-4910-8154-0af13cb0ea39_780x490.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:490,&quot;width&quot;:780,&quot;resizeWidth&quot;:null,&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_!Yqq7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75a24cb2-bc36-4910-8154-0af13cb0ea39_780x490.png 424w, https://substackcdn.com/image/fetch/$s_!Yqq7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75a24cb2-bc36-4910-8154-0af13cb0ea39_780x490.png 848w, https://substackcdn.com/image/fetch/$s_!Yqq7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75a24cb2-bc36-4910-8154-0af13cb0ea39_780x490.png 1272w, https://substackcdn.com/image/fetch/$s_!Yqq7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75a24cb2-bc36-4910-8154-0af13cb0ea39_780x490.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>Feature flags are...</h1><p>a software engineering technique that turns select functionality <strong>on and off </strong>during <strong>runtime</strong>, <strong>without deploying new code</strong>.</p><p>This enables teams to make changes without pushing additional code and allows for more controlled experimentation over the lifecycle of features.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mvrf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0497aef-c23b-465d-b0aa-89328a399d19_3000x1500.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mvrf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0497aef-c23b-465d-b0aa-89328a399d19_3000x1500.png 424w, https://substackcdn.com/image/fetch/$s_!mvrf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0497aef-c23b-465d-b0aa-89328a399d19_3000x1500.png 848w, https://substackcdn.com/image/fetch/$s_!mvrf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0497aef-c23b-465d-b0aa-89328a399d19_3000x1500.png 1272w, https://substackcdn.com/image/fetch/$s_!mvrf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0497aef-c23b-465d-b0aa-89328a399d19_3000x1500.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mvrf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0497aef-c23b-465d-b0aa-89328a399d19_3000x1500.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d0497aef-c23b-465d-b0aa-89328a399d19_3000x1500.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&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_!mvrf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0497aef-c23b-465d-b0aa-89328a399d19_3000x1500.png 424w, https://substackcdn.com/image/fetch/$s_!mvrf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0497aef-c23b-465d-b0aa-89328a399d19_3000x1500.png 848w, https://substackcdn.com/image/fetch/$s_!mvrf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0497aef-c23b-465d-b0aa-89328a399d19_3000x1500.png 1272w, https://substackcdn.com/image/fetch/$s_!mvrf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0497aef-c23b-465d-b0aa-89328a399d19_3000x1500.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 nature, they are still an "<strong>if statement</strong>", but the main keywords are, being able to do it in <strong>runtime</strong>,<strong> without deploying a new code</strong>, makes them <strong>more scalable and maintainable</strong>.</p><p>Let's keep today as an introduction for this lovely topic, especially if you are into A/B testing and incremental release, you'll love Feature Flags.</p><p>More on them coming tomorrow!</p><p></p><h3>Check the <a href="https://www.canva.com/design/DAFUfFHUcng/zKNG8cxlnD1LNZvMEdbGiQ/view?utm_content=DAFUfFHUcng&amp;utm_campaign=designshare&amp;utm_medium=link&amp;utm_source=publishsharelink">slides for today&#8217;s post over here</a>. </h3>]]></content:encoded></item><item><title><![CDATA[Day 10 - Environments]]></title><description><![CDATA[Or What my engineer means when she says: "Can you test it on Staging before I deploy it to Production?"]]></description><link>https://www.hackerpm.com/p/day-10-enviornments</link><guid isPermaLink="false">https://www.hackerpm.com/p/day-10-enviornments</guid><dc:creator><![CDATA[Hamed Mohammadpour]]></dc:creator><pubDate>Sat, 10 Dec 2022 21:08:37 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/08529aa3-df3a-4f20-ad51-c79f8c440749_2000x1500.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!46cI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe11002c0-9ffd-4bec-8a10-645362745f59_2000x1500.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!46cI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe11002c0-9ffd-4bec-8a10-645362745f59_2000x1500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!46cI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe11002c0-9ffd-4bec-8a10-645362745f59_2000x1500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!46cI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe11002c0-9ffd-4bec-8a10-645362745f59_2000x1500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!46cI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe11002c0-9ffd-4bec-8a10-645362745f59_2000x1500.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!46cI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe11002c0-9ffd-4bec-8a10-645362745f59_2000x1500.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e11002c0-9ffd-4bec-8a10-645362745f59_2000x1500.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Day 10 - Environments&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="Day 10 - Environments" title="Day 10 - Environments" srcset="https://substackcdn.com/image/fetch/$s_!46cI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe11002c0-9ffd-4bec-8a10-645362745f59_2000x1500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!46cI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe11002c0-9ffd-4bec-8a10-645362745f59_2000x1500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!46cI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe11002c0-9ffd-4bec-8a10-645362745f59_2000x1500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!46cI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe11002c0-9ffd-4bec-8a10-645362745f59_2000x1500.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Or What my engineer means when she says:</p><blockquote><p><strong>Can you test it on Staging before I deploy it to Production?</strong></p></blockquote><div><hr></div><p>We covered Git, Microservices, and DevOps. Let's add one more related concept on your journey to be a #hackerpm!</p><p>Welcome to <strong>software development environments</strong>.</p><h1>Why different environments?</h1><p>Between the development of software on an engineering laptop (the local environment) to the hands of users (the production environment), there are several more stages with slightly different purposes to ensure the code that is written on the "local machine" fully satisfies the requirements without breaking any other part of the product.</p><p>The most common environments in a software development lifecycle are:</p><ol><li><p><strong>Development environment</strong></p></li><li><p><strong>Testing environment</strong></p></li><li><p><strong>Staging environment</strong></p></li><li><p><strong>Production environment</strong></p></li></ol><p>Let's go through them one by one.</p><blockquote><p>&#9888;&#65039; Disclaimer: Different companies, depending on their need and restrictions might have a slightly different implementation of each environment or completely skip one.</p></blockquote><h1>Development Environment</h1><p>The <strong>development environment</strong> is the first environment the code engineers have developed on their local machine deployed to and tested.</p><p>It's also used for:</p><ul><li><p>Feature previews</p></li><li><p>Collaboration</p></li><li><p>Proof of concept for a technical implementation/library</p></li></ul><p>Usually, the development environment has only dummy data and is also more open to engineers to build, deploy, and test changes independently, without waiting for someone's approval.</p><h1>Testing Environment</h1><p>A <strong>testing environment</strong> is where the QA team can use a variety of testing tools to run all their different tests over the application code taken from the development environment. While developers check their code for simple bugs before passing it for quality assurance, QA engineers execute more complex and time-consuming types of tests to check the compatibility of the new and old code, the correct integration of different modules, the system&#8217;s performance, etc. Types of testing that can be done in this environment are:</p><ul><li><p>functional testing</p></li><li><p>integration testing</p></li><li><p>performance testing</p></li><li><p>load testing</p></li></ul><h1>Staging Environment</h1><p>In an ideal world, a <strong>staging environment</strong> is an identical replica of the customer&#8217;s production environment, which also typically contains real production data that&#8217;s been sanitized for safety purposes. It is hosted in the same way as the production servers and involves identical setup and update operations. Therefore, testing on a staging environment offers the most reliable way to check code quality and ensure the production servers are successful.</p><p>Another name for <em>Staging Environment</em> is <strong>Pre-Prod Environment</strong>.</p><h1>Production Environment</h1><p>The<strong> production environment </strong>is the final environment in your software development process. It is the work that is ready to be publicly available, and only the most thoroughly tested code should end up here.</p><p>It's what your users see and interact with. But there are some methods to test features, especially if you want to release a very big feature or validate the need for a feature, such as Feature Flags. More on that in the coming days!</p><h1>Summary</h1><blockquote><p>&#9888;&#65039; Disclaimer: Different companies, depending on their need and restrictions might have a slightly different implementation of each environment or completely skip one.</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_!-svV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84969832-fdfd-46d5-b1b6-e15a26a6642b_707x490.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-svV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84969832-fdfd-46d5-b1b6-e15a26a6642b_707x490.png 424w, https://substackcdn.com/image/fetch/$s_!-svV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84969832-fdfd-46d5-b1b6-e15a26a6642b_707x490.png 848w, https://substackcdn.com/image/fetch/$s_!-svV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84969832-fdfd-46d5-b1b6-e15a26a6642b_707x490.png 1272w, https://substackcdn.com/image/fetch/$s_!-svV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84969832-fdfd-46d5-b1b6-e15a26a6642b_707x490.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-svV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84969832-fdfd-46d5-b1b6-e15a26a6642b_707x490.png" width="707" height="490" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/84969832-fdfd-46d5-b1b6-e15a26a6642b_707x490.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:490,&quot;width&quot;:707,&quot;resizeWidth&quot;:null,&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_!-svV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84969832-fdfd-46d5-b1b6-e15a26a6642b_707x490.png 424w, https://substackcdn.com/image/fetch/$s_!-svV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84969832-fdfd-46d5-b1b6-e15a26a6642b_707x490.png 848w, https://substackcdn.com/image/fetch/$s_!-svV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84969832-fdfd-46d5-b1b6-e15a26a6642b_707x490.png 1272w, https://substackcdn.com/image/fetch/$s_!-svV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84969832-fdfd-46d5-b1b6-e15a26a6642b_707x490.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[Day 9 - Different engineers you might get in your team: Backend, Frontend, Fullstack, ...]]></title><description><![CDATA[In today's #adventcalendar post, we will go through different titles among software engineers and developers and what each one of them covers.]]></description><link>https://www.hackerpm.com/p/day-9-backend-frontend-fullstack</link><guid isPermaLink="false">https://www.hackerpm.com/p/day-9-backend-frontend-fullstack</guid><dc:creator><![CDATA[Hamed Mohammadpour]]></dc:creator><pubDate>Fri, 09 Dec 2022 21:31:42 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/fc341c1e-8ff5-4841-b09c-bbaf1e02d850_2000x1333.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yid6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73f8774a-a1d6-42b7-86b3-b48191c749db_2000x1333.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yid6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73f8774a-a1d6-42b7-86b3-b48191c749db_2000x1333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!yid6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73f8774a-a1d6-42b7-86b3-b48191c749db_2000x1333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!yid6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73f8774a-a1d6-42b7-86b3-b48191c749db_2000x1333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!yid6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73f8774a-a1d6-42b7-86b3-b48191c749db_2000x1333.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yid6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73f8774a-a1d6-42b7-86b3-b48191c749db_2000x1333.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/73f8774a-a1d6-42b7-86b3-b48191c749db_2000x1333.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Day 9 - Different engineers you might get in your team: Backend, Frontend, Fullstack, ...&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="Day 9 - Different engineers you might get in your team: Backend, Frontend, Fullstack, ..." title="Day 9 - Different engineers you might get in your team: Backend, Frontend, Fullstack, ..." srcset="https://substackcdn.com/image/fetch/$s_!yid6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73f8774a-a1d6-42b7-86b3-b48191c749db_2000x1333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!yid6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73f8774a-a1d6-42b7-86b3-b48191c749db_2000x1333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!yid6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73f8774a-a1d6-42b7-86b3-b48191c749db_2000x1333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!yid6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73f8774a-a1d6-42b7-86b3-b48191c749db_2000x1333.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>In today's #adventcalendar post, we will go through different titles among software engineers and developers and what each one of them covers.</p><p>We will talk about the following roles (first 4 are published now):</p><ol><li><p>Frontend Engineer</p></li><li><p>Backend Engineer</p></li><li><p>Fullstack Engineer</p></li><li><p>DevOps Engineer</p></li><li><p>QA Engineer</p></li><li><p>Security Engineer</p></li><li><p>Mobile Developer</p></li><li><p>Data Engineer/Scientist</p></li><li><p>Game Developer</p></li><li><p>Embedded Software Engineer</p></li><li><p>Database Engineer</p></li><li><p>Network Engineer</p></li></ol><p>Let's 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_!umrp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c18eb8c-7841-4e1f-abc5-4560b3cdfe93_384x480.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!umrp!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c18eb8c-7841-4e1f-abc5-4560b3cdfe93_384x480.gif 424w, https://substackcdn.com/image/fetch/$s_!umrp!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c18eb8c-7841-4e1f-abc5-4560b3cdfe93_384x480.gif 848w, https://substackcdn.com/image/fetch/$s_!umrp!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c18eb8c-7841-4e1f-abc5-4560b3cdfe93_384x480.gif 1272w, https://substackcdn.com/image/fetch/$s_!umrp!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c18eb8c-7841-4e1f-abc5-4560b3cdfe93_384x480.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!umrp!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c18eb8c-7841-4e1f-abc5-4560b3cdfe93_384x480.gif" width="384" height="480" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7c18eb8c-7841-4e1f-abc5-4560b3cdfe93_384x480.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:480,&quot;width&quot;:384,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&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="" title="" srcset="https://substackcdn.com/image/fetch/$s_!umrp!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c18eb8c-7841-4e1f-abc5-4560b3cdfe93_384x480.gif 424w, https://substackcdn.com/image/fetch/$s_!umrp!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c18eb8c-7841-4e1f-abc5-4560b3cdfe93_384x480.gif 848w, https://substackcdn.com/image/fetch/$s_!umrp!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c18eb8c-7841-4e1f-abc5-4560b3cdfe93_384x480.gif 1272w, https://substackcdn.com/image/fetch/$s_!umrp!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c18eb8c-7841-4e1f-abc5-4560b3cdfe93_384x480.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><div><hr></div><h2>Frontend Engineer</h2><p>One of the most common engineers you might have on your team is Frontend Engineers, or in short "FEs".</p><p>Frontend engineers are responsible to develop the visuals and experience of everything in your "web application". The 3 pillars of frontend development have been (and still are): HTML, Javascript, and CSS.</p><p>But due to many reasons (fit for another day), almost all of the new frontend applications use a "<strong>framework</strong>" that standardizes best practices and ways of working, gives some functionalities outside of the box, and opens up a platform of plugins to be installed instead of developing in house.</p><p>According to the <a href="https://2021.stateofjs.com/en-US/libraries/front-end-frameworks/">"State of JS" survey for 2021</a>, the following 3 frameworks are the most commonly used in 2021 (results for 2022 to be published next year).</p><ol><li><p>React</p></li><li><p>Angular</p></li><li><p>Vue</p></li></ol><div class="pullquote"><p>&#128161; Check out other sections in the <a href="https://2021.stateofjs.com/en-US/libraries/front-end-frameworks/">"State of JS" survey for the 2021</a> report and familiarise yourself with other platforms, and aspects of the software, ...</p></div><h1>Backend Engineer</h1><p>Frontend software is the easiest one to explain because it's mostly all the things you see. But things get messier as you move "back". &nbsp;Backend engineers enable other tools and software (including the frontend software) to interact with your core business logic and data.</p><p>They enable this by providing APIs for other systems and handling the business logic on the "Server" side.</p><p>Common backend technologies and servers widely used are:</p><ul><li><p>NodeJS</p></li><li><p>Python</p></li><li><p>PHP</p></li><li><p>Ruby on Rails</p></li><li><p>Server-side languages (Java, Ruby, or Python, .NET)</p></li><li><p>API communication protocols (REST, SOAP, RPC)</p></li><li><p>Databases (MySQL, MongoDB, Oracle, SQLServer)</p></li><li><p>Servers (Apache, Nginx, IIS servers, Microsoft IIS)</p></li></ul><p>And referring to the State of the JS again:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ELQa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8551ce50-1b5b-4bfd-841c-68c21c5e18ab_1462x452.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ELQa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8551ce50-1b5b-4bfd-841c-68c21c5e18ab_1462x452.png 424w, https://substackcdn.com/image/fetch/$s_!ELQa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8551ce50-1b5b-4bfd-841c-68c21c5e18ab_1462x452.png 848w, https://substackcdn.com/image/fetch/$s_!ELQa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8551ce50-1b5b-4bfd-841c-68c21c5e18ab_1462x452.png 1272w, https://substackcdn.com/image/fetch/$s_!ELQa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8551ce50-1b5b-4bfd-841c-68c21c5e18ab_1462x452.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ELQa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8551ce50-1b5b-4bfd-841c-68c21c5e18ab_1462x452.png" width="1456" height="450" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8551ce50-1b5b-4bfd-841c-68c21c5e18ab_1462x452.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:450,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&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_!ELQa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8551ce50-1b5b-4bfd-841c-68c21c5e18ab_1462x452.png 424w, https://substackcdn.com/image/fetch/$s_!ELQa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8551ce50-1b5b-4bfd-841c-68c21c5e18ab_1462x452.png 848w, https://substackcdn.com/image/fetch/$s_!ELQa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8551ce50-1b5b-4bfd-841c-68c21c5e18ab_1462x452.png 1272w, https://substackcdn.com/image/fetch/$s_!ELQa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8551ce50-1b5b-4bfd-841c-68c21c5e18ab_1462x452.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><strong>Fullstack</strong></h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yjLK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4e56de2-bef4-43b8-b2a2-5daec6b7f497_791x638.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yjLK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4e56de2-bef4-43b8-b2a2-5daec6b7f497_791x638.png 424w, https://substackcdn.com/image/fetch/$s_!yjLK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4e56de2-bef4-43b8-b2a2-5daec6b7f497_791x638.png 848w, https://substackcdn.com/image/fetch/$s_!yjLK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4e56de2-bef4-43b8-b2a2-5daec6b7f497_791x638.png 1272w, https://substackcdn.com/image/fetch/$s_!yjLK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4e56de2-bef4-43b8-b2a2-5daec6b7f497_791x638.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yjLK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4e56de2-bef4-43b8-b2a2-5daec6b7f497_791x638.png" width="791" height="638" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e4e56de2-bef4-43b8-b2a2-5daec6b7f497_791x638.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:638,&quot;width&quot;:791,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&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="" title="" srcset="https://substackcdn.com/image/fetch/$s_!yjLK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4e56de2-bef4-43b8-b2a2-5daec6b7f497_791x638.png 424w, https://substackcdn.com/image/fetch/$s_!yjLK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4e56de2-bef4-43b8-b2a2-5daec6b7f497_791x638.png 848w, https://substackcdn.com/image/fetch/$s_!yjLK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4e56de2-bef4-43b8-b2a2-5daec6b7f497_791x638.png 1272w, https://substackcdn.com/image/fetch/$s_!yjLK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4e56de2-bef4-43b8-b2a2-5daec6b7f497_791x638.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><figcaption class="image-caption"><strong><a href="https://devopedia.org/full-stack-developer?ref=hackerpm.com">Image credits</a></strong></figcaption></figure></div><p>After covering "backend" engineers very briefly, we arrive at Fullstacks. It's easier to describe them after we covered FEs and BEs (backend developers) because:</p><p>They do both Frontend and Backend. Sounds like the best of two worlds, no?</p><p>But there is a catch.</p><p>Even though in theory they are doing both backend and frontend depending on the application, company needs, and even toolset and frameworks, almost always a full fullstack is either majorly an FE or BE (let's say 80%), and the rest is doing the other platform.</p><p>Fullstacks are very popular in the early stages of a company or an app since "one person" can do everything and halves the costs at least.</p><p>More on human resource optimization later!</p><div><hr></div><h1>DevOps Engineer</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wgWj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa988296f-a42a-418e-b19f-f6bf9b6f7abe_1024x621.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wgWj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa988296f-a42a-418e-b19f-f6bf9b6f7abe_1024x621.png 424w, https://substackcdn.com/image/fetch/$s_!wgWj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa988296f-a42a-418e-b19f-f6bf9b6f7abe_1024x621.png 848w, https://substackcdn.com/image/fetch/$s_!wgWj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa988296f-a42a-418e-b19f-f6bf9b6f7abe_1024x621.png 1272w, https://substackcdn.com/image/fetch/$s_!wgWj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa988296f-a42a-418e-b19f-f6bf9b6f7abe_1024x621.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wgWj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa988296f-a42a-418e-b19f-f6bf9b6f7abe_1024x621.png" width="1024" height="621" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a988296f-a42a-418e-b19f-f6bf9b6f7abe_1024x621.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:621,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&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_!wgWj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa988296f-a42a-418e-b19f-f6bf9b6f7abe_1024x621.png 424w, https://substackcdn.com/image/fetch/$s_!wgWj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa988296f-a42a-418e-b19f-f6bf9b6f7abe_1024x621.png 848w, https://substackcdn.com/image/fetch/$s_!wgWj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa988296f-a42a-418e-b19f-f6bf9b6f7abe_1024x621.png 1272w, https://substackcdn.com/image/fetch/$s_!wgWj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa988296f-a42a-418e-b19f-f6bf9b6f7abe_1024x621.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 a recap, DevOps ensure your development operations run smoothly, the code your engineers work on get merged into proper repository and branches, it is fully tested and is delivered to the correct environment (development, staging, or production).</p><div><hr></div><p>You might think yeah we covered almost all engineer types you might have on your team, but I need to make a disclaimer that there are many more types. We haven't touched anything on Mobile developers (let alone native or cross-platform developers), Security engineers, Embedded software engineers, Game developers, Networking Engineers, Database Engineers, and many more.</p><p>Curious to know about these? Sign up (for free) and continue reading about the rest of the engineering roles.</p>]]></content:encoded></item><item><title><![CDATA[Day 8 - DevOps 2]]></title><description><![CDATA[Or What my engineer means when she says: "Our CI/CD pipeline is broken, we can't deploy to production today.."]]></description><link>https://www.hackerpm.com/p/day-8-devops-2</link><guid isPermaLink="false">https://www.hackerpm.com/p/day-8-devops-2</guid><dc:creator><![CDATA[Hamed Mohammadpour]]></dc:creator><pubDate>Thu, 08 Dec 2022 21:03:39 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/6c7dbe35-cff7-428b-bb44-63ba536a2204_2000x1125.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yQks!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2562013-d824-457a-98fb-e9cba8b326e6_2000x1125.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yQks!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2562013-d824-457a-98fb-e9cba8b326e6_2000x1125.jpeg 424w, https://substackcdn.com/image/fetch/$s_!yQks!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2562013-d824-457a-98fb-e9cba8b326e6_2000x1125.jpeg 848w, https://substackcdn.com/image/fetch/$s_!yQks!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2562013-d824-457a-98fb-e9cba8b326e6_2000x1125.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!yQks!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2562013-d824-457a-98fb-e9cba8b326e6_2000x1125.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yQks!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2562013-d824-457a-98fb-e9cba8b326e6_2000x1125.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c2562013-d824-457a-98fb-e9cba8b326e6_2000x1125.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Day 8 - DevOps 2&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="Day 8 - DevOps 2" title="Day 8 - DevOps 2" srcset="https://substackcdn.com/image/fetch/$s_!yQks!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2562013-d824-457a-98fb-e9cba8b326e6_2000x1125.jpeg 424w, https://substackcdn.com/image/fetch/$s_!yQks!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2562013-d824-457a-98fb-e9cba8b326e6_2000x1125.jpeg 848w, https://substackcdn.com/image/fetch/$s_!yQks!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2562013-d824-457a-98fb-e9cba8b326e6_2000x1125.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!yQks!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2562013-d824-457a-98fb-e9cba8b326e6_2000x1125.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>In today's post, we dig deeper into what CI/CD means and the different tools around it.<br><br>&#128221; <a href="https://www.linkedin.com/feed/hashtag/?keywords=task&amp;highlightedUpdateUrns=urn%3Ali%3Aactivity%3A7006720233327476737">#task</a>: Ask your engineer which CI/CD tool your company is using. They will be surprised by the question and your technical credibility with them will increase, which is very important to building trust with your team.<br><br>Also, today's post is special, because I included a cool startup that I met today at <a href="https://www.linkedin.com/company/techstars/">Techstars</a> Demo Day, 1st batch in Stockholm, Sweden.<br><br>The startup that totally fits today's topic is <a href="https://www.linkedin.com/company/ankra/">Ankra (Techstars '22)</a> (<a href="htttps://ankra.io">Ankra.io</a>), which automates CI/CD and helps companies save a lot of time and resources. Glad to meet <a href="https://www.linkedin.com/in/ACoAABCESXQB4UQ_pzrjpWE3V-8J_5pSxdD9EPI">Benjamin Klingsbo</a> and the team today.<br><br>Finally, if you want to receive these posts in your mailbox, please sign up for HackerPM's newsletter on our website &#128140;</p><p></p><p>Check the slides for <a href="https://www.canva.com/design/DAFUNKahIJI/-0Qf1twn9-EGkwX51ZDbyw/view?utm_content=DAFUNKahIJI&amp;utm_campaign=designshare&amp;utm_medium=link&amp;utm_source=publishsharelink">DevOps - part 2 over here</a>. </p>]]></content:encoded></item><item><title><![CDATA[Day 7 - DevOps 1]]></title><description><![CDATA[Or What my engineer means when she says: "Our CI/CD pipeline is broken, we can't deploy to production today.."]]></description><link>https://www.hackerpm.com/p/day-7-devops-1</link><guid isPermaLink="false">https://www.hackerpm.com/p/day-7-devops-1</guid><dc:creator><![CDATA[Hamed Mohammadpour]]></dc:creator><pubDate>Wed, 07 Dec 2022 21:00:00 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/97a3d129-cc73-416a-a855-5a8fe1df3f0d_2000x1125.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CttQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21c761fc-f676-4280-988c-f746b8f452d5_2000x1125.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CttQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21c761fc-f676-4280-988c-f746b8f452d5_2000x1125.jpeg 424w, https://substackcdn.com/image/fetch/$s_!CttQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21c761fc-f676-4280-988c-f746b8f452d5_2000x1125.jpeg 848w, https://substackcdn.com/image/fetch/$s_!CttQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21c761fc-f676-4280-988c-f746b8f452d5_2000x1125.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!CttQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21c761fc-f676-4280-988c-f746b8f452d5_2000x1125.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CttQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21c761fc-f676-4280-988c-f746b8f452d5_2000x1125.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/21c761fc-f676-4280-988c-f746b8f452d5_2000x1125.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Day 7 - DevOps 1&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="Day 7 - DevOps 1" title="Day 7 - DevOps 1" srcset="https://substackcdn.com/image/fetch/$s_!CttQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21c761fc-f676-4280-988c-f746b8f452d5_2000x1125.jpeg 424w, https://substackcdn.com/image/fetch/$s_!CttQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21c761fc-f676-4280-988c-f746b8f452d5_2000x1125.jpeg 848w, https://substackcdn.com/image/fetch/$s_!CttQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21c761fc-f676-4280-988c-f746b8f452d5_2000x1125.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!CttQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21c761fc-f676-4280-988c-f746b8f452d5_2000x1125.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Check here for <a href="https://www.canva.com/design/DAFUHFGkxHI/V_egC6xuu_MAAFm6CKXjKA/view?utm_content=DAFUHFGkxHI&amp;utm_campaign=designshare&amp;utm_medium=link&amp;utm_source=publishsharelink">slides of DevOps - Part 1</a>. </p>]]></content:encoded></item></channel></rss>