<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" 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">
    <channel>
        <title>CroCoder | Blog</title>
        <link>https://crocoder.dev/blog</link>
        <description>Tips and ideas to help you learn, build and improve your projects.</description>
        <lastBuildDate>Sat, 22 Feb 2025 11:45:12 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>CroCoder feed</generator>
        <language>en</language>
        <image>
            <title>CroCoder | Blog</title>
            <url>https://crocoder.dev/social.png</url>
            <link>https://crocoder.dev/blog</link>
        </image>
        <copyright>Copyright © CroCoder, Inc. All rights reserved</copyright>
        <atom:link href="https://crocoder.dev/feed.xml" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[The Real Cost of Holiday Feature Freeze]]></title>
            <link>https://crocoder.dev/blog/real-cost-of-holiday-feature-freeze/</link>
            <guid>real-cost-of-holiday-feature-freeze</guid>
            <pubDate>Thu, 30 Jan 2025 22:26:17 GMT</pubDate>
            <description><![CDATA[Do holiday feature freezes reduce deployment risks, or do they hinder your team? Explore Sentry’s data on freeze-induced bottlenecks and discover strategies to maintain stability without slowing development.]]></description>
            <content:encoded><![CDATA[<img src="https://crocoder.dev/assets/real-cost-of-holiday-feature-freeze.bab610eb.png" /> Do holiday feature freezes reduce deployment risks, or do they hinder your team? Explore Sentry’s data on freeze-induced bottlenecks and discover strategies to maintain stability without slowing development.]]></content:encoded>
            <author>david@crocoder.dev (David Abram)</author>
            <category>DEVELOPER EXPERIENCE</category>
            <enclosure url="https://crocoder.dev/assets/real-cost-of-holiday-feature-freeze.bab610eb.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Developer’s Bad Day: Can We Fix This Mess?]]></title>
            <link>https://crocoder.dev/blog/developer-bad-day-fix-this-mess/</link>
            <guid>developer-bad-day-fix-this-mess</guid>
            <pubDate>Wed, 11 Dec 2024 09:51:08 GMT</pubDate>
            <description><![CDATA[Bad days can be a major productivity killer for developers. Learn how tooling and infrastructure issues, process inefficiencies, team dynamics, and personal struggles contribute to these frustrating experiences, and what you can do to fix the mess.]]></description>
            <content:encoded><![CDATA[<img src="https://crocoder.dev/assets/developer-bad-day-fix-this-mess.83c2f49c.png" /> Bad days can be a major productivity killer for developers. Learn how tooling and infrastructure issues, process inefficiencies, team dynamics, and personal struggles contribute to these frustrating experiences, and what you can do to fix the mess.]]></content:encoded>
            <author>david@crocoder.dev (David Abram)</author>
            <category>After work talks</category>
            <enclosure url="https://crocoder.dev/assets/developer-bad-day-fix-this-mess.83c2f49c.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[The CrowdStrike and Microsoft Incident]]></title>
            <link>https://crocoder.dev/blog/crowdstrike-microsoft-incident-breakdown/</link>
            <guid>crowdstrike-microsoft-incident-breakdown</guid>
            <pubDate>Sat, 20 Jul 2024 11:04:53 GMT</pubDate>
            <description><![CDATA[CrowdStrike's Falcon Sensor update caused "blue screens of death" on millions of Windows systems.]]></description>
            <content:encoded><![CDATA[<img src="https://crocoder.dev/assets/crowdstrike-microsoft-incident-breakdown.f697a458.png" /> CrowdStrike's Falcon Sensor update caused "blue screens of death" on millions of Windows systems.]]></content:encoded>
            <author>david@crocoder.dev (David Abram)</author>
            <category>After work talks</category>
            <enclosure url="https://crocoder.dev/assets/crowdstrike-microsoft-incident-breakdown.f697a458.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Promises - Code Exercises]]></title>
            <link>https://crocoder.dev/blog/promises-exercises/</link>
            <guid>hello</guid>
            <pubDate>Thu, 18 Jan 2024 15:48:23 GMT</pubDate>
            <description><![CDATA[Explore JavaScript Promises with exercises on random resolution, chained arithmetic, parallel data fetching, fastest response, and cancellation. Improve your async skills with concise code and clear explanations. Learn effective methods for handling promises, simplifying errors, and creating resilient, maintainable code.]]></description>
            <content:encoded><![CDATA[<img src="https://crocoder.dev/assets/promises-exercises.2da8c840.png" /> Explore JavaScript Promises with exercises on random resolution, chained arithmetic, parallel data fetching, fastest response, and cancellation. Improve your async skills with concise code and clear explanations. Learn effective methods for handling promises, simplifying errors, and creating resilient, maintainable code.]]></content:encoded>
            <author>david@crocoder.dev (David Abram)</author>
            <category>LEARN JAVASCRIPT</category>
            <enclosure url="https://crocoder.dev/assets/promises-exercises.2da8c840.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Top 10 worst JavaScript keywords]]></title>
            <link>https://crocoder.dev/blog/top-10-worst-javascript-keywords/</link>
            <guid>top-10-worst-javascript-keywords</guid>
            <pubDate>Thu, 23 Nov 2023 12:34:51 GMT</pubDate>
            <description><![CDATA[A who's who of coding nightmares that will make you miss Internet Explorer 7. Discover these 'gems' and their quirky charms, and learn how to tame them into submission. Perfect for a laugh, or a cry, depending on your debugging skills!]]></description>
            <content:encoded><![CDATA[<img src="https://crocoder.dev/assets/top-10-worst-javascript-keywords.4e67e1ce.png" /> A who's who of coding nightmares that will make you miss Internet Explorer 7. Discover these 'gems' and their quirky charms, and learn how to tame them into submission. Perfect for a laugh, or a cry, depending on your debugging skills!]]></content:encoded>
            <author>david@crocoder.dev (David Abram)</author>
            <category>Learn JavaScript</category>
            <enclosure url="https://crocoder.dev/assets/top-10-worst-javascript-keywords.4e67e1ce.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Map, Filter, Reduce - Code Exercises]]></title>
            <link>https://crocoder.dev/blog/map-filter-reduce-exercises/</link>
            <guid>map-filter-reduce-exercises</guid>
            <pubDate>Mon, 26 Apr 2021 22:00:00 GMT</pubDate>
            <description><![CDATA[Map, filter and reduce are the most useful array methods to manipulate arrays and often the hardest to master. Try to solve the given exercises!]]></description>
            <content:encoded><![CDATA[<img src="https://crocoder.dev/assets/map-filter-reduce-exercises.84d9eb58.png" /> Map, filter and reduce are the most useful array methods to manipulate arrays and often the hardest to master. Try to solve the given exercises!]]></content:encoded>
            <author>david@crocoder.dev (David Abram)</author>
            <category>Learn JavaScript</category>
            <enclosure url="https://crocoder.dev/assets/map-filter-reduce-exercises.84d9eb58.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA["No Deployments on Friday" sucks]]></title>
            <link>https://crocoder.dev/blog/no-deployments-on-friday-sucks/</link>
            <guid>no-deployments-on-friday-sucks</guid>
            <pubDate>Sat, 11 Nov 2023 21:08:54 GMT</pubDate>
            <description><![CDATA[Explore the debate on 'no deployments on Fridays' in tech — a sign of caution or a red flag? Unpack the truth behind this rule's impact on engineering culture, team confidence, and system reliability.]]></description>
            <content:encoded><![CDATA[<img src="https://crocoder.dev/assets/no-deployments-on-friday-sucks.be13d05c.png" /> Explore the debate on 'no deployments on Fridays' in tech — a sign of caution or a red flag? Unpack the truth behind this rule's impact on engineering culture, team confidence, and system reliability.]]></content:encoded>
            <author>david@crocoder.dev (David Abram)</author>
            <category>After work talks</category>
            <enclosure url="https://crocoder.dev/assets/no-deployments-on-friday-sucks.be13d05c.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[What's "use server" in Next.js?]]></title>
            <link>https://crocoder.dev/blog/use-server-nextjs/</link>
            <guid>use-server-nextjs</guid>
            <pubDate>Mon, 30 Oct 2023 10:35:16 GMT</pubDate>
            <description><![CDATA[Curious about "use server" in Next.js 13.4 and 14? Discover how Server Actions can streamline server-side processes, reduce client-side JavaScript, and supercharge form functionalities.]]></description>
            <content:encoded><![CDATA[<img src="https://crocoder.dev/assets/use-server-nextjs.c52c175c.png" /> Curious about "use server" in Next.js 13.4 and 14? Discover how Server Actions can streamline server-side processes, reduce client-side JavaScript, and supercharge form functionalities.]]></content:encoded>
            <author>david@crocoder.dev (David Abram)</author>
            <category>Learn JavaScript</category>
            <enclosure url="https://crocoder.dev/assets/use-server-nextjs.c52c175c.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[GitOps: Is it the Right Choice for Your DevOps in 2023?]]></title>
            <link>https://crocoder.dev/blog/gitops-is-it-the-right-choice-for-your-devops/</link>
            <guid>gitops-is-it-the-right-choice-for-your-devops</guid>
            <pubDate>Thu, 19 Oct 2023 09:03:59 GMT</pubDate>
            <description><![CDATA[GitOps role in modern DevOps, mechanisms like automated deployment, benefits such as version oversight, and key considerations. Determine if GitOps fits your DevOps strategy and stay ahead.]]></description>
            <content:encoded><![CDATA[<img src="https://crocoder.dev/assets/gitops-is-it-the-right-choice-for-your-devops.0199fcc4.png" /> GitOps role in modern DevOps, mechanisms like automated deployment, benefits such as version oversight, and key considerations. Determine if GitOps fits your DevOps strategy and stay ahead.]]></content:encoded>
            <author>david@crocoder.dev (David Abram)</author>
            <category>AFTER WORK TALKS</category>
            <enclosure url="https://crocoder.dev/assets/gitops-is-it-the-right-choice-for-your-devops.0199fcc4.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[structuredClone() - the simplest way to clone an object in JavaScript]]></title>
            <link>https://crocoder.dev/blog/how-to-clone-object-in-javascript/</link>
            <guid>how-to-clone-object-in-javascript</guid>
            <pubDate>Tue, 02 Nov 2021 23:00:00 GMT</pubDate>
            <description><![CDATA[This are the simplest ways to clone in JavaScript. Shallow cloning is achieved with the object spread operator, while deep cloning is done with JSON.stringify() and JSON.parse(). Deep cloning has limitations and can be resource-intensive. The newer structuredClone() method can handle more complex objects, but it's not supported in all browsers.]]></description>
            <content:encoded><![CDATA[<img src="https://crocoder.dev/assets/how-to-clone-object-in-javascript.3aff5b1a.png" /> This are the simplest ways to clone in JavaScript. Shallow cloning is achieved with the object spread operator, while deep cloning is done with JSON.stringify() and JSON.parse(). Deep cloning has limitations and can be resource-intensive. The newer structuredClone() method can handle more complex objects, but it's not supported in all browsers.]]></content:encoded>
            <author>david@crocoder.dev (David Abram)</author>
            <category>Learn JavaScript</category>
            <enclosure url="https://crocoder.dev/assets/how-to-clone-object-in-javascript.3aff5b1a.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[No, you shouldn't measure developer productivity...]]></title>
            <link>https://crocoder.dev/blog/you-should-not-measure-developer-productivity-response-to-mckinsey/</link>
            <guid>you-should-not-measure-developer-productivity-response-to-mckinsey</guid>
            <pubDate>Tue, 19 Sep 2023 09:25:03 GMT</pubDate>
            <description><![CDATA[Explore the contentious debate surrounding developer productivity measurement ignited by McKinsey's recent article. Discover why focusing on individual metrics hinders software engineering teams. ]]></description>
            <content:encoded><![CDATA[<img src="https://crocoder.dev/assets/you-should-not-measure-developer-productivity-response-to-mckinsey.cdfcac1f.png" /> Explore the contentious debate surrounding developer productivity measurement ignited by McKinsey's recent article. Discover why focusing on individual metrics hinders software engineering teams. ]]></content:encoded>
            <author>david@crocoder.dev (David Abram)</author>
            <category>After Work Talks</category>
            <enclosure url="https://crocoder.dev/assets/you-should-not-measure-developer-productivity-response-to-mckinsey.cdfcac1f.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Excluding Properties with TypeScript's Omit]]></title>
            <link>https://crocoder.dev/blog/excluding-properties-typescript-omit/</link>
            <guid>omit</guid>
            <pubDate>Mon, 14 Aug 2023 21:13:17 GMT</pubDate>
            <description><![CDATA[Learn how to wield TypeScript's Omit tool effectively with clear examples. Craft precise types by excluding properties from existing types. Discover solutions for unions, extending interfaces, and enforcing strictness.]]></description>
            <content:encoded><![CDATA[<img src="https://crocoder.dev/assets/excluding-properties-typescript-omit.61e1b878.png" /> Learn how to wield TypeScript's Omit tool effectively with clear examples. Craft precise types by excluding properties from existing types. Discover solutions for unions, extending interfaces, and enforcing strictness.]]></content:encoded>
            <author>david@crocoder.dev (David Abram)</author>
            <category>Learn JavaScript</category>
            <enclosure url="https://crocoder.dev/assets/excluding-properties-typescript-omit.61e1b878.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[From simple Golang docker image to production-ready perfection]]></title>
            <link>https://crocoder.dev/blog/from-simple-golang-docker-image-to-production-ready-perfection/</link>
            <guid>from-simple-golang-docker-image-to-production-ready-perfection</guid>
            <pubDate>Mon, 17 Jul 2023 21:13:10 GMT</pubDate>
            <description><![CDATA[Optimize, secure, and deploy Golang apps with Docker. Learn efficient caching, performance compilation, and environment configurations. Utilize non-root users, delightful dev tools, and a final production stage.]]></description>
            <content:encoded><![CDATA[<img src="https://crocoder.dev/assets/golang-docker-image.ea7a298b.png" /> Optimize, secure, and deploy Golang apps with Docker. Learn efficient caching, performance compilation, and environment configurations. Utilize non-root users, delightful dev tools, and a final production stage.]]></content:encoded>
            <author>david@crocoder.dev (David Abram)</author>
            <category>Docker</category>
            <enclosure url="https://crocoder.dev/assets/golang-docker-image.ea7a298b.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[What is cycle time in Software Development?]]></title>
            <link>https://crocoder.dev/blog/what-is-cycle-time-in-software-development/</link>
            <guid>what-is-cycle-time-in-software-development</guid>
            <pubDate>Thu, 15 Jun 2023 11:53:14 GMT</pubDate>
            <description><![CDATA[Discover the power of cycle time in software development, a pivotal metric that holds the key to enhanced productivity and streamlined workflows. Learn how cycle time, from initial commit to code deployment, measures a team's efficiency and ability to deliver working software within defined time frames.]]></description>
            <content:encoded><![CDATA[<img src="https://crocoder.dev/assets/what-is-cycle-time-in-software-development.e007eeec.png" /> Discover the power of cycle time in software development, a pivotal metric that holds the key to enhanced productivity and streamlined workflows. Learn how cycle time, from initial commit to code deployment, measures a team's efficiency and ability to deliver working software within defined time frames.]]></content:encoded>
            <author>david@crocoder.dev (David Abram)</author>
            <category>After Work Talks</category>
            <enclosure url="https://crocoder.dev/assets/what-is-cycle-time-in-software-development.e007eeec.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Typescript Enums: The Good, The Bad, and The Ugly]]></title>
            <link>https://crocoder.dev/blog/typescript-enums-good-bad-and-ugly/</link>
            <guid>typescript-enums-good-bad-and-ugly</guid>
            <pubDate>Wed, 24 May 2023 20:46:44 GMT</pubDate>
            <description><![CDATA[Are TypeScript enums useful? Typesafe? Do you even need to consider using them? Welcome to the TypeScript's typesafe wild west.]]></description>
            <content:encoded><![CDATA[<img src="https://crocoder.dev/assets/typescript-enums-good-bad-and-ugly.4cd9dc7b.png" /> Are TypeScript enums useful? Typesafe? Do you even need to consider using them? Welcome to the TypeScript's typesafe wild west.]]></content:encoded>
            <author>david@crocoder.dev (David Abram)</author>
            <category>Learn JavaScript</category>
            <enclosure url="https://crocoder.dev/assets/typescript-enums-good-bad-and-ugly.4cd9dc7b.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Stop bikeshedding in software engineering]]></title>
            <link>https://crocoder.dev/blog/stop-bikeshedding/</link>
            <guid>stop-bikeshedding</guid>
            <pubDate>Wed, 03 May 2023 21:57:49 GMT</pubDate>
            <description><![CDATA[Learn how to avoid bikeshedding, a phenomenon where a group spends too much time on trivial matters while neglecting more important issues. Discover tips to prevent bikeshedding in any group setting, from corporate board meetings to software development teams.]]></description>
            <content:encoded><![CDATA[<img src="https://crocoder.dev/assets/stop-bikeshedding.23debef5.png" /> Learn how to avoid bikeshedding, a phenomenon where a group spends too much time on trivial matters while neglecting more important issues. Discover tips to prevent bikeshedding in any group setting, from corporate board meetings to software development teams.]]></content:encoded>
            <author>david@crocoder.dev (David Abram)</author>
            <category>After work talks</category>
            <enclosure url="https://crocoder.dev/assets/stop-bikeshedding.23debef5.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Misusing Agile is holding your team back]]></title>
            <link>https://crocoder.dev/blog/misusing-agile-is-holding-your-team-back/</link>
            <guid>misusing-agile-is-holding-your-team-back</guid>
            <pubDate>Wed, 29 Mar 2023 23:24:32 GMT</pubDate>
            <description><![CDATA[Learn why Agile development is not just a set of processes, but a mindset focused on collaboration, flexibility, and continuous improvement. This article discusses the core principles and values of Agile, the common misconceptions that hinder its implementation, and the benefits of adopting Agile effectively.]]></description>
            <content:encoded><![CDATA[<img src="https://crocoder.dev/assets/misusing-agile-is-holding-your-team-back.4fff6046.png" /> Learn why Agile development is not just a set of processes, but a mindset focused on collaboration, flexibility, and continuous improvement. This article discusses the core principles and values of Agile, the common misconceptions that hinder its implementation, and the benefits of adopting Agile effectively.]]></content:encoded>
            <author>david@crocoder.dev (David Abram)</author>
            <category>After work talks</category>
            <enclosure url="https://crocoder.dev/assets/misusing-agile-is-holding-your-team-back.4fff6046.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[A Dockerfile for BLAZINGLY FAST Dockerized Node.js apps]]></title>
            <link>https://crocoder.dev/blog/node-docker-image/</link>
            <guid>node-docker-image</guid>
            <pubDate>Sun, 12 Mar 2023 22:21:12 GMT</pubDate>
            <description><![CDATA[Learn how to create performant and secure docker images and avoid issues with signals when running Node.js applications with npm scripts. Discover how using a smaller Alpine-based image can reduce the attack surface and why it's recommended to use execform notation in the Dockerfile's CMD directive.]]></description>
            <content:encoded><![CDATA[<img src="https://crocoder.dev/assets/node-docker-image.fc179e11.png" /> Learn how to create performant and secure docker images and avoid issues with signals when running Node.js applications with npm scripts. Discover how using a smaller Alpine-based image can reduce the attack surface and why it's recommended to use execform notation in the Dockerfile's CMD directive.]]></content:encoded>
            <author>david@crocoder.dev (David Abram)</author>
            <category>Docker</category>
            <enclosure url="https://crocoder.dev/assets/node-docker-image.fc179e11.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Create React App is dead! What are the alternatives?]]></title>
            <link>https://crocoder.dev/blog/create-react-app-is-dead-what-are-the-alternatives/</link>
            <guid>create-react-app-is-dead-what-are-the-alternatives</guid>
            <pubDate>Sat, 21 Jan 2023 23:10:28 GMT</pubDate>
            <description><![CDATA[CRA may be "dead", but there are many alternative tools available for building React applications that offer superior performance, faster development times and extensive plugin compatibility.]]></description>
            <content:encoded><![CDATA[<img src="https://crocoder.dev/assets/create-react-app-is-dead-what-are-the-alternatives.38599fb1.png" /> CRA may be "dead", but there are many alternative tools available for building React applications that offer superior performance, faster development times and extensive plugin compatibility.]]></content:encoded>
            <author>david@crocoder.dev (David Abram)</author>
            <category>Learn JavaScript</category>
            <enclosure url="https://crocoder.dev/assets/create-react-app-is-dead-what-are-the-alternatives.38599fb1.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Stop using && in React Conditional Rendering]]></title>
            <link>https://crocoder.dev/blog/react-conditional-rendering/</link>
            <guid>react-conditional-rendering</guid>
            <pubDate>Wed, 15 Feb 2023 22:58:53 GMT</pubDate>
            <description><![CDATA[Learn how to use conditional rendering in React and avoid rendering unexpected values like 0 or NaN with this simple guide. Make your React components dynamic and only show the information that is relevant to your users based on the current state of your application.]]></description>
            <content:encoded><![CDATA[<img src="https://crocoder.dev/assets/react-conditional-rendering.3a9a5e2d.png" /> Learn how to use conditional rendering in React and avoid rendering unexpected values like 0 or NaN with this simple guide. Make your React components dynamic and only show the information that is relevant to your users based on the current state of your application.]]></content:encoded>
            <author>david@crocoder.dev (David Abram)</author>
            <category>Learn JavaScript</category>
            <enclosure url="https://crocoder.dev/assets/react-conditional-rendering.3a9a5e2d.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[How to write custom React hooks? - Code Exercises]]></title>
            <link>https://crocoder.dev/blog/how-to-write-custom-react-hooks/</link>
            <guid>how-to-write-custom-react-hooks</guid>
            <pubDate>Wed, 08 Feb 2023 16:25:46 GMT</pubDate>
            <description><![CDATA[Custom React hooks are user-defined functions that allow developers to reuse stateful logic and side effects from React components in a clean and reusable way. Try to solve the given exercises!]]></description>
            <content:encoded><![CDATA[<img src="https://crocoder.dev/assets/how-to-write-custom-react-hooks.48f936ad.png" /> Custom React hooks are user-defined functions that allow developers to reuse stateful logic and side effects from React components in a clean and reusable way. Try to solve the given exercises!]]></content:encoded>
            <author>david@crocoder.dev (David Abram)</author>
            <category>Learn JavaScript</category>
            <enclosure url="https://crocoder.dev/assets/how-to-write-custom-react-hooks.48f936ad.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[JavaScript DOM - Code Exercises]]></title>
            <link>https://crocoder.dev/blog/the-dom-exercises/</link>
            <guid>the-dom-exercises</guid>
            <pubDate>Mon, 26 Apr 2021 19:00:00 GMT</pubDate>
            <description><![CDATA[The DOM or the Document Object Model of the page is created after the web page is loaded. Learn some DOM manipulation with these exercises.]]></description>
            <content:encoded><![CDATA[<img src="https://crocoder.dev/assets/dom.ed1a494c.png" /> The DOM or the Document Object Model of the page is created after the web page is loaded. Learn some DOM manipulation with these exercises.]]></content:encoded>
            <author>david@crocoder.dev (David Abram)</author>
            <category>Learn JavaScript</category>
            <enclosure url="https://crocoder.dev/assets/dom.ed1a494c.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[What should be included in an internal component library]]></title>
            <link>https://crocoder.dev/blog/what-to-include-in-an-internal-component-library/</link>
            <guid>what-to-include-in-an-internal-component-library</guid>
            <pubDate>Fri, 07 Oct 2022 14:43:31 GMT</pubDate>
            <description><![CDATA[Knowing which components should be included in an internal component library is an important skill for developers to have. Our senior web development consultant Danica Pivalica Abram provides some helpful tips that can steer you in the right direction and help you decide if a component should be part of your internal component library.]]></description>
            <content:encoded><![CDATA[<img src="https://crocoder.dev/assets/what-should-be-included-in-an-internal-component-library.550c429a.png" /> Knowing which components should be included in an internal component library is an important skill for developers to have. Our senior web development consultant Danica Pivalica Abram provides some helpful tips that can steer you in the right direction and help you decide if a component should be part of your internal component library.]]></content:encoded>
            <author>danica@crocoder.dev (Danica Pivalica Abram)</author>
            <category>Design System / Component Library</category>
            <enclosure url="https://crocoder.dev/assets/what-should-be-included-in-an-internal-component-library.550c429a.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Best React Component Libraries 2022 (CroCoder's Pick)]]></title>
            <link>https://crocoder.dev/blog/best-react-component-libraries/</link>
            <guid>best-react-component-libraries-2022</guid>
            <pubDate>Fri, 09 Sep 2022 20:57:49 GMT</pubDate>
            <description><![CDATA[Do you know what React component library your company should choose for your project? I have personally asked each CroCoder consultant and developer to review a popular React component library. We have reviewed Material UI, Ant Design, React-Bootstrap, Chakra UI, Next UI, Headless UI, Ariakit, Radix UI and Reach UI.]]></description>
            <content:encoded><![CDATA[<img src="https://crocoder.dev/assets/best-react-component-libraries-2022.4a8fa537.png" /> Do you know what React component library your company should choose for your project? I have personally asked each CroCoder consultant and developer to review a popular React component library. We have reviewed Material UI, Ant Design, React-Bootstrap, Chakra UI, Next UI, Headless UI, Ariakit, Radix UI and Reach UI.]]></content:encoded>
            <author>vele@crocoder.dev (Velimir Ujevic)</author>
            <category>Design System / Component Library</category>
            <enclosure url="https://crocoder.dev/assets/best-react-component-libraries-2022.4a8fa537.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Internal component libraries - an overlooked part of your brand]]></title>
            <link>https://crocoder.dev/blog/component-libraries-an-overlooked-part-of-your-brand/</link>
            <guid>component-libraries-an-overlooked-part-of-your-brand</guid>
            <pubDate>Wed, 13 Jul 2022 11:41:32 GMT</pubDate>
            <description><![CDATA[High-quality design is a justified expense for companies of any size, regardless of the hefty price tag. Internal component libraries, on the other hand, aren’t often seen as such an important investment as UI/UX. Danica Pivalica Abram challenges this stance arguing that placing a lot of effort into internal component libraries is crucial for your brand.]]></description>
            <content:encoded><![CDATA[<img src="https://crocoder.dev/assets/component-libraries-an-overlooked-part-of-your-brand.7e307a4e.png" /> High-quality design is a justified expense for companies of any size, regardless of the hefty price tag. Internal component libraries, on the other hand, aren’t often seen as such an important investment as UI/UX. Danica Pivalica Abram challenges this stance arguing that placing a lot of effort into internal component libraries is crucial for your brand.]]></content:encoded>
            <author>danica@crocoder.dev (Danica Pivalica Abram)</author>
            <category>Design System / Component Library</category>
            <enclosure url="https://crocoder.dev/assets/component-libraries-an-overlooked-part-of-your-brand.7e307a4e.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[The controlled and the uncontrolled way to clear React Input component value after submit]]></title>
            <link>https://crocoder.dev/blog/react-input-component-clear-value-after-input/</link>
            <guid>react-input-component-clear-value-after-input</guid>
            <pubDate>Sun, 01 May 2022 21:17:48 GMT</pubDate>
            <description><![CDATA[There are multiple ways to go about building React Input components. The most often used solution is to create a controlled Input component, but there is a not well known solution that uses the useImperativeHandle hook.]]></description>
            <content:encoded><![CDATA[<img src="https://crocoder.dev/assets/react-input-component-clear-value-after-input.11631f63.png" /> There are multiple ways to go about building React Input components. The most often used solution is to create a controlled Input component, but there is a not well known solution that uses the useImperativeHandle hook.]]></content:encoded>
            <author>david@crocoder.dev (David Abram)</author>
            <category>Learn JavaScript</category>
            <enclosure url="https://crocoder.dev/assets/react-input-component-clear-value-after-input.11631f63.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Block traffic to your website from Russia and Belarus using CloudFront]]></title>
            <link>https://crocoder.dev/blog/block-russia-using-cloudfront/</link>
            <guid>block-russia-using-cloudfront</guid>
            <pubDate>Sat, 26 Feb 2022 01:11:15 GMT</pubDate>
            <description><![CDATA[We want to invite you all to block your website traffic from Russia and Belarus to show support for the Ukrainian people. the following tutorial will help you to enable CloudFront Geographic Restrictions and block traffic.]]></description>
            <content:encoded><![CDATA[<img src="https://crocoder.dev/assets/block-russia-using-cloudfront.0f604ae5.png" /> We want to invite you all to block your website traffic from Russia and Belarus to show support for the Ukrainian people. the following tutorial will help you to enable CloudFront Geographic Restrictions and block traffic.]]></content:encoded>
            <author>david@crocoder.dev (David Abram)</author>
            <category>AWS</category>
            <enclosure url="https://crocoder.dev/assets/block-russia-using-cloudfront.0f604ae5.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[How to Properly Showcase Your Coding Projects]]></title>
            <link>https://crocoder.dev/blog/how-to-properly-showcase-your-coding-projects/</link>
            <guid>how-to-properly-showcase-your-coding-projects</guid>
            <pubDate>Mon, 07 Feb 2022 09:45:10 GMT</pubDate>
            <description><![CDATA[If you are looking for a complete change in your profession or are fresh out of university and searching for your first job in the world's fastest-growing industry, this video is for you!]]></description>
            <content:encoded><![CDATA[<img src="https://crocoder.dev/assets/how-to-properly-showcase-your-coding-projects.c4a60d7d.png" /> If you are looking for a complete change in your profession or are fresh out of university and searching for your first job in the world's fastest-growing industry, this video is for you!]]></content:encoded>
            <author>david@crocoder.dev (David Abram)</author>
            <category>After Work Talks</category>
            <enclosure url="https://crocoder.dev/assets/how-to-properly-showcase-your-coding-projects.c4a60d7d.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[How to Perfect Your CV as an Entry-level Developer]]></title>
            <link>https://crocoder.dev/blog/how-to-perfect-your-cv-entry-level-developer/</link>
            <guid>how-to-perfect-your-cv-entry-level-developer</guid>
            <pubDate>Tue, 09 Nov 2021 15:20:05 GMT</pubDate>
            <description><![CDATA[If you are looking for a complete change in your profession or are fresh out of university and searching for your first job in the world's fastest-growing industry, this video is for you!]]></description>
            <content:encoded><![CDATA[<img src="https://crocoder.dev/assets/how-to-perfect-your-cv-entry-level-developer.23b46bd0.png" /> If you are looking for a complete change in your profession or are fresh out of university and searching for your first job in the world's fastest-growing industry, this video is for you!]]></content:encoded>
            <author>david@crocoder.dev (David Abram)</author>
            <category>After Work Talks</category>
            <enclosure url="https://crocoder.dev/assets/how-to-perfect-your-cv-entry-level-developer.23b46bd0.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Callbacks - Code Exercises]]></title>
            <link>https://crocoder.dev/blog/callbacks-exercises/</link>
            <guid>callbacks-exercises</guid>
            <pubDate>Mon, 26 Apr 2021 19:00:00 GMT</pubDate>
            <description><![CDATA[Callbacks are so common in JavaScript, you certainly used callbacks without knowing they're called that. Let's try to solve some exercises that will help you learn callbacks in JavaScript.]]></description>
            <content:encoded><![CDATA[<img src="https://crocoder.dev/assets/callback-hell.d9564f33.png" /> Callbacks are so common in JavaScript, you certainly used callbacks without knowing they're called that. Let's try to solve some exercises that will help you learn callbacks in JavaScript.]]></content:encoded>
            <author>david@crocoder.dev (David Abram)</author>
            <category>Learn JavaScript</category>
            <enclosure url="https://crocoder.dev/assets/callback-hell.d9564f33.png" length="0" type="image/png"/>
        </item>
    </channel>
</rss>