<?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: Jenesh Napit</title>
    <description>The latest articles on DEV Community by Jenesh Napit (@jenesh).</description>
    <link>https://dev.to/jenesh</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%2F653427%2F2f6e7ad1-b84f-42fc-ac4f-e861751862a3.jpg</url>
      <title>DEV Community: Jenesh Napit</title>
      <link>https://dev.to/jenesh</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jenesh"/>
    <language>en</language>
    <item>
      <title>How To Add ESLint In A React Project</title>
      <dc:creator>Jenesh Napit</dc:creator>
      <pubDate>Wed, 14 Aug 2024 03:12:19 +0000</pubDate>
      <link>https://dev.to/jenesh/how-to-add-eslint-to-a-react-project-601</link>
      <guid>https://dev.to/jenesh/how-to-add-eslint-to-a-react-project-601</guid>
      <description>&lt;p&gt;Adding Linting rules to a React project is must when it comes to improving code quality, making code more consistent and avoiding bugs.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://mydevpa.ge/blog/how-to-add-eslint-to-a-react-project" rel="noopener noreferrer"&gt;This article&lt;/a&gt; was first published on &lt;a href="https://mydevpa.ge/" rel="noopener noreferrer"&gt;MyDevPa.ge blog&lt;/a&gt;, check it out for helpful tutorials for Software Developers.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;There is a popular open-source JavaScript linting tool called &lt;a href="https://eslint.org/" rel="noopener noreferrer"&gt;ESLint&lt;/a&gt;, which is used for automatically detecting incorrect patterns found in JavaScript code.&lt;/p&gt;

&lt;p&gt;Here’s a step-by-step method to add linting rules to React projects:&lt;/p&gt;

&lt;h2&gt;
  
  
  Installing ESLint
&lt;/h2&gt;

&lt;p&gt;First, we need to install ESLint in our React project as a &lt;strong&gt;devDependencies&lt;/strong&gt; because we don’t need them in production.&lt;/p&gt;

&lt;p&gt;To Install, we will use the command below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm i &lt;span class="nt"&gt;-D&lt;/span&gt; eslint
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Initialize ESLint
&lt;/h2&gt;

&lt;p&gt;Next, we will have to initialize ESLint configuration, by adding a configuration file &lt;strong&gt;.eslintrc.json&lt;/strong&gt; in our project’s root folder.&lt;/p&gt;

&lt;p&gt;Here is a sample example configuration.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"extends"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"eslint:recommended"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"plugin:import/errors"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"plugin:react/recommended"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"plugin:jsx-a11y/recommended"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"plugins"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"react"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"import"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"jsx-a11y"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"rules"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Here&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;we&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;can&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;add&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;our&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;custom&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;rules.&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"parserOptions"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"ecmaVersion"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2021&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"sourceType"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"module"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"ecmaFeatures"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"jsx"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"env"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"es6"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"browser"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"node"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"settings"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"react"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"detect"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Inside our &lt;strong&gt;.eslintrc.json&lt;/strong&gt; add extends and plugin property.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"extends"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"eslint:recommended"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"plugin:import/errors"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"plugin:react/recommended"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"plugin:jsx-a11y/recommended"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"plugins"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"react"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"import"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"jsx-a11y"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As we have added various plugins we need to first install them as devDependencies by running the given command below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-D&lt;/span&gt; eslint-plugin-import eslint-plugin-jsx-a11y eslint-plugin-react
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Adding Rules
&lt;/h2&gt;

&lt;p&gt;Rules are used for configuration purposes. We can set the error level of rules in three different ways.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;off&lt;/strong&gt; or 0: This will turn off the rule.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;warn&lt;/strong&gt; or 1: This will turn the rule on as a warning.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;error&lt;/strong&gt; or 2: This will turn the rule on as an error.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;🚨 &lt;a href="https://mydevpa.ge/blog/javascript-strings-cheatsheet-all-methods" rel="noopener noreferrer"&gt;JavaScript Strings cheatsheets all methods&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Let’s add some rules to our configuration file, we can add any other rules as per our choice from the list of all rules mentioned above.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"rules"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"react/prop-types"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"indent"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"error"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"linebreak-style"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"quotes"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"error"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"double"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Adding Scripts for Linting
&lt;/h2&gt;

&lt;p&gt;Last but not least, let’s add some commands in our &lt;strong&gt;package.json&lt;/strong&gt; “scripts” property to run ESLint.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"scripts"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"lint"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"eslint &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;src/**/*.{js,jsx}&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"lint:fix"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"eslint &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;src/**/*.{js,jsx}&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt; --fix"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Congrats, now if you try to run either of these commands it should do the trick!&lt;/p&gt;

&lt;p&gt;After this you can continue to customize the linting rules to your liking to ensure code consistency and quality.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Visit &lt;a href="https://mydevpa.ge/" rel="noopener noreferrer"&gt;MyDevPa.ge&lt;/a&gt; to create your free portfolio website in a minute for free!&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>webdev</category>
      <category>react</category>
      <category>beginners</category>
      <category>javascript</category>
    </item>
    <item>
      <title>How to Delete Files and Directories in Mac Terminal</title>
      <dc:creator>Jenesh Napit</dc:creator>
      <pubDate>Tue, 13 Aug 2024 03:25:15 +0000</pubDate>
      <link>https://dev.to/jenesh/how-to-delete-files-and-directories-in-mac-terminal-hgo</link>
      <guid>https://dev.to/jenesh/how-to-delete-files-and-directories-in-mac-terminal-hgo</guid>
      <description>&lt;p&gt;Deleting files and directories is usually easy with Finder for Mac users. While graphical interface works great most of the times, using terminal commands usually offers more flexibility and power. In this article we'll learn various methods to delete files and directories on macOS using the command line.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://mydevpa.ge/blog/how-to-delete-a-file-and-directory-in-mac" rel="noopener noreferrer"&gt;This article&lt;/a&gt; was first published on &lt;a href="https://mydevpa.ge/blog" rel="noopener noreferrer"&gt;MyDevPa.ge blog&lt;/a&gt;, check it out for helpful tutorials for Software Developers.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How to Delete a File in Mac
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Using the &lt;em&gt;rm&lt;/em&gt; command
&lt;/h3&gt;

&lt;p&gt;The most common way to delete a file in Mac's terminal is using the &lt;strong&gt;rm&lt;/strong&gt; (remove) command:&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="nb"&gt;rm &lt;/span&gt;filename
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace &lt;strong&gt;filename&lt;/strong&gt; with the name of the file you want to delete. If the file is write-protected or you don't have sufficient permissions, you may need to use &lt;strong&gt;sudo&lt;/strong&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="nb"&gt;sudo rm &lt;/span&gt;filename
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Securely deleting files
&lt;/h3&gt;

&lt;p&gt;macOS provides a built-in command for securely deleting files, which is similar to the &lt;strong&gt;shred&lt;/strong&gt; command in Linux:&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="nb"&gt;rm&lt;/span&gt; &lt;span class="nt"&gt;-P&lt;/span&gt; filename
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;strong&gt;-P&lt;/strong&gt; flag overwrites the file with zeroes three times before deleting it, making it much harder to recover.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Delete a Directory in Mac
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Using the &lt;em&gt;rmdir&lt;/em&gt; command
&lt;/h3&gt;

&lt;p&gt;To delete an empty directory, use the &lt;strong&gt;rmdir&lt;/strong&gt; command:&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="nb"&gt;rmdir &lt;/span&gt;directory_name
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Using the &lt;em&gt;rm&lt;/em&gt; command
&lt;/h3&gt;

&lt;p&gt;To delete a directory and all its contents, use the &lt;strong&gt;rm&lt;/strong&gt; command with the &lt;strong&gt;-r&lt;/strong&gt; (recursive) option:&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="nb"&gt;rm&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; directory_name
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Be very careful with this command, as it will delete the directory and everything inside it without asking for confirmation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Dealing with Locked Files
&lt;/h2&gt;

&lt;p&gt;If you encounter a "Operation not permitted" error when trying to delete a file, it may be locked. To unlock and delete it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;First, remove the "locked" flag:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   chflags nouchg filename
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Then delete the file:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   &lt;span class="nb"&gt;rm &lt;/span&gt;filename
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Handling Hidden Files
&lt;/h2&gt;

&lt;p&gt;Hidden files in macOS start with a dot (.). To delete a hidden file or directory, you can use the same &lt;strong&gt;rm&lt;/strong&gt; commands, but you'll need to either:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Type the full name including the dot (you can use tab to autocomplete):
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   &lt;span class="nb"&gt;rm&lt;/span&gt; .hidden_file
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;To see hidden files in the current directory before deleting:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   &lt;span class="nb"&gt;ls&lt;/span&gt; &lt;span class="nt"&gt;-a&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Additional Tips and Considerations
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Use caution&lt;/strong&gt;: The &lt;strong&gt;rm&lt;/strong&gt; command deletes files permanently. Unlike moving files to the Trash, this action is typically irreversible.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Use the -i flag for confirmation&lt;/strong&gt;: Add &lt;strong&gt;-i&lt;/strong&gt; to &lt;strong&gt;rm&lt;/strong&gt; commands to prompt for confirmation before each deletion:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   &lt;span class="nb"&gt;rm&lt;/span&gt; &lt;span class="nt"&gt;-i&lt;/span&gt; filename
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Wildcard deletion&lt;/strong&gt;: You can use wildcards to delete multiple files. For example, to delete all .txt files:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   &lt;span class="nb"&gt;rm&lt;/span&gt; &lt;span class="k"&gt;*&lt;/span&gt;.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Deleting files with special characters&lt;/strong&gt;: If a filename contains spaces or special characters, enclose it in quotes:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   &lt;span class="nb"&gt;rm&lt;/span&gt; &lt;span class="s2"&gt;"file with spaces.txt"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;File recovery&lt;/strong&gt;: While it's possible to recover deleted files using third-party software, it's not guaranteed. Always have backups of important data.&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;Understanding how to delete files and directories using Mac terminal commands gives you more control over your system. Remember to always double-check before deleting, especially when using powerful commands like &lt;strong&gt;rm -r&lt;/strong&gt;. With practice, you'll become more comfortable managing your files efficiently from the command line.&lt;/p&gt;

&lt;p&gt;Remember, with great power comes great responsibility. Sometimes you can't undo so always ensure you have backups of important data, and be cautious when using deletion commands, especially with sudo privileges.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Visit &lt;a href="https://mydevpa.ge/" rel="noopener noreferrer"&gt;MyDevPa.ge&lt;/a&gt; to create your free portfolio website in a minute for free!&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>cli</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Add ESLint To A React Project</title>
      <dc:creator>Jenesh Napit</dc:creator>
      <pubDate>Mon, 29 Jul 2024 17:15:08 +0000</pubDate>
      <link>https://dev.to/jenesh/add-eslint-to-a-react-project-1m32</link>
      <guid>https://dev.to/jenesh/add-eslint-to-a-react-project-1m32</guid>
      <description>&lt;p&gt;Adding Linting rules to a React project is must when it comes to improving code quality, making code more consistent and avoiding bugs.&lt;/p&gt;

&lt;p&gt;There is a popular open-source JavaScript linting tool called &lt;a href="https://eslint.org/" rel="noopener noreferrer"&gt;ESLint&lt;/a&gt;, which is used for automatically detecting incorrect patterns found in JavaScript code.&lt;/p&gt;

&lt;p&gt;Here’s a step-by-step method to add linting rules to React projects:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🚨 For more tutorials visit &lt;a href="https://mydevpa.ge/blog/how-to-add-eslint-to-a-react-project" rel="noopener noreferrer"&gt;MyDevPage&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Installing ESLint
&lt;/h2&gt;

&lt;p&gt;First, we need to install ESLint in our React project as a &lt;strong&gt;devDependencies&lt;/strong&gt; because we don’t need them in production.&lt;/p&gt;

&lt;p&gt;To Install, we will use the command below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm i &lt;span class="nt"&gt;-D&lt;/span&gt; eslint
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Initialize ESLint
&lt;/h2&gt;

&lt;p&gt;Next, we will have to initialize ESLint configuration, by adding a configuration file &lt;strong&gt;.eslintrc.json&lt;/strong&gt; in our project’s root folder.&lt;/p&gt;

&lt;p&gt;Here is a sample example configuration.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"extends"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"eslint:recommended"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"plugin:import/errors"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"plugin:react/recommended"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"plugin:jsx-a11y/recommended"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"plugins"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"react"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"import"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"jsx-a11y"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"rules"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Here&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;we&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;can&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;add&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;our&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;custom&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;rules.&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"parserOptions"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"ecmaVersion"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2021&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"sourceType"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"module"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"ecmaFeatures"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"jsx"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"env"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"es6"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"browser"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"node"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"settings"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"react"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"detect"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Inside our &lt;strong&gt;.eslintrc.json&lt;/strong&gt; add extends and plugin property.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"extends"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"eslint:recommended"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"plugin:import/errors"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"plugin:react/recommended"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"plugin:jsx-a11y/recommended"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"plugins"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"react"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"import"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"jsx-a11y"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As we have added various plugins we need to first install them as devDependencies by running the given command below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-D&lt;/span&gt; eslint-plugin-import eslint-plugin-jsx-a11y eslint-plugin-react
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Adding Rules
&lt;/h2&gt;

&lt;p&gt;Rules are used for configuration purposes. We can set the error level of rules in three different ways.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;off&lt;/strong&gt; or 0: This will turn off the rule.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;warn&lt;/strong&gt; or 1: This will turn the rule on as a warning.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;error&lt;/strong&gt; or 2: This will turn the rule on as an error.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let’s add some rules to our configuration file, we can add any other rules as per our choice from the list of all rules mentioned above.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"rules"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"react/prop-types"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"indent"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"error"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"linebreak-style"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"quotes"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"error"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"double"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Adding Scripts for Linting
&lt;/h2&gt;

&lt;p&gt;Last but not least, let’s add some commands in our &lt;strong&gt;package.json&lt;/strong&gt; “scripts” property to run ESLint.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"scripts"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"lint"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"eslint &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;src/**/*.{js,jsx}&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"lint:fix"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"eslint &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;src/**/*.{js,jsx}&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt; --fix"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Congrats, now if you try to run either of these commands it should do the trick!&lt;/p&gt;

&lt;p&gt;After this you can continue to customize the linting rules to your liking to ensure code consistency and quality.&lt;/p&gt;

&lt;p&gt;If you're a Junior Software Engineer make sure you check out this article &lt;a href="https://mydevpa.ge/blog/how-to-go-from-junior-to-senior-software-engineer" rel="noopener noreferrer"&gt;Junior to Senior Software Engineer: Helpful Tips&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>react</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Vite vs Nextjs: Which one is right for you?</title>
      <dc:creator>Jenesh Napit</dc:creator>
      <pubDate>Mon, 29 Apr 2024 16:21:34 +0000</pubDate>
      <link>https://dev.to/jenesh/vite-vs-nextjs-which-one-is-right-for-you-53nn</link>
      <guid>https://dev.to/jenesh/vite-vs-nextjs-which-one-is-right-for-you-53nn</guid>
      <description>&lt;p&gt;Vite and Next.js are both top 5 modern development framework right now. They are both great depending on your use case so we’ll discuss 4 areas: Architecture, main features, developer experience and production readiness. After learning about these we’ll have a better idea of which one is best for your project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://vitejs.dev/"&gt;Vite&lt;/a&gt; and &lt;a href="https://nextjs.org/"&gt;Next.js&lt;/a&gt; are both top 5 modern development framework right now. They are both great depending on your use case so we’ll discuss 4 areas: Architecture, main features, developer experience and production readiness. After learning about these we’ll have a better idea of which one is best for your project.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;1. Architecture&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Vite&lt;/strong&gt;: Vite is a build tool that aims to provide a faster and leaner development experience. Using ES module you can skip bundling during development, allowing for faster module serving. Powered by Rollup for production builds but uses native ES modules in development for rapid server start and hot module replacement (HMR).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Next.js&lt;/strong&gt;: Next.js is a batteries included React framework that provides a range of features for building server-rendered applications, static websites, and more. You can do both client-side and server-side, with features such as server-side rendering (SSR) and static site generation (SSG). Note: Next.js uses Webpack as its module bundler.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;2. Main Features&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Vite&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fast development startup and updates through native ES module loading.&lt;/li&gt;
&lt;li&gt;Plugins available for features like legacy browser support, asset import, and more.&lt;/li&gt;
&lt;li&gt;Simple configuration with sensible defaults.&lt;/li&gt;
&lt;li&gt;Support for frameworks like Vue, React, Svelte, etc.&lt;/li&gt;
&lt;li&gt;Framework agnostic&lt;/li&gt;
&lt;li&gt;Minimal and customizable, smoother learning curve&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Next.js&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React framework&lt;/li&gt;
&lt;li&gt;Advanced routing and nested layouts based on file system&lt;/li&gt;
&lt;li&gt;Built in optimizations for Images, Scripts, Core Web Vitals and more&lt;/li&gt;
&lt;li&gt;Automatic code splitting for faster page loads.&lt;/li&gt;
&lt;li&gt;Built-in CSS and Sass support, with support for CSS Modules.&lt;/li&gt;
&lt;li&gt;API routes to build API endpoints within Next.js projects.&lt;/li&gt;
&lt;li&gt;Image optimization via the built-in Image component.&lt;/li&gt;
&lt;li&gt;Incremental Static Regeneration (ISR) and on-demand revalidation.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;3. Development Experience&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Vite&lt;/strong&gt;: Designed for fast for development builds, focusing on optimizing the developer experience with instant server start and hot module replacement.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Next.js&lt;/strong&gt;: Focuses on productivity and scalability, providing a lot of built-in functionality (like hybrid static &amp;amp; server rendering) that can be crucial for complex applications. Full stack solution.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;4. Production Readiness&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Vite&lt;/strong&gt;: While primarily focused on improving development experiences, Vite produces optimized production builds using Rollup.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Next.js&lt;/strong&gt;: Highly optimized for production from the start, with features tailored for performance in real-world scenarios, including extensive support for SEO and server-side capabilities. Note: With deployment to &lt;a href="https://vercel.com/"&gt;Vercel&lt;/a&gt; is free and comes with additional free tooling such as website analytics and more.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;5. Use Cases&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Vite&lt;/strong&gt;: Best for projects where you want a fast development server and are comfortable handling some aspects of your architecture separately (like SSR if using React).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Next.js&lt;/strong&gt;: Ideal for projects that benefit from server-side rendering, static site generation, or need built-in API handling capabilities, especially when SEO and performance are critical. All in one solution.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;6. Community and Ecosystem&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Vite&lt;/strong&gt;: Rapidly growing community, with increasing plugin ecosystem and integration examples.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Next.js&lt;/strong&gt;: Established community, extensive documentation, and a wide range of plugins and integrations from both Vercel and third parties.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Verdict:
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Vite:&lt;/strong&gt; If you are looking for a fast and efficient build tool and development server, then Vite is a great option. It is also a good choice if you want to have more control over the development process.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Next.js&lt;/strong&gt;: If you are looking for a React framework that offers a number of features for building server-rendered and statically generated web applications, then Next.js is a good choice. It is also a good choice if you want to use a framework with a large ecosystem and a large community. Next also is better for larger applications and is better for scalability. &lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;In summary, choose Vite if you prioritize a quick setup and a fast development experience with fewer out-of-the-box features. Opt for Next.js 14 if you need a more feature-complete framework that supports complex scenarios like SSR, SSG, and API routes, all ready from the get-go.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚨 Do you need a Portfolio Website? 🚨
&lt;/h2&gt;

&lt;p&gt;With &lt;strong&gt;&lt;a href="https://mydevpa.ge/"&gt;MyDevPage&lt;/a&gt;&lt;/strong&gt; you can build your own portfolio website in 1 minute. You need to focus on building great projects and enhancing your skills rather than wasting your time in building and designing a portfolio website from scratch.&lt;/p&gt;

&lt;p&gt;MyDevPage handles everything:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Update easily on the go from your phone&lt;/li&gt;
&lt;li&gt;Beautiful Portfolio Website&lt;/li&gt;
&lt;li&gt;Upload your resume easily&lt;/li&gt;
&lt;li&gt;Useful Website Analytics&lt;/li&gt;
&lt;li&gt;Simple Customization&lt;/li&gt;
&lt;li&gt;Add Custom Domain&lt;/li&gt;
&lt;li&gt;Control over SEO&lt;/li&gt;
&lt;li&gt;Contact Form&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Try it out today (it's Free!) 👉 &lt;strong&gt;&lt;a href="https://mydevpa.ge/"&gt;MyDevPage&lt;/a&gt;&lt;/strong&gt; 👈&lt;/p&gt;

&lt;p&gt;&lt;a href="//images.ctfassets.net/vlpuprt2y2ne/6oOJjFtSMHjgeoNhDW1IOm/4a4cb3c8f946e7e8056c8ee122c406a4/image.png" class="article-body-image-wrapper"&gt;&lt;img src="//images.ctfassets.net/vlpuprt2y2ne/6oOJjFtSMHjgeoNhDW1IOm/4a4cb3c8f946e7e8056c8ee122c406a4/image.png" alt="MyDevPa.ge"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>vite</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Burnout as a Software Engineer</title>
      <dc:creator>Jenesh Napit</dc:creator>
      <pubDate>Sun, 25 Feb 2024 21:21:58 +0000</pubDate>
      <link>https://dev.to/jenesh/burnout-as-a-software-engineer-3745</link>
      <guid>https://dev.to/jenesh/burnout-as-a-software-engineer-3745</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;👋 Hi, this is Jenesh with this week’s post! Quick intro: I went from an Intern to an Engineering Manager in 3 years and want to help others level up in their career.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This week, we’ll dive into the infamous word in tech, “Burnout.” If you find this helpful, subscribe to my newsletter &lt;a href="https://jenesh.substack.com/"&gt;More Talking, Less Coding&lt;/a&gt; for weekly 💎&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  💭 What is Burnout? 💭
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;“Burnout is a state of complete mental, physical, and emotional exhaustion.” - Darling Downs Health&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I've been pushing myself for the past four years and have gotten a few promotions.&lt;/p&gt;

&lt;p&gt;But in the last few months, it finally caught up to me. I felt burned out for the first time in my career.&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%2Fuploads%2Farticles%2Fuxqzoi8hythlgrhfgqge.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%2Fuploads%2Farticles%2Fuxqzoi8hythlgrhfgqge.png" alt="Burnout Cycle created by Author" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What does it feel like?
&lt;/h2&gt;

&lt;p&gt;Imagine lacking motivation and interest in whatever you're doing, even in what you used to find fun. 😮‍💨&lt;/p&gt;

&lt;h2&gt;
  
  
  How do you know if you're burning out?
&lt;/h2&gt;

&lt;p&gt;Here are some signs straight from WebMD that can signal burnout:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You're Exhausted&lt;/li&gt;
&lt;li&gt;You're Turning Cynical&lt;/li&gt;
&lt;li&gt;You're Feeling Useless&lt;/li&gt;
&lt;li&gt;You're Depressed&lt;/li&gt;
&lt;li&gt;You Hate Your Job&lt;/li&gt;
&lt;li&gt;Your Mind Wanders&lt;/li&gt;
&lt;li&gt;Sleep Is Tough to Get&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Not all of the things from the list will be checked, but if most of them are, you probably are in or close to burnout.&lt;/p&gt;

&lt;h2&gt;
  
  
  What can you do to prevent burnout?
&lt;/h2&gt;

&lt;p&gt;Start prioritizing self-care. Focus on things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Diet &amp;amp; Exercise&lt;/li&gt;
&lt;li&gt;Good sleep habits&lt;/li&gt;
&lt;li&gt;Cut/limit job stressors&lt;/li&gt;
&lt;li&gt;Speak with your manager&lt;/li&gt;
&lt;li&gt;Socializing with friends more&lt;/li&gt;
&lt;li&gt;Taking time off (use them PTOs!)&lt;/li&gt;
&lt;li&gt;Self-reflection (meditating, journaling)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  💡 My Favorite Tool of the week 💡
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://scribehow.com/"&gt;Scribe&lt;/a&gt; - Create Step-by-Step Guides — Fast&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%2Fuploads%2Farticles%2Fzig9qxugvt4qgz8mrzva.jpg" 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%2Fuploads%2Farticles%2Fzig9qxugvt4qgz8mrzva.jpg" alt="Scribe Landing Page" width="800" height="523"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This new tool has been my go-to for creating any step-by-step guide for work and personal use. It's so simple to use and saves everyone a lot of time. I'm a Scribe user for life.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚨 Ask Me Anything! 🚨
&lt;/h2&gt;

&lt;p&gt;I welcome you all to ask me anything by adding your thoughts and questions in the comments. I'll make sure to answer them in next week's newsletter!&lt;/p&gt;

&lt;p&gt;Sign up here → &lt;a href="https://jenesh.substack.com/"&gt;More Talking, Less Coding&lt;/a&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>burnout</category>
      <category>mentalhealth</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>5 traits to go from Junior to Senior Software Engineer</title>
      <dc:creator>Jenesh Napit</dc:creator>
      <pubDate>Mon, 22 Jan 2024 14:52:15 +0000</pubDate>
      <link>https://dev.to/jenesh/5-traits-to-go-from-junior-to-senior-software-engineer-11ol</link>
      <guid>https://dev.to/jenesh/5-traits-to-go-from-junior-to-senior-software-engineer-11ol</guid>
      <description>&lt;p&gt;The difference between a senior and a junior goes beyond years of experience. The way you think and work changes. I’ve narrowed it down to 5 traits, so let’s dive in.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Planning before Coding
&lt;/h2&gt;

&lt;p&gt;As a junior, I was always eager to get coding with the &lt;strong&gt;first solution&lt;/strong&gt; that came to mind. Later, I realized that a senior engineer spends more time planning and analyzing problems from many angles.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F7fw6yp3wz2voflyjih5h.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F7fw6yp3wz2voflyjih5h.jpg" alt="Junior engineer vs Senior engineer"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Senior engineers often have &lt;strong&gt;much more&lt;/strong&gt; knowledge and experience, so they can often develop better solutions.&lt;/p&gt;

&lt;p&gt;Is there anything a junior can do to compensate for the lack of experience? Yes, they can borrow and capitalize on a Senior’s expertise. &lt;strong&gt;Before coding&lt;/strong&gt;, discussing and reviewing my approach with a Senior has saved me from writing unnecessary code toward the wrong solution.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Continuous Learning
&lt;/h2&gt;

&lt;p&gt;Senior Software Engineers understand that technology &lt;strong&gt;constantly&lt;/strong&gt; changes, so they stay updated with the latest tools, languages, and frameworks. There are many ways to learn and be on top of new tech. Some of those ways are reading books, attending conferences, or taking online courses. The key is to invest in growing their knowledge and skills.&lt;/p&gt;

&lt;p&gt;Some great websites for learning that I use often are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;YouTube&lt;/li&gt;
&lt;li&gt;Udemy&lt;/li&gt;
&lt;li&gt;Medium&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. Time + Task Management
&lt;/h2&gt;

&lt;p&gt;As a Junior, my tasks would finish relatively slowly. In comparison, Senior engineers were closing out tickets left and right. Over time, I realized that time management is a &lt;strong&gt;learned skill&lt;/strong&gt; that Senior engineers have mastered.&lt;/p&gt;

&lt;p&gt;My four tips for effective time management are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Breaking down&lt;/strong&gt; the tasks before starting&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Time-boxing&lt;/strong&gt; when working on tasks&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Delegating&lt;/strong&gt; tasks with the team&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Saying “no”&lt;/strong&gt; when needed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fzqa7g5owcer89v7ybehy.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fzqa7g5owcer89v7ybehy.jpg" alt="Laptop and task management graphics"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Time management relies &lt;strong&gt;heavily&lt;/strong&gt; on Task management. So here are two of my favorite tools I use for task management:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Trello&lt;/li&gt;
&lt;li&gt;Notion Projects&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. Collaborative Mindset
&lt;/h2&gt;

&lt;p&gt;Software engineering is not a one-person game. The best work happens with collaboration with others.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fdeu2zc2zxbbo9sezfsof.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fdeu2zc2zxbbo9sezfsof.jpg" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As a junior, I made mistakes, thinking I had the best solution, only to find out later in the code review that it wasn’t. To avoid this kind of situation, engineers should share and collaborate often. Here’s a great article on &lt;a href="https://medium.com/@MrMiguelFeliciano/the-power-of-collaboration-in-software-development-28e9baa59d6f#:~:text=Collaboration%20allows%20developers%20to%20share,they%20could%20on%20their%20own" rel="noopener noreferrer"&gt;The power of collaboration in Software Development&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Attention to Detail
&lt;/h2&gt;

&lt;p&gt;In the world of software engineering, attention to detail is &lt;strong&gt;critical&lt;/strong&gt;. Your code can be one edge case away from blowing up on-call.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Faxjyz1l1qgjoo2hsal1b.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Faxjyz1l1qgjoo2hsal1b.jpg" alt="My perfectly working code, edge case."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Write &lt;strong&gt;clean&lt;/strong&gt; and &lt;strong&gt;maintainable&lt;/strong&gt; code. In the end, humans are the ones maintaining the code. Here is a detailed article on How to write clean code.&lt;/p&gt;

&lt;p&gt;Summary&lt;br&gt;
As you can imagine, there are &lt;strong&gt;many&lt;/strong&gt; more traits, but these are some essential characteristics I’ve seen in Senior Software Engineers. You don’t become a Senior in a day. Everyone has a different journey and timeline. But these traits will set you up for success.&lt;/p&gt;

&lt;p&gt;To recap the five traits again:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Planning before Coding&lt;/li&gt;
&lt;li&gt;Continuous Learning&lt;/li&gt;
&lt;li&gt;Time + Task Management&lt;/li&gt;
&lt;li&gt;Collaborative Mindset&lt;/li&gt;
&lt;li&gt;Attention to Detail&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;As much as I’ve enjoyed writing this article, I would enjoy hearing your thoughts even more. So, add them below in the comments, and let’s start the conversations!&lt;/p&gt;

&lt;p&gt;P.S. If you’ve enjoyed reading this, connect with me on &lt;a href="https://medium.com/@thejeneshnapit/5-traits-to-go-from-junior-software-engineer-to-senior-software-engineer-3258d460585#:~:text=Medium%2C%20and-,LinkedIn,-!%20%F0%9F%8E%89" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;! 🎉&lt;/p&gt;

&lt;p&gt;Join my &lt;a href="https://jenesh.substack.com/" rel="noopener noreferrer"&gt;weekly Substack newsletter&lt;/a&gt; with over 100 other Software Engineers. I post weekly newsletter and provide the best tips and advice for Junior to Senior Developers.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>career</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>5 Underrated Skills That Will Get You Promoted</title>
      <dc:creator>Jenesh Napit</dc:creator>
      <pubDate>Mon, 22 Jan 2024 01:14:49 +0000</pubDate>
      <link>https://dev.to/jenesh/5-underrated-skills-that-will-get-you-promoted-4kah</link>
      <guid>https://dev.to/jenesh/5-underrated-skills-that-will-get-you-promoted-4kah</guid>
      <description>&lt;p&gt;A few days ago, I posted on &lt;a href="https://www.linkedin.com/posts/jeneshnapit_you-dont-get-promoted-and-then-step-up-your-activity-7152768133752078336-d77m?utm_source=share&amp;amp;utm_medium=member_desktop"&gt;LinkedIn&lt;/a&gt; saying:&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%2Fuploads%2Farticles%2F1f6ys9kwcsy3bcilzrc9.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%2Fuploads%2Farticles%2F1f6ys9kwcsy3bcilzrc9.png" alt="Screen shot of my LinkedIn Post" width="676" height="234"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Early in my role as a Software Engineer, I had &lt;strong&gt;no idea&lt;/strong&gt; how the promotion game worked.&lt;/p&gt;

&lt;p&gt;I thought I had to &lt;strong&gt;work hard&lt;/strong&gt; and give my best on &lt;strong&gt;each project&lt;/strong&gt;. I hoped my manager would notice and reward me with a promotion.&lt;/p&gt;

&lt;p&gt;The strategy could have worked and is how most people go about it in their careers. But I asked myself, “There must be a better way?”&lt;/p&gt;

&lt;p&gt;That better way is how I came up with my LinkedIn post a few days ago.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You step it up.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It's easier said than done, but here are five areas you can level up in:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Technical Skills&lt;/li&gt;
&lt;li&gt;Documentation&lt;/li&gt;
&lt;li&gt;Communication&lt;/li&gt;
&lt;li&gt;Problem-Solving&lt;/li&gt;
&lt;li&gt;Project Management&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;Let’s dive into it.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Technical Skills
&lt;/h2&gt;

&lt;p&gt;The way I improve my Technical Skills is by following my &lt;strong&gt;SLAP&lt;/strong&gt; method:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Seek&lt;/li&gt;
&lt;li&gt;Learn&lt;/li&gt;
&lt;li&gt;Apply&lt;/li&gt;
&lt;li&gt;Preach&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Seek
&lt;/h3&gt;

&lt;p&gt;I get 99% of my news from LinkedIn and YouTube. I’m always on there, so I’ll automatically see relevant news from the people I follow.&lt;/p&gt;

&lt;p&gt;Find your platform and get exposed to technical topics and tools applicable to your role.&lt;/p&gt;

&lt;h3&gt;
  
  
  Learn
&lt;/h3&gt;

&lt;p&gt;Once you find something relevant to your role and interest, add it to your to-do list. Not all news will need this step, but it’s helpful to write things down rather than try to remember them a few days later.&lt;/p&gt;

&lt;p&gt;I learn new things by visiting the website for documentation or a demo if they have. Then, I go to YouTube to see if someone can give me a TLDR and an in-depth tutorial.&lt;/p&gt;

&lt;h3&gt;
  
  
  Apply
&lt;/h3&gt;

&lt;p&gt;What’s the point of learning if you never apply it?&lt;/p&gt;

&lt;p&gt;Show your new and improved skills by starting small and iterating. If done correctly, your co-workers will begin to notice, which brings me to the 4th step.&lt;/p&gt;

&lt;h3&gt;
  
  
  Preach
&lt;/h3&gt;

&lt;p&gt;No, you don’t need to preach to anyone. But, if you think your co-workers can benefit from your new skill, figure out a way to teach it.&lt;/p&gt;

&lt;p&gt;You can teach by writing documentation, how-to guides, and FYIs. You can also record video tutorials or give a full-on live brown bag session.&lt;/p&gt;

&lt;p&gt;Pro tip: You don't need to do this alone. You can teach a few co-workers and ask them to "co-author" or "co-present." This way, you can share the work.&lt;/p&gt;




&lt;h2&gt;
  
  
  Documentation
&lt;/h2&gt;

&lt;p&gt;How do you feel when you need to know why someone made X decision two years ago? And how did they use the Y tool? After searching everywhere, you find nothing.&lt;/p&gt;

&lt;p&gt;If you want a promotion, you must show that you are reliable and think for the future, not just the present. &lt;/p&gt;

&lt;p&gt;When you show that you care and will take the extra time and effort to ensure “the why” and “the how,” your manager will see you from a different lens. I call that the promotion lens. 👓&lt;/p&gt;

&lt;p&gt;If you focus on writing good work documentation now, you’ll see massive improvements in a year.&lt;/p&gt;




&lt;h2&gt;
  
  
  Communication
&lt;/h2&gt;

&lt;p&gt;Unless you only work alone and don’t need to interact. You must invest in improving your communication.&lt;/p&gt;

&lt;p&gt;Be a good communicator, whether you’re sending messages on Slack, Email, or in a live Video call. Some traits I’ve seen in good communicators are:&lt;/p&gt;

&lt;p&gt;Being respectful to others&lt;/p&gt;

&lt;p&gt;Clear and concise statements&lt;/p&gt;

&lt;p&gt;Keeping it professional at all times&lt;/p&gt;

&lt;p&gt;Google or look up things you can find in chat and documentation first before you ask others&lt;/p&gt;




&lt;h2&gt;
  
  
  Problem-Solving
&lt;/h2&gt;

&lt;p&gt;There are two ways to improve problem-solving skills: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Knowledge&lt;/li&gt;
&lt;li&gt;Efficiency&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In Software Engineering, you can gain knowledge by learning how other Engineers solve problems. The key here is to have a system and framework for problem-solving.&lt;/p&gt;

&lt;p&gt;The other way to get better with Problem Solving is through efficiency.&lt;/p&gt;

&lt;p&gt;For instance, you can spend a week on technical documentation. Or, you can pair up with other experts in the tool.&lt;/p&gt;

&lt;p&gt;It depends on the situation, but there is usually more than one approach for every problem.&lt;/p&gt;




&lt;h2&gt;
  
  
  Project Management
&lt;/h2&gt;

&lt;p&gt;When I became an Engineering Manager, I started to take project management seriously. &lt;/p&gt;

&lt;p&gt;As a software engineer, I was accustomed to being assigned a few tasks for one or two projects. However, now I am responsible for managing multiple projects, which is a significant change for me.&lt;/p&gt;

&lt;p&gt;I took courses and invested time to improve my project management skills.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bonus:&lt;/strong&gt; Tell your manager you want to improve your Project Management skills - they'll appreciate your initiative and support your development.&lt;/p&gt;




&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;I have listed 5 of many, but I recommend starting with 1 or 2 and creating achievable SMART goals.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Technical Skills: SLAP method&lt;/li&gt;
&lt;li&gt;Documentation&lt;/li&gt;
&lt;li&gt;Communication&lt;/li&gt;
&lt;li&gt;Problem-Solving&lt;/li&gt;
&lt;li&gt;Project Management&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;Thanks for reading, let me know in the comments if you have a 6th to add to the list!&lt;/p&gt;

&lt;p&gt;As much as I’ve enjoyed writing this article, I would enjoy hearing your thoughts even more. So, add them below in the comments, and let’s start the conversations!&lt;/p&gt;

&lt;p&gt;P.S. If you’ve enjoyed reading this, connect with me on &lt;a href="https://medium.com/@thejeneshnapit/5-traits-to-go-from-junior-software-engineer-to-senior-software-engineer-3258d460585#:~:text=Medium%2C%20and-,LinkedIn,-!%20%F0%9F%8E%89"&gt;LinkedIn&lt;/a&gt;! 🎉&lt;/p&gt;

&lt;p&gt;Join my &lt;a href="https://jenesh.substack.com/"&gt;weekly Substack newsletter&lt;/a&gt; with over 100 other Software Engineers. I post weekly newsletter and provide the best tips and advice for Junior to Senior Developers.&lt;/p&gt;

</description>
      <category>softwaredevelopment</category>
      <category>career</category>
      <category>learning</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
