<?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>DEV Community: Jerome Thibaud</title>
    <description>The latest articles on DEV Community by Jerome Thibaud (@kalisen).</description>
    <link>https://dev.to/kalisen</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%2F1346264%2F42dd9611-a8dc-4dbf-9a93-d9c3f8c4d9ce.jpeg</url>
      <title>DEV Community: Jerome Thibaud</title>
      <link>https://dev.to/kalisen</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kalisen"/>
    <language>en</language>
    <item>
      <title>How to deal with the Frankenstein Software Monster</title>
      <dc:creator>Jerome Thibaud</dc:creator>
      <pubDate>Thu, 25 Jul 2024 14:30:10 +0000</pubDate>
      <link>https://dev.to/kalisen/how-to-deal-with-the-frankenstein-software-monster-1jnc</link>
      <guid>https://dev.to/kalisen/how-to-deal-with-the-frankenstein-software-monster-1jnc</guid>
      <description>&lt;p&gt;First, we have to salute the achievement. Creating life is no small feat! &lt;br&gt;
We engage in this conversation with the utmost respect for all the Victor Frankenstein out there.&lt;/p&gt;

&lt;p&gt;The Frankenstein Monster situation is definitely not limited to software. Every city is a Frankenstein monster, Every house of a certain age is one as well. Home improvements projects can leave our home looking like a patchwork of eras, architectures and interior designs. Picture a 1980’s Bathroom in a 1920’s house lit with 2020’s LED bulbs and digital dimmers on 1900’s knob-and-tube wiring .&lt;/p&gt;

&lt;p&gt;It works but there are caveats.&lt;/p&gt;

&lt;h2&gt;
  
  
  Take Away
&lt;/h2&gt;

&lt;p&gt;Frankenstein software is the result of complex interactions between many variables.&lt;/p&gt;

&lt;p&gt;Frankenstein software has its place for the purpose of concept validation and bootstrapping.&lt;/p&gt;

&lt;p&gt;Frankenstein software can appear gradually, over time. What was a deliberate desired state can become a liability.&lt;/p&gt;

&lt;p&gt;Software is never finished, always in flux as the world changes, technology changes and we change. All those changing conditions can lead to the creation of a Monster if not managed properly.&lt;/p&gt;

&lt;p&gt;Navigating out of Frankenstein requires experience and effort. In most cases, it can be done but don’t go alone!&lt;/p&gt;

&lt;p&gt;The story of Frankenstein could have likely had a better ending if Victor had faced the situation and properly cared for his creation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Read the full article:
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.jeromethibaud.com/en/blog/how-to-deal-with-the-frankenstein-software-monster/" rel="noopener noreferrer"&gt;https://www.jeromethibaud.com/en/blog/how-to-deal-with-the-frankenstein-software-monster/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>softwaredevelopment</category>
      <category>softwareengineering</category>
      <category>development</category>
      <category>software</category>
    </item>
    <item>
      <title>How to build a chrome extension in 2024</title>
      <dc:creator>Jerome Thibaud</dc:creator>
      <pubDate>Tue, 04 Jun 2024 15:52:05 +0000</pubDate>
      <link>https://dev.to/kalisen/how-to-build-a-chrome-extension-in-2024-1ba3</link>
      <guid>https://dev.to/kalisen/how-to-build-a-chrome-extension-in-2024-1ba3</guid>
      <description>&lt;p&gt;Happy to be here!&lt;/p&gt;

&lt;p&gt;This is a walkthrough on creating the 'Scrolling Zombie' chrome extension which tracks the amount of scrolling a user does to make them aware of their browsing behavior and help them fight dark UI patterns.&lt;/p&gt;

&lt;p&gt;In this guide I walk you through my typical approach to bringing an idea to life. I cover:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Problem statement&lt;/li&gt;
&lt;li&gt;Use Cases&lt;/li&gt;
&lt;li&gt;Architecture&lt;/li&gt;
&lt;li&gt;Implementation&lt;/li&gt;
&lt;li&gt;A few Observations (Gotchas)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Read the full guide:&lt;br&gt;
&lt;a href="https://www.jeromethibaud.com/en/blog/how-to-build-a-chrome-extension/"&gt;https://www.jeromethibaud.com/en/blog/how-to-build-a-chrome-extension/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Link to the extension in the store:&lt;br&gt;
&lt;a href="https://chromewebstore.google.com/detail/scrolling-zombie/jihbnbebcilifidcodopcibcaeiegmab"&gt;Scrolling Zombie extension in Chrome Web Store&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Have a great day!&lt;/p&gt;

</description>
      <category>extensions</category>
      <category>chrome</category>
      <category>howto</category>
    </item>
    <item>
      <title>Onboarding as a Senior Engineer</title>
      <dc:creator>Jerome Thibaud</dc:creator>
      <pubDate>Sat, 04 May 2024 15:13:40 +0000</pubDate>
      <link>https://dev.to/kalisen/onboarding-as-a-senior-engineer-1b33</link>
      <guid>https://dev.to/kalisen/onboarding-as-a-senior-engineer-1b33</guid>
      <description>&lt;p&gt;A 30/60/90 days plan is a valuable framework to use for a smooth landing in your new company. &lt;/p&gt;

&lt;p&gt;This suggested 30/60/90 day engineering onboarding plan is designed to ensure your successful transition as a new team member. Getting connected, delivering consistently and getting involved to best contribute to the company's goals.&lt;/p&gt;

&lt;p&gt;Whether you are a manager welcoming new team member or an engineer starting in a new team, you can increase your chances of a successful onboarding by adopting this practice.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.jeromethibaud.com/en/blog/onboarding-senior-engineer/"&gt;Read more on my blog&lt;/a&gt;&lt;/p&gt;

</description>
      <category>eng</category>
      <category>onboarding</category>
      <category>process</category>
    </item>
    <item>
      <title>Time to Jack-in and dive into your Data Fortress</title>
      <dc:creator>Jerome Thibaud</dc:creator>
      <pubDate>Wed, 17 Apr 2024 21:37:44 +0000</pubDate>
      <link>https://dev.to/kalisen/time-to-jack-in-and-dive-into-your-data-fortress-3g54</link>
      <guid>https://dev.to/kalisen/time-to-jack-in-and-dive-into-your-data-fortress-3g54</guid>
      <description>&lt;p&gt;Bigger and bigger Cloud infrastructures can be effectively represented as a 3D scene to convey more information and result in a better understanding of its organization and purpose. In addition to that, a lot can be done to simplify interactions between the operators and the system with the advent of both XR/Spatial interactions and AI agents. &lt;/p&gt;

&lt;p&gt;I postulate that building analogies with 3 dimensional “tangible” systems is the way to increase the value of interactions with our computing infrastructures.&lt;/p&gt;

&lt;p&gt;Read the full story &lt;a href="https://www.jeromethibaud.com/en/blog/cloud-infrastructure-vr/"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Have a great day!&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>vr</category>
      <category>spatial</category>
    </item>
    <item>
      <title>How to deploy a Hugo site to S3 in 2024</title>
      <dc:creator>Jerome Thibaud</dc:creator>
      <pubDate>Wed, 20 Mar 2024 14:32:47 +0000</pubDate>
      <link>https://dev.to/kalisen/how-to-deploy-a-hugo-site-to-s3-in-2024-ihk</link>
      <guid>https://dev.to/kalisen/how-to-deploy-a-hugo-site-to-s3-in-2024-ihk</guid>
      <description>&lt;p&gt;Happy to be here! &lt;/p&gt;

&lt;p&gt;Here's a &lt;a href="https://www.jeromethibaud.com/en/blog/deploy-hugo-site-to-s3/"&gt;step by step guide to deploying a static website created with Hug&lt;/a&gt;o, from GitHub to Amazon S3 using GitHub Actions. Following security best practices, explaining relevant concepts, I go into the details of the necessary configuration.&lt;/p&gt;

&lt;p&gt;In this guide I cover:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Storing Source Code in GitHub&lt;/li&gt;
&lt;li&gt;Web Hosting in AWS&lt;/li&gt;
&lt;li&gt;Hosting in S3&lt;/li&gt;
&lt;li&gt;DNS in Route53&lt;/li&gt;
&lt;li&gt;Secure and Fast Communication using CloudFront&lt;/li&gt;
&lt;li&gt;Continuous Deployment to S3 with GitHub Actions&lt;/li&gt;
&lt;li&gt;Authentication and Authorization between GitHub and AWS&lt;/li&gt;
&lt;li&gt;GitHub Actions Workflow&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I hope this will be useful to peeps embarking on the same journey. Happy to clarify any part of it if needed.&lt;/p&gt;

&lt;p&gt;Read the full guide: &lt;br&gt;
&lt;a href="https://www.jeromethibaud.com/en/blog/deploy-hugo-site-to-s3/"&gt;https://www.jeromethibaud.com/en/blog/deploy-hugo-site-to-s3/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Have a great day!&lt;/p&gt;

</description>
      <category>hugo</category>
      <category>staticwebapps</category>
      <category>githubactions</category>
      <category>aws</category>
    </item>
    <item>
      <title>Utils classes bury the lead</title>
      <dc:creator>Jerome Thibaud</dc:creator>
      <pubDate>Sun, 17 Mar 2024 16:35:35 +0000</pubDate>
      <link>https://dev.to/kalisen/utils-classes-bury-the-lead-1iah</link>
      <guid>https://dev.to/kalisen/utils-classes-bury-the-lead-1iah</guid>
      <description>&lt;h2&gt;
  
  
  Happy to be here!
&lt;/h2&gt;

&lt;p&gt;In &lt;a href="https://www.jeromethibaud.com/en/blog/utils-considered-harmful/"&gt;my recent article&lt;/a&gt;, I relate a discussion I've had many times over: Utils classes are 'bad'. "Bad how" you ask? Like crossing the streams? I believe it's about information or the lack thereof. I  discuss the problems with creating utility classes and I offer solutions for improving code organization and usability. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Think about your code as a product and other developers as your users.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The issues with 'Utils'
&lt;/h2&gt;

&lt;p&gt;The name 'Utils' provides no valuable information, making it difficult for developers to understand the purpose of the code.&lt;/p&gt;

&lt;p&gt;Lack of discoverability can lead to duplication, as developers might miss existing methods and create new ones.&lt;/p&gt;

&lt;p&gt;Utility methods are often provided through static methods, which can cause challenges in testability and flexibility.&lt;/p&gt;

&lt;h2&gt;
  
  
  A few suggestions to make it better
&lt;/h2&gt;

&lt;p&gt;To address these issues, I suggest a few things:&lt;/p&gt;

&lt;p&gt;Consider the problem domain and choose informative names for your code, placing it near relevant domain types.&lt;/p&gt;

&lt;p&gt;Leverage design patterns and language features to increase usability.&lt;/p&gt;

&lt;p&gt;Organize code in a predictable way and providing information at each level of the source code hierarchy.&lt;/p&gt;

&lt;p&gt;Ask questions about the intent, context, relationships, and problem domain to determine the best name and location for your code.&lt;/p&gt;

&lt;p&gt;Use design patterns like the decorator pattern to add functionality to existing Types.&lt;/p&gt;

&lt;p&gt;Avoid static methods to support testability and flexibility.&lt;/p&gt;

&lt;p&gt;Utilize language features like extension methods and metaprogramming, especially when working with external libraries.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;By following these guidelines, you can create more maintainable and discoverable code, ultimately saving time and effort in the long run. &lt;/p&gt;

&lt;p&gt;You can read &lt;a href="https://www.jeromethibaud.com/en/blog/utils-considered-harmful/"&gt;the full story on my site&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thank you for reading, I hope this was helpful.&lt;/p&gt;

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