<?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: Seun Agbede</title>
    <description>The latest articles on Forem by Seun Agbede (@seunagbede).</description>
    <link>https://forem.com/seunagbede</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%2F549816%2Ffdf8bb8a-0983-473a-8a0e-202ffb3e3c8b.jpeg</url>
      <title>Forem: Seun Agbede</title>
      <link>https://forem.com/seunagbede</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/seunagbede"/>
    <language>en</language>
    <item>
      <title>My two cents on tech certs</title>
      <dc:creator>Seun Agbede</dc:creator>
      <pubDate>Sat, 17 May 2025 11:31:44 +0000</pubDate>
      <link>https://forem.com/seunagbede/my-two-cents-on-tech-certs-48ji</link>
      <guid>https://forem.com/seunagbede/my-two-cents-on-tech-certs-48ji</guid>
      <description>&lt;p&gt;As professionals in the fast-moving tech industry, it's fair to say we're constantly playing catch-up with emerging technologies. One popular way people stay current in this ever-evolving landscape is through tech certifications. These credentials offer a means of validating skills—and sometimes, they’re even necessary for compliance.&lt;/p&gt;

&lt;p&gt;But how much weight should certifications really carry? And how should professionals approach them?&lt;/p&gt;

&lt;p&gt;After chatting with a few colleagues, I realized there's no single consensus—opinions vary widely. More people than I expected seem to resent certifications, pursuing them only because their employers require it. A few Reddit threads (my source of unquestionable truth these days) seem to echo that sentiment too.   &lt;/p&gt;




&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Certifications validate knowledge, not mastery&lt;/li&gt;
&lt;li&gt;Being certified ≠ Being a subject-matter expert (SME)&lt;/li&gt;
&lt;li&gt;Certifications aren’t inherently bad or useless&lt;/li&gt;
&lt;li&gt;Like most things in life, their value depends on how you use them&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  My two cents
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Certifications Validate Knowledge — Nothing More, Nothing Less&lt;/strong&gt; &lt;br&gt;
Certifications can be valuable, but they’re not a golden ticket to expertise or career success. Passing a certification exam means you've studied the material and can recall it under test conditions. That’s it.&lt;/p&gt;

&lt;p&gt;It doesn’t mean you’ve deployed a production-grade system, debugged a critical outage, or optimized a real-world architecture.&lt;/p&gt;

&lt;p&gt;Take me, for instance — passing the AWS Solutions Architect Associate exam doesn’t mean I can stand shoulder to shoulder with career architects who’ve been doing this longer than I’ve been in tech. Certifications provide a structured way to learn, but they’re not proof of real-world mastery.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Being Certified ≠ Being an SME&lt;/strong&gt;&lt;br&gt;
Some professionals fall into the trap of thinking that a certification makes them a subject-matter expert. That’s risky—especially in fields like cybersecurity or cloud engineering, where hands-on experience is irreplaceable.&lt;/p&gt;

&lt;p&gt;An SME is someone who has solved complex, unscripted problems—not someone who memorized a question dump. Certifications should supplement experience, not replace it.&lt;/p&gt;

&lt;p&gt;We've all met that one guy who has every certification under the sun but struggles with basic tasks. It’s awkward and avoidable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Practical experience always trumps theory&lt;/strong&gt; &lt;br&gt;
No certification can replicate the lessons you learn from:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Debugging a failing CI/CD pipeline at 3:00 AM&lt;/li&gt;
&lt;li&gt;Troubleshooting a network bottleneck under pressure&lt;/li&gt;
&lt;li&gt;Fixing a code regression you accidentally introduced&lt;/li&gt;
&lt;li&gt;Delivering a feature under an impossible deadline&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Real-world problem-solving builds instincts no exam can test.&lt;br&gt;
That’s why, in interviews, candidates with “battle-tested” experience often stand out and go on to get roles. They usually provide more structured, in-depth answers because they’ve lived the problems, not just studied them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Certifications are great for learning new tech and opening up &lt;br&gt;
 opportunities&lt;/strong&gt;&lt;br&gt;
I don't think certifications are all useless though. One of the best uses for certifications is the structured learning it provides especially when exploring unfamiliar territory. If you're a backend engineer interested in cybersecurity, studying for Security+ or CISSP can give you a solid foundation in understanding the fundamentals of security. As a developer working mostly on-prem, you may use an Azure or GCP cert to get hands-on with cloud concepts, virtualization etc. This helps with breaking into new fields or trying to stand out in a crowded job market. I feel it signals initiative and shows employers you’re committed to continuous learning. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. It’s what you make of them that matters&lt;/strong&gt; &lt;br&gt;
At the end of the day, certifications are just tools. Some people collect them like trophies without deepening their skills. Others use them strategically—to fill knowledge gaps and propel their careers forward. I think certifications should guide learning and not replace hands-on practice. They should certainly be paired with labs, pet projects, or real-world applications.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Final Thought&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Tech certifications are useful but they’re just one piece of the puzzle. Their real value lies in how you apply what you’ve learned. So study for the exam, sure but then go build, break and fix things in the real world. That’s where true expertise is forged.&lt;/p&gt;

&lt;p&gt;What’s your take on tech certifications? Have they helped your career, or do you think they’re overrated? Leave your thoughts in the comments! 🚀&lt;/p&gt;

</description>
      <category>certification</category>
    </item>
    <item>
      <title>AWS Summit London 2025: AI, Rap Battles &amp; Snowflake Slides</title>
      <dc:creator>Seun Agbede</dc:creator>
      <pubDate>Mon, 05 May 2025 08:17:32 +0000</pubDate>
      <link>https://forem.com/seunagbede/aws-summit-london-2025-ai-rap-battles-snowflake-slides-2b1l</link>
      <guid>https://forem.com/seunagbede/aws-summit-london-2025-ai-rap-battles-snowflake-slides-2b1l</guid>
      <description>&lt;p&gt;Last week, I attended my first ever AWS Summit in London and it was a whirlwind of innovation, pleasant encounters and pure tech excitement. Despite a rocky start (more on that later), the day left me buzzing with inspiration — especially after seeing just how deeply AI is shaping the future of tech. I'm not exaggerating when I say  99% of all the sessions were AI focused.&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%2Fndtc7i0z2x9wku096yeg.jpg" 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%2Fndtc7i0z2x9wku096yeg.jpg" alt="Summit Entrance" width="800" height="1066"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;center&gt;Summit Entrance&lt;/center&gt;



&lt;p&gt;&lt;em&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt;&lt;/em&gt; AI is everywhere and here to stay! 🤖. Slides over stairs 😬. My first AWS Summit was a blast 🚀&lt;/p&gt;

&lt;h3&gt;
  
  
  A Late Start 🕰️
&lt;/h3&gt;

&lt;p&gt;I’ll admit it — I missed the keynote. London’s infamous morning rush coupled with a wrong turn on my way down from Nottingham meant I arrived just as the opening speech was wrapping up. That minor setback didn't dampen my enthusiasm for long though. The palpable energy radiating from the bustling crowds and vendor stalls, along with the exciting schedule of sessions and workshops ahead, assured me the day held much more in store. &lt;/p&gt;

&lt;p&gt;With my badge in hand, I strode purposefully inside.&lt;/p&gt;

&lt;h3&gt;
  
  
  A few fascinating stops ✨
&lt;/h3&gt;

&lt;p&gt;My introduction to the event was immediately captivating. I walked straight into a live rap battle unfolding between an AWS employee and an AI, with a separate AI presiding as judge. Donning my wireless silent disco headphones, I found myself nodding along to the beat, bobbing my head along with the grinning audience as the AI competitor delivered flawless rhymes. The AI judge, perhaps predictably, declared its digital counterpart the winner. The spectacle was both deeply impressive and a little unsettling. It felt a bit dystopian and vividly demonstrated that LLMs are now capable of far more than just generating code or writing essays.&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%2Funlkv31sioefryak0ncb.jpg" 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%2Funlkv31sioefryak0ncb.jpg" alt="Rap battle architecture" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;center&gt;Architecture&lt;/center&gt;




&lt;p&gt;I also had the opportunity to attend a GitLab-hosted Fireside Chat on Innovating with AI in Regulated Industries. &lt;a href="https://www.linkedin.com/in/chutchis/" rel="noopener noreferrer"&gt;Chris Hutchinson&lt;/a&gt;, Director of Enterprise ToolChain at Barclays, shared his experience deploying GitLab Duo as the foundation of their enterprise pipelines. Having last used GitLab over a year ago, I was impressed by their relatively new AI-powered GitLab Duo offering. Hearing firsthand accounts of its capabilities, from suggesting security fixes to generating CI/CD pipelines, left me desperately wanting to head back home and git it a try!&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%2Fk3tp5zjxl9wv38t9mu5f.jpg" 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%2Fk3tp5zjxl9wv38t9mu5f.jpg" alt="GitLab Fireseide Chat" width="800" height="1066"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;center&gt;GitLab-hosted Fireside Chat&lt;/center&gt;




&lt;p&gt;Another interesting session I attended was one about agentic AI. If you're not too familiar with what agentic AI is, it is&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;a form of Artificial Intelligence that can &lt;em&gt;autonomously plan, act, and adapt&lt;/em&gt; to achieve complex goals—like a self-directed "agent."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Imagine prompting an LLM with "book me a 5-day Bali holiday" and instantly, a &lt;em&gt;&lt;strong&gt;Task Breakdown Agent&lt;/strong&gt;&lt;/em&gt; dissects this into sub-tasks e.g. find the cheapest London-Bali flights, book a central 4-star Bali hotel, research/book a Bali cultural activity and identify top-rated Bali restaurants. Then, &lt;strong&gt;&lt;em&gt;Specialist Agents&lt;/em&gt;&lt;/strong&gt; like a &lt;strong&gt;&lt;em&gt;Flight Agent&lt;/em&gt;&lt;/strong&gt; scours platforms for optimal flight fares, a &lt;strong&gt;&lt;em&gt;Hotel Agent&lt;/em&gt;&lt;/strong&gt; compares options and seeks perks, an &lt;em&gt;&lt;strong&gt;Activity Agent&lt;/strong&gt;&lt;/em&gt; handles bookings and calendars, and a &lt;strong&gt;&lt;em&gt;Dining Agent&lt;/em&gt;&lt;/strong&gt; reserves suitable restaurants. So from that simple prompt you don’t just get suggestions, you actually get things done!&lt;/p&gt;

&lt;p&gt;Or imagine another scenario where you tell agentic AI to write code → test it → deploy it to production → monitor for failures → self-heal by fixing its own code vulnerabilities etc. Pretty incredible right?&lt;/p&gt;

&lt;p&gt;It was no doubt the standout session for me. The potential for autonomous, self-improving systems is mind-blowing when you really think about it.&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%2Fe4vlqgd6e5pv7fb8nj06.jpg" 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%2Fe4vlqgd6e5pv7fb8nj06.jpg" alt="Agentic AI session" width="800" height="1066"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;center&gt;Agentic AI session&lt;/center&gt;




&lt;h3&gt;
  
  
  Unexpected Reunions 👋🏾
&lt;/h3&gt;

&lt;p&gt;One of the other highlights of the summit was undoubtedly reconnecting with former colleagues and classmates. I ran into a university peer and a former coworker, and it was genuinely nice to catch up with familiar faces. We swapped stories about career changes, AWS cloud certifications and the rapid advancements in AI. Seeing how much everyone has achieved was truly inspiring.&lt;/p&gt;

&lt;h3&gt;
  
  
  Last but not least 🛝
&lt;/h3&gt;

&lt;p&gt;The Snowflake stand had a slide! Not a metaphorical one — an actual, physical slide from the first floor to the ground floor. Obviously, I took the express route down because if there’s one thing tech conferences need more of, it’s playful moments between all the futuristic talks. &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%2Fue65ys1uhqqw1rdqy3n5.jpg" 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%2Fue65ys1uhqqw1rdqy3n5.jpg" alt="Me coming down the snowflake slide" width="800" height="1200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;center&gt;Universal sign of the Millennial ✌🏾🤪✌🏾&lt;/center&gt;

&lt;h3&gt;
  
  
  Leaving Inspired 💫
&lt;/h3&gt;

&lt;p&gt;By the end of the day, one thing was clear: AI isn’t just a tool anymore — it’s a collaborator, a competitor (in rap battles, at least), and a catalyst for reimagining how we build tech. Whether it’s GitLab Duo streamlining DevOps or multi-agent systems redesigning workflows, the future is being written in code—and AWS Summit 2025 gave me a thrilling preview.&lt;/p&gt;

&lt;p&gt;Till the next one!&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%2Ft61ptuf3qo6lbx89vk1k.jpg" 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%2Ft61ptuf3qo6lbx89vk1k.jpg" alt="Me standing behind the AWS Logo" width="800" height="1066"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;center&gt;For the culture 📸&lt;/center&gt;

</description>
      <category>aws</category>
      <category>cloudcomputing</category>
      <category>ai</category>
    </item>
    <item>
      <title>My Terraform meetup experience</title>
      <dc:creator>Seun Agbede</dc:creator>
      <pubDate>Sat, 06 May 2023 22:25:23 +0000</pubDate>
      <link>https://forem.com/seunagbede/my-terraform-meetup-experience-at-globallogic-31c1</link>
      <guid>https://forem.com/seunagbede/my-terraform-meetup-experience-at-globallogic-31c1</guid>
      <description>&lt;p&gt;I find attending technology events a good way to learn more about the industry and stay up to date with it's ever changing landscape. It's also a great way to network, pick up new skills or even gain a different perspective on an area you're already familiar with.&lt;/p&gt;

&lt;p&gt;One way I plug myself into the community is by looking up events local to me on &lt;a href="https://www.meetup.com/" rel="noopener noreferrer"&gt;meetup.com&lt;/a&gt;.  As a DevOps engineer, I joined the &lt;a href="https://www.meetup.com/devopsplayground/" rel="noopener noreferrer"&gt;devopsplayground&lt;/a&gt; group on the platform and have found their events interesting and educative. Recently, I attended one which was focused on Terraform. The venue was at &lt;a href="https://www.globallogic.com/uk/" rel="noopener noreferrer"&gt;GlobalLogic&lt;/a&gt; (a digital consulting services company in London) and this is how it went.&lt;/p&gt;




&lt;h3&gt;
  
  
  Arrival
&lt;/h3&gt;

&lt;p&gt;In typical fashion, I arrived on time so I could get a good feel for the room and most importantly, figure out the directions to the bathroom.&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%2F1qy7ygfis3cq3ju2h6c0.jpg" 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%2F1qy7ygfis3cq3ju2h6c0.jpg" alt="Arrival picture" width="800" height="1066"&gt;&lt;/a&gt; &lt;em&gt;Pardon the tired look. This was an after work meetup&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The organisers did a great job of making the registration process seamless and in no time I was seated and ready to go. By the way, the GlobalLogic office is really nice and located in a choice area. I had a good view of Tower Bridge and the River Thames from where I sat.    &lt;/p&gt;

&lt;h3&gt;
  
  
  Presentations
&lt;/h3&gt;

&lt;p&gt;The presentations kicked off with a brief introduction to Terraform. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Terraform is an open-source tool developed by HashiCorp that enables developers and operations teams manage infrastructure as code. This means defining and provisioning infrastructure resources using simple, declarative configuration files which  allow for more efficient, repeatable, and scalable deployments.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;So basically you write some lines of code and boom! You have your EC2 instances (or whichever resource you fancy) up and running.&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%2Fed85obvt33cxarvo93kz.jpg" 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%2Fed85obvt33cxarvo93kz.jpg" alt="presentation" width="800" height="1066"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It was then followed by an hour-long lab session where we used Terraform to build interesting objects in Minecraft. We were provided relevant access to development environments which allowed us focus on core Terraform workflows.&lt;/p&gt;

&lt;p&gt;In the process, we got to see some of the benefits of using an IaC tool - such as the reduced deployment time and infrastructure reliability. We also got tips on how to overcome common challenges, debug common errors, set log paths etc. We got to touch base on best practices as well e.g using version control for the configuration files, reusing configurations with modules, using a remote backend to store the &lt;code&gt;terraform.tfstate&lt;/code&gt; file etc. &lt;/p&gt;

&lt;p&gt;This is one of the things I built during the session&lt;br&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%2Fo5r8bt7gf4jz2v7u0kn9.jpg" 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%2Fo5r8bt7gf4jz2v7u0kn9.jpg" alt="Minecraft-Screenshot" width="800" height="1066"&gt;&lt;/a&gt; &lt;em&gt;Don't you dare judge me...haha&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;You can watch the full &lt;a href="https://www.youtube.com/watch?v=aLJVcwOS9dM" rel="noopener noreferrer"&gt;presentation&lt;/a&gt; or go through the &lt;a href="https://github.com/DevOpsPlayground/Terraform-X-Minecraft" rel="noopener noreferrer"&gt;READMEs&lt;/a&gt; used for the labs.&lt;/p&gt;

&lt;p&gt;We concluded with a Q&amp;amp;A session, where attendees got the chance to ask questions and share their own interesting experiences using Terraform. &lt;/p&gt;

&lt;h3&gt;
  
  
  Networking
&lt;/h3&gt;

&lt;p&gt;Afterwards, I did some more mingling where I was able to share my thoughts on the presentations with others over pizza and drinks. I sadly couldn't steal a picture here but trust me when I say there was a great variety of food on display.&lt;/p&gt;

&lt;p&gt;It was good to hear from other DevOps enthusiasts in the room, ask questions and lean in on their experiences. &lt;/p&gt;

</description>
      <category>devops</category>
      <category>community</category>
      <category>meetups</category>
    </item>
    <item>
      <title>Special Bash Parameters</title>
      <dc:creator>Seun Agbede</dc:creator>
      <pubDate>Sun, 26 Feb 2023 11:12:04 +0000</pubDate>
      <link>https://forem.com/seunagbede/special-bash-parameters-1id4</link>
      <guid>https://forem.com/seunagbede/special-bash-parameters-1id4</guid>
      <description>&lt;p&gt;It's always amazing observing experts. It often leaves you inspired, motivated and hungry for more professional growth of your own. Recently, I switched teams and now work alongside someone who has been writing bash scripts professionally for longer than I have been alive. Watching him approach problems has left me in awe.&lt;/p&gt;

&lt;p&gt;This week, I learnt about &lt;em&gt;built-in bash parameters&lt;/em&gt; from him and thought to explore them a little more.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;NB: The shell treats these parameters specially. They can only be referenced. Assignment to them is not allowed. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Parameters explored
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Asterisk - $*&lt;/li&gt;
&lt;li&gt;At sign - $@&lt;/li&gt;
&lt;li&gt;Hashtag - $#&lt;/li&gt;
&lt;li&gt;Question mark - $?&lt;/li&gt;
&lt;li&gt;Zero - $0&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt; &lt;br&gt;
&lt;a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  1. Asterisk *
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Variable&lt;/th&gt;
&lt;th&gt;Usage&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;$*&lt;/td&gt;
&lt;td&gt;Stores all the arguments that were entered on the command line ($1 $2 ...)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For example take script &lt;code&gt;foo.sh&lt;/code&gt; below&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;#!/bin/bash&lt;/span&gt;

&lt;span class="c"&gt;# loops over arguments and prints them in a new line&lt;/span&gt;

&lt;span class="k"&gt;for &lt;/span&gt;i &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="nv"&gt;$*&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do
  &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; 
&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now run the script and pass a few arguments&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="nv"&gt;$ &lt;/span&gt;./foo.sh arg-1 arg-2 arg-3 arg-4
arg-1

arg-2

arg-3

arg-4


&lt;span class="c"&gt;# notice double quotes around "arg-2 arg-3" are ignored &lt;/span&gt;
&lt;span class="c"&gt;# they are treated as 2 seperate arguments&lt;/span&gt;

&lt;span class="nv"&gt;$ &lt;/span&gt;./foo.sh arg-1 &lt;span class="s2"&gt;"arg-2 arg-3"&lt;/span&gt; arg-4
arg-1

arg-2

arg-3

arg-4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;However, when we place &lt;code&gt;$*&lt;/code&gt; in double quotes &lt;code&gt;"$*"&lt;/code&gt; all the arguments are taken as a single string&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;#!/bin/bash&lt;/span&gt;

&lt;span class="c"&gt;#notice the change with "$*"&lt;/span&gt;

&lt;span class="k"&gt;for &lt;/span&gt;i &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$*&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do
  &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; 
&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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;./foo.sh arg-1 arg-2 arg-3 arg-4
arg-1 arg-2 arg-3 arg-4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt; &lt;br&gt;
&lt;a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  2. At sign @
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Variable&lt;/th&gt;
&lt;th&gt;Usage&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;$@&lt;/td&gt;
&lt;td&gt;Stores all the arguments that were entered on the command line, individually quoted ("$1" "$2" ...)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;code&gt;$@&lt;/code&gt; is similar to &lt;code&gt;$*&lt;/code&gt; but with a subtle difference.&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;#!/bin/bash&lt;/span&gt;

&lt;span class="k"&gt;for &lt;/span&gt;i &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="nv"&gt;$@&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do
  &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; 
&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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;./foo.sh arg-1 arg-2 arg-3 arg-4
arg-1

arg-2

arg-3

arg-4


&lt;span class="c"&gt;# same behaviour as $*&lt;/span&gt;
&lt;span class="c"&gt;# double quotes are ignored&lt;/span&gt;

&lt;span class="nv"&gt;$ &lt;/span&gt;./foo.sh arg-1 &lt;span class="s2"&gt;"arg-2 arg-3"&lt;/span&gt; arg-4
arg-1

arg-2

arg-3

arg-4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;However, &lt;code&gt;$@&lt;/code&gt; behaviour changes when in double quotes &lt;code&gt;"$@"&lt;/code&gt;&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;#!/bin/bash&lt;/span&gt;

&lt;span class="c"&gt;#notice the change with "$@"&lt;/span&gt;

&lt;span class="k"&gt;for &lt;/span&gt;i &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$@&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do
  &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; 
&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;
&lt;span class="c"&gt;# double quotes are treated as a single argument&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;./foo.sh arg-1 &lt;span class="s2"&gt;"arg-2 arg-3"&lt;/span&gt; arg-4
arg-1 

arg-2 arg-3 

arg-4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With &lt;code&gt;"$@"&lt;/code&gt;, all the arguments that were entered are treated individually quoted ("$1" "$2"...) &lt;/p&gt;

&lt;p&gt;This is generally the behaviour we often want when writing scripts and how it differs from &lt;code&gt;$*&lt;/code&gt;&lt;/p&gt;

&lt;p&gt; &lt;br&gt;
&lt;a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  3. Hashtag #
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Variable&lt;/th&gt;
&lt;th&gt;Usage&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;$#&lt;/td&gt;
&lt;td&gt;Stores the number of command-line arguments that were passed to the shell program.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Take &lt;code&gt;foo.sh&lt;/code&gt;&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;#!/bin/bash&lt;/span&gt;

&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Number of arguments entered is : &lt;/span&gt;&lt;span class="nv"&gt;$# &lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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;./foo.sh arg-1 arg-2 arg-3 arg-4
Number of arguments entered is : 4


&lt;span class="nv"&gt;$ &lt;/span&gt;./foo.sh arg-1 arg-2 
Number of arguments entered is : 2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt; &lt;br&gt;
&lt;a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  4. Question mark ?
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Variable&lt;/th&gt;
&lt;th&gt;Usage&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;$?&lt;/td&gt;
&lt;td&gt;Stores the exit value of the last command that was executed.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;It's also called exit status and this variable stores the exit value of the last command that was executed. It is an integer number. &lt;/p&gt;

&lt;p&gt;If &lt;code&gt;$?&lt;/code&gt; equals 0, the previously run command was successful. &lt;br&gt;
If &lt;code&gt;$?&lt;/code&gt; is between 1-255, the command failed. &lt;br&gt;
If &lt;code&gt;$?&lt;/code&gt; equals 127, then the command is not found.&lt;/p&gt;

&lt;p&gt;Example usage :&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="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Hello there!"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; file.txt

&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cat &lt;/span&gt;file.txt
Hello there!

&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$?&lt;/span&gt;
0

&lt;span class="c"&gt;# returns 0 as the last run command was successful.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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;cat &lt;/span&gt;non-existent-file.txt
&lt;span class="nb"&gt;cat&lt;/span&gt;: non-existent-file.txt: No such file or directory

&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$?&lt;/span&gt;
1

&lt;span class="c"&gt;# returns 1 as the last run command was unsuccessful.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can see the usefullness of &lt;code&gt;$?&lt;/code&gt; in this urlchecker script &lt;code&gt;bar.sh&lt;/code&gt;&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;#!/bin/bash&lt;/span&gt;

curl &lt;span class="nt"&gt;--output&lt;/span&gt; /dev/null &lt;span class="nt"&gt;--silent&lt;/span&gt; &lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;1&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nv"&gt;exit_code&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$?&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nv"&gt;exit_code&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$?&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;exit_code&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt; &lt;span class="nt"&gt;-eq&lt;/span&gt; 0 &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
        &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;1&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; is a valid url"&lt;/span&gt;
    &lt;span class="k"&gt;else
        &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Sorry, &lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;1&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; is NOT a valid url"&lt;/span&gt;
    &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Invoking the script and passing in both valid and invalid urls&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="nv"&gt;$ &lt;/span&gt;./bar.sh https://www.google.com
https://www.google.com is a valid url

&lt;span class="nv"&gt;$ &lt;/span&gt;./bar.sh https://www.not-a-valid-website.com
Sorry, https://www.not-a-valid-website.com is NOT a valid url
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt; &lt;br&gt;
&lt;a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  5. Zero 0
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Variable&lt;/th&gt;
&lt;th&gt;Usage&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;$0&lt;/td&gt;
&lt;td&gt;Stores the name of the script that is currently being executed.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Take script &lt;code&gt;bar.sh&lt;/code&gt;&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;#!/bin/bash&lt;/span&gt;

&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"This is the name of this shell script : &lt;/span&gt;&lt;span class="nv"&gt;$0&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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;./bar.sh
This is the name of this shell script : ./bar.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Just running in the terminal, you get :&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="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$0&lt;/span&gt;
&lt;span class="nt"&gt;-bash&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In essense, &lt;code&gt;$0&lt;/code&gt; holds the name of the currently executing script in bash.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;You can see more on special bash parameters from the &lt;a href="https://www.gnu.org/software/bash/manual/bash.html#Special-Parameters" rel="noopener noreferrer"&gt;Bash reference manual&lt;/a&gt;&lt;/p&gt;

</description>
      <category>bash</category>
      <category>shell</category>
      <category>script</category>
    </item>
    <item>
      <title>Why I started writing code</title>
      <dc:creator>Seun Agbede</dc:creator>
      <pubDate>Fri, 08 Jan 2021 11:10:52 +0000</pubDate>
      <link>https://forem.com/seunagbede/why-i-started-writing-code-aof</link>
      <guid>https://forem.com/seunagbede/why-i-started-writing-code-aof</guid>
      <description>&lt;p&gt;It's been roughly 10 months since I started teaching myself to code. Funny enough, I recall a conversation I had with a friend around the time I set out on this journey. I had just been exposed to some HTML and was explaining to him how excited I was about it. His response to my elation was - "&lt;em&gt;don't worry, that's how it starts&lt;/em&gt;". He was absolutely right! That was just the beginning of what has been my dive into front end development.&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%2Fi%2Fr24ie29qxbcyziv1qfj4.gif" 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%2Fi%2Fr24ie29qxbcyziv1qfj4.gif" alt="Dive" width="475" height="272"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  So what really got me going?
&lt;/h4&gt;

&lt;p&gt;Simply, the realisation that I was falling out of love with what I had been doing. I had reached a plateau. I had reached a place in my role as a graphic designer where everything just felt flat.  I realised I had lost a bit of passion and on most days, I dragged myself through work. I had lost the zeal and excitement I once had. More troubling was the fact that I couldn't place a finger on why this was the case. This went on for a few months until I was randomly asked to complete a task by a colleague. I was asked to fill in a destination link for an &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; tag on a landing page. I recall doing a quick search and learning about the &lt;code&gt;href&lt;/code&gt; attribute in the process. I remember feeling anxious while figuring it out but also super excited when I got it done. I felt alive again and somehow, solving that "big problem" got me all fired up. &lt;/p&gt;

&lt;p&gt;That was when it hit me! &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%2Fi%2Fb5iczqase3hm3ewm0ko0.gif" 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%2Fi%2Fb5iczqase3hm3ewm0ko0.gif" alt="HIT" width="400" height="262"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  I stopped learning
&lt;/h4&gt;

&lt;p&gt;At last, I could finally place it! It became clear why I was losing enthusiasm. &lt;em&gt;I had stopped learning new things&lt;/em&gt;. I was no longer playing to my strengths or taking on projects requiring new skills. This was the reason I was slowly getting into a rot. &lt;/p&gt;

&lt;p&gt;Incidentally, around the same time, I stumbled upon &lt;a href="https://www.instagram.com/tv/B9UjYhIAkOk/?utm_source=ig_web_copy_link" rel="noopener noreferrer"&gt;this video&lt;/a&gt; from Harvard Business Review's instagram page. In the video, &lt;a href="https://twitter.com/johnsonwhitney?s=20" rel="noopener noreferrer"&gt;Whitney Johnson&lt;/a&gt; explains the concept of the &lt;em&gt;S curve of learning&lt;/em&gt; and how it can be used to understand people's change processes. At this point &lt;em&gt;I was convinced the universe was trying to tell me something&lt;/em&gt;. The &lt;em&gt;S curve of learning&lt;/em&gt; looks like this and is categorised into three parts.&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%2Fi%2Fzq82k9kbojwgp9igbvst.jpg" 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%2Fi%2Fzq82k9kbojwgp9igbvst.jpg" alt="maxresdefault" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The Inexperience phase -&amp;gt; characterised by slow growth, occasional frustration.&lt;/li&gt;
&lt;li&gt;The Engagement phase -&amp;gt; characterised by exhilaration, learning and confidence.&lt;/li&gt;
&lt;li&gt;The Mastery phase -&amp;gt; characterised by dissatisfaction, boredom and the longing to do something new.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I realised I was in the third phase of this curve as my growth and enthusiasm had started to dwindle. I needed to move onto the next &lt;em&gt;S curve of learning&lt;/em&gt; where I would tackle different types of problems and feel the excitement of learning new things again. I needed to disrupt myself.&lt;/p&gt;

&lt;p&gt;The last few months have been exciting and often frustrating. Learning more about front end development has exposed me to a universe I didn't even know existed. I know a lot more now, but somehow the more I know, the more I know I don't know. &lt;/p&gt;

&lt;p&gt;I am glad I started writing code.  &lt;/p&gt;

</description>
      <category>webdev</category>
    </item>
  </channel>
</rss>
