<?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.us-east-2.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>I Gave 4 AI Models the Same Agent Skill. Here's What Happened</title>
      <dc:creator>Prakhar Yadav</dc:creator>
      <pubDate>Fri, 02 Oct 2026 08:14:06 +0000</pubDate>
      <link>https://dev.to/prakh_r/i-gave-4-ai-models-the-same-agent-skill-heres-what-happened-36he</link>
      <guid>https://dev.to/prakh_r/i-gave-4-ai-models-the-same-agent-skill-heres-what-happened-36he</guid>
      <description>&lt;p&gt;I've been experimenting with video generation workflows lately, specifically with how different AI models behave when they're given the &lt;strong&gt;same tools, environment, and instructions&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;So I decided to run a small experiment.&lt;/p&gt;

&lt;p&gt;I created a reusable &lt;strong&gt;video-generation skill&lt;/strong&gt; — a set of detailed instructions describing how the task should be approached — and gave the same skill to four different models through &lt;a href="https://opencode.ai/" rel="noopener noreferrer"&gt;OpenCode&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The results were interesting.&lt;/p&gt;

&lt;p&gt;The models produced broadly comparable outputs, but their approaches to the task were noticeably different.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Setup
&lt;/h2&gt;

&lt;p&gt;The video-generation skill was created with the help of &lt;strong&gt;Opus 5.5&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It contained the workflow, instructions, verification steps, and expectations for generating the video.&lt;/p&gt;

&lt;p&gt;I then gave the same skill to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GLM 5.3 Flash&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DeepSeek v4.1 Flash&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MiMo v2.6 Flash&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;LongCat 2.5 Preview&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each model had access to the same general environment and tools.&lt;/p&gt;

&lt;p&gt;The goal wasn't to create a formal benchmark or determine which model is "best."&lt;/p&gt;

&lt;p&gt;I wanted to see something simpler:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;How differently do models behave when they're given the same well-defined workflow?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  The Results
&lt;/h2&gt;

&lt;p&gt;Here are the execution times and token usage from each run:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Time&lt;/th&gt;
&lt;th&gt;Tokens&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;GLM 5.3 Flash&lt;/td&gt;
&lt;td&gt;28 min&lt;/td&gt;
&lt;td&gt;200.1K&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DeepSeek v4.1 Flash&lt;/td&gt;
&lt;td&gt;29 min&lt;/td&gt;
&lt;td&gt;265.6K&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MiMo v2.6 Flash&lt;/td&gt;
&lt;td&gt;47 min&lt;/td&gt;
&lt;td&gt;266.3K&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LongCat 2.5 Preview&lt;/td&gt;
&lt;td&gt;1 hr 5 min&lt;/td&gt;
&lt;td&gt;276.8K&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A few things immediately stood out.&lt;/p&gt;

&lt;p&gt;GLM completed the task in &lt;strong&gt;28 minutes&lt;/strong&gt;, while DeepSeek was just a minute behind at &lt;strong&gt;29 minutes&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;GLM also used considerably fewer tokens — about &lt;strong&gt;200K&lt;/strong&gt;, compared with roughly &lt;strong&gt;266–277K&lt;/strong&gt; for the other three.&lt;/p&gt;

&lt;p&gt;MiMo took &lt;strong&gt;47 minutes&lt;/strong&gt;, despite using almost the same number of tokens as DeepSeek.&lt;/p&gt;

&lt;p&gt;LongCat was the slowest at &lt;strong&gt;1 hour 5 minutes&lt;/strong&gt;, and also used the most tokens.&lt;/p&gt;

&lt;p&gt;That made sense once I looked at how each model approached the task.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. GLM 5.3 Flash — Fast and Focused 🏎️
&lt;/h2&gt;

&lt;p&gt;GLM understood the assignment and got straight to work with what it had been given.&lt;/p&gt;

&lt;p&gt;Its instruction following was particularly strong.&lt;/p&gt;

&lt;p&gt;There was very little deviation from the predefined workflow, and it didn't spend much time exploring unnecessary paths.&lt;/p&gt;

&lt;p&gt;It simply followed the instructions and executed.&lt;/p&gt;

&lt;p&gt;The result was a relatively efficient run:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;28 minutes · 200.1K tokens&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If I had to describe its behavior in one word, it would be:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Focused.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It didn't try to reinvent the workflow.&lt;/p&gt;

&lt;p&gt;It just executed it.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. DeepSeek v4.1 Flash — The Most Exploratory 🎨
&lt;/h2&gt;

&lt;p&gt;DeepSeek understood the assignment well, but its approach was quite different.&lt;/p&gt;

&lt;p&gt;Instead of immediately executing the provided workflow, it spent more time understanding the environment.&lt;/p&gt;

&lt;p&gt;It went digging.&lt;/p&gt;

&lt;p&gt;It launched &lt;strong&gt;Playwright MCP&lt;/strong&gt; and other tools to inspect how things actually looked in the environment rather than relying only on the information already provided.&lt;/p&gt;

&lt;p&gt;That extra exploration made it the most interesting model from a creativity perspective.&lt;/p&gt;

&lt;p&gt;It wasn't necessarily looking for the shortest path.&lt;/p&gt;

&lt;p&gt;It was trying to build a better understanding of the context before producing the result.&lt;/p&gt;

&lt;p&gt;The run took:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;29 minutes · 265.6K tokens&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So despite using roughly &lt;strong&gt;65K more tokens than GLM&lt;/strong&gt;, it completed the task almost exactly as quickly.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. MiMo v2.6 Flash — The Thinker 🧘‍♂️
&lt;/h2&gt;

&lt;p&gt;MiMo spent considerably more time understanding the task and the environment before getting started.&lt;/p&gt;

&lt;p&gt;It was more deliberate.&lt;/p&gt;

&lt;p&gt;It explored the context, worked through the instructions, and then executed the workflow.&lt;/p&gt;

&lt;p&gt;The interesting part was that the final output was still broadly comparable to the others.&lt;/p&gt;

&lt;p&gt;The run took:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;47 minutes · 266.3K tokens&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And this highlighted something important for me:&lt;/p&gt;

&lt;p&gt;The quality wasn't necessarily coming from the model figuring everything out from scratch.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;skill itself was doing a lot of the heavy lifting.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Because the instructions were already clear and structured, MiMo had a roadmap to follow.&lt;/p&gt;

&lt;p&gt;It could spend more effort understanding the context without having to invent the entire workflow.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. LongCat 2.5 Preview — The Most Iterative 😼
&lt;/h2&gt;

&lt;p&gt;LongCat took the longest of the four.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1 hour 5 minutes · 276.8K tokens&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Like MiMo, it spent considerable time understanding the context and environment.&lt;/p&gt;

&lt;p&gt;But there was one thing that stood out.&lt;/p&gt;

&lt;p&gt;It performed &lt;strong&gt;two verification rounds&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;After generating the initial result, it checked its work, identified areas that could be improved, and then performed another iteration.&lt;/p&gt;

&lt;p&gt;That made its workflow particularly interesting:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Understand → Generate → Verify → Improve → Verify&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The final quality was broadly on par with the other models, but its process was more iterative.&lt;/p&gt;

&lt;p&gt;It wasn't just generating the result and stopping.&lt;/p&gt;

&lt;p&gt;It was actively trying to improve it.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Interesting Part: They All Verified Their Work
&lt;/h2&gt;

&lt;p&gt;One of the most interesting observations from this experiment was that &lt;strong&gt;every model performed at least one verification round at the end.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;These weren't simply:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prompt → Generate → Done&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;workflows.&lt;/p&gt;

&lt;p&gt;The models actually checked their output.&lt;/p&gt;

&lt;p&gt;LongCat went one step further and performed another iteration specifically to improve the result.&lt;/p&gt;

&lt;p&gt;So despite the differences in their approaches, they all converged on a similar pattern:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Understand → Execute → Verify&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Some models explored more.&lt;/p&gt;

&lt;p&gt;Some were faster.&lt;/p&gt;

&lt;p&gt;Some spent more tokens.&lt;/p&gt;

&lt;p&gt;Some iterated more.&lt;/p&gt;

&lt;p&gt;But verification was present across all four runs.&lt;/p&gt;




&lt;h2&gt;
  
  
  Was This Really "One-Shot"?
&lt;/h2&gt;

&lt;p&gt;Technically, each video was generated in a single run.&lt;/p&gt;

&lt;p&gt;But there's an important caveat.&lt;/p&gt;

&lt;p&gt;The models weren't starting from a blank page.&lt;/p&gt;

&lt;p&gt;They were given a &lt;strong&gt;pre-built skill containing clear instructions and a defined workflow&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;So calling this a pure "one-shot" experiment would be misleading.&lt;/p&gt;

&lt;p&gt;The actual process was closer to:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;One prompt + a predefined workflow + autonomous execution&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And that's arguably more interesting.&lt;/p&gt;

&lt;p&gt;The experiment wasn't really testing:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Which model can figure out video generation from nothing?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It was testing:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;How differently do models behave when they're given the same structured workflow?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  The Skill May Have Mattered More Than the Model
&lt;/h2&gt;

&lt;p&gt;This was probably my biggest takeaway.&lt;/p&gt;

&lt;p&gt;The final outputs were surprisingly close in quality despite the models taking very different approaches.&lt;/p&gt;

&lt;p&gt;The predefined skill gave every model a strong starting point.&lt;/p&gt;

&lt;p&gt;Instead of having to figure out:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which tools to use&lt;/li&gt;
&lt;li&gt;What steps to follow&lt;/li&gt;
&lt;li&gt;How to inspect the environment&lt;/li&gt;
&lt;li&gt;How to validate the output&lt;/li&gt;
&lt;li&gt;What constitutes a good result&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;the models already had a roadmap.&lt;/p&gt;

&lt;p&gt;That changes the role of the model.&lt;/p&gt;

&lt;p&gt;Instead of asking the model to invent the entire workflow, you're asking it to &lt;strong&gt;execute and adapt a workflow&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;And that seems to reduce the differences between models for this particular task.&lt;/p&gt;




&lt;h2&gt;
  
  
  Model Behavior at a Glance
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Time&lt;/th&gt;
&lt;th&gt;Tokens&lt;/th&gt;
&lt;th&gt;What stood out&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;GLM 5.3 Flash&lt;/strong&gt; 🏎️&lt;/td&gt;
&lt;td&gt;28 min&lt;/td&gt;
&lt;td&gt;200.1K&lt;/td&gt;
&lt;td&gt;Fast execution, strong instruction following&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;DeepSeek v4.1 Flash&lt;/strong&gt; 🎨&lt;/td&gt;
&lt;td&gt;29 min&lt;/td&gt;
&lt;td&gt;265.6K&lt;/td&gt;
&lt;td&gt;Environment exploration and creativity&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;MiMo v2.6 Flash&lt;/strong&gt; 🧘‍♂️&lt;/td&gt;
&lt;td&gt;47 min&lt;/td&gt;
&lt;td&gt;266.3K&lt;/td&gt;
&lt;td&gt;Deliberate reasoning and context gathering&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;LongCat 2.5 Preview&lt;/strong&gt; 😼&lt;/td&gt;
&lt;td&gt;65 min&lt;/td&gt;
&lt;td&gt;276.8K&lt;/td&gt;
&lt;td&gt;Verification and additional iteration&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;These numbers come from a &lt;strong&gt;single task/run per model&lt;/strong&gt;, so I wouldn't treat them as a general benchmark of model speed, efficiency, or capability.&lt;/p&gt;

&lt;p&gt;They're simply measurements of how these models behaved in this particular workflow.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I Took Away From This
&lt;/h2&gt;

&lt;p&gt;We've spent a lot of time comparing models based on raw capabilities.&lt;/p&gt;

&lt;p&gt;Which model is smarter?&lt;/p&gt;

&lt;p&gt;Which model follows instructions better?&lt;/p&gt;

&lt;p&gt;Which model writes better code?&lt;/p&gt;

&lt;p&gt;But agentic workflows introduce another variable:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How good is the workflow you're giving the model?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A good skill can provide:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Context&lt;/li&gt;
&lt;li&gt;Tool usage instructions&lt;/li&gt;
&lt;li&gt;A repeatable workflow&lt;/li&gt;
&lt;li&gt;Validation steps&lt;/li&gt;
&lt;li&gt;Quality criteria&lt;/li&gt;
&lt;li&gt;Recovery strategies&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And suddenly the model doesn't need to figure everything out itself.&lt;/p&gt;

&lt;p&gt;It needs to &lt;strong&gt;execute the process well&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That makes the combination of:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Model + Skill + Tools + Verification&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;potentially much more important than looking at the model alone.&lt;/p&gt;




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

&lt;p&gt;This was a small experiment, not a benchmark.&lt;/p&gt;

&lt;p&gt;Four models.&lt;/p&gt;

&lt;p&gt;One task.&lt;/p&gt;

&lt;p&gt;One predefined skill.&lt;/p&gt;

&lt;p&gt;But the differences in how they approached the same problem were fascinating.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GLM&lt;/strong&gt; was fast and focused.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DeepSeek&lt;/strong&gt; explored and experimented.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MiMo&lt;/strong&gt; was deliberate.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LongCat&lt;/strong&gt; iterated.&lt;/p&gt;

&lt;p&gt;And despite those differences, they all managed to produce broadly comparable results.&lt;/p&gt;

&lt;p&gt;For me, that's the interesting part.&lt;/p&gt;

&lt;p&gt;Maybe the future of agentic AI isn't just about finding a smarter model.&lt;/p&gt;

&lt;p&gt;Maybe it's also about getting better at telling the model &lt;strong&gt;how to work&lt;/strong&gt;.&lt;/p&gt;




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

&lt;p&gt;🏎️ &lt;strong&gt;GLM 5.3 Flash&lt;/strong&gt; — 28 min / 200.1K tokens&lt;br&gt;
🎨 &lt;strong&gt;DeepSeek v4.1 Flash&lt;/strong&gt; — 29 min / 265.6K tokens&lt;br&gt;
🧘‍♂️ &lt;strong&gt;MiMo v2.6 Flash&lt;/strong&gt; — 47 min / 266.3K tokens&lt;br&gt;
😼 &lt;strong&gt;LongCat 2.5 Preview&lt;/strong&gt; — 65 min / 276.8K tokens&lt;/p&gt;

&lt;p&gt;All four performed at least one verification round.&lt;/p&gt;

&lt;p&gt;The bigger takeaway wasn't which model was "best."&lt;/p&gt;

&lt;p&gt;It was how much a &lt;strong&gt;well-designed skill can shape the behavior of very different models&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>machinelearning</category>
      <category>llm</category>
    </item>
    <item>
      <title>LongCat 2.5 Preview vs Space Bunny Alpha: My Experience Building Real Projects</title>
      <dc:creator>Prakhar Yadav</dc:creator>
      <pubDate>Mon, 28 Sep 2026 10:12:26 +0000</pubDate>
      <link>https://dev.to/prakh_r/longcat-25-preview-vs-space-bunny-alpha-my-experience-building-real-projects-5an1</link>
      <guid>https://dev.to/prakh_r/longcat-25-preview-vs-space-bunny-alpha-my-experience-building-real-projects-5an1</guid>
      <description>&lt;p&gt;Over the past few days, I've been comparing LongCat 2.5 Preview and Space Bunny Alpha across actual software projects rather than isolated benchmark prompts.&lt;/p&gt;

&lt;p&gt;The projects included:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A minimal website with navigation&lt;/li&gt;
&lt;li&gt;An enterprise ServiceNow demo instance connected to an internal MCP server used by thousands of engineers and non-engineers&lt;/li&gt;
&lt;li&gt;A Chrome extension with complex wiring involving its own backend and UI while also integrating with existing UI components&lt;/li&gt;
&lt;li&gt;Homebrew installer development&lt;/li&gt;
&lt;li&gt;General automation and scripting tasks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After using both extensively, I found LongCat 2.5 Preview consistently outperforming Space Bunny Alpha in areas that matter during day-to-day development.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Context Understanding
&lt;/h2&gt;

&lt;p&gt;The biggest difference was context retention and understanding.&lt;/p&gt;

&lt;p&gt;LongCat generally understood project goals, architecture, and previous discussions much faster. It required less repetition and fewer corrective prompts.&lt;/p&gt;

&lt;p&gt;Space Bunny often needed additional iterations before it reached the same understanding, which translated into higher token usage and slower progress.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Tool Usage and Orchestration
&lt;/h2&gt;

&lt;p&gt;Modern development workflows increasingly rely on tools.&lt;/p&gt;

&lt;p&gt;In my experience, LongCat was significantly better at tool calling and coordinating workflows involving multiple tools.&lt;/p&gt;

&lt;p&gt;Space Bunny struggled more frequently when several tools were available, occasionally choosing the wrong path or becoming confused about which tool should be used next.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Next-Step Recommendations
&lt;/h2&gt;

&lt;p&gt;A surprisingly important capability is recommending what should happen next.&lt;/p&gt;

&lt;p&gt;LongCat regularly suggested logical follow-up actions, implementation steps, validation strategies, and improvements without requiring additional prompting.&lt;/p&gt;

&lt;p&gt;Space Bunny's suggestions were often generic and required more guidance from me.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Architecture Feedback
&lt;/h2&gt;

&lt;p&gt;When discussing system design and architecture, LongCat provided stronger and more actionable recommendations.&lt;/p&gt;

&lt;p&gt;It identified improvement opportunities, implementation concerns, and alternative approaches more consistently.&lt;/p&gt;

&lt;p&gt;Space Bunny was capable of providing architectural feedback, but the recommendations generally felt less comprehensive.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Design Understanding
&lt;/h2&gt;

&lt;p&gt;LongCat also demonstrated a stronger understanding of design intent.&lt;/p&gt;

&lt;p&gt;Whether discussing UI flows, product behavior, or implementation trade-offs, it often required fewer prompts to arrive at the desired outcome.&lt;/p&gt;

&lt;p&gt;With Space Bunny, I found myself spending more time clarifying requirements and refining prompts.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Understanding Intent
&lt;/h2&gt;

&lt;p&gt;One of the less obvious but highly valuable differences was intent recognition.&lt;/p&gt;

&lt;p&gt;LongCat frequently inferred the objective behind my request even when instructions were incomplete.&lt;/p&gt;

&lt;p&gt;Space Bunny performed adequately, but it required more explicit direction before reaching the same understanding.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Handling Roadblocks
&lt;/h2&gt;

&lt;p&gt;Development rarely goes exactly as planned.&lt;/p&gt;

&lt;p&gt;When encountering blockers, LongCat was better at proposing workarounds, alternative implementations, and recovery paths.&lt;/p&gt;

&lt;p&gt;Space Bunny was more likely to get stuck, make abrupt decisions, or defer the next step back to the user.&lt;/p&gt;

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

&lt;p&gt;Here's the simplest way I'd describe the experience:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Area&lt;/th&gt;
&lt;th&gt;LongCat 2.5 Preview&lt;/th&gt;
&lt;th&gt;Space Bunny Alpha&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Context Understanding&lt;/td&gt;
&lt;td&gt;Excellent&lt;/td&gt;
&lt;td&gt;Slower to converge&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tool Calling&lt;/td&gt;
&lt;td&gt;Strong&lt;/td&gt;
&lt;td&gt;Can struggle with multiple tools&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Next-Step Suggestions&lt;/td&gt;
&lt;td&gt;Highly actionable&lt;/td&gt;
&lt;td&gt;Often generic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Architecture Guidance&lt;/td&gt;
&lt;td&gt;Strong&lt;/td&gt;
&lt;td&gt;Moderate&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Design Understanding&lt;/td&gt;
&lt;td&gt;Strong&lt;/td&gt;
&lt;td&gt;Requires more prompting&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Intent Recognition&lt;/td&gt;
&lt;td&gt;Strong&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Handling Blockers&lt;/td&gt;
&lt;td&gt;Finds workarounds&lt;/td&gt;
&lt;td&gt;More likely to get stuck&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

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

&lt;p&gt;For my specific workflows, LongCat 2.5 Preview felt noticeably more intelligent than Space Bunny Alpha, even when Space Bunny was configured with High Thinking mode enabled.&lt;/p&gt;

&lt;p&gt;This isn't a benchmark-driven conclusion. It's based on practical use across real projects involving web development, enterprise systems, browser extensions, automation, and tooling.&lt;/p&gt;

&lt;p&gt;Your mileage may vary depending on your workflow, but for development-heavy tasks, LongCat was the clear winner in my testing.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>programming</category>
      <category>discuss</category>
    </item>
    <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.&amp;nbsp;&amp;nbsp;&amp;nbsp;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.&amp;nbsp;&amp;nbsp;&amp;nbsp;(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.&amp;nbsp;&amp;nbsp;&amp;nbsp;You can educate your boss in terms of technical projects &amp;amp; how/why planning beforehand will be better.&lt;br&gt;
iv.&amp;nbsp;&amp;nbsp;&amp;nbsp;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;
&amp;nbsp;&amp;nbsp;&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>
  </channel>
</rss>
