<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Dan</title>
    <description>The latest articles on Forem by Dan (@grapplingdev).</description>
    <link>https://forem.com/grapplingdev</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F338939%2Faa7a24fa-bf45-4d8f-ba87-99e8e6430132.png</url>
      <title>Forem: Dan</title>
      <link>https://forem.com/grapplingdev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/grapplingdev"/>
    <language>en</language>
    <item>
      <title>50 Hand-Drawn Icons!</title>
      <dc:creator>Dan</dc:creator>
      <pubDate>Sat, 07 Dec 2024 22:12:25 +0000</pubDate>
      <link>https://forem.com/grapplingdev/50-hand-drawn-icons-51cg</link>
      <guid>https://forem.com/grapplingdev/50-hand-drawn-icons-51cg</guid>
      <description>&lt;p&gt;Hey everyone!&lt;/p&gt;

&lt;p&gt;Today I published my first ever digital product! 🎉&lt;/p&gt;

&lt;p&gt;I spent the afternoon drawing 50 popular icons in a cute/childlike style &amp;amp; vectorised them for maximum customisation!&lt;/p&gt;

&lt;p&gt;If you buy, I hope you like them, if you don't...well...hi 👋&lt;/p&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
      &lt;div class="c-embed__cover"&gt;
        &lt;a href="https://grapplingdev.gumroad.com/l/dooodlecons" class="c-link s:max-w-50 align-middle" rel="noopener noreferrer"&gt;
          &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpublic-files.gumroad.com%2Fwgu0tqwiav07rek97l3402cjk2kh" height="449" class="m-0" width="800"&gt;
        &lt;/a&gt;
      &lt;/div&gt;
    &lt;div class="c-embed__body"&gt;
      &lt;h2 class="fs-xl lh-tight"&gt;
        &lt;a href="https://grapplingdev.gumroad.com/l/dooodlecons" rel="noopener noreferrer" class="c-link"&gt;
          Dooodlecons
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;p class="truncate-at-3"&gt;
          Welcome to Dooodlecons!50 Hand-drawn icons for use in your designs! Add a child-like flair to your designs :)All icons are in SVG format allowing for maximum customisation.Icons Included; Download Plus Minus Cross Video Thumb Down Clock Cursor Lock Forward Pucture Search Thumb up + Many More!
        &lt;/p&gt;
      &lt;div class="color-secondary fs-s flex items-center"&gt;
          &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpublic-files.gumroad.com%2Fbdxukq4m513aditp0nasrwn41hks" width="128" height="128"&gt;
        grapplingdev.gumroad.com
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
      <category>design</category>
      <category>art</category>
      <category>graphicdesign</category>
    </item>
    <item>
      <title>Creating Figma Unions</title>
      <dc:creator>Dan</dc:creator>
      <pubDate>Wed, 20 Nov 2024 15:41:10 +0000</pubDate>
      <link>https://forem.com/grapplingdev/creating-figma-unions-2pc6</link>
      <guid>https://forem.com/grapplingdev/creating-figma-unions-2pc6</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/8wrmfna75vE"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;This took me at least a solid hour to figure out on stream this morning.&lt;/p&gt;

&lt;p&gt;Every tutorial, guide, and video shows you how to do it with untouched shapes i.e. they have no rounding. If you create a union of shapes and some have rounded edges, you're gonna have a bad time.&lt;/p&gt;

&lt;p&gt;Unless you watch my &amp;lt;2m video.&lt;/p&gt;

</description>
      <category>figma</category>
      <category>design</category>
      <category>logodesign</category>
    </item>
    <item>
      <title>Framer Logo Dark Mode</title>
      <dc:creator>Dan</dc:creator>
      <pubDate>Sat, 16 Nov 2024 21:30:58 +0000</pubDate>
      <link>https://forem.com/grapplingdev/framer-logo-dark-mode-150i</link>
      <guid>https://forem.com/grapplingdev/framer-logo-dark-mode-150i</guid>
      <description>&lt;p&gt;Create dark &amp;amp; light mode for components on Framer is not something thats explained very well. Something that is not explained at all is how to apply this to an SVG logo!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/IF8_GibgGsA"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>website</category>
      <category>figma</category>
      <category>framer</category>
    </item>
    <item>
      <title>AI Engineer Roadmap</title>
      <dc:creator>Dan</dc:creator>
      <pubDate>Tue, 05 Nov 2024 11:47:46 +0000</pubDate>
      <link>https://forem.com/roadmapsh/ai-engineer-roadmap-3n8</link>
      <guid>https://forem.com/roadmapsh/ai-engineer-roadmap-3n8</guid>
      <description>&lt;p&gt;With GenAI approaching at a rapid rate and everyone trying to find the most optimal ways to implement AI into their products and workflows, theres never been a better time to learn AI Engineering.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is AI Engineering?
&lt;/h2&gt;

&lt;p&gt;AI Engineering is the process of designing and implementing AI systems using pre-trained models and existing AI tools to solve practical problems. AI Engineers focus on applying AI in real-world scenarios, improving user experiences, and automating tasks, without developing new models from scratch. They work to ensure AI systems are efficient, scalable, and can be seamlessly integrated into business applications, distinguishing their role from AI Researchers and ML Engineers, who concentrate more on creating new models or advancing AI theory.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI Engineer vs ML Engineer
&lt;/h2&gt;

&lt;p&gt;An AI Engineer uses pre-trained models and existing AI tools to improve user experiences. They focus on applying AI in practical ways, without building models from scratch. This is different from AI Researchers and ML Engineers, who focus more on creating new models or developing AI theory.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI Engineering Roadmap
&lt;/h2&gt;

&lt;p&gt;The following is a list of popular topics related to AI Engineering, for a more in depth and interactive roadmap, visit the official &lt;a href="https://roadmap.sh/ai-engineer" rel="noopener noreferrer"&gt;AI Engineering roadmap&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Common Terms
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;LLMs&lt;/li&gt;
&lt;li&gt;Inference&lt;/li&gt;
&lt;li&gt;Training&lt;/li&gt;
&lt;li&gt;Embeddings&lt;/li&gt;
&lt;li&gt;Vector Databases&lt;/li&gt;
&lt;li&gt;RAG&lt;/li&gt;
&lt;li&gt;Prompt Engineering&lt;/li&gt;
&lt;li&gt;AI Agents&lt;/li&gt;
&lt;li&gt;AI vs AGI&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Using Pre-trained Models
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Pre-trained Models&lt;/li&gt;
&lt;li&gt;Benefits of Pre-trained Models&lt;/li&gt;
&lt;li&gt;Limitations and Considerations&lt;/li&gt;
&lt;li&gt;Popular AI Models&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Open AI Models
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Capabilities / Context Length&lt;/li&gt;
&lt;li&gt;Cut-off Dates / Knowledge&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Other Popular Models
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Anthropic's Claude&lt;/li&gt;
&lt;li&gt;Google's Gemini&lt;/li&gt;
&lt;li&gt;Azure AI&lt;/li&gt;
&lt;li&gt;AWS Sagemaker&lt;/li&gt;
&lt;li&gt;Hugging Face Models&lt;/li&gt;
&lt;li&gt;Mistral AI&lt;/li&gt;
&lt;li&gt;Cohere&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  OpenAI Platform
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;OpenAI API&lt;/li&gt;
&lt;li&gt;Chat Completions API&lt;/li&gt;
&lt;li&gt;Writing Prompts&lt;/li&gt;
&lt;li&gt;OpenAI Playground&lt;/li&gt;
&lt;li&gt;Fine-tuning&lt;/li&gt;
&lt;li&gt;Managing Tokens&lt;/li&gt;
&lt;li&gt;Maximum Tokens&lt;/li&gt;
&lt;li&gt;Token Counting&lt;/li&gt;
&lt;li&gt;Pricing Considerations&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  AI Safety and Ethics
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Understanding AI Safety Issues&lt;/li&gt;
&lt;li&gt;Prompt Injection Attacks&lt;/li&gt;
&lt;li&gt;Bias and Fairness&lt;/li&gt;
&lt;li&gt;Security and Privacy Concerns&lt;/li&gt;
&lt;li&gt;Conducting Adversarial Testing&lt;/li&gt;
&lt;li&gt;OpenAI Moderation API&lt;/li&gt;
&lt;li&gt;Adding End-user IDs in Prompts&lt;/li&gt;
&lt;li&gt;Robust Prompt Engineering&lt;/li&gt;
&lt;li&gt;Know your Customers / Use Cases&lt;/li&gt;
&lt;li&gt;Constraining Outputs and Inputs&lt;/li&gt;
&lt;li&gt;Safety Best Practices&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Open Source AI
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Open vs Closed Source Models&lt;/li&gt;
&lt;li&gt;Popular Open Source Models&lt;/li&gt;
&lt;li&gt;Hugging Face

&lt;ul&gt;
&lt;li&gt;Hugging Face Hub&lt;/li&gt;
&lt;li&gt;Hugging Face Tasks&lt;/li&gt;
&lt;li&gt;Finding Open Source Models&lt;/li&gt;
&lt;li&gt;Using Open Source Models&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Inference SDK&lt;/li&gt;

&lt;li&gt;Transformers.js&lt;/li&gt;

&lt;li&gt;Ollama

&lt;ul&gt;
&lt;li&gt;Ollama Models&lt;/li&gt;
&lt;li&gt;Ollama SDK&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  Embeddings
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Semantic Search&lt;/li&gt;
&lt;li&gt;Recommendation Systems&lt;/li&gt;
&lt;li&gt;Anomaly Detection&lt;/li&gt;
&lt;li&gt;Data Classification&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Embeddings &amp;amp; Vector Databases
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Use Cases for Embeddings&lt;/li&gt;
&lt;li&gt;OpenAI Embeddings API&lt;/li&gt;
&lt;li&gt;OpenAI Embedding Models&lt;/li&gt;
&lt;li&gt;Pricing Considerations&lt;/li&gt;
&lt;li&gt;Open-Source Embeddings

&lt;ul&gt;
&lt;li&gt;Sentence Transformers&lt;/li&gt;
&lt;li&gt;Models on Hugging Face&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  Vector Databases
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Purpose and Functionality&lt;/li&gt;
&lt;li&gt;Popular Vector DBs

&lt;ul&gt;
&lt;li&gt;Chroma&lt;/li&gt;
&lt;li&gt;Pinecone&lt;/li&gt;
&lt;li&gt;Weaviate&lt;/li&gt;
&lt;li&gt;FAISS&lt;/li&gt;
&lt;li&gt;LanceDB&lt;/li&gt;
&lt;li&gt;Qdrant&lt;/li&gt;
&lt;li&gt;Supabase&lt;/li&gt;
&lt;li&gt;MongoDB Atlas&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Indexing Embeddings&lt;/li&gt;

&lt;li&gt;Performing Similarity Search&lt;/li&gt;

&lt;li&gt;Implementing Vector Search&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  RAG &amp;amp; Implementation
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;RAG Use Cases&lt;/li&gt;
&lt;li&gt;RAG vs Fine-tuning&lt;/li&gt;
&lt;li&gt;Chunking&lt;/li&gt;
&lt;li&gt;Embedding&lt;/li&gt;
&lt;li&gt;Vector Database&lt;/li&gt;
&lt;li&gt;Retrieval Process&lt;/li&gt;
&lt;li&gt;Generation&lt;/li&gt;
&lt;li&gt;Implementing RAG

&lt;ul&gt;
&lt;li&gt;Ways of Implementing RAG&lt;/li&gt;
&lt;li&gt;Using SDKs Directly&lt;/li&gt;
&lt;li&gt;LangChain&lt;/li&gt;
&lt;li&gt;Llama Index&lt;/li&gt;
&lt;li&gt;OpenAI Assistant API&lt;/li&gt;
&lt;li&gt;Replicate&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  Prompt Engineering
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;ReAct Prompting&lt;/li&gt;
&lt;li&gt;Manual Implementation&lt;/li&gt;
&lt;li&gt;OpenAI Functions / Tools&lt;/li&gt;
&lt;li&gt;OpenAI Assistant API&lt;/li&gt;
&lt;li&gt;Building AI Agents&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Multimodal AI
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Multimodal AI Use Cases

&lt;ul&gt;
&lt;li&gt;Image Understanding&lt;/li&gt;
&lt;li&gt;Image Generation&lt;/li&gt;
&lt;li&gt;Video Understanding&lt;/li&gt;
&lt;li&gt;Audio Processing&lt;/li&gt;
&lt;li&gt;Text-to-Speech&lt;/li&gt;
&lt;li&gt;Speech-to-Text&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Multimodal AI Tasks

&lt;ul&gt;
&lt;li&gt;OpenAI Vision API&lt;/li&gt;
&lt;li&gt;DALL-E API&lt;/li&gt;
&lt;li&gt;Whisper API&lt;/li&gt;
&lt;li&gt;Hugging Face Models&lt;/li&gt;
&lt;li&gt;LangChain for Multimodal Apps&lt;/li&gt;
&lt;li&gt;LlamaIndex for Multimodal Apps&lt;/li&gt;
&lt;li&gt;Implementing Multimodal AI&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  Next Steps
&lt;/h2&gt;

&lt;p&gt;At &lt;a href="https://roadmap.sh" rel="noopener noreferrer"&gt;roadmap.sh&lt;/a&gt; we have the comprehensive AI Engineering roadmap as well as the following that can help you on your travels!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://roadmap.sh/prompt-engineering" rel="noopener noreferrer"&gt;Prompt Engineer Roadmap&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://roadmap.sh/backend-engineer" rel="noopener noreferrer"&gt;Backend Engineer Roadmap&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://roadmap.sh/full-stack-engineer" rel="noopener noreferrer"&gt;Full Stack Engineer Roadmap&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>genai</category>
      <category>openai</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>19 Frontend Projects 🎨</title>
      <dc:creator>Dan</dc:creator>
      <pubDate>Wed, 23 Oct 2024 15:58:11 +0000</pubDate>
      <link>https://forem.com/grapplingdev/19-frontend-projects-5heo</link>
      <guid>https://forem.com/grapplingdev/19-frontend-projects-5heo</guid>
      <description>&lt;p&gt;Learning can be hard, especially when it comes to using the skills that you've learned.&lt;/p&gt;

&lt;p&gt;Some people are great at absorbing skills through visual means but a lot of people learn through building, which is why we have many frontend projects for you to have a go at!&lt;/p&gt;

&lt;h2&gt;
  
  
  Beginner
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://roadmap.sh/projects/single-page-cv" rel="noopener noreferrer"&gt;Single Page CV&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://roadmap.sh/projects/basic-html-website" rel="noopener noreferrer"&gt;Basic HTML Website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://roadmap.sh/projects/portfolio-website" rel="noopener noreferrer"&gt;Personal Portfolio&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://roadmap.sh/projects/changelog-component" rel="noopener noreferrer"&gt;Changelog Component&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://roadmap.sh/projects/testimonial-cards" rel="noopener noreferrer"&gt;Testimonial Cards&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://roadmap.sh/projects/datepicker-ui" rel="noopener noreferrer"&gt;Datepicker UI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://roadmap.sh/projects/accessible-form-ui" rel="noopener noreferrer"&gt;Accessible Form UI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://roadmap.sh/projects/image-grid" rel="noopener noreferrer"&gt;Image Grid Layout&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://roadmap.sh/projects/tooltip-ui" rel="noopener noreferrer"&gt;Tooltip UI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://roadmap.sh/projects/simple-tabs" rel="noopener noreferrer"&gt;Tabs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://roadmap.sh/projects/cookie-consent" rel="noopener noreferrer"&gt;Cookie Consent&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://roadmap.sh/projects/restricted-textarea" rel="noopener noreferrer"&gt;Restricted Text Area&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://roadmap.sh/projects/accordion" rel="noopener noreferrer"&gt;Accordian&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://roadmap.sh/projects/age-calculator" rel="noopener noreferrer"&gt;Age Calculator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://roadmap.sh/projects/flash-cards" rel="noopener noreferrer"&gt;Flash Cards&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Intermediate
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://roadmap.sh/projects/custom-dropdown" rel="noopener noreferrer"&gt;Custom Dropdown&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://roadmap.sh/projects/task-tracker-js" rel="noopener noreferrer"&gt;Task Tracker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://roadmap.sh/projects/github-random-repo" rel="noopener noreferrer"&gt;GitHub Random Repo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://roadmap.sh/projects/reddit-client" rel="noopener noreferrer"&gt;Reddit Client&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://roadmap.sh/projects/temperature-converter" rel="noopener noreferrer"&gt;Temperature Converter&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Each project is verified upon completion and added to the project contribution board where it can be upvoted!&lt;/p&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;

</description>
      <category>frontend</category>
      <category>html</category>
      <category>css</category>
    </item>
    <item>
      <title>The Ultimate Frontend Roadmap</title>
      <dc:creator>Dan</dc:creator>
      <pubDate>Tue, 22 Oct 2024 10:28:51 +0000</pubDate>
      <link>https://forem.com/grapplingdev/the-ultimate-frontend-roadmap-24kb</link>
      <guid>https://forem.com/grapplingdev/the-ultimate-frontend-roadmap-24kb</guid>
      <description>&lt;p&gt;I recently made a video covering the roadmap.sh frontend roadmap, let me know what you think!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/w3nt4k2jZUo"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>frontend</category>
      <category>roadmap</category>
    </item>
    <item>
      <title>Functional Programming &amp; The Future of Software Engineering</title>
      <dc:creator>Dan</dc:creator>
      <pubDate>Fri, 18 Oct 2024 07:34:49 +0000</pubDate>
      <link>https://forem.com/grapplingdev/functional-programming-the-future-of-software-engineering-174o</link>
      <guid>https://forem.com/grapplingdev/functional-programming-the-future-of-software-engineering-174o</guid>
      <description>&lt;p&gt;Last week, I had a great chat with Dillon Mulroy from Vercel, and the (almost) uncut recording is now live on YouTube!&lt;/p&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/c9ja2F-cZzY"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>vercel</category>
      <category>roadmapsh</category>
      <category>gleam</category>
      <category>ocaml</category>
    </item>
    <item>
      <title>Mastering Cyber Security</title>
      <dc:creator>Dan</dc:creator>
      <pubDate>Tue, 15 Oct 2024 12:23:35 +0000</pubDate>
      <link>https://forem.com/grapplingdev/mastering-cyber-security-e70</link>
      <guid>https://forem.com/grapplingdev/mastering-cyber-security-e70</guid>
      <description>&lt;p&gt;The world of cyber security is huge. It's a vast ocean of tools, acronyms, and frameworks, but do you need to know it all?&lt;/p&gt;

&lt;p&gt;Let's just focus on the high-level skills, in order, shall we?&lt;/p&gt;

&lt;p&gt;(we'll be using &lt;a href="https://roadmap.sh/cyber-security" rel="noopener noreferrer"&gt;roadmap.sh/cyber-security&lt;/a&gt; for this)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F973c3qwd1cn42lmkh4kd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F973c3qwd1cn42lmkh4kd.png" alt="Cyber Security Roadmap" width="800" height="517"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Basic IT Skills&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Cyber Security is an advanced field, it requires a lot of &lt;strong&gt;assumed knowledge&lt;/strong&gt;, one being basic IT skills.&lt;/p&gt;

&lt;p&gt;We're talking about the basics of Computer hardware, connection types, basic troubleshooting, and of course, basic networking.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Operating Systems&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;As a security professional, you cannot control what operating system clients will be using.&lt;/p&gt;

&lt;p&gt;You'll need to Be basically familiar with all Linux distributions, from Windows to MacOS.&lt;/p&gt;

&lt;p&gt;With Linux being the most popular, I would recommend diving far deeper into that.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Network Knowledge&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;A deep understanding of networking is a none negotiable in Cyber Security, with the requirement to know IP addressing inside out, packet sniffers, port scanning, and protocol analyzers all require you to know networking inside and out to be able to parse the results.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Security Skills&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The main meat of the industry, and a topic that reaches so far that I imagine a very limited amount of people truely understand it all.&lt;/p&gt;

&lt;p&gt;Including but not limited to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Forensics&lt;/li&gt;
&lt;li&gt;Runbooks&lt;/li&gt;
&lt;li&gt;Kill Chains&lt;/li&gt;
&lt;li&gt;Zero Trust&lt;/li&gt;
&lt;li&gt;Incident Response Tools&lt;/li&gt;
&lt;li&gt;Hacking Distros&lt;/li&gt;
&lt;li&gt;Logging&lt;/li&gt;
&lt;li&gt;Common Attacks&lt;/li&gt;
&lt;li&gt;Attack Types&lt;/li&gt;
&lt;li&gt;System Hardening&lt;/li&gt;
&lt;li&gt;And 100 other areas&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's overwhelming I'm sure but I would advise starting small and focusing on a certain niche instead of attempting to attack the entire industry.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Cloud Skills&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;While you're not expected to know the ins and outs of cloud engineering, you should however have a good grasp of Cloud Security, cloud models, cloud services, and the main providers.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Programming Skills&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;While being a seasoned programmer is not a requirement, much like DevOps, being familiar with the basics of Python, Bash and others can make you more productive and even help reverse-engineer or write your own tools in the future.&lt;/p&gt;




&lt;p&gt;The Cyber Security roadmap on &lt;a href="https://roadmap.sh" rel="noopener noreferrer"&gt;roadmap.sh&lt;/a&gt; is the biggest one on the platform with over 300 nodes, which of course can be very overwhelming, especially to a beginner so my advice would be to start small, and start by learning Linux and Networking basics, without these skills you will struggle when it comes to learning the advanced topics.&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>security</category>
      <category>cyber</category>
      <category>hacking</category>
    </item>
    <item>
      <title>Mastering DevOps</title>
      <dc:creator>Dan</dc:creator>
      <pubDate>Wed, 09 Oct 2024 10:56:26 +0000</pubDate>
      <link>https://forem.com/grapplingdev/mastering-devops-4fne</link>
      <guid>https://forem.com/grapplingdev/mastering-devops-4fne</guid>
      <description>&lt;p&gt;DevOps is a cultural and collaborative mindset that emphasizes communication, collaboration, integration, and automation between development and operations teams to achieve faster and more reliable software delivery.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp059339ihgblqtb337pa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp059339ihgblqtb337pa.png" alt="roadmap.sh devops roadmap" width="800" height="527"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;DevOps is not a specific job title or role, but rather a set of principles and practices that can be applied across a variety of roles in software development and IT operations. Anyone involved in the software development and delivery process can adopt a DevOps mindset and apply DevOps practices in their work, including developers, testers, operations engineers,  product managers, and others.&lt;/p&gt;

&lt;p&gt;At roadmap.sh, we have a roadmap that can take you from zero to hero in all things DevOps, Here's an overview of the roadmap but feel free to visit &lt;a href="https://roadmap.sh/devops" rel="noopener noreferrer"&gt;roadmap.sh/DevOps&lt;/a&gt; for the complete roadmap!&lt;/p&gt;

&lt;h2&gt;
  
  
  Learn a Programming Language
&lt;/h2&gt;

&lt;p&gt;It's not every day that DevOps Engineers write a significant amount of code, however, they're deploying and working within the ecosystem of multiple languages, which makes being away from the main languages a must. Automating away the day-to-day toil is also something that is achieved via scripting, so Bash and &lt;a href="https://roadmap.sh/python" rel="noopener noreferrer"&gt;Python&lt;/a&gt; are must-haves in the DevOps toolbox.&lt;/p&gt;

&lt;h2&gt;
  
  
  Operating Systems
&lt;/h2&gt;

&lt;p&gt;In a similar vein to Programming Languages, having a strong knowledge of the main operating systems will allow you to create pipelines and automation for both Windows and &lt;a href="https://roadmap.sh/linux" rel="noopener noreferrer"&gt;Linux&lt;/a&gt;. It is my personal opinion that a DevOps Engineer should have a high level of competency in Linux purely due to the fact that most servers and containers are Linux.&lt;/p&gt;

&lt;h2&gt;
  
  
  Terminal Knowledge
&lt;/h2&gt;

&lt;p&gt;Despite most tools having a Graphical Interface in today's age, the need for terminal knowledge is a must for DevOps Engineers. Being able to rapidly navigate the inner workings of OSs to troubleshoot issues or manually configure them is potentially a daily task.&lt;/p&gt;

&lt;h2&gt;
  
  
  Version Control Systems
&lt;/h2&gt;

&lt;p&gt;In the age of Configure and Infrastructure as code, Version control is no longer just for application code so having a deep understanding of this topic is important. It can also be a common occurrence that you will self-host your own VCS like &lt;a href="https://roadmap.sh/git-github" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; or GitLab, in which case knowing the ins and outs of the system is critical.&lt;/p&gt;

&lt;h2&gt;
  
  
  Containers
&lt;/h2&gt;

&lt;p&gt;Containers are lightweight and executable packages of software that ship with everything required to execute its purpose, containers are also an integral part of most systems today, if not part of the main infrastructure they're usually present in the form of pipeline workers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Networking &amp;amp; Protocols
&lt;/h2&gt;

&lt;p&gt;Understanding networking basics as well as the common suite of ports &amp;amp; protocols will help you to set up and troubleshoot infrastructure. Without a good level of knowledge in this area it can be quite difficult to pinpoint issues that occur between different elements of the infrastructure and it is usually the responsibility of the DevOps team to handle this.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cloud Providers
&lt;/h2&gt;

&lt;p&gt;While &lt;a href="https://roadmap.sh/aws" rel="noopener noreferrer"&gt;AWS&lt;/a&gt; reigns as the most popular provider out there, GCP and Azure and still powerful alternatives and depending on what company you go to, you could be using any one of them or a combination.&lt;/p&gt;

&lt;h2&gt;
  
  
  Serverless
&lt;/h2&gt;

&lt;p&gt;Serverless, especially when talking about serverless functions are a popular way of having functions execute without maintaining a permanent infrastructure behind them, AWS Lambda is a perfect example of this in which you can trigger the service to execute any given functionality, but it is not running on your server.&lt;/p&gt;

&lt;h2&gt;
  
  
  Provisioning
&lt;/h2&gt;

&lt;p&gt;Provisioning in DevOps refers to the declarative and stateful method of building infrastructure. The times of manually creating servers and maintaining them are gone and the new standard comes in the form of state and version-controlled infrastructure that is deployed by tools such as &lt;a href="https://roadmap.sh/terraform" rel="noopener noreferrer"&gt;Terraform&lt;/a&gt; and AWS CDK.&lt;/p&gt;




&lt;h2&gt;
  
  
  Learn More
&lt;/h2&gt;

&lt;p&gt;This article only covers the first half of the DevOps roadmap, so if you want to learn more and achieve mastery of the role, head over to &lt;a href="https://roadmap.sh/devops" rel="noopener noreferrer"&gt;roadmap.sh/devops&lt;/a&gt; to get started!&lt;/p&gt;

</description>
      <category>devops</category>
      <category>terraform</category>
      <category>aws</category>
      <category>bash</category>
    </item>
    <item>
      <title>Mastering Full Stack Development</title>
      <dc:creator>Dan</dc:creator>
      <pubDate>Wed, 09 Oct 2024 10:03:10 +0000</pubDate>
      <link>https://forem.com/grapplingdev/mastering-full-stack-development-20m5</link>
      <guid>https://forem.com/grapplingdev/mastering-full-stack-development-20m5</guid>
      <description>&lt;p&gt;Full stack development is the practice of being proficient in both the front-end and back-end aspects of web application development. A full stack developer is capable of working on all layers of a software application, from the user interface and user experience (front-end) to the server, database, and server-side logic (back-end). This versatility allows them to create and maintain complete web applications independently or as part of a development team.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faltiyx946ixwmpca096d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faltiyx946ixwmpca096d.png" alt="roadmap.sh full stack roadmap" width="800" height="584"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At &lt;a href="https://roadmap.sh" rel="noopener noreferrer"&gt;roadmap.sh&lt;/a&gt;, we have a comprehensive learning roadmap that will guide you through all stages of your journey to mastering &lt;a href="https://roadmap.sh/full-stack" rel="noopener noreferrer"&gt;Full-Stack development&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  HTML
&lt;/h2&gt;

&lt;p&gt;HTML stands for HyperText Markup Language and is used as the basis of a website structure. Image HTML as the skeleton, it holds everything in place but doesn't look too nice and can't do much on its own.&lt;/p&gt;

&lt;h2&gt;
  
  
  CSS
&lt;/h2&gt;

&lt;p&gt;CSS stands for Cascading Style Sheets and is responsible for transforming a simple HTML webpage into a visual feast for the eyes. With HTML and CSS you're 66% of the way to a beautiful, interactive webpage.&lt;/p&gt;

&lt;h2&gt;
  
  
  JavaScript
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://roadmap.sh/javascript" rel="noopener noreferrer"&gt;JavaScript&lt;/a&gt;, commonly referred to as just "JS", is a programming language that powers client-side webpage behaviour. If HTML and CSS are the skeleton and clothing, then JS will be the muscles that allow everything to move and interact with the world.&lt;/p&gt;

&lt;h2&gt;
  
  
  npm
&lt;/h2&gt;

&lt;p&gt;npm stands for Node Package Manager and is a free, opensource registry of JavaScript packages. npm is the default package manager for NodeJS and is used by millions of developers worldwide.&lt;/p&gt;

&lt;h2&gt;
  
  
  Git
&lt;/h2&gt;

&lt;p&gt;Created by the godfather of &lt;a href="https://roadmap.sh/linux" rel="noopener noreferrer"&gt;Linux&lt;/a&gt;, Linus Torvald, &lt;a href="https://roadmap.sh/git-github" rel="noopener noreferrer"&gt;Git&lt;/a&gt; is the powerhouse behind allowing developers to collaborate all over the world. The main purpose of Git is to control source code and allow versioning of files which enables multiple, disconnected people, to contribute to a code base effectively.&lt;/p&gt;

&lt;h2&gt;
  
  
  GitHub
&lt;/h2&gt;

&lt;p&gt;GitHub is the most popular developer platform that allows users to create, store, manage and share their code as well as many other functionalities. GitHub currently has 184,346,176 users as of writing this and gains almost 100k daily.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tailwind
&lt;/h2&gt;

&lt;p&gt;Tailwind CSS is an opensource, utility-first CSS framework that comes with hundreds of pre-built classes such as &lt;code&gt;bg-white&lt;/code&gt; that can be added directly to HTML or JSX in order to speed up development.&lt;/p&gt;

&lt;h2&gt;
  
  
  Node.js
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://roadmap.sh/nodejs" rel="noopener noreferrer"&gt;Node.js&lt;/a&gt; is a cross-platform, open-source runtime environment that allows JavaScript to run outside the web browser. Built on the V8 JavaScript engine, it supports operating systems like Windows, Linux, Unix, and macOS and enables developers to use JavaScript for server-side scripting and build command-line tools.&lt;/p&gt;

&lt;h2&gt;
  
  
  PostgreSQL
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://roadmap.sh/postgresql-dba" rel="noopener noreferrer"&gt;PostgreSQL&lt;/a&gt; is a powerful, open-source Object-Relational Database  Management System (ORDBMS) that is known for its robustness,  extensibility, and SQL compliance. It was initially developed at the  University of California, Berkeley, in the 1980s and has since become one of the most popular open-source databases in the world.&lt;/p&gt;

&lt;h2&gt;
  
  
  RESTful APIs
&lt;/h2&gt;

&lt;p&gt;A RESTful API is a programming interface that allows two machines to communicate securely over the internet. Most APIs from social media sites that connect to third-party tools are RESTful in nature.&lt;/p&gt;

&lt;h2&gt;
  
  
  JWT Auth
&lt;/h2&gt;

&lt;p&gt;JWT (JSON Web Token) authentication is a method for securely exchanging information between a client and server using a token. After a user logs in, the server generates a JWT containing encoded user data and sends it to the client. The client stores this token and includes it in the header of future requests to authenticate itself. The server then verifies the token to identify the user and authorize access without needing to maintain session data, making JWTs efficient and scalable for modern applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  Redis
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://roadmap.sh/redis" rel="noopener noreferrer"&gt;Redis&lt;/a&gt; is a very popular, source-available, in-memory data store that can be used as a database, caching system or message broker.&lt;/p&gt;

&lt;h2&gt;
  
  
  Linux Basics
&lt;/h2&gt;

&lt;p&gt;Understanding how to navigate Linux is a key skill required for full stack developers given the need to troubleshoot and maintain servers, containers and clusters.&lt;/p&gt;

&lt;p&gt;Knowing the file structure, navigation commands and file manipulation is a skill that will allow you to move around freely in Linux.&lt;/p&gt;

&lt;h2&gt;
  
  
  Basic AWS Services
&lt;/h2&gt;

&lt;p&gt;Basic &lt;a href="https://roadmap.sh/aws" rel="noopener noreferrer"&gt;AWS Services&lt;/a&gt; include EC2, S3, Route54, EKS and Secrets Manager and knowing what these services do and how to access them is an important skill. Many services will be deployed using IaC but knowing how to troubleshoot and access the services with API and Console is crucial.&lt;/p&gt;

&lt;h2&gt;
  
  
  GitHub Actions
&lt;/h2&gt;

&lt;p&gt;GitHub Actions are a workflow automation feature on the GitHub platform that allows you to build, test and deploy your code straight from where it is stored.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ansible
&lt;/h2&gt;

&lt;p&gt;Ansible is a powerful Configuration Management tool from Red Hat that allows you to define infrastructure imperatively although, with the many modules now available, Ansible can also be declarative.&lt;/p&gt;

&lt;h2&gt;
  
  
  Terraform
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://roadmap.sh/terraform" rel="noopener noreferrer"&gt;Terraform&lt;/a&gt;, developed by Hashicorp is a declarative Infrastructure as Code tool that helps to deploy and safely maintain infrastructure due to its stateful nature.&lt;/p&gt;

&lt;p&gt;Mastering full stack development is a long journey that involves many different domains, attempting to learn all areas in one go will end in disaster, at roadmap.sh we provide a guided roadmap to help you learn this role one domain at a time.&lt;/p&gt;

&lt;p&gt;Check out &lt;a href="https://roadmap.sh/full-stack" rel="noopener noreferrer"&gt;roadmap.sh/full-stack&lt;/a&gt; to get started!&lt;/p&gt;

</description>
      <category>fullstack</category>
      <category>javascript</category>
      <category>redis</category>
      <category>python</category>
    </item>
    <item>
      <title>Mastering Backend Development</title>
      <dc:creator>Dan</dc:creator>
      <pubDate>Thu, 03 Oct 2024 15:34:37 +0000</pubDate>
      <link>https://forem.com/roadmapsh/mastering-backend-development-mpb</link>
      <guid>https://forem.com/roadmapsh/mastering-backend-development-mpb</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx2g17vxltmritafmvnls.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx2g17vxltmritafmvnls.png" alt="backend roadmap on roadmap.sh" width="800" height="544"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Backend development is where the magic happens. It’s the backbone that powers the websites and applications users interact with every day. But mastering backend development isn’t as simple as learning a single language or framework. It’s about understanding how to build systems that are scalable, secure, and maintainable. It requires a deep knowledge of databases, APIs, security practices, and server management—skills that, when combined, turn a good developer into a great one.&lt;/p&gt;

&lt;p&gt;This guide will cover the topics listed on the &lt;a href="https://roadmap.sh/backend" rel="noopener noreferrer"&gt;backend roadmap&lt;/a&gt; so make sure to head over there to get the full content and track your progress.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;The Roadmap&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;1. Choosing the Right Language&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Backend development starts with selecting the right programming language. Popular choices include &lt;a href="https://roadmap.sh/javascript" rel="noopener noreferrer"&gt;JavaScript&lt;/a&gt; (Node.js) for event-driven servers, &lt;a href="https://roadmap.sh/python" rel="noopener noreferrer"&gt;Python&lt;/a&gt; for data-centric applications, Java for enterprise solutions, and &lt;a href="https://roadmap.sh/golang" rel="noopener noreferrer"&gt;Go&lt;/a&gt; for high-performance services. Each language has its strengths, so pick based on your project needs and long-term goals.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;2. Understanding HTTP and Networking&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Every backend service interacts with the internet using the HTTP protocol. Understanding concepts like GET, POST, PUT, and DELETE requests, as well as how DNS works, is essential. This knowledge will help you design APIs that are efficient and secure, and enable smooth communication between services.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;3. Working with Databases&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Backend development is incomplete without a solid grasp of databases. Learn the differences between Relational (&lt;a href="https://roadmap.sh/sql" rel="noopener noreferrer"&gt;SQL&lt;/a&gt;) and NoSQL databases, and when to use each. Whether it’s &lt;a href="https://roadmap.sh/postgresql" rel="noopener noreferrer"&gt;PostgreSQL&lt;/a&gt; for structured data or &lt;a href="https://roadmap.sh/mongodb" rel="noopener noreferrer"&gt;MongoDB&lt;/a&gt; for flexible document storage, mastering database management will enable you to store and retrieve data efficiently.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;4. API Design and Development&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;APIs are how different parts of a system communicate. Whether you choose REST, GraphQL, or gRPC, designing a robust API is key to building scalable backend services. Make sure to focus on security, versioning, and providing clear documentation to ease integration.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;5. Authentication and Authorization&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Security is critical in backend development. Implementing authentication mechanisms like OAuth, JWT, and Basic Auth ensures that only authorized users can access your services. Understanding these strategies will protect your APIs from common attacks and secure user data.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;6. Caching Strategies&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Caching improves application performance by storing copies of frequently requested data. Tools like Redis and Memcached can help speed up your responses and reduce the load on your databases. Properly using server-side and client-side caching will drastically improve your app’s speed and scalability.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;7. Architectural Patterns&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Choosing the right architectural pattern is essential for building scalable systems. From Monolithic architectures to Microservices and Service-Oriented Architecture (SOA), understanding these patterns helps you organize your codebase and improve maintainability as your project grows.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;8. Message Brokers&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;When dealing with distributed systems, message brokers like RabbitMQ and Apache Kafka are crucial for handling communication between services. They enable asynchronous processing, making your application more resilient and responsive under heavy load.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;9. Testing and Debugging&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Ensuring code quality through testing is non-negotiable. Learn to write unit, integration, and functional tests using tools like pytest, JUnit, or Jest. A strong testing strategy will help you catch bugs early and improve the reliability of your backend services.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;10. Observability and Monitoring&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;It’s not enough to build and deploy an application—you need to keep an eye on its health. Implement logging, metrics, and tracing to monitor performance and diagnose issues quickly. Tools like ELK Stack, Prometheus, and Grafana can provide real-time insights into your application’s behavior.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;11. Server-Side Security&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Security in the backend goes beyond user authentication. Implement practices like input validation, error handling, and protection against SQL Injection, XSS, and CSRF. Follow OWASP guidelines to safeguard your services from common vulnerabilities.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;12. Containerization and Orchestration&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Using containers like Docker helps package applications into isolated environments, making deployments consistent and reliable. For managing multiple containers, learn Kubernetes to handle orchestration, scaling, and ensuring zero downtime deployments.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;13. CI/CD Pipelines&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Automating the build and deployment process through CI/CD pipelines is crucial for delivering updates quickly and reliably. Tools like Jenkins, &lt;a href="https://roadmap.sh/git-github" rel="noopener noreferrer"&gt;GitHub Actions&lt;/a&gt;, and GitLab CI/CD help streamline deployments, reduce human error, and maintain consistency across environments.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;14. Scaling and Load Balancing&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Designing systems that scale with user demand is a key skill. Implement load balancing and learn about different scaling strategies (vertical vs. horizontal) to handle increasing traffic. Tools like Nginx, HAProxy, and AWS Elastic Load Balancing help distribute the load evenly across servers.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;15. Building for High Availability and Resilience&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;To ensure your systems stay operational under all conditions, implement redundancy, circuit breakers, and auto-scaling strategies. Understanding failure modes and designing with graceful degradation in mind will help you build systems that are fault-tolerant and reliable.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;16. Serverless Architectures&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;For highly scalable and cost-effective solutions, consider going serverless with platforms like AWS Lambda or Google Cloud Functions. Serverless allows you to focus on code without worrying about server management, making it ideal for microservices and event-driven architectures.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;17. Event-Driven Architectures&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;In modern applications, event-driven patterns are increasingly popular. Implement CQRS (Command Query Responsibility Segregation) and Event Sourcing to handle complex business logic and create more responsive systems. Tools like Kafka are essential for building these architectures.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;18. DevOps and Automation&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Backend development often intersects with DevOps practices. Learn to use Infrastructure as Code (IaC) tools like &lt;a href="https://roadmap.sh/terraform" rel="noopener noreferrer"&gt;Terraform&lt;/a&gt; and Ansible to automate infrastructure management. This will help you deploy faster, reduce manual work, and keep environments consistent.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;19. Continuous Learning&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Backend development is a rapidly evolving field. Stay up-to-date with the latest technologies, frameworks, and best practices by following blogs, reading documentation, and contributing to open-source projects. Being a backend developer means continuously adapting to new challenges.&lt;/p&gt;

&lt;h2&gt;
  
  
  Practice Makes Permenent
&lt;/h2&gt;

&lt;p&gt;Once you've hit a milestone in your learning journey, I highly encourage you to practice what you've built by creating something. Roadmap.sh has loads of &lt;a href="https://roadmap.sh/projects" rel="noopener noreferrer"&gt;projects&lt;/a&gt; that you can test your skills against, and better yet, your completed projects will be displayed on a leaderboard where other users can vote and interact with it!&lt;/p&gt;

&lt;p&gt;Head over to &lt;a href="https://roadmap.sh/backend" rel="noopener noreferrer"&gt;roadmap.sh/backend&lt;/a&gt; for the full roadmap!&lt;/p&gt;

</description>
      <category>backend</category>
      <category>backenddevelopment</category>
      <category>python</category>
      <category>database</category>
    </item>
    <item>
      <title>Mastering Frontend Development</title>
      <dc:creator>Dan</dc:creator>
      <pubDate>Thu, 03 Oct 2024 13:37:49 +0000</pubDate>
      <link>https://forem.com/roadmapsh/mastering-frontend-development-1n01</link>
      <guid>https://forem.com/roadmapsh/mastering-frontend-development-1n01</guid>
      <description>&lt;p&gt;If you're starting your front-end development journey, it can be easy to get confused with all the frameworks and options. It's no wonder most beginners ask, "Where do I even start?".&lt;/p&gt;

&lt;p&gt;Mastering frontend development is not straightforward. It's a journey with twists, based on your goals. This guide offers a clear path. We'll use the &lt;a href="https://roadmap.sh/frontend" rel="noopener noreferrer"&gt;roadmap.sh frontend roadmap&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fczw4ffproaq3xtia84if.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fczw4ffproaq3xtia84if.png" alt="frontend roadmap on roadmap.sh" width="800" height="490"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding the Basics
&lt;/h2&gt;

&lt;p&gt;Given that you'll be creating websites and projects that are hosted on the internet, understanding what the internet is will be a good starting point.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Internet
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6hdjlix4ad6lzwaq3qpv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6hdjlix4ad6lzwaq3qpv.png" alt="the interconnected web that is the internet" width="800" height="541"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The internet is a global network of interconnected computers, like a giant spiderweb of devices that span the globe. Each of these devices, which can be a server, router, or cable, communicates with each other using universally standardized protocols such as TCP/IP. When you type a website, or URL, into your browser it will send a request to a Domain Name System (DNS) which is essentially an all-knowing server that knows the true identity (IP Address) of the URL you have requested. Once the DNS Server has found the website you're looking for it will return it to your device in the form of "packets".&lt;/p&gt;

&lt;p&gt;Packets are required when large amounts of data want to be sent over the internet such as video files or websites and they are broken into three main elements, a header, payload, and trailer.&lt;/p&gt;

&lt;h3&gt;
  
  
  HTML
&lt;/h3&gt;

&lt;p&gt;Hyper-Text Markup Language (HTML) is the backbone of any webpage, it provides the layout of the website in a logical, human-readable structure by using tagged elements such as a &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt;, and &lt;code&gt;&amp;lt;footer&amp;gt;&lt;/code&gt; (with much more existing).&lt;/p&gt;

&lt;p&gt;I like to think of HTML as the naked skeleton of a webpage, it doesn't look too pretty and it can't move on its own but it has all the pieces in the right places.&lt;/p&gt;

&lt;h3&gt;
  
  
  CSS
&lt;/h3&gt;

&lt;p&gt;Cascading Style Sheets (CSS) are what allow you to turn your blank skeleton into a visually appealing and responsive website by adding rules that control the tagged elements we spoke about in the previous section.&lt;br&gt;
CSS is also what allows a website to look different on a mobile vs a tablet or desktop setup using responsive layouts that adapt to the size of the device it is viewed on!&lt;/p&gt;

&lt;p&gt;While understanding what CSS is and how to use it, styling websites has become a lot simpler in recent years with the introduction of frameworks like tailwind.css and Daisy UI which replace complex and long CSS files with simple tags added directly to HTML elements.&lt;/p&gt;

&lt;h3&gt;
  
  
  JavaScript
&lt;/h3&gt;

&lt;p&gt;JavaScript (typically shortened to 'JS') is the programming language that brings a website to life, it allows for interactive behavior, animations, and much more. It achieves this by interacting with the Document Object Model (DOM) to manipulate HTML elements, react to user actions, or retrieve data from Application Programming Interfaces (APIs) without having to refresh the page! (following me on this platform is an example of using JS to react to a user action without refreshing the page!)&lt;/p&gt;

&lt;h2&gt;
  
  
  Choosing a Framework
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foy6ps8lsrx520c6l52t4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foy6ps8lsrx520c6l52t4.png" alt="react, svelte, angular and vue" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When it comes to picking your first frontend framework, the options can feel endless: React, Vue.js, Angular, Svelte, and more. The choice often depends on the type of projects you’re building. For traditional Single Page Applications (SPAs), React and Vue.js are solid picks. If you need more structure and enterprise-level support, Angular might be the way to go.&lt;/p&gt;

&lt;p&gt;But if your focus is on building lightning-fast content sites or blogs, consider checking out Astro. Unlike typical frontend frameworks, Astro focuses on server-first rendering, delivering HTML by default and only loading JavaScript when necessary. This approach makes Astro a powerful choice for static sites and applications that prioritize performance and SEO. Plus, it plays nicely with React, Svelte, and other frameworks, so you don’t have to pick just one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Advanced Tools and Concepts
&lt;/h2&gt;

&lt;p&gt;Once you’re comfortable with the basics and have picked your preferred frontend framework, it’s time to explore more advanced tools and concepts that can elevate your projects. This includes state management, build tools, testing frameworks, and modern frontend approaches like SSR and SSG.&lt;/p&gt;

&lt;h3&gt;
  
  
  Server-Side Rendering (SSR) and Static Site Generation (SSG)
&lt;/h3&gt;

&lt;p&gt;If you’re looking to optimize for speed and SEO, you should consider adopting SSR and SSG frameworks. Traditionally, React-based solutions like Next.js or Vue’s Nuxt.js dominate this space, but a newer contender is Astro.&lt;/p&gt;

&lt;p&gt;Astro’s unique approach to SSG allows you to create pages with zero JavaScript by default, delivering only the necessary JS components when needed.&lt;/p&gt;

&lt;p&gt;This “Islands Architecture” ensures that your site is as lean as possible, making it a perfect fit for content-heavy sites, blogs, or e-commerce platforms that require fast loading times. Astro’s flexibility to integrate with other libraries like React, Svelte, and Vue also means you can use it to add interactivity without sacrificing speed.&lt;/p&gt;

&lt;p&gt;Exploring frameworks like Astro early on can give you a solid understanding of when to use SSR, SSG, or a mix of both, depending on your application’s needs.&lt;/p&gt;

&lt;h3&gt;
  
  
  State Management
&lt;/h3&gt;

&lt;p&gt;Understanding how to handle complex states is crucial for building interactive applications. Tools like Redux or React’s Context API are popular for large-scale applications, but smaller libraries like Zustand or Vuex might be better suited for more lightweight projects.&lt;/p&gt;

&lt;h3&gt;
  
  
  Testing Frameworks
&lt;/h3&gt;

&lt;p&gt;Testing is often overlooked but critical to maintaining quality in your codebase. Start with Jest for unit tests, then move to Cypress or Playwright for end-to-end testing as your application scales.&lt;/p&gt;

&lt;h2&gt;
  
  
  Performance Optimization
&lt;/h2&gt;

&lt;p&gt;Performance optimization is more than just using tinypng.com to compress your image files. It’s about delivering a fast, seamless experience, especially when users are quick to leave a site that takes more than a couple of seconds to load (this is called a Bounce Rate). To get there, you need a mix of strategies and the right tools in your toolbox.&lt;/p&gt;

&lt;p&gt;Here are some core techniques to master:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;RAIL Model: This model helps you optimize based on Response, Animation, Idle, and Load. Each phase focuses on a different aspect of performance, such as minimizing load time or ensuring animations feel smooth and responsive.&lt;/li&gt;
&lt;li&gt;PRPL Pattern: Standing for Push, Render, Pre-cache, and Lazy-load, this pattern is all about getting critical content in front of users as quickly as possible while delaying non-essential assets. Frameworks like Next.js or Astro make it easier to implement this by allowing you to define what loads first and what can be deferred.&lt;/li&gt;
&lt;li&gt;Code Splitting and Lazy Loading: Use techniques like code splitting (Webpack, esbuild, or Vite) to break your JavaScript into smaller chunks. This reduces the initial load and lets you only serve the code required for the current page, so you can lazy load images and other resources that aren’t immediately visible to cut down on render time.&lt;/li&gt;
&lt;li&gt;Minimize Critical Rendering Path: The critical rendering path includes everything the browser needs to render the initial view of your page. Remove unnecessary CSS, defer non-essential JavaScript, and prioritize visible content to make this path as short as possible.&lt;/li&gt;
&lt;li&gt;Optimizing Core Web Vitals: Google’s Core Web Vitals measure your site’s real-world performance in three areas: Loading Speed (Largest Contentful Paint), Interactivity (First Input Delay), and Visual Stability (Cumulative Layout Shift). Use tools like Lighthouse to identify your scores and focus on optimizing these metrics.&lt;/li&gt;
&lt;li&gt;Ahrefs for SEO and Performance Insights: Getting your site to load fast is crucial, but what good is it if users can’t find it? That’s where Ahrefs comes in. Ahrefs is a powerful SEO tool that allows you to analyze your site’s health, identify slow-loading pages, and even uncover technical issues that might be hindering your performance. Use Ahrefs to perform a Site Audit and spot any broken links, missing meta tags, or slow-loading pages. Their PageSpeed Insights feature can help you identify exactly which resources are dragging down your load times, while the Content Gap Analysis reveals keywords your competitors are ranking for that you might be missing out on. Addressing these issues early can lead to better rankings and more organic traffic.&lt;/li&gt;
&lt;li&gt;Server-Side Rendering (SSR) &amp;amp; Static Site Generation (SSG): Whether you’re using Next.js, Nuxt.js, or even Astro, consider incorporating SSR or SSG where appropriate. These techniques generate HTML at build or request time, drastically cutting down on load times and improving SEO.&lt;/li&gt;
&lt;li&gt;Use Browser APIs and Developer Tools: DevTools is your best friend. Use it to analyze your site’s performance, identify bottlenecks, and simulate slower networks or devices. For in-depth analysis, pair it with Lighthouse to dig into render-blocking resources or large payloads.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Performance isn’t about obsessing over every millisecond—it’s about optimizing the entire journey from the server to the user’s screen. It’s a continuous process that involves not just code, but design, strategy, and constant refinement. Whether you’re using tools like Astro for static generation or sticking to traditional optimization strategies, remember that every improvement—no matter how small—adds up to a better user experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Practice makes permenent
&lt;/h2&gt;

&lt;p&gt;Ever heard of tutorial hell? It's a real place and somewhere you can get stuck in if you never practice what you're learning. Documentation, Roadmaps, Videos, and Articles are amazing ways to learn but there is a saying..."Stop pouring, start drinking" (Which comes from this amazing video about taking action).&lt;/p&gt;

&lt;p&gt;Building things with the skills that you pick up in your journey will help cement the topic and also validate your skills to yourself. At roadmap.sh we have loads of projects to get stuck into when learning Frontend development and they range from beginner to advanced, so when you feel ready you should go and give them a go.&lt;/p&gt;

&lt;h2&gt;
  
  
  Constant Learning
&lt;/h2&gt;

&lt;p&gt;Mastering frontend development isn’t just about checking boxes on a roadmap—it’s about understanding the "why" behind each tool, technique, and decision you make. It’s a journey that involves continuous learning, experimenting, and optimizing your workflows. By laying a strong foundation in HTML, CSS, and JavaScript, choosing the right frameworks, and diving into advanced tools, you set yourself up for success.&lt;/p&gt;

&lt;p&gt;Performance optimization, as we’ve discussed, is a core part of this journey. But don’t get too bogged down with trying to optimize every detail from the start. Focus on building first, have fun, and then use tools like Ahrefs, Lighthouse, and DevTools to fine-tune your app’s speed and SEO.&lt;/p&gt;

&lt;p&gt;Remember, mastering frontend is not a destination but a continuous process. Stick to your &lt;a href="https://roadmap.sh/frontend" rel="noopener noreferrer"&gt;roadmap&lt;/a&gt;, tackle real-world projects, and keep revisiting these principles as you grow. With each new challenge you overcome, you’ll be that much closer to calling yourself a frontend master.&lt;/p&gt;

</description>
      <category>frontend</category>
      <category>angular</category>
      <category>astro</category>
    </item>
  </channel>
</rss>
