<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Habeeb</title>
    <description>The latest articles on Forem by Habeeb (@hb1998).</description>
    <link>https://forem.com/hb1998</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F290720%2F1269c731-547e-47cd-a95b-3eb05fd002b1.png</url>
      <title>Forem: Habeeb</title>
      <link>https://forem.com/hb1998</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/hb1998"/>
    <language>en</language>
    <item>
      <title>Merging Long running branches</title>
      <dc:creator>Habeeb</dc:creator>
      <pubDate>Tue, 14 May 2024 06:10:47 +0000</pubDate>
      <link>https://forem.com/hb1998/merging-long-running-branches-4751</link>
      <guid>https://forem.com/hb1998/merging-long-running-branches-4751</guid>
      <description>&lt;p&gt;Managing long-running branches is always a daunting task, especially when your team is large and ships features frequently, In this article, we will see how we at &lt;a href="https://lumel.com/"&gt;Lumel&lt;/a&gt; approach merging long-running branches.&lt;/p&gt;

&lt;p&gt;So a little bit of context here, we have a very unique problem where we have to maintain two branches for our product called &lt;a href="https://inforiver.com/"&gt;InfoRiver Matrix&lt;/a&gt;, btw if you're into reporting, analytics, FP &amp;amp; A in the PowerBI space you must definitely check it out. &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Problem&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;we have two versions. Enterprise and Premium, all the features which are available in Premium are also available in Enterprise. there can be cases where there are enhancements to a single feature in both enterprise and premium at the same time which can cause conflicts. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F46av9ksaghgcsxogbhyf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F46av9ksaghgcsxogbhyf.png" alt="Image description" width="800" height="178"&gt;&lt;/a&gt;&lt;br&gt;
As you can see when we need to release &lt;code&gt;v2.4&lt;/code&gt; we have to merge with &lt;code&gt;main&lt;/code&gt; which has &lt;code&gt;v2.3Premium&lt;/code&gt;'s changes.&lt;/p&gt;

&lt;p&gt;recently when we went without a release for more than 3 months, we had more than 100 conflicts, here comes the problem, when we have less than 20 conflicts are so, it is fairly easy for a single person to collaborate with the owners of conflicts and resolve them, but with around 100 conflicts and remote work on top of that, it wasn't a viable option for us, so we had to improvise. &lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;Solution&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;we wrote a script which finds all the conflicts and who are the people responsible for them, we also assigned an &lt;code&gt;owner&lt;/code&gt; for each file and they will have to collaborate with the other &lt;code&gt;collaborators&lt;/code&gt; of that file. &lt;/p&gt;

&lt;p&gt;the script outputs a CSV which we later imported to notion and tracked the status. &lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;when someone resolves their conflict they add a temporary commit and push it to remote, and when everyone is done. we do a soft reset to the initial merge commit and create a single merge commit with all the conflict resolutions so we don't pollute the commit history. &lt;/p&gt;

&lt;p&gt;this is how we tackled our merge conflict hell problem, do let us know in the comments if there are better solutions and your thoughts on this approach&lt;/p&gt;

</description>
      <category>git</category>
      <category>github</category>
      <category>development</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How to become a 10X developer 😝</title>
      <dc:creator>Habeeb</dc:creator>
      <pubDate>Mon, 14 Nov 2022 05:20:32 +0000</pubDate>
      <link>https://forem.com/hb1998/how-to-become-a-10x-developer-23og</link>
      <guid>https://forem.com/hb1998/how-to-become-a-10x-developer-23og</guid>
      <description>&lt;p&gt;Okay! the title is not fully a click bait, Hear me out. &lt;/p&gt;

&lt;p&gt;I'll be discussing about what tools and techniques i use to improve my efficiency as a developer, which may not have made me a 10X engineer but surely did improve my productivity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keyboard Mastery
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgsen5jgdaf4fv81e575h.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgsen5jgdaf4fv81e575h.gif" alt="Image description" width="460" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by far the most effective technique you can do to improve your speed is reducing your reliance on the mouse when coding. No matter how fast you are with the mouse, the constant switch between mouse and keyboard not only slows you down but also makes you more fatigued. I also learned touch typing very recently and however not much it did help me with my keyboard mastery. I would say knowing what to type is more important than how fast you type. &lt;/p&gt;

&lt;p&gt;check out &lt;a href="https://medium.com/ae-studio/save-a-month-of-your-life-by-using-these-keyboard-shortcuts-a07fdba5dc6e"&gt;this&lt;/a&gt; article where it claims we can save a month of our lifetime by using keyboard shortcuts instead of mouse.  &lt;/p&gt;

&lt;p&gt;Lets see some techniques/tools i use to reduce my reliance on the mouse&lt;/p&gt;

&lt;p&gt;I'm a terminal guy, I live in the terminal, if there is a way achieve something with terminal i wont use the GUI.&lt;/p&gt;

&lt;p&gt;Here are somethings i use terminal for where people generally use GUIs&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Files CRUD, navigating through files&lt;br&gt;
&lt;a href="https://dev.to/coderamrin/10-terminal-commands-every-developer-should-know-5ge4"&gt;Here&lt;/a&gt; is a nice article on basic terminal commands&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;raising PRs &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;I use &lt;a href="https://github.com/cli/cli"&gt;gh&lt;/a&gt;, Its a CLI application from github, which you can use to raise pr, query issues and a lot more. &lt;/p&gt;

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

&lt;p&gt;I never use github desktop app or vscode to do things with git, I do everything in the terminal, trust me once you get used to it, you never go back to the slow GUI process. However for things like blame, checking diffs I use vscode with &lt;a href="https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens"&gt;gitlens&lt;/a&gt;&lt;/p&gt;

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

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

&lt;p&gt;By far the most time you can save when you are coding is by knowing vscode keyboard shortcuts, you can glide through your code with very little vscode shortcuts. &lt;a href="https://dev.to/simonpaix/10-useful-vs-code-shortcuts-you-should-know-42m"&gt;This&lt;/a&gt; seems to be a very good list to start. &lt;br&gt;
once you get used to it unbelievable how fast you can code. &lt;/p&gt;
&lt;h2&gt;
  
  
  Automating the boring and mundane stuffs - Tools
&lt;/h2&gt;

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

&lt;p&gt;If you are doing something over and over, you should probably try to see how you can automate it. As developers we spend so much time with git and github, so it makes total sense to automate it. previously I used to use scripts to raise prs and manage git but I've found this amazing tool fig, which really upped my automation game. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://fig.io/"&gt;fig&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;this is a new addition to my productivity tool list, Although i haven't used it extensively yet, its really cool. I have used this automate git commits, pr process(along with gh), etc. I think this can be used as an alternate for simple shell scripts and its much more intuitive and easy to setup. &lt;/p&gt;

&lt;p&gt;this is my git workflow.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;gc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;asks for commit details, constructs a nice commit-lint compliant commit. &lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5di2a8c29490f23p55h5.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5di2a8c29490f23p55h5.gif" alt="Image description" width="1744" height="556"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pullr
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;PR title is prefilled with commit message.&lt;br&gt;
choose the branch you want to raise the pr for. boom, pr raised in 5 secs.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.alfredapp.com/"&gt;Alfred&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Alfred is a drop in replacement for spotlight in mac. you can use custom plugins and create your own plugins, although using plugins requires you to buy the pro version which costs around $35, its worth it if you are a power user. I could write a whole blog about how i use alfred. Let me know if you want one :) &lt;br&gt;
Here are some of my most workflows&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/steyep/alfred-jira"&gt;Jira&lt;/a&gt; - browse jira, move status and a lot more&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Google Search - full blown google search with suggestions&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/gharlan/alfred-github-workflow"&gt;Github&lt;/a&gt;  navigate to any repo, prs, gists etc;&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;there are a lot more stuffs I've want to talk about but I don't want the post to be too long, Let me know if i should continue this as a series and deep dive into more smaller details. &lt;/p&gt;

</description>
      <category>productivity</category>
      <category>programming</category>
      <category>coding</category>
    </item>
    <item>
      <title>How I went from 11wpm to 109wpm in 15 hours</title>
      <dc:creator>Habeeb</dc:creator>
      <pubDate>Tue, 18 Jan 2022 02:11:13 +0000</pubDate>
      <link>https://forem.com/hb1998/how-i-went-from-11wpm-to-109wpm-in-15-hours-4lj5</link>
      <guid>https://forem.com/hb1998/how-i-went-from-11wpm-to-109wpm-in-15-hours-4lj5</guid>
      <description>&lt;p&gt;Long story short, I spent around 15 hours in practicing touch typing and was able to achieve 109wpm (measured for 15secs).&lt;/p&gt;

&lt;p&gt;So a bit of context here, I'm a web developer, I work on both frontend and backend, but more concentrated on frontend.&lt;br&gt;
I was always fascinated by the super fast typing of these developers in youtube videos and dev conferences, I'm not sure how productive it made them but it definitely made them look "cool 😎". &lt;/p&gt;

&lt;p&gt;I was not a slow typer by any means. I was typing at &lt;strong&gt;70wpm&lt;/strong&gt; and it was fast enough for what I do but I wasn't able to improve any further with my 6 finger technique, so I was wondering, should I give touch typing a try, A proper technique using 10 fingers. I knew I had to unlearn all my typing skills to learn this, but with the just got inspiration from &lt;a href="https://g.co/kgs/p8VuFV"&gt;Power of habit&lt;/a&gt; and the genuine interest of being more productive 😅 I bit the bullet and started practicing touch typing.&lt;/p&gt;

&lt;p&gt;Oh boy.😐 Typing at 11 wpm from 70 wpm made me feel like a cave man, but I pushed through. I was able to do the first 3 hours progress in just 2 days and it was going good i progressed to around 25wpm.&lt;/p&gt;

&lt;p&gt;I was not able to spend much time after that since i had a day job. &lt;br&gt;
I used &lt;a href="https://www.typingclub.com/sportal/"&gt;this&lt;/a&gt; site, you can use whatever you are comfortable with but I strongly recommend this one.&lt;/p&gt;

&lt;p&gt;Days went by and i was practicing for at least 30 mins a day and i was able to clock 30-35wpm in a few days and i wanted to try using touch typing in day job, to my surprise i was not even able to type at 10wpm 😱, at this point i didn't learn special characters but even for statements with only alphabets i was struggling, then i realised that i was able to only type at 35 wpm for words i can see and my brain doesn't have to process anything extra to type. &lt;/p&gt;

&lt;p&gt;so i started practicing in the hopes of making typing a muscle memory, it was on and off but i didn't stop practicing.&lt;/p&gt;

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

&lt;p&gt;After 2 months of practice, I was at 55+ wpm and started using touch typing everywhere i type including at my work it was frustrating at first but i persisted and eventually was able to get back to my normal speed and i must say this time i was far more accurate specially with special characters 😜 compared to my 6 finger technique, and wasn't prone to keyboard size changes.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="//monkeytype.com"&gt;monkeytype.com&lt;/a&gt; is another website where you can practice typing and its more of leisurely typing than learning, i used it to improve and benchmark my speed and i was happy that i was able to cross the 100wpm barrier but its only 15 secs. &lt;/p&gt;

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

&lt;p&gt;Was spending this much time unlearning a known skill and learning a new skill worth it ?, I would say yes!. It gave me the confidence that things seems unachievable at first but eventually they will fall into place, you just have to be persistent enough. &lt;/p&gt;

&lt;p&gt;Does it improve your productivity ? Yes, but mostly no. coding is more of thinking and reading than typing. I'm a terminal guy, so it definitely made me faster in terminal. &lt;br&gt;
Did it make me look cool ? Hell yes! 😁&lt;/p&gt;

&lt;p&gt;If you already didn't realise, Im a newbie at writing articles as well and planning to do this more. Follow me for productivity tips.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>webdev</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
