<?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: AbdulGoniyy Adeleke Dare</title>
    <description>The latest articles on Forem by AbdulGoniyy Adeleke Dare (@daretechie).</description>
    <link>https://forem.com/daretechie</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%2F351178%2F4b72acd8-2454-42ff-b5b1-33d7c718bff4.png</url>
      <title>Forem: AbdulGoniyy Adeleke Dare</title>
      <link>https://forem.com/daretechie</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/daretechie"/>
    <language>en</language>
    <item>
      <title>What Artemis II Says About Systems Thinking, Safety, and Human Judgment</title>
      <dc:creator>AbdulGoniyy Adeleke Dare</dc:creator>
      <pubDate>Fri, 10 Apr 2026 07:05:33 +0000</pubDate>
      <link>https://forem.com/daretechie/what-artemis-ii-says-about-systems-thinking-safety-and-human-judgment-4j0e</link>
      <guid>https://forem.com/daretechie/what-artemis-ii-says-about-systems-thinking-safety-and-human-judgment-4j0e</guid>
      <description>&lt;h1&gt;
  
  
  What Artemis II Says About Systems Thinking, Safety, and Human Judgment
&lt;/h1&gt;

&lt;p&gt;NASA launched Artemis II on April 1, 2026, beginning the first crewed lunar flyby in more than 50 years.&lt;/p&gt;

&lt;p&gt;Most public conversation around the mission quite naturally focused on the launch, the crew, and the symbolism of returning humans to deep space. For builders, educators, and product people, the more durable lesson is different: Artemis II is a useful case study in systems thinking, safety engineering, and human-in-the-loop design.&lt;/p&gt;

&lt;p&gt;That matters to me because a lot of AI and education marketing still frames technology as if good products come from one clever model, one impressive demo, or one dramatic breakthrough. Artemis II is a reminder that real systems do not work that way.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Systems Beat Tricks
&lt;/h2&gt;

&lt;p&gt;Artemis II is not "a rocket story." It is a systems story.&lt;/p&gt;

&lt;p&gt;The mission depends on launch infrastructure, flight software, the Orion spacecraft, the Space Launch System, communications, ground operations, crew procedures, and recovery planning. None of those pieces is sufficient on its own.&lt;/p&gt;

&lt;p&gt;That is a useful correction for anyone building educational technology. Children should not only be taught isolated features or flashy AI moments. They should be helped to see how inputs, decisions, constraints, testing, and outputs fit together.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Testing Is Part of the Product
&lt;/h2&gt;

&lt;p&gt;One of the healthiest ideas embedded in Artemis II is that the test flight is not a side quest. It is part of the actual work required before future missions go further.&lt;/p&gt;

&lt;p&gt;That mindset translates surprisingly well to education products and AI systems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;do not treat evaluation as a late-stage checkbox&lt;/li&gt;
&lt;li&gt;make testing visible&lt;/li&gt;
&lt;li&gt;expect revision&lt;/li&gt;
&lt;li&gt;separate "interesting demo" from "trusted system"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There is a strong lesson here for child-facing AI products. If we want children to build responsibly, we should expose them early to the idea that testing is normal, expected, and valuable.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Human-in-the-Loop Still Matters
&lt;/h2&gt;

&lt;p&gt;Artemis II is deeply automated in many ways, but NASA also designed the mission so astronauts would manually fly Orion during a proximity operations demonstration.&lt;/p&gt;

&lt;p&gt;That matters because it undercuts a very common cultural mistake: assuming advanced automation removes the need for human understanding.&lt;/p&gt;

&lt;p&gt;It does not.&lt;/p&gt;

&lt;p&gt;In high-stakes systems, human judgment still matters for supervision, interpretation, intervention, and trust. That is just as relevant in AI product design as it is in spaceflight.&lt;/p&gt;

&lt;p&gt;For child AI education, this is a particularly important design principle. We should not teach children that good technology means pressing a button and accepting the result. We should teach them to inspect outputs, question assumptions, and understand failure modes.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Safety Shapes Design
&lt;/h2&gt;

&lt;p&gt;Artemis II is a useful reminder that constraints are not the enemy of ambitious systems. Safety requirements shape the system architecture.&lt;/p&gt;

&lt;p&gt;In educational technology, the same should be true.&lt;/p&gt;

&lt;p&gt;If a platform is intended for children, moderation, privacy, age-appropriateness, and controlled failure modes should not be treated as optional layers added after growth. They should shape the product from the beginning.&lt;/p&gt;

&lt;p&gt;That is one reason I think K-12 AI products should be judged less by "how impressive is the model?" and more by "what kind of behaviour does the system invite, constrain, and reinforce?"&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Narrative Is a Real Teaching Tool
&lt;/h2&gt;

&lt;p&gt;Artemis II also highlights something useful for educators: narrative gives technical learning emotional weight.&lt;/p&gt;

&lt;p&gt;Children do not stay engaged because we tell them a concept is important. They stay engaged because the concept is attached to a meaningful challenge.&lt;/p&gt;

&lt;p&gt;That is why space missions, rescue scenarios, game worlds, and guided stories work so well as learning frames. They give abstract ideas a reason to matter.&lt;/p&gt;

&lt;p&gt;Used well, narrative does not dilute rigour. It improves entry and retention.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Matters for StackJunior
&lt;/h2&gt;

&lt;p&gt;At &lt;a href="https://stackjunior.com" rel="noopener noreferrer"&gt;StackJunior&lt;/a&gt;, the opportunity is not just to teach children "about AI." It is to help them develop the habits behind good technical work:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;thinking in systems&lt;/li&gt;
&lt;li&gt;testing instead of guessing&lt;/li&gt;
&lt;li&gt;understanding that tools can fail&lt;/li&gt;
&lt;li&gt;building with constraints&lt;/li&gt;
&lt;li&gt;treating human judgment as part of the workflow&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is one reason a mission like Artemis II is so useful. It gives us a concrete, current example of how serious technology actually works.&lt;/p&gt;

&lt;p&gt;If we want children to grow into thoughtful builders, we should show them more case studies like this and give them small, safe ways to build systems of their own.&lt;/p&gt;

&lt;h2&gt;
  
  
  Selected Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.nasa.gov/mission/artemis-ii" rel="noopener noreferrer"&gt;NASA mission page — Artemis II&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nasa.gov/event/artemis-ii-launch/" rel="noopener noreferrer"&gt;NASA launch event page — Artemis II&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nasa.gov/news-release/liftoff-nasa-launches-astronauts-on-historic-artemis-moon-mission/" rel="noopener noreferrer"&gt;NASA news release — Artemis II launch, April 1, 2026&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nasa.gov/missions/artemis/orion/how-to-fly-nasas-orion-spacecraft/" rel="noopener noreferrer"&gt;NASA article — How to Fly Orion Spacecraft&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>space</category>
      <category>technology</category>
      <category>systemsthinking</category>
      <category>education</category>
    </item>
    <item>
      <title>Guardrails actually not enough</title>
      <dc:creator>AbdulGoniyy Adeleke Dare</dc:creator>
      <pubDate>Tue, 30 Dec 2025 16:54:40 +0000</pubDate>
      <link>https://forem.com/daretechie/guardrails-actually-not-enough-560g</link>
      <guid>https://forem.com/daretechie/guardrails-actually-not-enough-560g</guid>
      <description>&lt;p&gt;

&lt;/p&gt;
&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/daretechie/why-agent-guardrails-arent-enough-29kk" class="crayons-story__hidden-navigation-link"&gt;Why Agent Guardrails Aren't Enough&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/daretechie" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F351178%2F4b72acd8-2454-42ff-b5b1-33d7c718bff4.png" alt="daretechie profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/daretechie" class="crayons-story__secondary fw-medium m:hidden"&gt;
              AbdulGoniyy Adeleke Dare
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                AbdulGoniyy Adeleke Dare
                
              
              &lt;div id="story-author-preview-content-3130721" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/daretechie" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F351178%2F4b72acd8-2454-42ff-b5b1-33d7c718bff4.png" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;AbdulGoniyy Adeleke Dare&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/daretechie/why-agent-guardrails-arent-enough-29kk" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Dec 27 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/daretechie/why-agent-guardrails-arent-enough-29kk" id="article-link-3130721"&gt;
          Why Agent Guardrails Aren't Enough
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/machinelearning"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;machinelearning&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/agents"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;agents&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/daretechie/why-agent-guardrails-arent-enough-29kk#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;




</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>programming</category>
      <category>agents</category>
    </item>
    <item>
      <title>Why Your AI Needs Both Intuition and Rules</title>
      <dc:creator>AbdulGoniyy Adeleke Dare</dc:creator>
      <pubDate>Tue, 30 Dec 2025 15:35:46 +0000</pubDate>
      <link>https://forem.com/daretechie/why-your-ai-needs-both-intuition-and-rules-207e</link>
      <guid>https://forem.com/daretechie/why-your-ai-needs-both-intuition-and-rules-207e</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;📊 &lt;strong&gt;TL;DR:&lt;/strong&gt; Pure neural safety is a black box. Pure symbolic safety is too brittle. Hybrid "Neuro-Symbolic" systems combine the speed of rules with the adaptability of neural nets to create robust agent governance.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The Case for Neuro-Symbolic Agent Safety
&lt;/h2&gt;

&lt;p&gt;There's a debate in AI safety circles that most people don't know about. It happens in academic papers and obscure Discord servers. But it will define how we control AI agents for the next decade.&lt;/p&gt;

&lt;p&gt;The debate is simple: should we use neural networks or symbolic rules to make AI safe?&lt;/p&gt;

&lt;p&gt;The answer might be: &lt;strong&gt;yes.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Two Camps
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Camp Neural:&lt;/strong&gt; Use machine learning to detect dangerous patterns. Train models on examples of harmful behaviour. Let the AI learn what "unsafe" looks like.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Pros:&lt;/em&gt; Flexible, handles ambiguity, generalises to novel situations.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Cons:&lt;/em&gt; Black box, unpredictable, requires massive training data.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Camp Symbolic:&lt;/strong&gt; Define explicit rules. If action == "delete_database", block. No learning, no ambiguity.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Pros:&lt;/em&gt; Transparent, predictable, auditable.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Cons:&lt;/em&gt; Brittle, can't handle edge cases, requires exhaustive rule-writing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both camps have built impressive systems. Both have failed spectacularly. Neural systems miss obvious attacks because their training data didn't include that exact pattern. Symbolic systems block legitimate actions because the rule was too broad.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Neuro-Symbolic Hypothesis
&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%2Fmjxp669ae4fuody9ee2e.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%2Fmjxp669ae4fuody9ee2e.png" alt="Symbolic (Fast Path) vs Neural (Slow Path" width="800" height="800"&gt;&lt;/a&gt;&lt;br&gt;
What if we combined them? &lt;/p&gt;

&lt;p&gt;The idea isn't new—researchers have explored hybrid approaches for years. But for agent safety specifically, the combination is compelling:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Fast Path (Symbolic):&lt;/strong&gt; Check explicit rules first. Known dangerous patterns? Block instantly. Sub-millisecond. &lt;br&gt;
&lt;strong&gt;2. Slow Path (Neural):&lt;/strong&gt; If the symbolic path passes, run neural inference. Classify intent. Detect subtle manipulation.&lt;br&gt;
&lt;strong&gt;3. Combined Verdict:&lt;/strong&gt; Weight both signals. A symbolic "allow" with a neural "suspicious" might trigger human review.&lt;/p&gt;

&lt;p&gt;This isn't theoretical. As of 2025, early implementations are showing promise:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rule-based symbolic checks run in &lt;strong&gt;single-digit milliseconds&lt;/strong&gt; (often 10-50ms), catching the majority of obvious policy violations.&lt;/li&gt;
&lt;li&gt;Neural classifiers add deeper context analysis in approximately 50-200ms.&lt;/li&gt;
&lt;li&gt;Combined systems (like &lt;strong&gt;GuardFormer&lt;/strong&gt;, presented at NeurIPS 2024) have shown significantly lower false-positive rates than either approach alone, outperforming GPT-4 in safety benchmarks.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;"Rules catch the attacks we know. Networks catch the attacks we don't."&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Why This Matters for Agents
&lt;/h2&gt;

&lt;p&gt;AI agents are uniquely challenging because they operate over multiple steps. A single prompt might be benign. But a sequence of ten prompts, each individually harmless, might constitute a sophisticated attack.&lt;/p&gt;

&lt;p&gt;Symbolic systems excel at single-step analysis. Neural systems excel at pattern recognition across sequences. Combined, they can track intent over time.&lt;/p&gt;

&lt;p&gt;Consider: an agent asks for employee contact information. Innocent. Then asks for salary data. Still plausible. Then asks to draft an email. Then asks to send it without review. Each step passes guardrails. The sequence is social engineering.&lt;/p&gt;

&lt;p&gt;A neuro-symbolic system can:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Symbolically verify each step is allowed.&lt;/li&gt;
&lt;li&gt;Neurally track the emerging pattern.&lt;/li&gt;
&lt;li&gt;Raise alarms when intent drifts toward manipulation.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  The Practical Challenges
&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%2Fikj85nk4e63dldol9cr6.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%2Fikj85nk4e63dldol9cr6.png" alt="Enterprise Trust in Regulated Sectors" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This isn't a solved problem. Neuro-symbolic systems face real limitations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Latency trade-offs:&lt;/strong&gt; Neural inference is slower. For real-time agents, you can't afford 500ms classification per action.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Training data:&lt;/strong&gt; Neural components need examples. Adversarial examples of agent attacks are rare.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interpretability:&lt;/strong&gt; When the neural component blocks an action, can you explain why? Regulators will ask.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Maintenance burden:&lt;/strong&gt; Now you have two systems to maintain, train, and debug.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Direction of Travel
&lt;/h2&gt;

&lt;p&gt;Despite the challenges, the direction is clear. Pure symbolic systems can't handle the complexity of natural language agents. Pure neural systems can't provide the guarantees enterprises require.&lt;/p&gt;

&lt;p&gt;The most sophisticated agent safety systems emerging today are hybrid. The NSF-funded &lt;strong&gt;EAGER project&lt;/strong&gt; (active through September 2025) is exploring knowledge-guided neuro-symbolic AI in healthcare, demonstrating that hybrid approaches can achieve clinically safer outcomes than purely neural methods.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"The future of AI safety is not choosing between intuition and rules. It's teaching them to work together."&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Takeaway
&lt;/h2&gt;

&lt;p&gt;Symbolic rules are necessary but insufficient. Neural classification is powerful but opaque. The combination—neuro-symbolic safety—might be the architecture that finally lets us trust AI agents with consequential actions.&lt;/p&gt;

&lt;p&gt;We're not there yet. But the path is becoming clearer.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Are you building hybrid safety systems? What's working? I'd love to hear your experiences in the comments.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>safety</category>
      <category>machinelearning</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Why Agent Guardrails Aren't Enough</title>
      <dc:creator>AbdulGoniyy Adeleke Dare</dc:creator>
      <pubDate>Sat, 27 Dec 2025 22:17:47 +0000</pubDate>
      <link>https://forem.com/daretechie/why-agent-guardrails-arent-enough-29kk</link>
      <guid>https://forem.com/daretechie/why-agent-guardrails-arent-enough-29kk</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;📊 &lt;strong&gt;TL;DR:&lt;/strong&gt; Agent guardrails are reactive and can't handle novel failures. We need verification before execution, coordination between agents, cryptographic accountability, and real kill switches.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The Coming Crisis No One Wants to Talk About
&lt;/h2&gt;

&lt;p&gt;In 2024, a multi-agent research tool experienced what's been called a "runaway agent loop"—two agents continuously interacting with each other for 11 days straight before anyone noticed. The API bill? $47,000. In that same year, expense report AI agents began fabricating plausible entries—fake restaurant names, false receipts—when they couldn't interpret unclear documents. By September 2025, expense management platform Ramp reported flagging over $1 million in AI-generated fraudulent invoices in just 90 days.&lt;/p&gt;

&lt;p&gt;These aren't hypotheticals. These are documented failures—and in 2025, the stakes are even higher.&lt;/p&gt;

&lt;p&gt;As companies race to deploy autonomous AI agents—software that can browse the web, execute code, and make decisions—a dangerous assumption has taken hold: that we can control them with simple guardrails.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;We can't.&lt;/strong&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%2Fh24e3vrs8q342yp8w33m.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%2Fh24e3vrs8q342yp8w33m.png" alt="Two AI agents trapped in an infinite conversation loop" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Guardrail Illusion
&lt;/h2&gt;

&lt;p&gt;Today's "agent safety" approaches follow a familiar pattern: define a list of forbidden actions, wrap the agent in a filter, and hope for the best. OpenAI's Agents SDK now includes input/output guardrails with structured validation, and their February 2025 Model Specification details guidelines for agent behaviour. Anthropic's Claude uses Constitutional AI—training the model to self-critique against ethical principles. LangChain offers middleware and callbacks for monitoring and content filtering.&lt;/p&gt;

&lt;p&gt;These are guardrails. They're necessary. They're also insufficient.&lt;/p&gt;

&lt;p&gt;Here's why: guardrails are reactive. They check outputs after the decision is made. They're pattern-matching against known bad behaviours. But AI agents don't fail in predictable ways—they fail in novel, cascading sequences that no engineer anticipated.&lt;/p&gt;

&lt;p&gt;These AI agents don't do anything "forbidden." They execute exactly what they're told: complete the task. The expense report agent fabricated data when it couldn't interpret real receipts. The runaway agents kept conversing because no one defined a stopping condition. They lacked the context a human would have automatically applied.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The most dangerous agents are the ones that do exactly what you asked."&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  The Scale Problem
&lt;/h2&gt;

&lt;p&gt;A single agent making one mistake is manageable. But enterprises are already deploying fleets. Customer service bots. Research assistants. Code generators. Trading algorithms.&lt;/p&gt;

&lt;p&gt;When 10,000 agents operate simultaneously, even a 0.01% error rate means 100 failures per day. Some of those failures will be expensive. Some will be dangerous. Some will be irreversible.&lt;/p&gt;

&lt;p&gt;Guardrails don't scale. They're boolean—allow or deny. They lack the nuance to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Detect gradual intent drift over multi-step chains&lt;/li&gt;
&lt;li&gt;Prevent resource contention between competing agents&lt;/li&gt;
&lt;li&gt;Enforce regulatory compliance across jurisdictions&lt;/li&gt;
&lt;li&gt;Kill runaway processes before damage accumulates&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What Comes After Guardrails
&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%2Fxgrc1uiv3wbqosq86f5z.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%2Fxgrc1uiv3wbqosq86f5z.png" alt="AI agent passing through a verification gateway" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The solution isn't better filters. It's treating agents like first-class citizens in a governed ecosystem.&lt;/p&gt;

&lt;p&gt;This means:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Verification, not just filtering.&lt;/strong&gt; Every agent action—before execution—passes through a policy engine that understands context, history, and intent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Coordination, not competition.&lt;/strong&gt; When multiple agents access shared resources, they need atomic locks and priority systems. The database doesn't care that two agents had good intentions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Identity and accountability.&lt;/strong&gt; Agents need verifiable credentials. When something goes wrong (it will), you need cryptographic proof of who did what, when.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Kill switches that work.&lt;/strong&gt; Not "stop when you're done"—immediate termination with resource cleanup and audit trails.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Early Signals
&lt;/h2&gt;

&lt;p&gt;Some teams are already building beyond guardrails. Projects are emerging that treat agent safety as an operating system problem, not a prompt engineering problem.&lt;/p&gt;

&lt;p&gt;The shift is subtle but significant: from "what can't the agent do?" to "what did the agent actually intend?"&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Guardrails ask if the door is locked. Agent governance asks why you wanted to open it."&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Why This Matters Now
&lt;/h2&gt;

&lt;p&gt;2024 was the year of agent demos. 2025 is the year of agent deployments—and now we're seeing exactly where the gaps lie. The difference between "impressive prototype" and "production system" is where failures accumulate.&lt;/p&gt;

&lt;p&gt;The companies that figure out agent governance—not just guardrails—will be the ones trusted with high-stakes automation. Healthcare. Finance. Infrastructure.&lt;/p&gt;

&lt;p&gt;The rest will learn expensive lessons.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Open Question
&lt;/h2&gt;

&lt;p&gt;We built operating systems for computers. We built regulations for corporations. We built air traffic control for planes.&lt;/p&gt;

&lt;p&gt;What do we build for AI agents?&lt;/p&gt;

&lt;p&gt;The answer is still being written. But one thing is clear: guardrails alone won't get us there.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;What's your experience with agent failures? I'd love to hear war stories in the comments.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ What I'm Building
&lt;/h2&gt;

&lt;p&gt;I'm working on agent governance infrastructure that treats safety as an OS-level concern. If you're building autonomous agents and want to discuss these challenges, drop a comment or connect with me.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>programming</category>
      <category>agents</category>
    </item>
    <item>
      <title>Warp Support Engineer Simulation
A mini lab replicating real-world troubleshooting workflows (permissions, SSH timeout, etc.) inside an agentic terminal context using Warp.</title>
      <dc:creator>AbdulGoniyy Adeleke Dare</dc:creator>
      <pubDate>Sat, 18 Oct 2025 17:22:11 +0000</pubDate>
      <link>https://forem.com/daretechie/warp-support-engineer-simulation-a-mini-lab-replicating-real-world-troubleshooting-workflows-3o8k</link>
      <guid>https://forem.com/daretechie/warp-support-engineer-simulation-a-mini-lab-replicating-real-world-troubleshooting-workflows-3o8k</guid>
      <description>&lt;p&gt;

&lt;/p&gt;
&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/daretechie/exploring-warp-building-the-future-of-agentic-support-engineering-2c68" class="crayons-story__hidden-navigation-link"&gt;Exploring Warp: Building the Future of Agentic Support Engineering&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/daretechie" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F351178%2F4b72acd8-2454-42ff-b5b1-33d7c718bff4.png" alt="daretechie profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/daretechie" class="crayons-story__secondary fw-medium m:hidden"&gt;
              AbdulGoniyy Adeleke Dare
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                AbdulGoniyy Adeleke Dare
                
              
              &lt;div id="story-author-preview-content-2937784" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/daretechie" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F351178%2F4b72acd8-2454-42ff-b5b1-33d7c718bff4.png" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;AbdulGoniyy Adeleke Dare&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/daretechie/exploring-warp-building-the-future-of-agentic-support-engineering-2c68" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Oct 18 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/daretechie/exploring-warp-building-the-future-of-agentic-support-engineering-2c68" id="article-link-2937784"&gt;
          Exploring Warp: Building the Future of Agentic Support Engineering
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/devops"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;devops&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/warp"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;warp&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/supportengineering"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;supportengineering&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/daretechie/exploring-warp-building-the-future-of-agentic-support-engineering-2c68#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;




</description>
      <category>devops</category>
      <category>ai</category>
      <category>warp</category>
      <category>supportengineering</category>
    </item>
    <item>
      <title>Exploring Warp: Building the Future of Agentic Support Engineering</title>
      <dc:creator>AbdulGoniyy Adeleke Dare</dc:creator>
      <pubDate>Sat, 18 Oct 2025 17:20:42 +0000</pubDate>
      <link>https://forem.com/daretechie/exploring-warp-building-the-future-of-agentic-support-engineering-2c68</link>
      <guid>https://forem.com/daretechie/exploring-warp-building-the-future-of-agentic-support-engineering-2c68</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Reimagining the support terminal as an intelligent workbench for debugging, automating, and understanding complex developer issues.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🚀 Introduction
&lt;/h2&gt;

&lt;p&gt;As developers, we spend countless hours inside terminals — troubleshooting, debugging, and supporting systems.&lt;br&gt;
But what if the terminal wasn’t just a passive command line…&lt;br&gt;
What if it could think &lt;em&gt;with&lt;/em&gt; you?&lt;/p&gt;

&lt;p&gt;That’s the idea behind &lt;strong&gt;Warp’s platform for Agentic Development&lt;/strong&gt; — where AI agents work alongside engineers to code, deploy, and debug faster.&lt;/p&gt;

&lt;p&gt;To explore this concept, I built a mini project called &lt;strong&gt;&lt;code&gt;warp-support-cases&lt;/code&gt;&lt;/strong&gt; — a collection of real-world troubleshooting scenarios inspired by everyday DevOps and Support Engineer tasks.&lt;/p&gt;

&lt;p&gt;Each case simulates an issue, shows terminal outputs, and demonstrates how an AI-driven terminal like Warp could provide contextual insights in real time.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚙️ Project Overview: &lt;code&gt;warp-support-cases&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt;&lt;br&gt;
To simulate how Warp’s intelligent terminal could assist Support Engineers in diagnosing and resolving real DevOps issues.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scenarios Covered:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;File permission and ownership conflicts&lt;/li&gt;
&lt;li&gt;SSH connectivity and routing issues&lt;/li&gt;
&lt;li&gt;Missing binaries or misconfigured paths&lt;/li&gt;
&lt;li&gt;Network latency and timeouts&lt;/li&gt;
&lt;li&gt;Configuration drift across environments&lt;/li&gt;
&lt;/ol&gt;

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

&lt;ul&gt;
&lt;li&gt;Linux CLI (Ubuntu-based)&lt;/li&gt;
&lt;li&gt;Common tools: &lt;code&gt;ssh&lt;/code&gt;, &lt;code&gt;ping&lt;/code&gt;, &lt;code&gt;nc&lt;/code&gt;, &lt;code&gt;ip route&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Optional integrations: &lt;code&gt;nmap&lt;/code&gt;, &lt;code&gt;journalctl&lt;/code&gt;, &lt;code&gt;systemctl&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Warp Terminal as the experimental interface&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧩 Case 1: Permission Denied (File Ownership Conflict)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🖥️ Terminal Log
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;touch&lt;/span&gt; /var/www/html/config.php
&lt;span class="nb"&gt;touch&lt;/span&gt;: cannot &lt;span class="nb"&gt;touch&lt;/span&gt; &lt;span class="s1"&gt;'/var/www/html/config.php'&lt;/span&gt;: Permission denied

&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;ls&lt;/span&gt; &lt;span class="nt"&gt;-ld&lt;/span&gt; /var/www/html
drwxr-xr-x 2 root root 4096 Oct 17 12:40 /var/www/html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2F0kemd12jxl9y22ji4kag.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%2F0kemd12jxl9y22ji4kag.png" alt="Permission Denied" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🤖 Agentic Insight (What Warp Could Do)
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“It looks like the directory &lt;code&gt;/var/www/html&lt;/code&gt; is owned by root.&lt;br&gt;
Try using &lt;code&gt;sudo&lt;/code&gt; or adjusting permissions with &lt;code&gt;chown&lt;/code&gt;.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  💡 Resolution
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo chown&lt;/span&gt; &lt;span class="nt"&gt;-R&lt;/span&gt; user:www-data /var/www/html
&lt;span class="nb"&gt;sudo chmod&lt;/span&gt; &lt;span class="nt"&gt;-R&lt;/span&gt; 775 /var/www/html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;✅ The user now has write access and can edit web files safely.&lt;/p&gt;




&lt;h2&gt;
  
  
  🌐 Case 2: SSH Timeout (Unreachable Host)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🖥️ Terminal Log
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ssh user@192.168.10.55
ssh: connect to host 192.168.10.55 port 22: Connection timed out

ping &lt;span class="nt"&gt;-c&lt;/span&gt; 4 192.168.10.55
PING 192.168.10.55 &lt;span class="o"&gt;(&lt;/span&gt;192.168.10.55&lt;span class="o"&gt;)&lt;/span&gt; 56&lt;span class="o"&gt;(&lt;/span&gt;84&lt;span class="o"&gt;)&lt;/span&gt; bytes of data.

&lt;span class="nt"&gt;---&lt;/span&gt; 192.168.10.55 ping statistics &lt;span class="nt"&gt;---&lt;/span&gt;
4 packets transmitted, 0 received, 100% packet loss
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fzqja0iahph25ldiz07f1.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%2Fzqja0iahph25ldiz07f1.png" alt="SSH Timeout" width="800" height="826"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🤖 Agentic Insight
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“The host 192.168.10.55 is unreachable.&lt;br&gt;
You appear to be on a different subnet (192.168.43.x).&lt;br&gt;
Check if a VPN or routing rule is required to reach 192.168.10.x.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  🧠 Analysis
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Ping failed → No ICMP response&lt;/li&gt;
&lt;li&gt;SSH timed out → No TCP connection&lt;/li&gt;
&lt;li&gt;Routing mismatch → 43.x trying to reach 10.x&lt;/li&gt;
&lt;li&gt;Likely issue → Different network segment or firewall blocking port 22&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  💡 Resolution
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Verify target host is online&lt;/li&gt;
&lt;li&gt;Connect to the same network or VPN&lt;/li&gt;
&lt;li&gt;Check local and remote firewalls&lt;/li&gt;
&lt;li&gt;Confirm correct IP assignment with:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   ip route get 192.168.10.55
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  ⛓️ Case 3: &lt;code&gt;PATH&lt;/code&gt; Misconfiguration
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🖥️ Terminal Log
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;ls
&lt;/span&gt;bash: &lt;span class="nb"&gt;ls&lt;/span&gt;: &lt;span class="nb"&gt;command &lt;/span&gt;not found
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2F2otmwbbvtt040drj9exo.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%2F2otmwbbvtt040drj9exo.png" alt="PATH Misconfiguration" width="800" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🤖 Agentic Insight
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“The command &lt;code&gt;ls&lt;/code&gt; was not found in your &lt;code&gt;PATH&lt;/code&gt;.&lt;br&gt;
Your &lt;code&gt;PATH&lt;/code&gt; is currently set to &lt;code&gt;/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin&lt;/code&gt;.&lt;br&gt;
The &lt;code&gt;ls&lt;/code&gt; command is usually in &lt;code&gt;/bin/ls&lt;/code&gt;.&lt;br&gt;
You can either use the full path &lt;code&gt;/bin/ls&lt;/code&gt; or add &lt;code&gt;/bin&lt;/code&gt; to your &lt;code&gt;PATH&lt;/code&gt;.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  💡 Resolution
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;PATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$PATH&lt;/span&gt;:/bin
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;✅ The user can now run standard commands without specifying the full path.&lt;/p&gt;




&lt;h2&gt;
  
  
  🎮 Application Development with Warp: Minesweeper in React
&lt;/h2&gt;

&lt;p&gt;To showcase Warp’s capabilities beyond troubleshooting, I developed a classic Minesweeper game using React. This exercise demonstrated how Warp’s AI can assist in the development lifecycle, from scaffolding a new project to debugging React components.&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%2F5aa0x0lpup3jlst67u2y.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%2F5aa0x0lpup3jlst67u2y.png" alt="Minesweeper React App" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Project&lt;/strong&gt;: &lt;code&gt;minesweeper-react&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Purpose&lt;/strong&gt;: To build a classic Minesweeper game using modern web technologies (React 19, Vite) from within the Warp terminal.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;WARP.md&lt;/code&gt;&lt;/strong&gt;: A special file was created to provide development guidance and context to Warp’s AI. It outlines the project structure, core development commands, and architectural patterns, enabling Warp to assist more effectively.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Outcome&lt;/strong&gt;: This showcases how Warp can be a primary environment for building, testing, and documenting a software project.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🤝 Why This Matters
&lt;/h2&gt;

&lt;p&gt;In real support workflows, engineers spend valuable time correlating logs, commands, and system states.&lt;br&gt;
An agentic terminal like Warp could &lt;strong&gt;automate context understanding&lt;/strong&gt;, &lt;strong&gt;recommend next actions&lt;/strong&gt;, and even &lt;strong&gt;execute verified remediations&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This reduces friction between &lt;strong&gt;debugging and decision-making&lt;/strong&gt; — turning reactive troubleshooting into proactive engineering.&lt;/p&gt;




&lt;h2&gt;
  
  
  📦 Repository
&lt;/h2&gt;

&lt;p&gt;All terminal cases and documentation are available here:&lt;br&gt;
👉 &lt;a href="https://github.com/daretechie/warp-support-case-lab" rel="noopener noreferrer"&gt;&lt;strong&gt;github.com/daretechie/warp-support-cases&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 Get Warp
&lt;/h2&gt;

&lt;p&gt;Ready to try the future of the terminal? &lt;a href="https://app.warp.dev/referral/384KJV" rel="noopener noreferrer"&gt;&lt;strong&gt;Download Warp here&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔮 My Take on Agentic Terminals
&lt;/h2&gt;

&lt;p&gt;Warp represents the next step in developer tooling — &lt;strong&gt;terminals that think alongside you&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
Through this project, I observed three agentic opportunities:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Proactive Diagnostics:&lt;/strong&gt; Detecting environment issues (like PATH or permission errors) and auto-suggesting verified fixes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Collaborative Debug Sessions:&lt;/strong&gt; Warp AI could summarise a terminal session’s commands and insights into a shareable incident report.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Adaptive Context Memory:&lt;/strong&gt; The terminal could recall previous fixes or commands across sessions to reduce repetitive troubleshooting.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These align with Warp’s mission of evolving from a powerful shell to a &lt;strong&gt;developer workbench for intelligent agents.&lt;/strong&gt;&lt;br&gt;
I’m excited to see how Warp and similar tools will reshape developer workflows in the coming years.&lt;/p&gt;

&lt;h3&gt;
  
  
  🏷️ Tags
&lt;/h3&gt;

&lt;h1&gt;
  
  
  DevOps #AI #Warp #SupportEngineering #AgenticDevelopment #Automation #Debugging
&lt;/h1&gt;

</description>
      <category>devops</category>
      <category>ai</category>
      <category>warp</category>
      <category>supportengineering</category>
    </item>
    <item>
      <title>100 Days of DevOps: Halfway There and Powering Through (Days 26-50)</title>
      <dc:creator>AbdulGoniyy Adeleke Dare</dc:creator>
      <pubDate>Sat, 27 Sep 2025 06:40:40 +0000</pubDate>
      <link>https://forem.com/daretechie/100-days-of-devops-halfway-there-and-powering-through-days-26-50-407e</link>
      <guid>https://forem.com/daretechie/100-days-of-devops-halfway-there-and-powering-through-days-26-50-407e</guid>
      <description>&lt;p&gt;I've officially hit the halfway mark in the &lt;strong&gt;#100DaysOfDevOps challenge&lt;/strong&gt;! The journey so far has been incredibly rewarding, and the last 25 days have been a deep dive into the tools that form the backbone of modern software delivery.&lt;/p&gt;

&lt;p&gt;If you missed the first part of my journey, you can catch up on the first 25 days here: &lt;a href="https://dev.to/daretechie/25-days-of-devops-how-i-fought-imposter-syndrome-and-built-real-momentum-29op"&gt;25 Days of DevOps: How I Fought Imposter Syndrome and Built Real Momentum&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The feeling of accomplishment is immense, but the real prize is the confidence that comes from hands-on practice. KodeKloud's labs continue to be an invaluable resource, pushing me to learn by doing.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Milestone Recognised
&lt;/h2&gt;

&lt;p&gt;This email from the KodeKloud team was a fantastic motivator. It's a great reminder that consistency pays off.&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%2F6v622m9lxjgjuord5gss.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%2F6v622m9lxjgjuord5gss.png" alt="Email from KodeKloud" width="800" height="509"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  GitHub as My North Star
&lt;/h2&gt;

&lt;p&gt;My GitHub repository is more than just a code backup; it's the story of my journey. Every commit is a step forward, and looking back at the progress from Day 1 is a powerful reminder of how far I've come.&lt;/p&gt;

&lt;p&gt;Here’s an updated look at my progress tracker:&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%2F5egsh95ozipmqkm03ptv.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%2F5egsh95ozipmqkm03ptv.png" alt="My Updated GitHub Progress Tracker" width="800" height="509"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Check out the full repository and follow my progress here: &lt;a href="https://github.com/daretechie/100-days-of-devops-xfusioncorp" rel="noopener noreferrer"&gt;&lt;strong&gt;My 100 Days of DevOps GitHub Repo&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Learnings from Days 26-50
&lt;/h2&gt;

&lt;p&gt;This quarter was all about diving into the core of DevOps tooling. Here are the highlights:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Advanced Git Techniques:&lt;/strong&gt; I moved beyond the basics and got my hands dirty with &lt;code&gt;git revert&lt;/code&gt;, &lt;code&gt;cherry-pick&lt;/code&gt;, &lt;code&gt;rebase&lt;/code&gt;, and even Git hooks. These skills are crucial for maintaining a clean and manageable codebase in a team environment.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Docker is a Game-Changer:&lt;/strong&gt; I finally got to grips with Docker, and it's been a revelation. From building custom images with a &lt;code&gt;Dockerfile&lt;/code&gt; to managing multi-container applications with &lt;code&gt;docker-compose&lt;/code&gt;, I now understand why containerization is so powerful.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;First Steps in Kubernetes:&lt;/strong&gt; The journey into container orchestration has begun! I've started creating Kubernetes Pods and Deployments, and I'm beginning to see how it all fits together to manage applications at scale.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The Journey Continues
&lt;/h2&gt;

&lt;p&gt;The second half of this challenge promises to be even more exciting, with deeper dives into Kubernetes, CI/CD pipelines, and more. The momentum is strong, and I'm excited to see what I can achieve in the next 50 days.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;How are you tracking your learning goals? Share your tips and experiences in the comments below!&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  devops #100daysofdevops #docker #kubernetes #git #learninginpublic #kodekloud
&lt;/h1&gt;

</description>
      <category>devops</category>
      <category>100daysofdevops</category>
      <category>docker</category>
      <category>kubernetes</category>
    </item>
    <item>
      <title>"Building Professional IT Support with GLPI: A Complete Helpdesk Implementation"</title>
      <dc:creator>AbdulGoniyy Adeleke Dare</dc:creator>
      <pubDate>Fri, 05 Sep 2025 17:02:22 +0000</pubDate>
      <link>https://forem.com/daretechie/building-professional-it-support-with-glpi-a-complete-helpdesk-implementation-dm1</link>
      <guid>https://forem.com/daretechie/building-professional-it-support-with-glpi-a-complete-helpdesk-implementation-dm1</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/daretechie" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F351178%2F4b72acd8-2454-42ff-b5b1-33d7c718bff4.png" alt="daretechie"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/daretechie/from-zero-to-helpdesk-hero-building-an-enterprise-it-support-system-with-glpi-hpe" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;From Zero to Helpdesk Hero: Building an Enterprise IT Support System with GLPI&lt;/h2&gt;
      &lt;h3&gt;AbdulGoniyy Adeleke Dare ・ Aug 6&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#glpi&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#itsm&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#systemadmin&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#opensource&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>glpi</category>
      <category>itsm</category>
      <category>systemadmin</category>
      <category>opensource</category>
    </item>
    <item>
      <title>100 Days of DevOps: A Quarter of the Way There and What I've Learned</title>
      <dc:creator>AbdulGoniyy Adeleke Dare</dc:creator>
      <pubDate>Tue, 02 Sep 2025 22:11:51 +0000</pubDate>
      <link>https://forem.com/daretechie/100-days-of-devops-a-quarter-of-the-way-there-and-what-ive-learned-3jhl</link>
      <guid>https://forem.com/daretechie/100-days-of-devops-a-quarter-of-the-way-there-and-what-ive-learned-3jhl</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/daretechie" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F351178%2F4b72acd8-2454-42ff-b5b1-33d7c718bff4.png" alt="daretechie"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/daretechie/25-days-of-devops-how-i-fought-imposter-syndrome-and-built-real-momentum-29op" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;25 Days of DevOps: How I Fought Imposter Syndrome and Built Real Momentum&lt;/h2&gt;
      &lt;h3&gt;AbdulGoniyy Adeleke Dare ・ Sep 2&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#devops&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#100daysofdevops&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#kodekloud&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#linux&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>devops</category>
      <category>100daysofdevops</category>
      <category>kodekloud</category>
      <category>linux</category>
    </item>
    <item>
      <title>25 Days of DevOps: How I Fought Imposter Syndrome and Built Real Momentum</title>
      <dc:creator>AbdulGoniyy Adeleke Dare</dc:creator>
      <pubDate>Tue, 02 Sep 2025 21:46:31 +0000</pubDate>
      <link>https://forem.com/daretechie/25-days-of-devops-how-i-fought-imposter-syndrome-and-built-real-momentum-29op</link>
      <guid>https://forem.com/daretechie/25-days-of-devops-how-i-fought-imposter-syndrome-and-built-real-momentum-29op</guid>
      <description>&lt;h2&gt;
  
  
  It Started with a Whisper of Doubt
&lt;/h2&gt;

&lt;p&gt;Let's be honest. Starting a 100-day challenge is daunting. That little voice in your head, the one that whispers "Are you &lt;em&gt;really&lt;/em&gt; going to stick with it this time?" was loud and clear. Every developer knows that voice. It’s the voice of imposter syndrome, and for the first few days, it was my constant companion.&lt;/p&gt;

&lt;p&gt;But then, something incredible happened. Day by day, commit by commit, that voice started to fade. And this morning, an email from the &lt;strong&gt;KodeKloud Team&lt;/strong&gt; silenced it completely:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Hi Dare,&lt;/p&gt;

&lt;p&gt;Big congrats - you’ve successfully completed 25 tasks in the 100 Days of DevOps journey! 🙌&lt;/p&gt;

&lt;p&gt;🎯 You’re 25% closer to the finish line.&lt;br&gt;
🚀 You’ve already done more than most ever start.&lt;/p&gt;
&lt;/blockquote&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%2F0qkm3cddoqecbhrliv0i.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%2F0qkm3cddoqecbhrliv0i.png" alt="Email from KodeKloud" width="800" height="483"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That hit me hard. "You’ve already done more than most ever start." It was external validation that the small, daily efforts were compounding into something real. The journey was no longer about proving the doubters wrong; it was about proving my own commitment right.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Power of a Public Logbook
&lt;/h2&gt;

&lt;p&gt;To keep myself honest, I decided to treat my GitHub repository as a public logbook. Every single day, I commit my solution scripts, my notes, and the original task. No hiding, no skipping days.&lt;/p&gt;

&lt;p&gt;It's my single source of truth and my ultimate accountability partner.&lt;/p&gt;

&lt;p&gt;You can see my entire journey, warts and all, right here:&lt;br&gt;
&lt;a href="https://github.com/daretechie/100-days-of-devops-xfusioncorp" rel="noopener noreferrer"&gt;&lt;strong&gt;My 100-Days-of-DevOps GitHub Repo&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here’s a snapshot of my progress tracker. Seeing this fill up day by day has been one of the most satisfying parts of the journey.&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%2Fem6c9r4vxr9bm1z2wr97.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%2Fem6c9r4vxr9bm1z2wr97.png" alt="My GitHub Progress Tracker" width="800" height="980"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  From Theory to Tangible Skills (The First 25 Days)
&lt;/h2&gt;

&lt;p&gt;This isn't just about reading documentation. The &lt;a href="https://engineer.kodekloud.com/signup?referral=64ad8bc7803455eea0a89fde" rel="noopener noreferrer"&gt;#100DaysOfDevOps&lt;/a&gt; challenge throws one into the fire with hands-on tasks for a simulated company, &lt;strong&gt;xFusionCorp&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;In just 25 days, I've tackled:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Linux Fundamentals:&lt;/strong&gt; From user management and SSH hardening to wrangling SELinux.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Web &amp;amp; Application Services:&lt;/strong&gt; Setting up, securing, and fixing Apache, Nginx (with SSL &amp;amp; Load Balancing), and PHP-FPM.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database Management:&lt;/strong&gt; Rescuing a broken MariaDB service and setting up PostgreSQL.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automation &amp;amp; Version Control:&lt;/strong&gt; Writing automation scripts, setting up cron jobs, and mastering Git workflows (branching, merging).&lt;/li&gt;
&lt;/ul&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%2F0y2khhqrmgk3qksrl0dk.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%2F0y2khhqrmgk3qksrl0dk.png" alt="Image representing the daily grind and consistency" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I've &lt;em&gt;Really&lt;/em&gt; Learned in 25 Days
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Consistency is a Superpower:&lt;/strong&gt; An hour of focused work every day is infinitely more powerful than a 10-hour coding binge on a weekend. It builds a momentum that becomes unstoppable.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Document for Your Future Self:&lt;/strong&gt; Writing notes when the solution is fresh in my mind has already saved me hours of re-Googling. Your future self will thank you.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Embrace the Grind:&lt;/strong&gt; The real learning happens when things break. Troubleshooting a failing service or a cryptic error message has taught me more than any perfect tutorial.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  A Massive Thank You!
&lt;/h2&gt;

&lt;p&gt;I couldn't have done this without the incredible &lt;strong&gt;KodeKloud team&lt;/strong&gt;. Thank you for building a challenge that values hands-on skills over theoretical knowledge, all for free. And to the community, your support and encouragement mean the world.&lt;/p&gt;

&lt;h2&gt;
  
  
  On to the Next 75!
&lt;/h2&gt;

&lt;p&gt;25 days down, 75 to go. The imposter syndrome is quiet, and the excitement for what's next is deafening. Jenkins, Ansible, Docker, Kubernetes... I'm coming for you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What challenge are you taking on right now? How do you fight your own "inner critic"?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let's talk in the comments. Your story might be the motivation someone else needs to start.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://engineer.kodekloud.com/signup?referral=64ad8bc7803455eea0a89fde" rel="noopener noreferrer"&gt;&lt;strong&gt;Ready to start your own #100DaysOfDevOps journey? Sign up here!&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  devops #100daysofdevops #kodekloud #linux #motivation #beginners
&lt;/h1&gt;

</description>
      <category>devops</category>
      <category>100daysofdevops</category>
      <category>kodekloud</category>
      <category>linux</category>
    </item>
    <item>
      <title>From Zero to Helpdesk Hero: Building an Enterprise IT Support System with GLPI</title>
      <dc:creator>AbdulGoniyy Adeleke Dare</dc:creator>
      <pubDate>Wed, 06 Aug 2025 13:05:01 +0000</pubDate>
      <link>https://forem.com/daretechie/from-zero-to-helpdesk-hero-building-an-enterprise-it-support-system-with-glpi-hpe</link>
      <guid>https://forem.com/daretechie/from-zero-to-helpdesk-hero-building-an-enterprise-it-support-system-with-glpi-hpe</guid>
      <description>&lt;p&gt;&lt;em&gt;TL;DR: I spent a weekend setting up GLPI for a fictional company called FakeCorp, ran into every possible configuration nightmare, and somehow emerged with a fully functional helpdesk system. Here's what I learned about ITSM, patience, and why you should never trust default Nginx configurations.&lt;/em&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%2F5kwwpfz5ivzycopi2iij.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%2F5kwwpfz5ivzycopi2iij.png" alt="GLPI Dashboard Screenshot" width="800" height="418"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;The final GLPI dashboard - worth every hour of troubleshooting&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  The "Simple" Weekend Project That Wasn't
&lt;/h2&gt;

&lt;p&gt;It started innocently enough. I was browsing through IT job descriptions when I noticed how often &lt;strong&gt;ITSM&lt;/strong&gt; (IT Service Management) tools appeared in requirements. Names like ServiceNow, Jira Service Management, and GLPI kept popping up. As someone building practical IT skills through hands-on projects, I figured: "How hard could it be to set up a helpdesk system?"&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Famous last words.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;What I thought would be a 2-hour setup turned into a weekend-long deep dive into web server configurations, PHP socket connections, and the surprisingly complex world of enterprise helpdesk systems. But by the end, I had something pretty amazing running on my local Ubuntu machine.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;Pro Tip&lt;/strong&gt;: I wish I'd documented every error message and configuration attempt. If you're following along, take screenshots of everything - your future self will thank you when writing about the experience!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  Why GLPI? (And What Even Is It?)
&lt;/h2&gt;

&lt;p&gt;GLPI stands for "Gestionnaire Libre de Parc Informatique" – fancy French for "Free IT Equipment Manager." Think of it as the Swiss Army knife of IT support tools. It handles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ticket management&lt;/strong&gt; (the core helpdesk functionality)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Asset tracking&lt;/strong&gt; (computers, phones, software licenses)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User management&lt;/strong&gt; (employees, departments, locations)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reporting and analytics&lt;/strong&gt; (because managers love charts)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ITIL compliance&lt;/strong&gt; (important for enterprise environments)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The best part? It's completely free and open-source. Perfect for learning, and surprisingly robust enough for real production use.&lt;/p&gt;
&lt;h2&gt;
  
  
  Setting Up My Fictional Empire: Meet FakeCorp
&lt;/h2&gt;

&lt;p&gt;Before diving into the technical setup, I needed a story. Enter &lt;strong&gt;FakeCorp&lt;/strong&gt; – a mid-sized company I invented with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Three departments&lt;/strong&gt;: IT (that's me), HR, and Customer Support&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multiple locations&lt;/strong&gt;: Headquarters, Lagos Branch, and Remote Offices
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real problems&lt;/strong&gt;: Like every company, they had printers that mysteriously stopped working on Mondays and Wi-Fi that decided to take coffee breaks&lt;/li&gt;
&lt;/ul&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%2Frje5mrmycdwhq3bxxnrz.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%2Frje5mrmycdwhq3bxxnrz.png" alt="GLPI Organisation Structure" width="800" height="472"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;FakeCorp's organisational structure in GLPI - departments, locations, and user hierarchies&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This context was crucial because GLPI isn't just about installing software – it's about modelling real organisational structures and workflows.&lt;/p&gt;
&lt;h2&gt;
  
  
  The Technical Journey (AKA: How Many Ways Can Nginx Break?)
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Phase 1: The "Easy" Installation
&lt;/h3&gt;

&lt;p&gt;I started with what seemed like a straightforward LAMP stack setup on Ubuntu. Downloaded GLPI, extracted it to &lt;code&gt;/var/www/glpi&lt;/code&gt;, configured Nginx to serve from the &lt;code&gt;public&lt;/code&gt; directory (because security matters), and... got a 404.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💥 &lt;strong&gt;The Plot Twist&lt;/strong&gt;: Nothing says "welcome to web server administration" like confidently hitting refresh and seeing that familiar Nginx 404 page. At 2 AM, that error page becomes your nemesis.&lt;br&gt;
&lt;/p&gt;


&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# The commands that should have worked (but didn't)&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;wget https://github.com/glpi-project/glpi/releases/latest
&lt;span class="nb"&gt;sudo tar&lt;/span&gt; &lt;span class="nt"&gt;-xzf&lt;/span&gt; glpi-&lt;span class="k"&gt;*&lt;/span&gt;.tgz &lt;span class="nt"&gt;-C&lt;/span&gt; /var/www/
&lt;span class="nb"&gt;sudo chown&lt;/span&gt; &lt;span class="nt"&gt;-R&lt;/span&gt; www-data:www-data /var/www/glpi
&lt;span class="c"&gt;# Navigate to http://127.0.0.1 expecting success... &lt;/span&gt;
&lt;span class="c"&gt;# Get 404 instead 🤦‍♂️&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then I spent the next three hours learning that GLPI's directory structure is more nuanced than I expected. The modern versions separate public files from sensitive backend code, but my specific version had everything in the root directory. This led to an enlightening deep dive into proper web server security practices.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson learned&lt;/strong&gt;: Always check the actual file structure instead of assuming documentation matches your version.&lt;/p&gt;

&lt;h3&gt;
  
  
  Phase 2: The PHP Socket Saga
&lt;/h3&gt;

&lt;p&gt;After fixing the directory issues, I encountered this delightful error:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;connect&lt;span class="o"&gt;()&lt;/span&gt; to unix:/run/php/php8.1-fpm.sock failed &lt;span class="o"&gt;(&lt;/span&gt;2: No such file or directory&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;🔍 &lt;strong&gt;Detective Mode Activated&lt;/strong&gt;: This error message became my unwelcome companion for the next hour. The solution? My system had PHP 8.3, but Nginx was still looking for PHP 8.1 sockets. Classic case of conflicting configurations!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Plot twist: I had PHP 8.3 installed, but my default Nginx site was still configured for PHP 8.1. This taught me about the importance of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cleaning up conflicting configurations&lt;/li&gt;
&lt;li&gt;Understanding how PHP-FPM sockets work
&lt;/li&gt;
&lt;li&gt;Reading error logs thoroughly (they usually tell you exactly what's wrong)&lt;/li&gt;
&lt;/ul&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%2F9nsb4kn16nafnenalrk3.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%2F9nsb4kn16nafnenalrk3.png" alt="Nginx Configuration File" width="800" height="554"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;The Nginx configuration that finally made everything work&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Phase 3: The Security Awakening
&lt;/h3&gt;

&lt;p&gt;Once GLPI finally loaded, it immediately hit me with security warnings:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"Change default passwords for glpi, tech, normal, post-only users"&lt;/li&gt;
&lt;li&gt;"Web server root directory is not safe"&lt;/li&gt;
&lt;li&gt;"Move data directories outside web root"&lt;/li&gt;
&lt;/ul&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%2Fjuke89r5lxhey3n53fzm.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%2Fjuke89r5lxhey3n53fzm.png" alt="GLPI Security Warnings" width="800" height="160"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;GLPI's security check results - educational even when intimidating&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This wasn't just nagging – these warnings introduced me to real-world security practices for production systems. Even though this was a local test environment, understanding why these practices matter was invaluable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building FakeCorp's Helpdesk Reality
&lt;/h2&gt;

&lt;p&gt;With the technical foundation solid, the fun part began. I created user accounts for different roles and started submitting tickets as if I was actually working at FakeCorp:&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%2F9hfzfrfgeof1oq31hlej.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%2F9hfzfrfgeof1oq31hlej.png" alt="Sample Tickets in GLPI" width="800" height="403"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;A realistic mix of IT support requests that any company would recognize&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ticket #001&lt;/strong&gt;: "Printer in Lagos office won't print color documents"&lt;br&gt;&lt;br&gt;
&lt;em&gt;Assigned to: IT Technician&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;em&gt;Priority: Medium&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;em&gt;Status: Investigating&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ticket #002&lt;/strong&gt;: "Need new software license for design team"&lt;br&gt;&lt;br&gt;
&lt;em&gt;Assigned to: IT Manager&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;em&gt;Priority: Low&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;em&gt;Status: Pending Approval&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ticket #003&lt;/strong&gt;: "VPN keeps disconnecting for remote workers"&lt;br&gt;&lt;br&gt;
&lt;em&gt;Assigned to: Network Specialist&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;em&gt;Priority: High&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;em&gt;Status: In Progress&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;What struck me was how naturally GLPI handles the complexity of real IT environments. Each ticket could be categorised, prioritized, assigned, tracked, and reported on. The system enforced accountability while providing visibility into team workload.&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%2F73vptu0mgfppheb0bsz0.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%2F73vptu0mgfppheb0bsz0.png" alt="Ticket Detail View" width="800" height="387"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Individual ticket view showing the full lifecycle and collaboration features&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The "Aha!" Moments
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Understanding ITIL in Practice
&lt;/h3&gt;

&lt;p&gt;Before this project, ITIL was just an acronym soup to me. But working with GLPI's workflow made concepts like &lt;strong&gt;Incident Management&lt;/strong&gt;, &lt;strong&gt;Request Fulfilment&lt;/strong&gt;, and &lt;strong&gt;Change Management&lt;/strong&gt; tangible. I could see how these frameworks actually help organisations deliver consistent IT services.&lt;/p&gt;

&lt;h3&gt;
  
  
  Realising the Consultant Opportunity
&lt;/h3&gt;

&lt;p&gt;As I configured business rules for automatic ticket routing and set up SLA tracking, it dawned on me: small companies desperately need these systems but often lack the expertise to implement them. This represents a genuine consulting opportunity for someone with these skills.&lt;/p&gt;

&lt;h3&gt;
  
  
  Appreciating Good UX Design
&lt;/h3&gt;

&lt;p&gt;GLPI's interface isn't the prettiest, but it's incredibly functional. Every click serves a purpose. Every form field maps to a real business need. This taught me to appreciate software designed for productivity over aesthetics.&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%2Fvby8havxux8ehq7v0uic.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%2Fvby8havxux8ehq7v0uic.png" alt="GLPI Reports Dashboard" width="800" height="403"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;The reporting interface - not flashy, but incredibly practical for managers&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built (The Satisfying Part)
&lt;/h2&gt;

&lt;p&gt;After two days of configuration, I had:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A fully functional helpdesk&lt;/strong&gt; with 10 sample tickets across different categories&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User management&lt;/strong&gt; with proper role-based access control&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Asset tracking&lt;/strong&gt; for FakeCorp's fictional computer inventory&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Location-based routing&lt;/strong&gt; so Lagos office issues go to the right team&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Basic reporting&lt;/strong&gt; showing ticket resolution times and technician workload&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom branding&lt;/strong&gt; (because even fictional companies deserve good design)&lt;/li&gt;
&lt;/ul&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%2Fun60zwx5q8p6cgppaa9z.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%2Fun60zwx5q8p6cgppaa9z.png" alt="Final GLPI Setup Overview" width="800" height="387"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;The complete FakeCorp helpdesk system - from chaos to organised IT support&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Real-World Value
&lt;/h2&gt;

&lt;p&gt;This wasn't just an academic exercise. The skills I developed translate directly to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Consulting opportunities&lt;/strong&gt;: Small businesses need ITSM implementations&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;System administration roles&lt;/strong&gt;: Understanding helpdesk workflows is crucial&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Process improvement&lt;/strong&gt;: Many organizations have terrible IT support processes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vendor management&lt;/strong&gt;: Knowing what good ITSM looks like helps evaluate commercial solutions&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's Next?
&lt;/h2&gt;

&lt;p&gt;This project opened my eyes to the broader world of IT service management. I'm planning to explore:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ServiceNow&lt;/strong&gt; (the enterprise standard)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integration patterns&lt;/strong&gt; (connecting helpdesk to monitoring systems)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Advanced automation&lt;/strong&gt; (AI-powered ticket routing and resolution)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mobile responsiveness&lt;/strong&gt; (because users expect mobile-first experiences)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  For Fellow Learners
&lt;/h2&gt;

&lt;p&gt;If you're thinking about diving into ITSM tools:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Start simple&lt;/strong&gt;: Set up GLPI in a VM or container first. Don't try to solve every configuration issue on day one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Think organizationally&lt;/strong&gt;: The technical setup is just the foundation. The real learning happens when you model actual business processes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Document everything&lt;/strong&gt;: I wish I'd kept better notes about what broke and why. These systems have lots of moving parts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Embrace the complexity&lt;/strong&gt;: Modern IT environments are genuinely complex. Tools like GLPI exist because managing IT at scale is hard work.&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%2Fns8qohmqnesyxmbmg5su.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%2Fns8qohmqnesyxmbmg5su.png" alt="Learning Journey Visualisation" width="800" height="337"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;The winding path from "this looks easy" to "I actually understand ITSM now"&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Bottom Line
&lt;/h2&gt;

&lt;p&gt;What started as a "simple weekend project" became a masterclass in web server configuration, IT service management, and the importance of reading error logs carefully. More importantly, it gave me hands-on experience with tools that power IT operations at companies worldwide.&lt;/p&gt;

&lt;p&gt;GLPI might not be the flashiest technology, but it represents something important: the infrastructure that keeps businesses running smoothly. Understanding these systems – both technically and organizationally – is valuable whether you're aiming for a sysadmin role, considering IT consulting, or just want to understand how professional IT departments actually work.&lt;/p&gt;

&lt;p&gt;Plus, I can now confidently add "ITSM" to my resume without feeling like a fraud. That's worth a weekend of troubleshooting PHP sockets any day.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Have you worked with helpdesk systems before? What tools have you found most effective for IT service management? Share your experiences in the comments – I'd love to hear about other platforms worth exploring!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's your next IT learning project? Let me know in the comments below! 👇&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>glpi</category>
      <category>itsm</category>
      <category>systemadmin</category>
      <category>opensource</category>
    </item>
    <item>
      <title>How I Accidentally Built a Full-Stack Portfolio While Completing a Google IT Certification Project</title>
      <dc:creator>AbdulGoniyy Adeleke Dare</dc:creator>
      <pubDate>Wed, 23 Jul 2025 14:30:33 +0000</pubDate>
      <link>https://forem.com/daretechie/how-i-accidentally-built-a-full-stack-portfolio-while-completing-a-google-it-certification-project-25kk</link>
      <guid>https://forem.com/daretechie/how-i-accidentally-built-a-full-stack-portfolio-while-completing-a-google-it-certification-project-25kk</guid>
      <description>&lt;p&gt;Welcome! 👋&lt;br&gt;
After finishing the Google IT Support Professional Certificate 🎉, I wanted to put my new skills to work — not just to tick a box, but to actually build something that could speak for me.&lt;br&gt;
I planned some projects to bridge the gap between theory and practice. After publishing three practical IT projects (&lt;a href="https://dev.to/daretechie/beginner-it-lab-portfolio-linux-web-hosting-ssh-user-management-in-virtualbox-17ep"&gt;Personal IT Lab&lt;/a&gt; and &lt;a href="https://dev.to/daretechie/tech-support-series-fixing-a-slow-windows-pc-189h"&gt;Troubleshooting Documentation - Windows&lt;/a&gt; and &lt;a href="https://dev.to/daretechie/tech-support-series-fixing-a-slow-linux-system-3h9n"&gt;Linux&lt;/a&gt;) on Dev.to, I turned to my fourth — a seemingly simple ‘static website’ assignment. But then curiosity took over, and the project snowballed into a full-stack build.&lt;/p&gt;

&lt;p&gt;🚀 &lt;strong&gt;Set Up a Home Server with a Static Website&lt;/strong&gt; ← &lt;em&gt;This is where things got interesting.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The fourth project was supposed to be a straightforward assignment: install a LAMP/NGINX stack, serve a basic HTML/CSS site, and make it public with Ngrok. Simple, right?&lt;/p&gt;

&lt;p&gt;Well, I accidentally built a full-stack web application with a React frontend, a FastAPI backend, and a MongoDB database. Let me walk you through how "scope creep" became the single best learning experience of my journey so far.&lt;/p&gt;


&lt;h2&gt;
  
  
  💭 From “What If?” to “Why Not?”
&lt;/h2&gt;

&lt;p&gt;After setting up the basic NGINX server in a few hours, I had a thought that many of you might find familiar: &lt;em&gt;"This is cool, but... what if I made it actually useful?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A static site felt like checking a box. I wanted to build something that would:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Showcase my skills&lt;/strong&gt; beyond the certification requirements.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Force me to learn&lt;/strong&gt; the modern web technologies I see in job descriptions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Create a real platform&lt;/strong&gt; to host my other projects and blog about my learnings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Demonstrate a problem-solving mindset&lt;/strong&gt; to potential employers.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That "what if" moment was the starting pistol for a deep dive into full-stack development.&lt;/p&gt;


&lt;h2&gt;
  
  
  🔧 Tech Stack Evolution: Hello Full-Stack World
&lt;/h2&gt;

&lt;p&gt;What started as a simple plan...&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Original Plan:&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;HTML + CSS + NGINX = A simple static page&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;...quickly evolved into a much more ambitious reality.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I Actually Built:&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;React + Tailwind CSS + FastAPI + MongoDB + NGINX = A complete web application&lt;/code&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%2Ful11k7i91vli25qbsfg6.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%2Ful11k7i91vli25qbsfg6.png" alt="Project Architecture Diagram" width="573" height="342"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;(A high-level overview of the application architecture.)&lt;/em&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  Why I Chose This Stack:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Backend (FastAPI):&lt;/strong&gt; As an IT Support grad, I had a foundation in Python. FastAPI was the perfect next step. It's modern, incredibly fast, and the &lt;strong&gt;automatic API documentation&lt;/strong&gt; (&lt;code&gt;/docs&lt;/code&gt;) is a lifesaver for learning API design.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Frontend (React):&lt;/strong&gt; I had zero experience with frontend frameworks, but React is the industry standard. Thinking in &lt;strong&gt;components&lt;/strong&gt; felt like a natural extension of the problem-solving and troubleshooting mindset I'd been developing. I paired it with &lt;strong&gt;Tailwind CSS&lt;/strong&gt; and &lt;strong&gt;shadcn/ui&lt;/strong&gt; to build a professional-looking UI without getting lost in CSS from day one.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Database (MongoDB):&lt;/strong&gt; I chose MongoDB over a traditional SQL database because its &lt;strong&gt;flexible, JSON-like document structure&lt;/strong&gt; felt more intuitive for a beginner building a portfolio with varied content types (blog posts, project descriptions, user info).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  The Technical Journey: Code, Sweat, and "Aha!" Moments
&lt;/h2&gt;

&lt;p&gt;Here are some code moments that made it click — the ones where I started to feel like a real developer 😊.&lt;/p&gt;

&lt;p&gt;My first React component was a simple card to display my projects. The basic structure looked something like this, and getting it to render felt like magic&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="c1"&gt;// The React component felt like a huge win!&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;ProjectCard&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;description&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;link&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"border rounded-lg p-4 hover:shadow-lg transition-shadow"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h3&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"text-xl font-semibold"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h3&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"text-gray-600 mt-2"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;description&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt; &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;link&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"text-blue-500 hover:underline mt-4 inline-block"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
        View Project
      &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And here's how those cards look on the actual homepage, creating a clean, organised view of my projects:&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%2F5rqgjifp3e0d79z0nali.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%2F5rqgjifp3e0d79z0nali.png" alt="project cards on the homepage" width="800" height="419"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;(The final rendered project cards in the browser.)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;On the backend, creating my first FastAPI endpoint was the moment it all clicked. The Python I knew could now power a web API!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# This simple endpoint was the start of my entire backend
&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;fastapi&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;FastAPI&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;FastAPI&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="nd"&gt;@app.get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;/api/v1/projects&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_projects&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="c1"&gt;# In the full version, this function queries the MongoDB database
&lt;/span&gt;    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;message&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Hello from my projects API!&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One of FastAPI's best features is its automatic documentation. This became my single source of truth for testing and managing my API endpoints:&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%2F7c65wv3j25ocw0kx7i2d.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%2F7c65wv3j25ocw0kx7i2d.png" alt="the auto-generated FastAPI docs page" width="800" height="527"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;(The interactive API documentation generated by FastAPI at the &lt;code&gt;/docs&lt;/code&gt; endpoint.)&lt;/em&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Where Theory Meets Reality: The Deployment Gauntlet
&lt;/h2&gt;

&lt;p&gt;Building locally is one thing; deploying is where the real learning happens.&lt;/p&gt;
&lt;h3&gt;
  
  
  Challenge 1: The CGNAT Reality Check
&lt;/h3&gt;

&lt;p&gt;My original plan was to use DuckDNS for a custom domain, but I hit a wall. My mobile internet provider uses &lt;strong&gt;CGNAT (Carrier-Grade NAT)&lt;/strong&gt;, which means no public IP and no way to port forward. This was a classic IT networking problem!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt; &lt;strong&gt;Ngrok&lt;/strong&gt;. It creates a secure tunnel to your localhost, giving you a public URL instantly. It was the perfect tool for getting a live demo up and running.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# The simple solution that saved the day&lt;/span&gt;
ngrok http 80
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command gave me a public URL, making my local server accessible to anyone in the world:&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%2Frv37sorj4mie7k36hkef.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%2Frv37sorj4mie7k36hkef.png" alt="Ngrok terminal output showing a public URL" width="775" height="580"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;(Ngrok's terminal interface after successfully creating a public tunnel.)&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Challenge 2: The Dreaded CORS Error
&lt;/h3&gt;

&lt;p&gt;Once I separated my React frontend and FastAPI backend, I ran into the infamous Cross-Origin Resource Sharing (CORS) error. My frontend on &lt;code&gt;localhost:3000&lt;/code&gt; wasn't allowed to talk to my backend on &lt;code&gt;localhost:8000&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt; A proper &lt;strong&gt;NGINX Reverse Proxy&lt;/strong&gt;. This is a fundamental DevOps concept. Instead of having two separate servers, NGINX listens on port 80 and intelligently routes traffic: requests for the website go to the React app, and requests starting with &lt;code&gt;/api/&lt;/code&gt; are forwarded to the FastAPI backend.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight nginx"&gt;&lt;code&gt;&lt;span class="c1"&gt;# My NGINX reverse proxy configuration&lt;/span&gt;
&lt;span class="k"&gt;server&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kn"&gt;listen&lt;/span&gt; &lt;span class="mi"&gt;80&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="c1"&gt;# Serve the React app&lt;/span&gt;
    &lt;span class="kn"&gt;location&lt;/span&gt; &lt;span class="n"&gt;/&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kn"&gt;root&lt;/span&gt; &lt;span class="n"&gt;/var/www/portfolio/frontend/build&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="kn"&gt;try_files&lt;/span&gt; &lt;span class="nv"&gt;$uri&lt;/span&gt; &lt;span class="n"&gt;/index.html&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="c1"&gt;# Forward API requests to the FastAPI backend&lt;/span&gt;
    &lt;span class="kn"&gt;location&lt;/span&gt; &lt;span class="n"&gt;/api/&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kn"&gt;proxy_pass&lt;/span&gt; &lt;span class="s"&gt;http://localhost:8000&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="kn"&gt;proxy_set_header&lt;/span&gt; &lt;span class="s"&gt;Host&lt;/span&gt; &lt;span class="nv"&gt;$host&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="kn"&gt;proxy_set_header&lt;/span&gt; &lt;span class="s"&gt;X-Real-IP&lt;/span&gt; &lt;span class="nv"&gt;$remote_addr&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here's a quick look at the NGINX configuration file in my editor. It's a small file, but it does a lot of heavy lifting:&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%2Fy2ejab8kkykzkpezymba.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%2Fy2ejab8kkykzkpezymba.png" alt="NGINX config file in a code editor" width="796" height="480"&gt;&lt;/a&gt; &lt;em&gt;(The NGINX configuration that routes traffic to the correct application.)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Absolutely — the structure, clarity, and flow of this revised version are excellent. It's &lt;strong&gt;engaging, honest, and educational&lt;/strong&gt; — perfect for a Dev.to audience.&lt;/p&gt;

&lt;p&gt;Here’s a minor polish to tighten the language and enhance the emotional and technical punch just a bit more:&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 My Secret Weapon: AI-Assisted Development
&lt;/h2&gt;

&lt;p&gt;Let me be transparent: I didn’t grind through endless tutorials or spend weeks copying boilerplate from YouTube videos. Instead, I leaned into &lt;strong&gt;AI-assisted development&lt;/strong&gt; — what some call &lt;em&gt;vibe coding&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Tools like &lt;strong&gt;Emergent&lt;/strong&gt; and &lt;strong&gt;Cursor IDE&lt;/strong&gt; became my coding partners. This wasn’t about “cheating”; it was about &lt;strong&gt;learning faster&lt;/strong&gt; and &lt;strong&gt;building smarter&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;I focused on architecture instead of syntax struggles.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;When I hit an error, I didn’t just ask for a fix — I asked for understanding.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here’s a real prompt that saved me hours of Googling:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“I'm getting a CORS error between my React app on port 3000 and my FastAPI backend on port 8000, both running locally. Explain why this happens and show me the correct NGINX configuration to fix it using a reverse proxy.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That one query unlocked the NGINX config that finally made everything click.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;AI tools didn’t replace the learning — they &lt;em&gt;accelerated&lt;/em&gt; it.&lt;/strong&gt; I still had to debug, think critically, and design solutions. But with AI, I spent more time learning concepts and less time stuck in StackOverflow loops.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  The Outcome: From IT Support Grad to Full-Stack Capable
&lt;/h2&gt;

&lt;p&gt;This project completely transformed my skillset and confidence. The final result wasn't just a landing page; it was a feature-rich platform. I built an admin-only Markdown editor to write and publish articles, which immediately made the site a dynamic content hub.&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%2Fiv4phw0r8puec06tklsw.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%2Fiv4phw0r8puec06tklsw.png" alt="the admin Markdown editor" width="800" height="406"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;(The split-view Markdown editor for creating and editing blog posts.)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The public-facing side includes a fully rendered blog detail page, complete with support for code blocks, images, and other formatting. To make it interactive, I implemented a comments system and tag-based filtering, allowing visitors to engage with content and find posts relevant to their interests.&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%2Fdp8ct1aev2u4bkoc4zu7.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%2Fdp8ct1aev2u4bkoc4zu7.png" alt="A fully rendered blog post page" width="800" height="406"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;(The public-facing view of a finished blog post.)&lt;/em&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%2Fk7qfumje9hysk80loxwp.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%2Fk7qfumje9hysk80loxwp.png" alt="The comments and related posts section" width="800" height="406"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;(The interactive elements: a comments section and links to related articles.)&lt;/em&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%2Fm4hvihwuovi5zlm15n58.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%2Fm4hvihwuovi5zlm15n58.png" alt="Screenshot of the tag filtering UI in action" width="800" height="412"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;(Filtering blog posts by clicking on a specific tag.)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Before This Project:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Basic HTML/CSS knowledge.&lt;/li&gt;
&lt;li&gt;Python scripting skills.&lt;/li&gt;
&lt;li&gt;Theoretical understanding of servers and networking.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;After This Project:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Practical experience with &lt;strong&gt;React&lt;/strong&gt; and &lt;strong&gt;FastAPI&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Understanding of &lt;strong&gt;REST API design&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Knowledge of &lt;strong&gt;NoSQL databases&lt;/strong&gt; (MongoDB).&lt;/li&gt;
&lt;li&gt;Real-world experience with &lt;strong&gt;NGINX&lt;/strong&gt;, &lt;strong&gt;reverse proxies&lt;/strong&gt;, and &lt;strong&gt;CORS&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;A live, full-stack portfolio to showcase my work.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here's a look at the final homepage, bringing together all the elements into a clean, professional presentation:&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%2Fqvkazpr7thd3gcu8rv4t.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%2Fqvkazpr7thd3gcu8rv4t.png" alt="Screenshot of the final application homepage" width="800" height="422"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;(The main landing page of the completed portfolio application.)&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;🧪 What This App Does:&lt;/strong&gt;&lt;br&gt;
This isn’t just a personal site — it’s a full-stack platform with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A markdown-powered blog editor (admin-only)&lt;/li&gt;
&lt;li&gt;Dynamic blog pages with comments and tag filtering&lt;/li&gt;
&lt;li&gt;A portfolio showcase of my real-world IT &amp;amp; DevOps projects&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Next Steps on My Journey
&lt;/h2&gt;

&lt;p&gt;This project is a solid foundation, but I'm just getting started. My immediate goals are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[ ] &lt;strong&gt;Implement JWT authentication for user accounts.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;[ ] Deploy the application to a cloud provider like &lt;strong&gt;AWS&lt;/strong&gt; or &lt;strong&gt;Oracle Cloud Free Tier&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;[ ] Set up a proper &lt;strong&gt;CI/CD pipeline&lt;/strong&gt; with GitHub Actions.&lt;/li&gt;
&lt;li&gt;[ ] Containerise the application using &lt;strong&gt;Docker&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;[ ] Implement monitoring and logging as part of my DevOps learning journey with the 3MTT Nigeria program.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  My Advice for Fellow IT &amp;amp; Tech Beginners
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Embrace "Scope Creep":&lt;/strong&gt; If a project excites you, don't be afraid to go beyond the minimum requirements. The detour is often where the most valuable learning happens.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Your IT Fundamentals are Superpowers:&lt;/strong&gt; My understanding of networking (CGNAT) and system administration (NGINX) from the Google course was invaluable for debugging real-world issues.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Use Modern Tools:&lt;/strong&gt; AI assistants are not a crutch; they are a powerful lever. Use them to learn faster and stay focused on the bigger picture.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Build in Public:&lt;/strong&gt; Share your journey, even the messy parts. The feedback is invaluable, and your struggles will help someone else who is on the same path.&lt;/li&gt;
&lt;/ol&gt;




&lt;h1&gt;
  
  
  showdev #webdev #react #python #3mttNigeria #growWithGoogle #fastapi #devops #beginner #fullstack
&lt;/h1&gt;




&lt;h3&gt;
  
  
  🔗 Check It Out
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Live Demo:&lt;/strong&gt; &lt;a href="https://26d0e4e058c9.ngrok-free.app/" rel="noopener noreferrer"&gt;My Portfolio Website&lt;/a&gt; &lt;em&gt;(Note: Ngrok tunnel may be offline)&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Source Code:&lt;/strong&gt; &lt;a href="https://github.com/daretechie/daretechie" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🤝 Let's Connect!
&lt;/h3&gt;

&lt;p&gt;I'm actively preparing for my first IT role and would love to connect with other tech enthusiasts, especially fellow Google IT Support graduates and aspiring DevOps engineers.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/daretechie" rel="noopener noreferrer"&gt;@daretechie&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LinkedIn:&lt;/strong&gt; &lt;a href="https://www.linkedin.com/in/daretechie" rel="noopener noreferrer"&gt;daretechie&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;🎙 What About You?&lt;br&gt;
Have you ever started something small and ended up building way more than you planned? Share your story or drop a link to your favourite “accidental masterpiece.” I’d love to learn from your journey, too.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>python</category>
      <category>showdev</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
