<?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: Michael Gee</title>
    <description>The latest articles on Forem by Michael Gee (@michaelgee).</description>
    <link>https://forem.com/michaelgee</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%2F409863%2F2b105e3a-181e-40f5-a1df-a2df69415f0b.png</url>
      <title>Forem: Michael Gee</title>
      <link>https://forem.com/michaelgee</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/michaelgee"/>
    <language>en</language>
    <item>
      <title>Build Side Projects You'll Actually Be Passionate About</title>
      <dc:creator>Michael Gee</dc:creator>
      <pubDate>Wed, 09 Dec 2020 16:45:55 +0000</pubDate>
      <link>https://forem.com/michaelgee/build-side-projects-you-ll-actually-be-passionate-about-164b</link>
      <guid>https://forem.com/michaelgee/build-side-projects-you-ll-actually-be-passionate-about-164b</guid>
      <description>&lt;p&gt;All too often I come across the common joke of having half-finished or abandoned software development projects most likely because so many people (including myself) can relate to it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fwm4cia5dtonl8587y6mo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fwm4cia5dtonl8587y6mo.png" alt="Abandoning Side Projects Image" width="800" height="530"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Why? 🤔
&lt;/h1&gt;

&lt;p&gt;I strongly believe that most side-projects are doomed right from the start. &lt;/p&gt;

&lt;p&gt;People gather inspiration from these "10 Project Ideas For Your Portfolio" posts that are usually pretty vanilla and have been built a million times before. To me, they just seem to lack inspiration and creativity.&lt;/p&gt;

&lt;p&gt;There's nothing wrong with building these projects for learning purposes and showing companies your current skill set, but these are the projects that you'll work on for a couple of weeks and then never be touched again.&lt;/p&gt;

&lt;h1&gt;
  
  
  A Better Initial Approach ✅
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Find your own custom solution(s) to problems in an industry that you are passionate about.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The project ideas that I have been by far the most passionate about are the ones that I come up with myself and involve industries that I am interested in like software development, sports, gaming, etc.&lt;/p&gt;

&lt;p&gt;Being more familiar with the industry gives you a much better opportunity to recognize common problems and think of possible solutions. These solutions are now the potential birth of your next project 😄&lt;/p&gt;

&lt;p&gt;Yes, this approach will take more time to brainstorm and plan but it also unlocks a ton of motivation and prevention of burnout in the long run.&lt;/p&gt;

&lt;p&gt;Projects become boring when they start feeling like work, building your own projects on your own time is a much more enjoyable experience and can lead to endless learning opportunities.&lt;/p&gt;

&lt;h1&gt;
  
  
  Do Some Research 📖
&lt;/h1&gt;

&lt;p&gt;Before moving forward, take a little bit of time to look around and see if this problem has been solved before or how often the problem is being encountered.&lt;/p&gt;

&lt;p&gt;Has this problem been solved before? If so, how can you make it better? How long do estimate it will take to build? Do you want to put that amount of time into building it?&lt;/p&gt;

&lt;p&gt;Try to determine if your project is leading towards a dead-end before you reach it.&lt;/p&gt;

&lt;h1&gt;
  
  
  🚦 Slow Down... Start with Proof of Concept
&lt;/h1&gt;

&lt;p&gt;Great! So now let's assume you have your perfect idea and are ready to take over the world!&lt;/p&gt;

&lt;p&gt;But let's slow down... before you spend the next few months keeping your idea behind a curtain for a grand reveal, I'd recommend more of a deploy now &amp;amp; optimize later approach.&lt;/p&gt;

&lt;p&gt;If you are someone who wants to build something more mainstream, I much would suggest deploying early &amp;amp; often to see if it gains the interest you expect before wasting countless hours on it.&lt;/p&gt;

&lt;p&gt;Popularity isn't everything, if you build something just a few people would benefit from I would consider it a success. &lt;/p&gt;

&lt;p&gt;The main goal here is deciding to solve a problem and then building the solution. You prove to yourself and others that you can solve real-world problems and use that momentum to solve the next one!&lt;/p&gt;

&lt;h1&gt;
  
  
  Show Your Idea To The World 🌎
&lt;/h1&gt;

&lt;p&gt;Along with everyone else, I wish I had a magic marketing button (follow my &lt;a href="https://twitter.com/michaelgee7"&gt;Twitter&lt;/a&gt; 😉) that gets the word out about the next great thing I build.&lt;/p&gt;

&lt;p&gt;Back to reality... finding ways of getting your ideas &amp;amp; work in front of people's eyes is just as difficult/important if not more than building the idea itself.&lt;/p&gt;

&lt;p&gt;Learning in public and showing in public can be 2 great ways to increase traffic as you continue to build your project.&lt;/p&gt;

&lt;p&gt;For example, writing blog posts or creating YouTube videos explaining how you solved a technical problem or introduced a major feature can generate a good amount of traffic.&lt;/p&gt;

&lt;p&gt;Not only will you help the community that encounters the same problem that you did, but it will attract people to what you are building, and who knows maybe some people would be willing to contribute to the project! &lt;/p&gt;

&lt;h1&gt;
  
  
  Side Project -&amp;gt; Business 💼
&lt;/h1&gt;

&lt;p&gt;Unfortunately, most projects never get to this point. &lt;/p&gt;

&lt;p&gt;With a great idea and a strong initial backing, you can decide if your project would be something you would want to work on full-time or not.&lt;/p&gt;

&lt;p&gt;This decision can be difficult especially for people who have consistently paying jobs and see it as a possible risk. &lt;/p&gt;

&lt;p&gt;Every case is different so there is no one right answer so I won't go too much into detail on how to go about this... especially because I don't have a side project that has reached this state (&lt;strong&gt;yet&lt;/strong&gt;) 🤐&lt;/p&gt;

&lt;h1&gt;
  
  
  Showcase Your Side Projects 🏆
&lt;/h1&gt;

&lt;p&gt;Do you have a side project you are currently working on and are proud of? I would love to see some in the comments and check out some of your work.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>career</category>
    </item>
    <item>
      <title>Prevent Your Codebase From Becoming A Spaghetti Factory</title>
      <dc:creator>Michael Gee</dc:creator>
      <pubDate>Tue, 29 Sep 2020 15:44:00 +0000</pubDate>
      <link>https://forem.com/michaelgee/prevent-your-codebase-from-becoming-a-spaghetti-factory-3cfn</link>
      <guid>https://forem.com/michaelgee/prevent-your-codebase-from-becoming-a-spaghetti-factory-3cfn</guid>
      <description>&lt;p&gt;Remember that one time you were looking at your team’s codebase (or even your own) and thinking “who the hell wrote this code…?” just to have that awkward moment when Git Lens shows it was actually YOU who committed the code.&lt;/p&gt;

&lt;p&gt;I’ve been there, done that. There’s nothing worse than the realization that the huge bowl of spaghetti code 🍝 you’re looking at came from your own 2 hands.&lt;/p&gt;

&lt;p&gt;Gordon Ramsay would be ashamed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/3o85g2ttYzgw6o661q/source.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/3o85g2ttYzgw6o661q/source.gif" alt="Gordon Ramsay Idiot Sandwich" width="500" height="281"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  The Problem ☠️
&lt;/h1&gt;

&lt;p&gt;Deadlines exist, features are requested at an accelerated rate, and you can sometimes get caught weighing quantity over quality. &lt;/p&gt;

&lt;p&gt;Although nothing may seem wrong on the surface to a user’s perspective, rushing these things can sometimes make the codebase slowly but surely begin to become inconsistent, hard to read, and overwhelming especially for new onboarded developers.&lt;/p&gt;

&lt;p&gt;Focusing on pushing new features is great and all until the time comes when you find yourself refactoring more code than you're implementing.&lt;/p&gt;

&lt;p&gt;I have experienced this in the past and wanted to provide some of the ways I try to avoid this happening before it happens to you and your team.&lt;/p&gt;

&lt;h1&gt;
  
  
  The (Partial) Solution 🛠️
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Better Variable &amp;amp; Function Naming ✅
&lt;/h2&gt;

&lt;p&gt;The next time you think of naming a variable...&lt;/p&gt;

&lt;p&gt;&lt;code&gt;const data = {}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;or a function... &lt;/p&gt;

&lt;p&gt;&lt;code&gt;function _handleOnClick() {}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;...take a little more time to better describe what the object is storing &amp;amp; what the function is doing.&lt;/p&gt;

&lt;p&gt;I already know that data is coming from the server, but what data? I already know this method is attached to a button onClick, but what is happening when it is clicked?&lt;/p&gt;

&lt;p&gt;This can sometimes be tricky, you can find yourself spending more time sitting there thinking of better ways of naming things than actually writing the code.&lt;/p&gt;

&lt;p&gt;Trust me it is worth it.&lt;/p&gt;

&lt;p&gt;Instead of thinking of names before implementing it sometimes I initially give it a generic name and then once everything is hooked up and working I go back and ask myself:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“How can I make this code more readable for someone who has never seen it before?”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;(Or myself when I look at it again 6 months from now)&lt;/p&gt;

&lt;p&gt;Naming things can sometimes be easier after it is implemented because you can then see all the implementation details of what it does.&lt;/p&gt;

&lt;h2&gt;
  
  
  Design Patterns ✅
&lt;/h2&gt;

&lt;p&gt;The good news is that you don't have to reinvent the wheel, there are already design patterns to solve commonly occurring problems in software design.&lt;/p&gt;

&lt;p&gt;The bad news is that there is a lot of them. This topic alone could be its own blog post and realistically would be more than one although you have probably already used some even without knowing and you don't have to memorize every single one of them.&lt;/p&gt;

&lt;p&gt;That being said, I'll just list some resources I used to get started:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/watch?v=vNHpsC5ng_E&amp;amp;list=PLF206E906175C7E07&amp;amp;ab_channel=DerekBanas"&gt;Design Patterns Video Tutorial - Derek Banas
&lt;/a&gt; 📹&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/DovAmir/awesome-design-patterns"&gt;awesome-design-patterns&lt;/a&gt; 🔖&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612/ref=sr_1_2?dchild=1&amp;amp;keywords=design+patterns&amp;amp;qid=1601084577&amp;amp;sr=8-2"&gt;Design Patterns: Elements of Reusable Object-Oriented Software&lt;/a&gt; 📖&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Consistent Project Structure &amp;amp; Flow ✅
&lt;/h2&gt;

&lt;p&gt;It is so much easier to navigate and read a codebase if you have consistency in things like a folder, module, and code structure.&lt;/p&gt;

&lt;p&gt;Don't you always feel more comfortable working on your own personal projects?&lt;/p&gt;

&lt;p&gt;You know where things are &amp;amp; should be, keep everything consistent in the way things are done, and know how to go about making changes to the codebase.&lt;/p&gt;

&lt;p&gt;Obviously, this takes more time to implement in a team environment but is definitely worth sitting down with team members and figuring out an agreed-upon approach for different aspects of your project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Good Test Coverage ✅
&lt;/h2&gt;

&lt;p&gt;Tests are documentation and a safety net for developers. They should describe what the specified code is responsible for and what its expected outcomes are. &lt;/p&gt;

&lt;p&gt;It is much easier to read the descriptions of these test cases than going line by line figuring out what the code does in its implementation.&lt;/p&gt;

&lt;h2&gt;
  
  
  TEAM Code Review ✅
&lt;/h2&gt;

&lt;p&gt;When new code is requested to be merged, it is the responsibility of ALL developers on the team to view the PR and be aware of the changes being made.&lt;/p&gt;

&lt;p&gt;It is much easier to continuously stay updated on the changes made to the codebase than getting an assigned user story or bug fix to code that you have never seen before.&lt;/p&gt;

&lt;h2&gt;
  
  
  Use Comments In Your Code ✅
&lt;/h2&gt;

&lt;p&gt;It is inevitable that you will have to code an algorithm or logic that is a bit more complex than normal.&lt;/p&gt;

&lt;p&gt;In these scenarios simply adding a comment describing the logic the same way as a test case describes the test it is about to run will help the reader quickly understand what the code does.&lt;/p&gt;

&lt;p&gt;I tend not to leave comments on everything because if you are naming your stuff correctly like mentioned above, you really won't need to.&lt;/p&gt;

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

&lt;p&gt;Computers and code are what make your websites and applications run but you need to also remember that humans need to be able to read and easily understand the code as well.&lt;/p&gt;

&lt;p&gt;Utilizing some of these techniques and learning from experience can help decrease the time you find yourself refactoring your codebase.&lt;/p&gt;

&lt;p&gt;No more spaghetti! Write better code and make Gordon Ramsay proud 👍&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/TIF9Zz3JDZ7Ilt7dcT/source.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/TIF9Zz3JDZ7Ilt7dcT/source.gif" alt="Gordon Ramsay Clapping" width="700" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>productivity</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Start Using React.js</title>
      <dc:creator>Michael Gee</dc:creator>
      <pubDate>Tue, 22 Sep 2020 15:46:17 +0000</pubDate>
      <link>https://forem.com/michaelgee/start-using-react-js-cnn</link>
      <guid>https://forem.com/michaelgee/start-using-react-js-cnn</guid>
      <description>&lt;p&gt;This post is a response to the post that got some traction last week &lt;a href="https://dev.to/ender_minyard/why-you-should-stop-using-react-g7c"&gt;Stop Using React&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I feel like this post was a bit misguiding because it lists problems but no real solutions or alternatives.&lt;/p&gt;

&lt;p&gt;Instead of focusing on the negatives, I instead would like the focus on the other side of the argument and the benefits you get from using React.&lt;/p&gt;

&lt;h1&gt;
  
  
  Solve Real-World Problems ✅
&lt;/h1&gt;

&lt;p&gt;Let’s be real here if you literally just want to print “Hello World” to the screen or have a single page CSS portfolio you probably don’t need the additional JavaScript.&lt;/p&gt;

&lt;p&gt;But let’s go back to the real world, companies solve more complicated problems and require more complicated solutions.&lt;/p&gt;

&lt;p&gt;If you want to spend months wasting time recreating what React and its ecosystem provide out of the box just for MAYBE getting a couple of seconds of performance increases, please be my guest.&lt;/p&gt;

&lt;h1&gt;
  
  
  The Job Market 💼
&lt;/h1&gt;

&lt;p&gt;Once I finally bought into learning React, it took me about 4-6 months to find a job. Jobs with React in the requirements or recommendations are everywhere and for good reason.&lt;/p&gt;

&lt;p&gt;I believe it is smarter for companies to use more mainstream technology so the onboarding process of hiring new developers into their companies isn’t a bigger hassle than it already is.&lt;/p&gt;

&lt;p&gt;It’s hard to find good developers that meet your cultural and technical needs, so having a larger pool to search from is obviously going to make this process much simpler.&lt;/p&gt;

&lt;h1&gt;
  
  
  “That Company” 🏢
&lt;/h1&gt;

&lt;p&gt;While I don’t always agree with the actions of "the company" itself, I find the React core team to be a great group of people who are passionate about keeping the library and its ecosystem great.&lt;/p&gt;

&lt;p&gt;These "companies" continue to provide great free open source technology for others to use. Yes, this does mean sometimes you can get vendor locked but it is your choice to make.&lt;/p&gt;

&lt;p&gt;In my opinion, the benefits HEAVILY outweigh the costs.&lt;/p&gt;

&lt;h1&gt;
  
  
  Ecosystem and Community 👥
&lt;/h1&gt;

&lt;p&gt;It’s overwhelming trying to fathom just how huge the React ecosystem is.&lt;/p&gt;

&lt;p&gt;I never feel stuck when developing with React. If you come across a problem, 9 times out of 10 there will be a well maintained external library that solves it.&lt;/p&gt;

&lt;p&gt;I have a post &lt;a href="https://dev.to/michaelgee/my-react-js-library-bookmarks-o6e"&gt;here&lt;/a&gt; that goes into some of the pros and cons of this so I won't list them here.&lt;/p&gt;

&lt;p&gt;TLDR: Choose external libraries that are well maintained and backed by the community.&lt;/p&gt;

&lt;h1&gt;
  
  
  Performance 📈
&lt;/h1&gt;

&lt;p&gt;It's not a secret that adding React or any other major JS framework to your project will come with performance costs.&lt;/p&gt;

&lt;p&gt;Especially if you show statistics of a bloated create-react-app that doesn’t include code splitting and other performance enhancements the performance metrics probably will suck.&lt;/p&gt;

&lt;p&gt;There are multiple ways of not only improving these performance metrics but providing users with visuals that will occupy their time until the screen is interactive.&lt;/p&gt;

&lt;p&gt;It’s easy to forget that React is built for and used in some of the most visited websites in the world.&lt;/p&gt;

&lt;p&gt;Let's consider the hundreds of MAJOR use cases like Facebook, Uber, Netflix, Instagram, Salesforce, Medium, Reddit, AND WAY MORE that ship React to millions of users daily.&lt;/p&gt;

&lt;p&gt;Don’t you think these companies have thought of these metrics? If the performance is so bad, why do they all use it? So consider the point it’s not React itself affecting your performance, it’s how the developers implement it.&lt;/p&gt;

&lt;h1&gt;
  
  
  #UseThePlatform… I’ve Been There, Done That 🤦‍♂️
&lt;/h1&gt;

&lt;p&gt;I’ve been on the other side, I was a huge advocate of #UseThePlatform and not needing all that extra bloated JS coming from JS frameworks.&lt;/p&gt;

&lt;p&gt;Ever head of &lt;a href="https://www.polymer-project.org/"&gt;Polymer.js&lt;/a&gt;? Probably not. I will admit I loved the technology and the ideas it originated from. I loved the people behind it who were passionate about it and used it internally at Google.&lt;/p&gt;

&lt;p&gt;There was a lot of hype and initial backing but never really got off the ground. It never got anywhere close to the external features and community support that you would get by some of the other popular JS libraries.&lt;/p&gt;

&lt;p&gt;I constantly found myself stuck in development looking for answers which is what eventually lead me to React.&lt;/p&gt;

&lt;p&gt;I now have 2+ years of professional experience with React and I have not looked back since.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;This is my take on the &lt;strong&gt;high-level&lt;/strong&gt; benefits to using React. There are many other benefits (developer experience, usage of JavaScript, and many others) although this post was mainly focused on responding to the opposition.&lt;/p&gt;

&lt;p&gt;That being said, &lt;strong&gt;some&lt;/strong&gt; of the benefits could also be directly applied to some of the other major JavaScript libraries/frameworks and is not exclusive to React. &lt;/p&gt;




&lt;p&gt;As always, if you like this post give me a follow here on DEV and on Twitter.&lt;/p&gt;

</description>
      <category>react</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
    <item>
      <title>My React.js Library Bookmarks</title>
      <dc:creator>Michael Gee</dc:creator>
      <pubDate>Tue, 08 Sep 2020 15:54:25 +0000</pubDate>
      <link>https://forem.com/michaelgee/my-react-js-library-bookmarks-o6e</link>
      <guid>https://forem.com/michaelgee/my-react-js-library-bookmarks-o6e</guid>
      <description>&lt;p&gt;React mainly focuses on what it does best (rendering UI components to build user interfaces) and leaves the gaps to be filled by the huge community of developers and companies.&lt;/p&gt;

&lt;p&gt;This means the number of popular libraries and ways of doing things can definitely add up which has its pros and cons:&lt;/p&gt;

&lt;p&gt;Pros ✅&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You are not locked into one way of doing something, you have an array of great options to suit your needs the best.&lt;/li&gt;
&lt;li&gt;React has a HUGE ecosystem of people building and maintaining libraries, so odds are if you need to do something in particular there will (9 times out of 10) be an open-source npm package for it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cons ❌&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;This can be confusing for beginners. Since you have so many options, people sometimes just go for the most popular one even if it doesn’t necessarily meet their needs.&lt;/li&gt;
&lt;li&gt;The latest and greatest is constantly changing, it is important to choose libraries that are actively maintained and will move forward with industry standards when it does.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With that being said, here is a list of the React libraries I currently have bookmarked. These emojis next to each library show my personal experience with each library:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;⭐ - my all-time favorites&lt;/li&gt;
&lt;li&gt;✅ - have used in production and would advocate for&lt;/li&gt;
&lt;li&gt;🕒 - have never used but am planning on using in the future&lt;/li&gt;
&lt;li&gt;🤔 - have never used but would be interested in&lt;/li&gt;
&lt;li&gt;👋 - have used in production but have since moved on from&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Component UI Libraries
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Semantic UI React ✅ &lt;a href="https://react.semantic-ui.com/"&gt;https://react.semantic-ui.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Fluent UI ✅ &lt;a href="https://developer.microsoft.com/en-us/fluentui#/"&gt;https://developer.microsoft.com/en-us/fluentui#/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Chakra UI 🕒 &lt;a href="https://chakra-ui.com/"&gt;https://chakra-ui.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Ant Design 🤔 &lt;a href="https://ant.design/"&gt;https://ant.design/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Material UI 👋 &lt;a href="https://material-ui.com/"&gt;https://material-ui.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;React Bootstrap/reactstrap 👋 &lt;a href="https://react-bootstrap.github.io/"&gt;https://react-bootstrap.github.io/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  State Management
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;React Internal State / Context (not a library) ✅ &lt;a href="https://reactjs.org/docs/context.html"&gt;https://reactjs.org/docs/context.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Redux 👋 &lt;a href="https://redux.js.org/"&gt;https://redux.js.org/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Client-Side Routing
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt; react-router ✅ &lt;a href="https://reactrouter.com/"&gt;https://reactrouter.com/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Next.js ⭐ &lt;a href="https://nextjs.org/"&gt;https://nextjs.org/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Gatsby 🤔 &lt;a href="https://www.gatsbyjs.com/"&gt;https://www.gatsbyjs.com/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Testing
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;react-testing-library ⭐ &lt;a href="https://testing-library.com/docs/react-testing-library/intro"&gt;https://testing-library.com/docs/react-testing-library/intro&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Enzyme 👋 &lt;a href="https://enzymejs.github.io/enzyme/"&gt;https://enzymejs.github.io/enzyme/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Forms
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;react-hook-form ✅ &lt;a href="https://react-hook-form.com/"&gt;https://react-hook-form.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;formik 🤔 &lt;a href="https://formik.org/"&gt;https://formik.org/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Animations
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;framer/motion 🕒 &lt;a href="https://www.framer.com/motion/"&gt;https://www.framer.com/motion/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;react-spring 🤔 &lt;a href="https://www.react-spring.io/"&gt;https://www.react-spring.io/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;react-motion 🤔 &lt;a href="https://github.com/chenglou/react-motion"&gt;https://github.com/chenglou/react-motion&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;react-transition-group 🤔 &lt;a href="https://github.com/reactjs/react-transition-group"&gt;https://github.com/reactjs/react-transition-group&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Async
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;react-query ✅ &lt;a href="https://react-query.tanstack.com/"&gt;https://react-query.tanstack.com/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Data Tables
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;react-table ✅ &lt;a href="https://react-table-omega.vercel.app/"&gt;https://react-table-omega.vercel.app/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Internationalization
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;react-intl ✅ &lt;a href="https://github.com/formatjs/formatjs"&gt;https://github.com/formatjs/formatjs&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Honorable Mentions ➕
&lt;/h1&gt;

&lt;p&gt;These are some other libraries that I have bookmarked/starred but have not yet used in production.&lt;/p&gt;

&lt;h2&gt;
  
  
  Drop-downs
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;react-select &lt;a href="https://react-select.com/home"&gt;https://react-select.com/home&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Drag &amp;amp; Drop
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;react-dnd &lt;a href="https://react-dnd.github.io/react-dnd/about"&gt;https://react-dnd.github.io/react-dnd/about&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;react-beautiful-dnd &lt;a href="https://github.com/atlassian/react-beautiful-dnd"&gt;https://github.com/atlassian/react-beautiful-dnd&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Document &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; Manager
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;react-helmet &lt;a href="https://github.com/nfl/react-helmet"&gt;https://github.com/nfl/react-helmet&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Icons
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt; react-icons &lt;a href="https://github.com/react-icons/react-icons"&gt;https://github.com/react-icons/react-icons&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Loading Spinners
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;react-spinners &lt;a href="https://github.com/davidhu2000/react-spinners"&gt;https://github.com/davidhu2000/react-spinners&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Social Media Share Buttons
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;react-share &lt;a href="https://github.com/nygardk/react-share"&gt;https://github.com/nygardk/react-share&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Responsive Styling
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;react-responsive &lt;a href="https://github.com/contra/react-responsive"&gt;https://github.com/contra/react-responsive&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With the vast ecosystem of libraries, I am sure that I left out some good ones. If I did, leave some of your favorite libraries in the comments and let me know what you think of the list!&lt;/p&gt;

&lt;p&gt;Also if you like web development and meme content follow my &lt;a href="https://twitter.com/michaelgee7"&gt;Twitter&lt;/a&gt; 😄&lt;/p&gt;

</description>
      <category>react</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Quick Tips &amp; Resources To Improve Your Github ReadMe</title>
      <dc:creator>Michael Gee</dc:creator>
      <pubDate>Wed, 26 Aug 2020 15:48:13 +0000</pubDate>
      <link>https://forem.com/michaelgee/quick-tips-resources-to-improve-your-github-readme-11le</link>
      <guid>https://forem.com/michaelgee/quick-tips-resources-to-improve-your-github-readme-11le</guid>
      <description>&lt;p&gt;Unless you have been living under a rock for the past few months, you are probably aware that Github has a cool new feature where you can create a custom markdown README intro for your Github profile page.&lt;/p&gt;

&lt;p&gt;I finally got around to creating my initial implementation and wanted to share some quick tips and resources I came across while doing it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started? 🚧
&lt;/h2&gt;

&lt;p&gt;For getting started or finding new ideas and inspiration, you can't go wrong with an awesome-* repository!&lt;/p&gt;

&lt;p&gt;Repository: &lt;a href="https://github.com/abhisheknaiidu/awesome-github-profile-readme"&gt;awesome-github-profile-readme&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I highly recommend going through various examples and gathering inspiration from multiple sources.&lt;/p&gt;

&lt;p&gt;To see the markdown implementation of a profile click into the README.md file and click the "Raw" version shown in the image below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F5ll4avqzhkfj4ipxtrdz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F5ll4avqzhkfj4ipxtrdz.png" alt="Alt Text" width="751" height="296"&gt;&lt;/a&gt;&lt;br&gt;
Once you have an idea of the direction you want to go you can get started!&lt;/p&gt;
&lt;h2&gt;
  
  
  Emojis 🤔
&lt;/h2&gt;

&lt;p&gt;You will quickly notice that emojis are all over the place in almost all the examples you will find.&lt;/p&gt;

&lt;p&gt;Most emojis are supported in markdown and you can find a full reference list:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/ikatyang/emoji-cheat-sheet"&gt;Markdown Emojies Cheat Sheet&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;P.S. You can also use these same emojis in your Dev.to posts since it is also using markdown.😉&lt;/p&gt;
&lt;h2&gt;
  
  
  Displaying Your Dev.to Blog Posts 📕
&lt;/h2&gt;

&lt;p&gt;Luckily there is already a great blog post that goes over this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/gautamkrishnar/show-your-latest-dev-to-posts-automatically-in-your-github-profile-readme-3nk8"&gt;Show your latest dev.to posts automatically on your GitHub profile readme&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Video Resources 📽️
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=ECuqb5Tv9qI"&gt;Next Level GitHub Profile README&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=n6d4KHSKqGk"&gt;UPDATE: Next Level GitHub Profile README&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These videos go over various features that can be added to your README including displaying blog posts, YouTube videos, Github stats, icons, badges, currently playing Spotify songs, and more!&lt;/p&gt;
&lt;h2&gt;
  
  
  Bonus ➕
&lt;/h2&gt;

&lt;p&gt;You might notice that a lot of examples will have no space in between the emoji and the text:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fmsze24ujavr75opxnqnt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fmsze24ujavr75opxnqnt.png" alt="Alt Text" width="478" height="157"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To manually inject spaces in between the two you can add &lt;code&gt;&amp;amp;nbsp;&lt;/code&gt; spaces:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- :computer: &amp;amp;nbsp;&amp;amp;nbsp; I'm a full-stack software developer.
- :briefcase: &amp;amp;nbsp;&amp;amp;nbsp; Currently working on...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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