<?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: Prakhar Yadav</title>
    <description>The latest articles on DEV Community by Prakhar Yadav (@prakh_r).</description>
    <link>https://dev.to/prakh_r</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%2F359033%2F38fbda73-ac46-4627-91d3-a0b7ad7677c2.jpg</url>
      <title>DEV Community: Prakhar Yadav</title>
      <link>https://dev.to/prakh_r</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/prakh_r"/>
    <language>en</language>
    <item>
      <title>Markdown in ServiceNow: how I made rich work notes easier</title>
      <dc:creator>Prakhar Yadav</dc:creator>
      <pubDate>Tue, 16 Dec 2025 14:29:54 +0000</pubDate>
      <link>https://dev.to/prakh_r/markdown-in-servicenow-how-i-made-rich-work-notes-easier-5bib</link>
      <guid>https://dev.to/prakh_r/markdown-in-servicenow-how-i-made-rich-work-notes-easier-5bib</guid>
      <description>&lt;p&gt;I wanted a better way to write rich notes inside ServiceNow work notes. At work we type a lot of short updates, code snippets, and checklists. The default journal box in ServiceNow is fine, but writing formatted text feels slow and error prone. So I made two things: a small library and a browser extension that uses it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Library on GitHub: &lt;a href="https://github.com/yadav-prakhar/markdown-servicenow" rel="noopener noreferrer"&gt;https://github.com/yadav-prakhar/markdown-servicenow&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Published on npm: &lt;a href="https://www.npmjs.com/package/markdown-servicenow" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/markdown-servicenow&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Browser extension: &lt;a href="https://github.com/yadav-prakhar/markdown-sn-extension" rel="noopener noreferrer"&gt;https://github.com/yadav-prakhar/markdown-sn-extension&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Why I built this
&lt;/h2&gt;

&lt;p&gt;I wanted to write notes in markdown and have them appear nicely formatted in ServiceNow journal fields. The goals were simple:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Save time when writing work updates.&lt;/li&gt;
&lt;li&gt;Support common markdown like lists, code blocks, bold, italic, and blockquotes.&lt;/li&gt;
&lt;li&gt;Keep the output safe for ServiceNow journal format so pasting does not break anything.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I built the library first so the conversion logic is reusable. Then I made a small extension so I can write in a tidy editor and paste formatted output into ServiceNow with one click.&lt;/p&gt;




&lt;h2&gt;
  
  
  What the library does
&lt;/h2&gt;

&lt;p&gt;The library takes markdown and converts it into markup that can be understood by ServiceNow journal fields. It handles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Headers, paragraphs, bold, italic&lt;/li&gt;
&lt;li&gt;Ordered and unordered lists&lt;/li&gt;
&lt;li&gt;Inline code and code blocks&lt;/li&gt;
&lt;li&gt;Blockquotes&lt;/li&gt;
&lt;li&gt;Tables (basic)&lt;/li&gt;
&lt;li&gt;Highlights&lt;/li&gt;
&lt;li&gt;Github syle alerts &lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Element&lt;/th&gt;
&lt;th&gt;Syntax&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Headers&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;#&lt;/code&gt;, &lt;code&gt;##&lt;/code&gt;, &lt;code&gt;###&lt;/code&gt;, etc.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bold&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;**text**&lt;/code&gt; or &lt;code&gt;__text__&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Italic&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;*text*&lt;/code&gt; or &lt;code&gt;_text_&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bold + Italic&lt;/td&gt;
&lt;td&gt;&lt;code&gt;***text***&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Strikethrough&lt;/td&gt;
&lt;td&gt;&lt;code&gt;~~text~~&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Highlight&lt;/td&gt;
&lt;td&gt;&lt;code&gt;==text==&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Inline code&lt;/td&gt;
&lt;td&gt;&lt;code&gt;`code`&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Code blocks&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;&lt;/code&gt;`&lt;code&gt;&lt;/code&gt; fenced blocks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Links&lt;/td&gt;
&lt;td&gt;&lt;code&gt;[text](url)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Images&lt;/td&gt;
&lt;td&gt;&lt;code&gt;![alt](url)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Unordered lists&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;- item&lt;/code&gt; or &lt;code&gt;* item&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ordered lists&lt;/td&gt;
&lt;td&gt;&lt;code&gt;1. item&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Blockquotes&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&amp;gt; quote&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Alerts&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;&amp;gt; [!NOTE]&lt;/code&gt;, &lt;code&gt;&amp;gt; [!TIP]&lt;/code&gt;, &lt;code&gt;&amp;gt; [!WARNING]&lt;/code&gt;, etc.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tables&lt;/td&gt;
&lt;td&gt;Pipe-delimited tables&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Horizontal rules&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;---&lt;/code&gt; or &lt;code&gt;***&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;It also takes care of ServiceNow specific quirks so the output shows correctly inside the journal editor.&lt;/p&gt;

&lt;p&gt;Sample outputs:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img alt="screenshot 1" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2Fc4281708-21ae-40fb-8bb3-e925475cb1e1" width="2502" height="1798"&gt;&lt;/th&gt;
&lt;th&gt;&lt;img alt="screenshot 2" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F1263da67-1041-4a7c-9f4f-59f8e6252dae" width="2502" height="1778"&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  The browser extension
&lt;/h2&gt;

&lt;p&gt;The extension is tiny and focused. &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;It gives a markdown button below the journal field (comments, work notes, etc.). Once you've typed your markdown, just click it and the text is converted in-place to the journal style entry.&lt;/li&gt;
&lt;li&gt;It gives me a small editor pop-up where I write markdown. When I click convert, the extension runs the library, converts the text, and copies the result. Then I paste into the ServiceNow work notes. This saves a lot of clicking and cleanup.&lt;/li&gt;
&lt;li&gt;It also has a context menu entry. Just write the markdown → select it -&amp;gt; right click → select &lt;code&gt;Convert Markdown to ServiceNow&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Features I built:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Quick editor popup&lt;/li&gt;
&lt;li&gt;Live preview of converted output (optional)&lt;/li&gt;
&lt;li&gt;Copy to clipboard button&lt;/li&gt;
&lt;li&gt;Small settings panel to tweak conversion behavior&lt;/li&gt;
&lt;li&gt;Context menu to convert selected text&lt;/li&gt;
&lt;li&gt;Button next to Journal field to convert in-place&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fieehbe675wl1n1lg8irr.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fieehbe675wl1n1lg8irr.gif" alt="Demo" width="600" height="198"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  How to use it (quick)
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Install the extension from the repo or load it as unpacked during development.&lt;/li&gt;
&lt;li&gt;Open the popup and write your markdown.&lt;/li&gt;
&lt;li&gt;Click Convert.&lt;/li&gt;
&lt;li&gt;Paste into the ServiceNow work notes field.&lt;/li&gt;
&lt;li&gt;Confirm the formatting looks right in the journal.&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Before&lt;/th&gt;
&lt;th&gt;After&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fed2glmj7c2cux6an28eo.png" alt="Boring work notes without rich text" width="433" height="359"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4idwj3ssz40hyf60l9i9.png" alt="Awesome work notes with rich text using markdown extension" width="601" height="601"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  A short technical note
&lt;/h2&gt;

&lt;p&gt;I wrote the library in JavaScript so it is easy to publish on npm and reuse in the extension. The conversion logic is modular, so you can plug it into other tools if you want. I tried to avoid heavy parsing libraries to keep the bundle small.&lt;/p&gt;

&lt;p&gt;If you are curious about internals, check the &lt;a href="https://github.com/yadav-prakhar/markdown-sn-extension/blob/main/README.md" rel="noopener noreferrer"&gt;README&lt;/a&gt; on GitHub for examples and the small test suite.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I learned
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Small tools solve repeated friction. What took minutes every day becomes seconds.&lt;/li&gt;
&lt;li&gt;Writing robust text conversion needs many small rules. Edge cases show up fast.&lt;/li&gt;
&lt;li&gt;Packaging a tiny library first made the extension easier to build.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Next ideas
&lt;/h2&gt;

&lt;p&gt;Open to ideas &amp;amp; pull requests if you feel like doing something yourself.&lt;/p&gt;




&lt;h2&gt;
  
  
  Where to find it
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Library: &lt;a href="https://github.com/yadav-prakhar/markdown-servicenow" rel="noopener noreferrer"&gt;https://github.com/yadav-prakhar/markdown-servicenow&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;npm: &lt;a href="https://www.npmjs.com/package/markdown-servicenow" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/markdown-servicenow&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Extension: &lt;a href="https://github.com/yadav-prakhar/markdown-sn-extension" rel="noopener noreferrer"&gt;https://github.com/yadav-prakhar/markdown-sn-extension&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Feel free to open an issue or a PR. If you try it, I would love to hear how you use it or what features you want.&lt;/p&gt;




&lt;h2&gt;
  
  
  Thanks
&lt;/h2&gt;

&lt;p&gt;Feel free to star the repo if you like it :)&lt;br&gt;
👇 and here's an avatar of me for no reason at all 🤭&lt;/p&gt;

&lt;p&gt; 
  &lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd6k996zb8tox0vau454u.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd6k996zb8tox0vau454u.PNG" width="800" height="640"&gt;&lt;/a&gt;
&lt;/p&gt;

</description>
      <category>servicenow</category>
      <category>extensions</category>
      <category>vibecoding</category>
      <category>productivity</category>
    </item>
    <item>
      <title>🚀 Introduction to Git Worktree (With Oh My Zsh Aliases)</title>
      <dc:creator>Prakhar Yadav</dc:creator>
      <pubDate>Mon, 17 Nov 2025 05:12:06 +0000</pubDate>
      <link>https://dev.to/prakh_r/introduction-to-git-worktree-with-oh-my-zsh-aliases-27lp</link>
      <guid>https://dev.to/prakh_r/introduction-to-git-worktree-with-oh-my-zsh-aliases-27lp</guid>
      <description>&lt;p&gt;If you’ve ever had to switch branches in the middle of work, stash your changes, or juggle multiple clones of the same repository… you already know the pain.&lt;/p&gt;

&lt;p&gt;Good news: &lt;strong&gt;Git Worktree&lt;/strong&gt; makes all of this much easier.&lt;/p&gt;

&lt;p&gt;This guide will introduce:&lt;br&gt;
    • What Git Worktree is&lt;br&gt;
    • What Oh My Zsh is (and why its aliases help)&lt;br&gt;
    • Real workflows for single-repo apps&lt;br&gt;
    • Real workflows for monorepos&lt;/p&gt;

&lt;p&gt;Let’s make your Git life smoother and your workflow faster. ✨&lt;/p&gt;


&lt;h2&gt;
  
  
  🌱 What is Git Worktree?
&lt;/h2&gt;

&lt;p&gt;A Git worktree is a feature that lets you check out multiple branches of the same repo at the same time — each in its own folder.&lt;/p&gt;

&lt;p&gt;Think of it like having multiple “workspaces” linked to the same Git repository.&lt;/p&gt;

&lt;p&gt;Why use it?&lt;br&gt;
    • No need to clone the repo again&lt;br&gt;
    • No need to stash or reset your local changes&lt;br&gt;
    • You can develop, test, or review PRs in parallel&lt;br&gt;
    • Saves time and disk space&lt;br&gt;
    • Cleaner workflow&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
You’re working on feature/homepage-redesign but your teammate asks you to check hotfix/login-bug.&lt;/p&gt;

&lt;p&gt;Instead of stashing everything:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git worktree add ../login-hotfix origin/hotfix/login-bug
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Boom — a new folder opens up with that branch, while your original branch stays untouched.&lt;/p&gt;




&lt;h2&gt;
  
  
  🌀 What is Oh My Zsh? And Why Are We Talking About It?
&lt;/h2&gt;

&lt;p&gt;If you use Zsh (default shell on macOS), then Oh My Zsh is like a power-up.&lt;/p&gt;

&lt;p&gt;It’s a framework that adds:&lt;br&gt;
    • Useful plugins&lt;br&gt;
    • Completion&lt;br&gt;
    • Themes&lt;br&gt;
    • Shortcuts&lt;br&gt;
    • And… Git aliases that save a LOT of typing&lt;/p&gt;

&lt;p&gt;Instead of typing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git worktree add ../some-folder feature-branch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With the Oh My Zsh git plugin, you can type:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gwta ../some-folder feature-branch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here are the key aliases for Git Worktree:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Alias&lt;/th&gt;
&lt;th&gt;Full command&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gwt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;git worktree&lt;/td&gt;
&lt;td&gt;Base command&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gwta&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;git worktree add&lt;/td&gt;
&lt;td&gt;Add a worktree&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gwtl&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;git worktree list&lt;/td&gt;
&lt;td&gt;List worktrees&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gwtr&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;git worktree remove&lt;/td&gt;
&lt;td&gt;Remove worktree&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gwtp&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;git worktree prune&lt;/td&gt;
&lt;td&gt;Remove stale entries&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;To enable it, make sure your .zshrc has:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;plugins&lt;/span&gt;&lt;span class="o"&gt;=(&lt;/span&gt;git&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Reload:&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;source&lt;/span&gt; ~/.zshrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And you’re set.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚙️ Workflow Scenario 1 — Single-Repo App
&lt;/h2&gt;

&lt;p&gt;Let’s say you have a normal project:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;my-app/
  src/
  package.json
  ...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You’re working on a big feature:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;feature/new-ui
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But someone needs your help reviewing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;feature/navbar-fix
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Instead of stopping your work:&lt;/p&gt;

&lt;p&gt;➕ Add a worktree&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gwta ../navbar-fix-wt origin/feature/navbar-fix
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now you have:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;my-app/                  ← your main work continues here
navbar-fix-wt/           ← completely separate workspace
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;👇 Inside navbar-fix-wt/&lt;br&gt;
    • Open code&lt;br&gt;
    • Run tests&lt;br&gt;
    • Try builds&lt;br&gt;
    • Review changes&lt;/p&gt;

&lt;p&gt;When done:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gwtr ../navbar-fix-wt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Back to your original branch, untouched.&lt;/p&gt;

&lt;p&gt;🔥 Why this is awesome&lt;br&gt;
    • No stashing&lt;br&gt;
    • No losing uncommitted changes&lt;br&gt;
    • No slow clones&lt;br&gt;
    • You can have 3–4 worktrees open if you want&lt;/p&gt;


&lt;h2&gt;
  
  
  🏗️ Workflow Scenario 2 — A Monorepo with Multiple Apps
&lt;/h2&gt;

&lt;p&gt;A common setup:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;company-monorepo/
  apps/
    web/
    admin/
    mobile/
  libs/
    ui/
    utils/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now imagine you need to:&lt;br&gt;
    • Work on web-app-feature&lt;br&gt;
    • Test something in admin&lt;br&gt;
    • Also prepare a PR fix for mobile&lt;/p&gt;

&lt;p&gt;Instead of checking out branches back and forth:&lt;/p&gt;

&lt;p&gt;1️⃣ Create worktrees for each branch&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gwta ../wt-web-feature web-app-feature
gwta ../wt-admin-experiments admin-dashboard-refactor
gwta ../wt-mobile-fix mobile/login-crash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Folder layout becomes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;company-monorepo/           ← your main repo
wt-web-feature/
wt-admin-experiments/
wt-mobile-fix/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each folder is:&lt;br&gt;
    • A checkout of a different branch&lt;br&gt;
    • Still shares the same .git data&lt;br&gt;
    • Fast to create (no re-cloning!)&lt;/p&gt;

&lt;p&gt;2️⃣ Work in each independently&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;cd&lt;/span&gt; ../wt-web-feature
npm run dev:web

&lt;span class="nb"&gt;cd&lt;/span&gt; ../wt-admin-experiments
npm run dev:admin

&lt;span class="nb"&gt;cd&lt;/span&gt; ../wt-mobile-fix
npm run dev:mobile
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Yes, you can run multiple apps side-by-side — perfect for monorepos.&lt;/p&gt;

&lt;p&gt;3️⃣ Clean up when you’re done&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gwtr ../wt-web-feature
gwtr ../wt-admin-experiments
gwtr ../wt-mobile-fix
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🎯 Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Git Worktree is one of those features that feels small but saves huge amounts of time once you start using it.&lt;/p&gt;

&lt;p&gt;Combined with Oh My Zsh’s aliases:&lt;br&gt;
    • Faster workflows&lt;br&gt;
    • Cleaner development environments&lt;br&gt;
    • No more “stash → switch → test → switch back” loop&lt;br&gt;
    • Perfect for multitasking across branches&lt;br&gt;
    • Perfect for monorepos where multiple apps run at once&lt;/p&gt;

&lt;p&gt;If you work on anything slightly complex - frontend frameworks, backend services, monorepos (&amp;amp; ServiceNow apps in my case) - Git Worktree is a superpower 💪&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>git</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Easy Callback, Promises, Async-Await</title>
      <dc:creator>Prakhar Yadav</dc:creator>
      <pubDate>Sat, 28 Aug 2021 22:05:36 +0000</pubDate>
      <link>https://dev.to/prakh_r/easy-callback-promises-async-await-4c8</link>
      <guid>https://dev.to/prakh_r/easy-callback-promises-async-await-4c8</guid>
      <description>&lt;p&gt;After having read about callbacks, promises &amp;amp; async-await multiple times in not so easy to comprehensions, I finally have wrapped my head around them.&lt;br&gt;
And today I'd share it in simpler terms that I am able to remember &amp;amp; understand.&lt;/p&gt;


&lt;h2&gt;
  
  
  Callbacks
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8mv3cnqbmed1bblvhvnt.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8mv3cnqbmed1bblvhvnt.jpg" alt="Call me back post-it note" width="250" height="187"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Callbacks are functions being passed as arguments. That's it. That doesn't satisfy you then read these one page articles (&lt;em&gt;to arrive on same conclusion of course&lt;/em&gt;):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Glossary/Callback_function" rel="noopener noreferrer"&gt;Callback by Mozilla Dev Net&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.w3schools.com/js/js_callback.asp" rel="noopener noreferrer"&gt;Callback by W3School&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.javascripttutorial.net/javascript-callback/" rel="noopener noreferrer"&gt;Callback by javascripttutotial.net&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  Promises:
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnp29309g2xvlyqjv9qle.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnp29309g2xvlyqjv9qle.png" alt="Promise resolve &amp;amp; reject" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;functions that are not run sequentially. They are run when possible.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const fun = new Promise ((resolve, reject) =&amp;gt; {
  if(&amp;lt;some condition&amp;gt;)
    resolve("some success message");
  else
    reject("some failure message");
});


fun()
  .then(msg =&amp;gt; console.log(msg)) // some success message
  .catch(msg =&amp;gt; console.log(msg)); // some failure message
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Resolve is called to indicate &amp;amp; return success status of the Promise, &amp;amp; Reject is called when we need to show failure.&lt;/p&gt;

&lt;p&gt;Once returned we need to handle the stuff as well right?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;then()&lt;/code&gt; is used to handle the resolved state&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;catch()&lt;/code&gt; is used to handle the rejected state&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;See! Simple.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg4s0cvjyq8epk4pl08hi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg4s0cvjyq8epk4pl08hi.png" alt="Detailed flow diagram of how a Promise works" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Async - Await
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl7k8smmbjckurr6uolsc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl7k8smmbjckurr6uolsc.png" alt="async await code poster" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Just a wrapper around Promise. Async-Await use Promises in the background.&lt;br&gt;
Why was this done?&lt;br&gt;
Because sometimes developers tend to nest things up. Nesting Promises makes it difficult to write, read, follow &amp;amp; understand at one look.&lt;/p&gt;

&lt;p&gt;So why not make it easy to read &amp;amp; understand.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const fun = async () =&amp;gt; {
  await functionToPerformAsynchronously();
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That easy. You can easily make any function run asynchronously, by appending a &lt;code&gt;await&lt;/code&gt; before it. Just remember that &lt;code&gt;await&lt;/code&gt; statement must be in a function declared as &lt;code&gt;async&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;And you know what! &lt;code&gt;async&lt;/code&gt; functions are nothing but promises (well not really; they return promises).&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Don't confuse yourself, just read along and find more detail in the links mentioned at the end.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Which is why you can do this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const fun = async () =&amp;gt; {
  await functionToPerformAsynchronously();
}

fun()
  .then(&amp;lt;whatever you want to do here&amp;gt;) //runs when fun() has run successfully and did not encounter any issue while it ran
  .catch(errorMsg =&amp;gt; console.log(errorMsg)); // runs when fun() had some problem running. We can display the problem as an error message is returned &amp;amp; can be displayed like in this example.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F80tkfa8o1c43obodzfjc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F80tkfa8o1c43obodzfjc.png" alt="Want to know more" width="618" height="404"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Want to dig deeper?
&lt;/h2&gt;

&lt;p&gt;Here are one of the best &amp;amp; easy to follow official Node documentation on each one of the three:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://nodejs.dev/learn/javascript-asynchronous-programming-and-callbacks" rel="noopener noreferrer"&gt;JavaScript Asynchronous Programming and Callbacks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nodejs.dev/learn/understanding-javascript-promises" rel="noopener noreferrer"&gt;Understanding JavaScript Promises&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nodejs.dev/learn/modern-asynchronous-javascript-with-async-and-await" rel="noopener noreferrer"&gt;Modern Asynchronous JavaScript with Async and Await&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>codenewbie</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Determine the kind of Software</title>
      <dc:creator>Prakhar Yadav</dc:creator>
      <pubDate>Fri, 27 Aug 2021 20:06:06 +0000</pubDate>
      <link>https://dev.to/prakh_r/determine-the-kind-of-software-4m4k</link>
      <guid>https://dev.to/prakh_r/determine-the-kind-of-software-4m4k</guid>
      <description>&lt;h2&gt;
  
  
  Iterative approach effect on prerequisite
&lt;/h2&gt;

&lt;p&gt;Different kinds of software projects need different balances between preparation and construction.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(scroll to the Appendix at the end to see some good practices for common kind of software practices)&lt;/em&gt; 👇 &lt;/p&gt;

&lt;p&gt;Some projects need iterative &amp;amp; some need sequential approach.&lt;/p&gt;

&lt;p&gt;A &lt;code&gt;misinformed opinion&lt;/code&gt; is that iterative techniques don't need to focus on prerequisites.&lt;br&gt;
However in reality, Iterative approaches only tend to reduce the impact of inadequate upstream work, but they don’t eliminate it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi2vrw2w2aeanbn7zqope.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi2vrw2w2aeanbn7zqope.png" alt="poster showing stop misinformation slogan" width="800" height="800"&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;p&gt;Example &lt;strong&gt;table below compares 2 approaches&lt;/strong&gt; with respect to prerequisites. Approach 1 relies solely on testing &amp;amp; discovers defects later, making the cost higher, and Approach 2 discovers defects iteratively as the project progresses.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Skipping Prerequisites&lt;/th&gt;
&lt;th&gt;Focusing on Prerequisites&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv8jcrsqlbepxg3igocdo.jpeg" alt="tabular representation of skipping prerequisite cost in both approaches" width="800" height="447"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa0hwfnpjwtti2p8fa7qi.jpeg" alt="tabular representation of costs when prerequisites are focused in both approaches" width="800" height="441"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;A focus on prerequisites can reduce costs regardless of whether you use an iterative or a sequential approach.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Most projects are neither completely sequential nor completely iterative. It isn’t practical to specify 100% of the requirements or design up front.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fctmaj7bg06zsqytcrsdg.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fctmaj7bg06zsqytcrsdg.jpeg" alt="thumb image" width="624" height="351"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;One common rule of thumb&lt;/em&gt;&lt;/strong&gt; is to plan to specify about 80 percent of the requirements up front, and then practice systematic change control to accept only the most valuable new requirements. Another alternative is to specify only the most important 20 percent of the requirements up front and plan to develop the rest of the software in small increments.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  How to choose between Iterative and Sequential Approaches
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdf5ahs1v6v5uv3ixquzr.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdf5ahs1v6v5uv3ixquzr.jpeg" alt="a thinking gorilla" width="637" height="373"&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
You might &lt;strong&gt;choose&lt;/strong&gt; a more &lt;strong&gt;sequential&lt;/strong&gt; (upfront) &lt;strong&gt;approach&lt;/strong&gt; &lt;strong&gt;when&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;requirements are fairly stable.&lt;/li&gt;
&lt;li&gt;design is straightforward and well understood.&lt;/li&gt;
&lt;li&gt;development team is familiar with the applications area.&lt;/li&gt;
&lt;li&gt;project contains little risk.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You might &lt;strong&gt;choose&lt;/strong&gt; a more &lt;strong&gt;iterative&lt;/strong&gt; (as-you-go) &lt;strong&gt;approach when&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;requirements are not well understood.&lt;/li&gt;
&lt;li&gt;design is complex.&lt;/li&gt;
&lt;li&gt;development team is unfamiliar with the applications area.&lt;/li&gt;
&lt;li&gt;project contains a lot of risk.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Appendix
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Table: Good practices for 3 common kinds of projects&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs6s3rdarh432xqf3ypbs.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs6s3rdarh432xqf3ypbs.jpeg" alt="tabular comparison of good practices" width="800" height="559"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0amh5wpge2q212dwm6ap.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0amh5wpge2q212dwm6ap.jpeg" alt="tabular comparison of more good practices" width="800" height="1045"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>books</category>
      <category>softwaredevelopment</category>
      <category>computerscience</category>
      <category>devjournal</category>
    </item>
    <item>
      <title>Importance of prerequisites</title>
      <dc:creator>Prakhar Yadav</dc:creator>
      <pubDate>Thu, 24 Jun 2021 22:15:12 +0000</pubDate>
      <link>https://dev.to/prakh_r/importance-of-prerequisites-2bn7</link>
      <guid>https://dev.to/prakh_r/importance-of-prerequisites-2bn7</guid>
      <description>&lt;p&gt;Paying attention to quality is also the best way to improve productivity. We do this by adopting high quality practices which emphasize quality at the beginning, middle &amp;amp; end of the project.&lt;br&gt;
Emphasizing quality at the beginning implies you plan for high quality product, require high quality product &amp;amp; design a high quality product.&lt;br&gt;
Emphasizing quality in the middle of the project means emphasizing on construction practices.&lt;br&gt;
Emphasizing quality at the end of the project means emphasizing on system testing.&lt;br&gt;
&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4q42zwz2n4k1ywtow85c.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4q42zwz2n4k1ywtow85c.jpg" alt="upstream drink can" width="474" height="446"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;Upstream activities, i.e. architecture, design, and project planning can be done well. Projects will run best if appropriate preparation activities are done before construction begins.&lt;br&gt;
Goal of preparation is to reduce chances of risk as early as possible. Common risks are poor requirements and poor project planning. Hence preparation tends to focus on improving requirements &amp;amp; project plans.&lt;br&gt;
(specific approach to risk reduction must be decided project by project).&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;WIMP syndrome&lt;/p&gt;

&lt;p&gt;Lack of planning can often be attributed to team's leadership. This is often due to WIMP Syndrome of managers. Why isn't Mary Programming?&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1j1h895x8b909hb4kxhu.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1j1h895x8b909hb4kxhu.jpg" alt="strict nazi" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
If your manager happens to be such brigadier general and orders you to start coding right away, it's easy to say "Yes sir!" But that's a bad response, and you have several alternatives:&lt;br&gt;
i.   You can flatly refuse to do work in an inefficient order, that is iff your relationship with your boss &amp;amp; your bank balance are healthy enough.&lt;br&gt;
ii.   (Ethically questionable) Pretend to be coding. Put an old program listing in the corner of your desk (or opened somewhere in your screen) then go right ahead and develop your requirements &amp;amp; architecture with or without your boss's approval. You'll do the project faster with better quality results.&lt;br&gt;
iii.   You can educate your boss in terms of technical projects &amp;amp; how/why planning beforehand will be better.&lt;br&gt;
iv.   Find another job.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  Compelling &amp;amp; Foolproof arguments for doing prerequisites before Construction
&lt;/h3&gt;

&lt;p&gt;This section will help you deal with bosses who have not seen the light yet. Learn the argument &amp;amp; then sit down with your boss for a heart-to-heart discussion.&lt;br&gt;
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Appeal to Logic&lt;/strong&gt; - &lt;em&gt;plan before building&lt;/em&gt;
Big projects require more planning; small projects need less.
From management point of view, planning means determining amount of time &amp;amp; people the project will need. From technical point of view, understanding what you want to build, so that you don't waste money/time/resources building the wrong thing.
Sometimes users aren't entirely sure what they want at first, so it might take effort in finding what they really want. That's cheaper than building the wrong thing and throwing it away to start anew.
It's also important to know how to build the system before starting to build it.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Appeal to Analogy&lt;/strong&gt; - &lt;em&gt;do things in the right order&lt;/em&gt;
Building software is similar to any other project.
If you make a house, you make architectural drawings &amp;amp; blueprints before pounding the nails.
You don't start decorating a Christmas tree before putting it in a stand.
You don't get dressed before you take a shower.
You don't put on shoes before wearing your socks. Things need to be done in order.
If any impurity is introduced in the beginning it'll contaminate the complete food chain.
In programming, if your requirements are contaminated, they'll contaminate the architecture which in turn will contaminate the construction &amp;amp; hence will lead to radioactive polluted software along with a malnourished grumpy programmer. You don't want that.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Appeal to Data&lt;/strong&gt; - &lt;em&gt;speak stats for proof&lt;/em&gt;
The principle is to find an error as close as possible to the time it was introduced. The longer the defect stays in software food chain, the more is the damage it causes further down the chain.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Time introduced x Time detected&lt;/th&gt;
&lt;th&gt;&lt;em&gt;Requirements&lt;/em&gt;&lt;/th&gt;
&lt;th&gt;&lt;em&gt;Architecture&lt;/em&gt;&lt;/th&gt;
&lt;th&gt;&lt;em&gt;Constriction&lt;/em&gt;&lt;/th&gt;
&lt;th&gt;&lt;em&gt;System Test&lt;/em&gt;&lt;/th&gt;
&lt;th&gt;&lt;em&gt;Post-release&lt;/em&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Requirements&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;5-10&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;10-100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Architecture&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;25-100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Construction&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;10-25&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Architecture&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;25-100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Construction&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;10-25&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Table: average cost to fix defects based on when they're introduced &amp;amp; detected (units in multiples of $1000)&lt;/em&gt;&lt;/p&gt;

</description>
      <category>books</category>
      <category>devjournal</category>
      <category>computerscience</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Measure Twice, Cut Once: Upstream Prerequisites - Introduction</title>
      <dc:creator>Prakhar Yadav</dc:creator>
      <pubDate>Thu, 24 Jun 2021 21:35:32 +0000</pubDate>
      <link>https://dev.to/prakh_r/measure-twice-cut-once-upstream-prerequisites-introduction-1827</link>
      <guid>https://dev.to/prakh_r/measure-twice-cut-once-upstream-prerequisites-introduction-1827</guid>
      <description>&lt;p&gt;Before you begin construction of software, you need to prepare for it.&lt;/p&gt;

&lt;p&gt;And preparation is tailored to the specific project.&lt;br&gt;
The carpenter's saying, "Measure twice, cut once" is highly relevant to software development as it is in any other form of craftsmanship. Doing the most expensive part of the project twice is a bad idea.&lt;/p&gt;

&lt;p&gt;This chapter lays groundwork for construction phase, without discussing construction directly (which will be discussed in chapter 5). Here we will discuss various prerequisites before construction.&lt;br&gt;
&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwtbc3mkusw7n93k0qjhj.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwtbc3mkusw7n93k0qjhj.jpg" alt="plan discussion" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;br&gt;
Here is the chapter's layout:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Importance of prerequisites&lt;/strong&gt;: &lt;em&gt;cost of not doing prerequisites&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Determine the kind of software you're working on&lt;/strong&gt;: &lt;em&gt;how prerequisites apply to your situation&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Problem-definition Prerequisites&lt;/strong&gt;: &lt;em&gt;recognize written problem statement &amp;amp; if it is a good foundation for construction&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Requirements Prerequisites&lt;/strong&gt;: &lt;em&gt;importance of clear requirements &amp;amp; how to handle change in requirements during construction&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Architecture Prerequisites&lt;/strong&gt;: &lt;em&gt;how to determine the quality of existing architecture&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Amount of time spent on Upstream prerequisites&lt;/strong&gt;: &lt;em&gt;time management in upstream activities (requirements, architecture, design, planning)&lt;/em&gt;
&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>books</category>
      <category>devjournal</category>
      <category>computerscience</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Code Complete Mini Notes</title>
      <dc:creator>Prakhar Yadav</dc:creator>
      <pubDate>Thu, 24 Jun 2021 20:39:33 +0000</pubDate>
      <link>https://dev.to/prakh_r/code-complete-mini-notes-2ag2</link>
      <guid>https://dev.to/prakh_r/code-complete-mini-notes-2ag2</guid>
      <description>&lt;h2&gt;
  
  
  What?
&lt;/h2&gt;

&lt;p&gt;I have started reading one of the most recommended books for software development, Code Complete (2nd ed.) that suggests best practices in the industry and talks about development journey from A-to-Z. Covering almost all the aspects of software development philosophy. But have you looked at the size of it!!!?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4uzwuorhuaqvvde27acw.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4uzwuorhuaqvvde27acw.JPG" alt="Code Complete book's photo" width="800" height="848"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Yeah! Get a load of this bad boy.&lt;br&gt;
&lt;br&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Why?
&lt;/h2&gt;

&lt;p&gt;Due to day to day work not many of us get enough time to read a book, let alone a book of this volume. I often find myself wishing if only people would write the summaries of books that they had been reading. It would speed things up a bit and time restricted people can also catch up with many literature.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl34c04p2iyxlyj6gna8y.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl34c04p2iyxlyj6gna8y.jpg" alt="Quote: Be the change you want to see in the world" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So I for one am starting a series on it. I will be capturing the notes that I make along the way in easy words that will make it quick for people to go through the crux of the book.&lt;br&gt;
&lt;br&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  How?
&lt;/h2&gt;

&lt;p&gt;I'll start with Chapter 3 (which is where the real stuff begins) at first and move along, since chapter 1 &amp;amp; 2 discuss the philosophies initially. I plan on covering them at a later stage.&lt;br&gt;
&lt;br&gt;
Every post may be a subtopic of one huge chapter. The banner image of each post will highlight which chapter does the topic belong to, and also the 1st post that begins a chapter will have the 1st line as description of the same.&lt;br&gt;
&lt;br&gt;
I hope whoever plans on reading this finds it easy &amp;amp; convenient. I'm open to suggestions on how this can be improved.&lt;br&gt;
&lt;br&gt;
&lt;em&gt;p.s. Don't worry, I won't be leaving out much part.&lt;/em&gt;&lt;br&gt;
&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fse7acr05bnm3kry264hg.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fse7acr05bnm3kry264hg.jpg" alt="there is always one more thing to learn quote" width="800" height="337"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;List:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/prakh_r/measure-twice-cut-once-upstream-prerequisites-introduction-1827"&gt;Chapter 3: Measure twice cut once - Upstream prerequisites&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>books</category>
      <category>computerscience</category>
      <category>architecture</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Resources for enthusiasts - software dev. &amp; cybersecurity</title>
      <dc:creator>Prakhar Yadav</dc:creator>
      <pubDate>Thu, 17 Jun 2021 11:15:19 +0000</pubDate>
      <link>https://dev.to/prakh_r/resources-for-enthusiasts-software-dev-cybersecurity-1gha</link>
      <guid>https://dev.to/prakh_r/resources-for-enthusiasts-software-dev-cybersecurity-1gha</guid>
      <description>&lt;p&gt;Hey folks. Tell me if this happens to you as well.&lt;br&gt;
I find myself often torn up between my interests in web development and cybersecurity. I try to learn stuff in both the paths but it becomes very exhausting.&lt;br&gt;
Sounds familiar?&lt;/p&gt;

&lt;p&gt;When it comes to learning, multitasking is not really a friend. Better progress is made when we pick up one thing and achieve the target. But the FOMO (fear of missing out) on the other thing distracts too much.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fowy6tl02rt2civhm1suu.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fowy6tl02rt2civhm1suu.gif" alt="fear of missing out is real" width="498" height="280"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To deal with this, I at least try to stay up-to-date on the latest developments, outside of my learning time, through &lt;strong&gt;podcasts&lt;/strong&gt;, &lt;strong&gt;news-boards&lt;/strong&gt; &amp;amp; &lt;strong&gt;twitter&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Here are my go-to resources for cybersecurity:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://darknetdiaries.com/" rel="noopener noreferrer"&gt;Darknet Diaries podcast&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pod.link/909407206" rel="noopener noreferrer"&gt;Kaspersky Transatlantic Cable podcast&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.bbc.co.uk/programmes/w13xtvg9/episodes/downloads" rel="noopener noreferrer"&gt;Lazarus Heist podcast&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://malicious.life/" rel="noopener noreferrer"&gt;Malicious Life podcast&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://softwareengineeringdaily.com/" rel="noopener noreferrer"&gt;Software Engineering Daily podcast &amp;amp; newsboard&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/devdiscuss"&gt;DEV Discuss podcast&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.codenewbie.org/podcast" rel="noopener noreferrer"&gt;Codenewbie podcast&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.darkreading.com/" rel="noopener noreferrer"&gt;DarkReading&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://threatpost.com/" rel="noopener noreferrer"&gt;ThreatPost&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.kaspersky.co.in/blog/" rel="noopener noreferrer"&gt;Kaspersky Daily&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These podcasts and articles are the ones that help me &amp;amp; I hope you find them helpful as well.&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>beginners</category>
      <category>devjournal</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Interview Prep suggestions &amp; resources</title>
      <dc:creator>Prakhar Yadav</dc:creator>
      <pubDate>Fri, 11 Jun 2021 22:01:09 +0000</pubDate>
      <link>https://dev.to/prakh_r/interview-prep-suggestions-resources-556</link>
      <guid>https://dev.to/prakh_r/interview-prep-suggestions-resources-556</guid>
      <description>&lt;p&gt;I have had the opportunity to get in touch with some of the great minds and gather their advises when I was preparing to get in tech companies. And I want to hold the torch while others go through the same phase in their lives.&lt;br&gt;
In this article I want to share my interview preparation experience and some resources for anyone who is or will be going through the same.&lt;/p&gt;

&lt;p&gt;Interview is not all about coding, hence the preparation for the same should not be.&lt;/p&gt;

&lt;p&gt;You have to take into consideration all the parts involved, like:&lt;br&gt;
    1. Coding practice&lt;br&gt;
    2. Presentation skill&lt;br&gt;
    3. Rejection coping mechanism&lt;br&gt;
    4. Your expectations&lt;br&gt;
    5. Questions you should ask&lt;/p&gt;
&lt;h2&gt;
  
  
  1. Coding Practice
&lt;/h2&gt;

&lt;p&gt;When it comes to coding, my go-to source is &lt;a href="https://leetcode.com/" rel="noopener noreferrer"&gt;Leetcode&lt;/a&gt;. This is simply one of the most preferred practice sites and it has everything that you need. There are certain topics that are must do to be worthy enough in appearing for interviews. Trees, Graphs and Dynamics Programming. These are the deal breaker in many interview. Mind you, these are the ones that one must know well, after one has gone through basic data structure problems (arrays, linked list, stack &amp;amp; queues).&lt;br&gt;
I have climbed the stairs in this order:&lt;br&gt;
Arrays -&amp;gt; LinkedList -&amp;gt; Stacks -&amp;gt; Queues -&amp;gt; Hash table -&amp;gt; Trees -&amp;gt; simple problems on Backtracking -&amp;gt; Dynamic Programming&lt;br&gt;
In between I also covered some String problems as well.&lt;br&gt;
You can select a topic. Solve 5 problems daily (10/15 if you're planning a rigorous prep duration). And move from easy to medium. It's easy to follow. Trust me. Don't be overwhelmed. You got this.&lt;br&gt;
In only 2 to 3 weeks you'll get a hang of it and know how and where to proceed.&lt;br&gt;
You should also keep track of &lt;strong&gt;top questions&lt;/strong&gt; list. These are found on the right side column.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxkkfixvspcdwcb893sn5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxkkfixvspcdwcb893sn5.png" alt="Top questions list" width="320" height="389"&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
Oh don't forget  &lt;a href="https://leetcode.com/discuss/general-discussion/665604/Important-and-Useful-links-from-all-over-the-LeetCode" rel="noopener noreferrer"&gt;this page&lt;/a&gt; This should be you one stop shop for the coding practice guide.&lt;br&gt;
You'll find links to most preferred articles that'll guide you how to approach certain type of problems.&lt;br&gt;
&lt;br&gt;
Like  &lt;a href="https://leetcode.com/discuss/study-guide/1050391/Must-do-Dynamic-programming-Problems-Category-wise" rel="noopener noreferrer"&gt;this article will build your understanding of Dynamic Programming &lt;/a&gt; problems &amp;amp; how to think about them.&lt;/p&gt;
&lt;h2&gt;
  
  
  2. Presentation
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqbowdnwinr4lng40swne.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqbowdnwinr4lng40swne.gif" alt="presentation_1.gif" width="444" height="250"&gt;&lt;/a&gt;&lt;br&gt;
This involves your body language, behavior, asking questions, think out loud, how to proceed if you are unable to think of a clear solution.&lt;br&gt;
Radiate positive energy. Stay hopeful and cherish the time you are having. Being nervous is natural. But I took this advise from Simon Senek.&lt;br&gt;
&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Signs of being nervous and &lt;strong&gt;excited&lt;/strong&gt; are exactly the same. Your hands may shiver &amp;amp; sweat. You feel that adrenalin rush. You are alert.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Tell yourself that you're excited, and soon enough you'll hack your brain into believing it.&lt;br&gt;
&lt;br&gt;
Then comes the behavioral part. You don't need to be extremely formal. You can keep your conversation lite and fun, while being respectful all the time. After all you are talking to someone who might be your future colleague. And he's human too. Don't sweat it. I always keep conversations lite and push in some funny responses. This will help you too. Trust me.&lt;br&gt;
You will literally hijack the conversation and keep it in your control.&lt;/p&gt;

&lt;p&gt;Whenever you are given a problem to solve, don't dive into depths of your mind to find the solution. Stay in the moment. Ask questions regarding the problem.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What is the size of the input? Is it an integer or can it be a string as well? In which format do we want the output?&lt;br&gt;
&lt;/p&gt;


&lt;/blockquote&gt;

&lt;p&gt;Think of the interviewer as a colleague/friend with whom you are solving this problem. Ask for hints if needed.&lt;br&gt;
&lt;br&gt;
&lt;strong&gt;Think out loud.&lt;/strong&gt; Be vocal while you think of how to proceed. This will help them understand how you approach the problem and how your brain is functioning.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Hmm.. I'm thinking of storing the  pair in a set. That may help us in fast retrieval/finding whether we have seen this before during the traversal.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;How to proceed when unable to think of a solution?&lt;/strong&gt;&lt;br&gt;
There might be times when you have a faint idea but are unable to arrive at exact solution. You can just go ahead and ask for hints. If that doesn't help, communicate that little idea that you're having.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I'm unable to think of a good or exact solution, but I know that this can be solved using memoization.&lt;br&gt;
&lt;/p&gt;


&lt;/blockquote&gt;

&lt;p&gt;Or you may not have any clue of the situation. Convey that even after thinking you were not able to think of a solution, because what all you know does not seem to apply in this particular problem. Don't beat around the bush for too long if you don't know what's asked. The interviewer will know when you'll try to bluff.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Coping from rejection
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fny7z4i81ekewana1hfwc.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fny7z4i81ekewana1hfwc.gif" alt="rejection.gif" width="500" height="237"&gt;&lt;/a&gt;&lt;br&gt;
It's not necessary that every stone you throw, will bounce off the lake. Some are throws are just for trial.&lt;br&gt;
Consider that you tried your best. Note down the points that you were unable to tackle. Work on them the next day. If you face multiple rejections in a day, or back to back rejections in consecutive days, then take a break. Calm yourself down. Be in peace. Meditate. Listen to songs. And most of all, talk to people and your friends. Make fun of the situation if you can. Have a lite laugh.&lt;br&gt;
Remember, it's a small part of you big life, and this too shall pass. Destiny will take it's course and you'll be somewhere that you are supposed to be. This might be the learning phase to get there.&lt;br&gt;
Diamonds are made when coal is exposed to immense heat &amp;amp; pressure.&lt;br&gt;
You got this. Let's enjoy this time while it lasts.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Expectations
&lt;/h2&gt;

&lt;p&gt;While done with the technical part of the interview, remember to reflect on your expectations of the job &amp;amp; the employer's expectations from you. Ask them what kind of skills, performance and attitude they expect from their employees. Ask them how they treat the people who meet those expectations. Explain what you're expecting in turn. This will help you and your employer understand the kind of dynamics you might have and whether or not you'll be suitable for this position. You might feel that you should not go for this... then listen to that gut feeling as well.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Questions you should ask
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx8d8rha080tlbed6olml.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx8d8rha080tlbed6olml.gif" alt="question_2.gif" width="540" height="250"&gt;&lt;/a&gt;&lt;br&gt;
Finally you made it through all the parts of the interview. Congratulations 🎊 😄&lt;br&gt;
Remember to ask a few questions:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What does the average day look like for an employee here?&lt;/p&gt;

&lt;p&gt;How is the workload?&lt;/p&gt;

&lt;p&gt;Do you get time for your family and friends?&lt;/p&gt;

&lt;p&gt;How are troubling situations handled like sudden failure that needs to be addressed right away?&lt;/p&gt;

&lt;p&gt;Suppose in distant future if I feel like changing my domain, say from web development to cyber security. Is there a provision to entertain such domain change? How difficult is it?&lt;/p&gt;

&lt;p&gt;What is the performance expectation from an employee?&lt;/p&gt;

&lt;p&gt;Is it a 6 days work week or 5 days work week?&lt;/p&gt;
&lt;/blockquote&gt;



&lt;h2&gt;
  
  
  BONUS: Resources
&lt;/h2&gt;

&lt;p&gt;Finally I'll mention some links to resources that were helpful for me while preparing for interviews:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://leetcode.com/" rel="noopener noreferrer"&gt;Leetcode&lt;/a&gt; : for coding practice.&lt;/li&gt;
&lt;li&gt;
&lt;a href=""&gt;GeeksForGeeks&lt;/a&gt; : for CS subject concepts, Design Patterns, coding (some must do questions here).&lt;/li&gt;
&lt;li&gt;
&lt;a href=""&gt;Pramp.com&lt;/a&gt; : for free mock interview practice with friends.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.coursera.org/learn/design-patterns" rel="noopener noreferrer"&gt;Design Patterns&lt;/a&gt; lectures on Coursera.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/playlist?list=PLMCXHnjXnTnvo6alSjVkgxV-VH6EPyvoX" rel="noopener noreferrer"&gt;System Design&lt;/a&gt; youtube playlist by Gaurav Sen.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.geeksforgeeks.org/puzzles/" rel="noopener noreferrer"&gt;Puzzles&lt;/a&gt; from GeeksForGeeks as well.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.indiabix.com/aptitude/questions-and-answers/" rel="noopener noreferrer"&gt;Aptitude problems&lt;/a&gt; from Indiabix.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkp1l6nrk94gd2wa568zc.jpeg" alt="inventory.jpg" width="800" height="312"&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>beginners</category>
      <category>devjournal</category>
      <category>interview</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>4 Git Habits &amp; curated list of life-saving articles</title>
      <dc:creator>Prakhar Yadav</dc:creator>
      <pubDate>Sat, 05 Jun 2021 13:14:52 +0000</pubDate>
      <link>https://dev.to/prakh_r/4-git-habits-curated-list-of-life-saving-articles-5gok</link>
      <guid>https://dev.to/prakh_r/4-git-habits-curated-list-of-life-saving-articles-5gok</guid>
      <description>&lt;p&gt;Hi folks.&lt;br&gt;
In this post I want to share some tips and suggestions on common best practices for the method of work, that are not always explicitly stated/taught.&lt;br&gt;
When we transition to a new environment, there's a certain learning curve involved before we get on with our work smoothly.&lt;br&gt;
I struggled with my modus operandi and after tripping on many pitfalls, I think these tips might be of help:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Don't branch when you start working. Branch when need to push.&lt;/strong&gt;&lt;br&gt;
I've had situations where I faced merge conflicts due to early branching. You don't know how long its gonna take for you to fix that defect or complete that story. By the time you are ready to push the changes to remote repository, there might be significant changes in many files. And may be even on the one that you're working on. This is typically the case when many teams are working on a repository. Hence, always create a branch to push your code when you are actually ready to push.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pull every morning.&lt;/strong&gt; Keep the code base up to date&lt;br&gt;
Branching off of the previous comment, keeping the code base up to date is ofcourse very essential, but the frequency is what matters. I had this question when I started in my new role &lt;em&gt;"how often should I pull?"&lt;/em&gt;&lt;br&gt;
The answer is every morning. Don't worry you won't lose your work. And if you're unable to, because of un-committed changes, then stash your things are apply them after you've pulled.&lt;br&gt;
This way, you can lift-off from where you ended yesterday.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Always sign/author your commits&lt;/strong&gt;, if you don't.&lt;br&gt;
Although some organizations have some guidelines regarding this,  but that might not always be the case. Even though the organization has a way to keep track of who's changed what, it's always advisable to author your commits.&lt;br&gt;
I prefer ending the commit message with:&lt;br&gt;
&lt;code&gt;Reviewed by: Reviewer Name &amp;lt;email@addre.ss&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;code&gt;Signed-off-by: Your Name &amp;lt;your@email.id&amp;gt;&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Squash all your commits into one once you're done.&lt;/strong&gt;&lt;br&gt;
This is something you must be aware of already. Squash all your commits before merging. This way all the code changes for a fix/feature are consolidated into one, and the whole thing is much clearly maintained and tracked.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These are the few things I learned the hard way. I hope you adopt these habits soon if you don't already.&lt;br&gt;
Before signing-off, below are some guides and articles in &lt;strong&gt;Bonus&lt;/strong&gt; section, that I find very useful &amp;amp; you might too.&lt;br&gt;
  &lt;strong&gt;&lt;em&gt;And even though cats may rule this world one day, you are reading Code with P.&lt;/em&gt;&lt;/strong&gt; 👋🐈&lt;/p&gt;

&lt;h4&gt;
  
  
  BONUS - Resources
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/eclipse/omr/blob/master/doc/GitCrashCourse.md" rel="noopener noreferrer"&gt;Git Crash Course&lt;/a&gt; by eclipse/omr project at &lt;a href="https://github.com/eclipse/omr" rel="noopener noreferrer"&gt;github.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://yuvaraj.hashnode.dev/learn-the-hidden-feature-in-git-stash" rel="noopener noreferrer"&gt;What is Git Stash, how to use Git Stash?&lt;/a&gt; by @&lt;a href="https://hashnode.com/@yuvgeek" rel="noopener noreferrer"&gt;Yuvaraj&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://muthuannamalai.hashnode.dev/top-10-git-commands-every-developer-should-know" rel="noopener noreferrer"&gt;Top 10 Git Commands Every Developer Should Know&lt;/a&gt; By @&lt;a href="https://hashnode.com/@muthuannamalai12" rel="noopener noreferrer"&gt;Muthu Annamalai Venkatachalam&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://pragativerma18.hashnode.dev/confusing-terms-in-the-git-terminology" rel="noopener noreferrer"&gt;Confusing Terms in the Git Terminology&lt;/a&gt; by @&lt;a href="https://hashnode.com/@PragatiVerma18" rel="noopener noreferrer"&gt;Pragati Verma&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="https://jinggu.hashnode.dev/most-practical-git-commands-in-a-real-workflow" rel="noopener noreferrer"&gt;Most practical git commands in a real workflow&lt;/a&gt;  by @&lt;a href="https://hashnode.com/@JinG" rel="noopener noreferrer"&gt;Jing Gu&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.freecodecamp.org/news/what-is-commit-signing-in-git/" rel="noopener noreferrer"&gt;What is Commit Signing in Git&lt;/a&gt; by &lt;a href="https://twitter.com/SethFalco" rel="noopener noreferrer"&gt;Seth Falco&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>github</category>
      <category>beginners</category>
      <category>devjournal</category>
      <category>productivity</category>
    </item>
    <item>
      <title>10 things I learned in first 6 months as software developer</title>
      <dc:creator>Prakhar Yadav</dc:creator>
      <pubDate>Fri, 04 Jun 2021 19:27:23 +0000</pubDate>
      <link>https://dev.to/prakh_r/10-things-i-learned-in-first-6-months-as-software-developer-41ni</link>
      <guid>https://dev.to/prakh_r/10-things-i-learned-in-first-6-months-as-software-developer-41ni</guid>
      <description>&lt;p&gt;As I ease into my new job as a software developer, I thought I'd share some tips &amp;amp; advise that I wish someone told me before I started. This could have made my journey much smoother. But to anyone out there who needs this, here's what I learned after 6 months in industry.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;h4&gt;
  
  
  Keeping clear of the egoistic Sherlock.
&lt;/h4&gt;

&lt;p&gt;Don't stay stuck on a problem for too long.&lt;br&gt;
Don't be afraid to ask for help. Because someone might have stumbled on a similar issue before.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h4&gt;
  
  
  Google is your best friend.
&lt;/h4&gt;

&lt;p&gt;No matter what level of proficiency, the biggest part of the job is to look for solutions by asking the right questions.&lt;br&gt;
Keep educating yourself about anything that you don't clearly understand. Even if you are slightly foggy, google it.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h4&gt;
  
  
  Community is called so for a reason.
&lt;/h4&gt;

&lt;p&gt;Be active in any community you have exposure to. Be it StackOverflow, FreeCodeCamp, dev community on Twitter, or even any community platform that your company has (given you are in a job or an internship), look for similar issues if you are stuck or post questions on the platform, and see how helpful our dev community is for yourself.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h4&gt;
  
  
  Stay professional &amp;amp; don't take things personally.
&lt;/h4&gt;

&lt;p&gt;Stay professional. Keep delivering. Show diligence. Don't become lazy or take things for granted. You are being paid for things you are doing. You are doing this for yourself. Respect your bread &amp;amp; butter.&lt;br&gt;
Don't be angry or irritated by the workflow. Everyone is following the schedule that is feasible to them and your opinion on what or how they should do things does not matter and maybe is even rude. Believe everyone is doing their best, trust them.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h4&gt;
  
  
  Respect your time.
&lt;/h4&gt;

&lt;p&gt;Do not keep on working day &amp;amp; night. Your profession is there to support your life and the others dependent on you. Take out time for yourself. Don't half-ass it. Work with your heart in it, and then shut the system down to relax and enjoy your life as well. You are more than your job. Remember that.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h4&gt;
  
  
  Take breaks.
&lt;/h4&gt;

&lt;p&gt;It is very easy to get burnt out due to hectic schedules and workloads. You have leaves to treat it. Use it wisely. Replenish yourself. Use weekends to stay away from your system and give time to things that you enjoy. Meditate. Because it's the greatest favor you can do for yourself.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h4&gt;
  
  
  Do not overdo your daily goals.
&lt;/h4&gt;

&lt;p&gt;It is easy to lose track of your activities amid so many meetings, and responsibilities. Set your daily todos. Keep the list small. This will give you a clear picture of the road you need to travel, give you an idea of how much time the tasks will take, how you should organize your day to finish them, and save you a lot of time. Keeping it small will also keep you relaxed. Trust me. I know.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h4&gt;
  
  
  Your head is not a notepad.
&lt;/h4&gt;

&lt;p&gt;Do not keep a note of things in your head. As soon as there is something that needs to be done, note it down. If there a meeting you need to attend, set a reminder for it? You have an event to be present in, keep track of it in the calendar. Flush your buffer as soon as it is filled, so that you can focus your energy on actual work and problem solving that you want to do.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h4&gt;
  
  
  Help others.
&lt;/h4&gt;

&lt;p&gt;Can not stress this enough. Help the ones in need. If you have finished your things earlier, reach out to people and help them in things they are doing. Don't worry they won't give you much. Even a feeling of someone being present to help, gives tremendous relief, morale boost, feeling of joy, and speedy completion of tasks. You'll build a great rapport and a good network of people always ready to help you in your hour of need.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h4&gt;
  
  
  Note all that you do.
&lt;/h4&gt;

&lt;p&gt;This may not apply to everyone, but I have found this very helpful to jot down every change that I make. I typically follow this tabular format:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;Entity (widget or any feature)&lt;/td&gt;
&lt;td&gt;File changed&lt;/td&gt;
&lt;td&gt;The change itself (codes)&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0bepb2mr0tf1kimhmyrb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0bepb2mr0tf1kimhmyrb.png" alt="Screenshot 2021-05-30 032027.png" width="705" height="50"&gt;&lt;/a&gt;&lt;br&gt;
This way I can keep track of the changes that I am doing, quickly navigate them and refer similar things that I have worked on in past. This is a great time saver. It's a lot easier than it may sound. Do it. Don't argue. You'll thank me later.&lt;br&gt;
&lt;em&gt;p.s. I use OneNote to jot down any &amp;amp; everything.&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;BONUS&lt;/h3&gt;



&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Learn to say No.&lt;/em&gt; &lt;br&gt;
If your schedule is cluttered and you are on the verge of plucking your hair out, then you don't have to take everything that's asked of you. You should however be very gentle and polite in rejecting. Do not reject someone's request right away. Ask yourself are you that occupied. Then after due consideration, let them know that you are already working on such &amp;amp; such and suggest to them who can they reach out to instead. They are here because they need help or they are your manager 😂 either way they'll understand and not bother you with the load.&lt;br&gt;
DO NOT misuse this power.&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Believe in yourself&lt;/em&gt; &lt;br&gt;
Don't run from problems to solve. The harder the problem the proficient you get. Believe you can do it. Spend some time researching it. Ask for help. Trust the learning curve. Don't let things scare you.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devjournal</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Why not to use Carousels</title>
      <dc:creator>Prakhar Yadav</dc:creator>
      <pubDate>Fri, 28 May 2021 14:26:32 +0000</pubDate>
      <link>https://dev.to/prakh_r/why-not-to-use-carousels-358j</link>
      <guid>https://dev.to/prakh_r/why-not-to-use-carousels-358j</guid>
      <description>&lt;p&gt;Carousels are those slide shows of content that can be seen across the web. You must have encountered some in the form of areas that can have informational content or promotional content or even ads. Even though they are vastly adopted, they aren't a very elegant thing on your website as they lead to accessibility issues and ultimately a bad user experience.&lt;br&gt;
 Take voiceover users for example; when the slide changes the content of the slide may be announced all of a sudden and the user surely will lose the track of elements they were interacting with (where the cursor is original).&lt;br&gt;
 And what if there's no proper implementation of auto-rotation of the slides.&lt;br&gt;
     Don't even forget about the navigation with tab and arrows. The user navigates the whole page with tab key, and then the slides are navigated with arrow keys all of a sudden?&lt;/p&gt;

&lt;p&gt;These and many other cases surrounding the carousel, in turn, would lead to a chaotic user experience and a confused user.&lt;br&gt;
&lt;br&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0oh1q8gacn4tt7b85spy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0oh1q8gacn4tt7b85spy.png" alt="A good carousel is no carousel. meme." width="578" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A good carousel is no carousel.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;  Though the carousel consolidates the content in a specific region, a thorough discussion with designers, UX-engineers, and developers an alternative to carousels can be found for the teams that originally intend on implementing the carousel.&lt;/p&gt;

&lt;p&gt;And even after all my arguments and various discussions if you just can't resist the temptation then here are some example implementations to consider:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://w3c.github.io/aria-practices/examples/carousel/carousel-1-prev-next.html" rel="noopener noreferrer"&gt;https://w3c.github.io/aria-practices/examples/carousel/carousel-1-prev-next.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://w3c.github.io/aria-practices/examples/carousel/carousel-2-tablist.html" rel="noopener noreferrer"&gt;https://w3c.github.io/aria-practices/examples/carousel/carousel-2-tablist.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Remember to refer to the WCAG guidelines when working on carousels. Here are some other enlightening links that you may find helpful:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://www.mandr-group.com/internet-rethinking-carousel-trend/" rel="noopener noreferrer"&gt;https://www.mandr-group.com/internet-rethinking-carousel-trend/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.w3.org/WAI/tutorials/carousels/" rel="noopener noreferrer"&gt;https://www.w3.org/WAI/tutorials/carousels/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://accessible360.github.io/accessible-slick/" rel="noopener noreferrer"&gt;https://accessible360.github.io/accessible-slick/&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;Even though kittens love attention, carousels are not the best way to do that.&lt;/em&gt;&lt;/strong&gt; 🙋‍♂️ 🥂&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>a11y</category>
      <category>beginners</category>
      <category>discuss</category>
    </item>
  </channel>
</rss>
