<?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: Humayun Kabir</title>
    <description>The latest articles on DEV Community by Humayun Kabir (@humayunkabir).</description>
    <link>https://dev.to/humayunkabir</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%2F379163%2Ff03449c2-8381-477f-9a8b-b91c2b0f31e0.jpeg</url>
      <title>DEV Community: Humayun Kabir</title>
      <link>https://dev.to/humayunkabir</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/humayunkabir"/>
    <language>en</language>
    <item>
      <title>A Practical Blogging Strategy for Software Engineers Who Want to Be Seen</title>
      <dc:creator>Humayun Kabir</dc:creator>
      <pubDate>Thu, 30 Oct 2025 15:58:11 +0000</pubDate>
      <link>https://dev.to/humayunkabir/a-practical-blogging-strategy-for-software-engineers-who-want-to-be-seen-1pim</link>
      <guid>https://dev.to/humayunkabir/a-practical-blogging-strategy-for-software-engineers-who-want-to-be-seen-1pim</guid>
      <description>&lt;p&gt;Most engineers want more visibility.&lt;br&gt;
They want better opportunities, stronger networks, interesting people to collaborate with, and an audience to share ideas with.&lt;/p&gt;

&lt;p&gt;But almost nobody publishes.&lt;br&gt;
Not because they can’t write — but because they underestimate the value of sharing their experiences.&lt;/p&gt;

&lt;p&gt;Here’s a practical approach to becoming visible in the engineering community without becoming a “content creator” caricature.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Write About Real Problems You’ve Faced
&lt;/h2&gt;

&lt;p&gt;Tutorials are everywhere. Your unique experience isn’t.&lt;/p&gt;

&lt;p&gt;Write about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;decisions that didn’t age well&lt;/li&gt;
&lt;li&gt;production incidents&lt;/li&gt;
&lt;li&gt;process failures&lt;/li&gt;
&lt;li&gt;gaps in documentation&lt;/li&gt;
&lt;li&gt;weird edge cases&lt;/li&gt;
&lt;li&gt;cultural or communication friction&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When you talk about how and why things broke in the real world, people listen.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Keep a Friction Log
&lt;/h2&gt;

&lt;p&gt;Throughout the week, capture tiny frustrations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;confusing toolchains&lt;/li&gt;
&lt;li&gt;vague error messages&lt;/li&gt;
&lt;li&gt;flaky pipelines&lt;/li&gt;
&lt;li&gt;messy abstractions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each entry is a potential post.&lt;br&gt;
You’re not inventing ideas — you’re documenting where reality rubbed against expectation.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Add Context
&lt;/h2&gt;

&lt;p&gt;The best engineering content explains the environment.&lt;/p&gt;

&lt;p&gt;Tell readers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the constraints&lt;/li&gt;
&lt;li&gt;the deadlines&lt;/li&gt;
&lt;li&gt;the team size&lt;/li&gt;
&lt;li&gt;the trade-offs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Context turns ordinary lessons into useful ones.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. Publish in One Place, Distribute in Several
&lt;/h2&gt;

&lt;p&gt;Your long-form post lives on Substack.&lt;br&gt;
That’s where you build a home.&lt;/p&gt;

&lt;p&gt;Then you extract:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a short LinkedIn post with the core insight&lt;/li&gt;
&lt;li&gt;a dev.to version with a code snippet or technical variation&lt;/li&gt;
&lt;li&gt;a small thread on X breaking down the conclusion&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One idea becomes multiple touch points.&lt;br&gt;
Repetition builds recognition.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Develop Themes
&lt;/h2&gt;

&lt;p&gt;Engineers should know what you “stand for.”&lt;br&gt;
Pick four or five recurring themes such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;architecture trade-offs&lt;/li&gt;
&lt;li&gt;developer productivity&lt;/li&gt;
&lt;li&gt;building and shipping SaaS products&lt;/li&gt;
&lt;li&gt;AI tooling in everyday workflows&lt;/li&gt;
&lt;li&gt;team dynamics and communication&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Patterns create identity.&lt;/p&gt;




&lt;h2&gt;
  
  
  6. Publish at a Sustainable Cadence
&lt;/h2&gt;

&lt;p&gt;One solid article a week is enough to grow.&lt;br&gt;
Add two short posts on LinkedIn or X if you can.&lt;/p&gt;

&lt;p&gt;Consistency beats intensity.&lt;/p&gt;

&lt;p&gt;Engineers respect long-term thinkers.&lt;/p&gt;




&lt;h2&gt;
  
  
  7. Have Opinions
&lt;/h2&gt;

&lt;p&gt;It’s easy to write safe content.&lt;br&gt;
It’s forgettable.&lt;/p&gt;

&lt;p&gt;You don’t have to be loud or provocative.&lt;br&gt;
Just be honest.&lt;/p&gt;

&lt;p&gt;Say what you learned, where you disagree, and what you’d do differently next time.&lt;/p&gt;

&lt;p&gt;People follow clarity, not neutrality.&lt;/p&gt;




&lt;h2&gt;
  
  
  8. Engage With the Community
&lt;/h2&gt;

&lt;p&gt;Comment on other posts, respond thoughtfully, ask questions, share someone else’s article.&lt;/p&gt;

&lt;p&gt;Publishing without engaging is broadcasting into the void.&lt;/p&gt;

&lt;p&gt;Visibility is social.&lt;/p&gt;




&lt;h2&gt;
  
  
  9. Build a Library
&lt;/h2&gt;

&lt;p&gt;Over time, group posts into categories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;scaling lessons&lt;/li&gt;
&lt;li&gt;debugging patterns&lt;/li&gt;
&lt;li&gt;cultural pain points&lt;/li&gt;
&lt;li&gt;productivity systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;architecture stories&lt;/p&gt;

&lt;p&gt;Each category becomes a reference.&lt;/p&gt;

&lt;p&gt;That’s how readers start saying:&lt;br&gt;
“I go to this person when I need clarity on X.”&lt;/p&gt;




&lt;h2&gt;
  
  
  10. Focus on Clarity, Not Perfection
&lt;/h2&gt;

&lt;p&gt;Good writing has:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;simple sentences&lt;/li&gt;
&lt;li&gt;direct claims&lt;/li&gt;
&lt;li&gt;clean structure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cut jargon.&lt;br&gt;
Cut filler.&lt;br&gt;
Cut disclaimers.&lt;/p&gt;

&lt;p&gt;Publishing teaches clarity.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Real Benefit
&lt;/h2&gt;

&lt;p&gt;You won’t just get views.&lt;br&gt;
You’ll get:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;better job conversations&lt;/li&gt;
&lt;li&gt;invitations to speak or collaborate&lt;/li&gt;
&lt;li&gt;early adopters for side projects&lt;/li&gt;
&lt;li&gt;consulting leads&lt;/li&gt;
&lt;li&gt;a network that opens doors&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Writing compounds.&lt;/p&gt;

&lt;p&gt;The earlier you start, the sooner it pays off.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thought
&lt;/h2&gt;

&lt;p&gt;Don’t wait until you feel “experienced enough.”&lt;br&gt;
Publishing is how you sharpen your thinking and find your audience.&lt;/p&gt;

&lt;p&gt;Engineers who write become more valuable than engineers who don’t.&lt;/p&gt;

&lt;p&gt;Start with one post.&lt;br&gt;
You’ll figure out the rest along the way.&lt;/p&gt;

</description>
      <category>community</category>
      <category>writing</category>
    </item>
    <item>
      <title>🧑‍💻 How I Manage Multiple GitHub Accounts on One Computer (Without Losing My Mind)</title>
      <dc:creator>Humayun Kabir</dc:creator>
      <pubDate>Tue, 01 Jul 2025 08:02:54 +0000</pubDate>
      <link>https://dev.to/humayunkabir/how-i-manage-multiple-github-accounts-on-one-computer-without-losing-my-mind-4e61</link>
      <guid>https://dev.to/humayunkabir/how-i-manage-multiple-github-accounts-on-one-computer-without-losing-my-mind-4e61</guid>
      <description>&lt;p&gt;If you’ve ever juggled more than one GitHub account — say, one for work and one for personal projects — you’ve probably hit that annoying wall: Git doesn’t know which identity to use, SSH keys get mixed up, and suddenly you're pushing company code from your personal account.&lt;/p&gt;

&lt;p&gt;I ran into this too, and after way too much trial and error, I found a setup that just works. If you’re looking for a clean, reliable way to handle multiple GitHub accounts on the same machine — with the right user name, email, and SSH key for each — this guide is for you.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧩 The Problem
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;You have multiple GitHub accounts&lt;/li&gt;
&lt;li&gt;Git and SSH don’t know which one to use&lt;/li&gt;
&lt;li&gt;You accidentally commit code from the wrong identity&lt;/li&gt;
&lt;li&gt;Or worse, push to the wrong repo and get permission errors&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Yeah. Not fun.&lt;/p&gt;




&lt;h2&gt;
  
  
  ✅ The Goal
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Use separate SSH keys for each GitHub account&lt;/li&gt;
&lt;li&gt;Automatically use the correct Git user name and email for each project&lt;/li&gt;
&lt;li&gt;Avoid switching configs manually every time&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let’s break it down.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔐 Step 1: Create a Separate SSH Key for Each GitHub Account
&lt;/h2&gt;

&lt;p&gt;We’ll create one key for your personal account and one for work.&lt;/p&gt;

&lt;p&gt;Open your terminal and run:&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="c"&gt;# Personal account key&lt;/span&gt;
ssh-keygen &lt;span class="nt"&gt;-t&lt;/span&gt; ed25519 &lt;span class="nt"&gt;-C&lt;/span&gt; &lt;span class="s2"&gt;"your_personal@email.com"&lt;/span&gt; &lt;span class="nt"&gt;-f&lt;/span&gt; ~/.ssh/id_ed25519_personal

&lt;span class="c"&gt;# Work account key&lt;/span&gt;
ssh-keygen &lt;span class="nt"&gt;-t&lt;/span&gt; ed25519 &lt;span class="nt"&gt;-C&lt;/span&gt; &lt;span class="s2"&gt;"your_work@email.com"&lt;/span&gt; &lt;span class="nt"&gt;-f&lt;/span&gt; ~/.ssh/id_ed25519_work
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will create two key pairs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;~/.ssh/id_ed25519_personal and id_ed25519_personal.pub&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;~/.ssh/id_ed25519_work and id_ed25519_work.pub&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔗 Step 2: Add Your Keys to GitHub
&lt;/h2&gt;

&lt;p&gt;For each account, copy the public key and add it to GitHub:&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;cat&lt;/span&gt; ~/.ssh/id_ed25519_personal.pub
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to GitHub.com &amp;gt; Settings &amp;gt; SSH and GPG keys&lt;/li&gt;
&lt;li&gt;Click New SSH key, give it a name, and paste the key&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Repeat the same for your work account using the &lt;code&gt;id_ed25519_work.pub&lt;/code&gt; key.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚙️ Step 3: Configure SSH to Know Which Key to Use
&lt;/h2&gt;

&lt;p&gt;Now let’s tell SSH which key goes with which GitHub account.&lt;/p&gt;

&lt;p&gt;Edit (or create) your SSH config file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nano ~/.ssh/config
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And add this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ssh"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Personal GitHub&lt;/span&gt;
&lt;span class="k"&gt;Host&lt;/span&gt; personal.github.com
    &lt;span class="k"&gt;HostName&lt;/span&gt; ssh.github.com
    &lt;span class="k"&gt;User&lt;/span&gt; git
    &lt;span class="k"&gt;Port&lt;/span&gt; &lt;span class="m"&gt;443&lt;/span&gt;
    &lt;span class="k"&gt;IdentityFile&lt;/span&gt; ~/.ssh/id_ed25519_personal
    &lt;span class="k"&gt;IdentitiesOnly&lt;/span&gt; &lt;span class="no"&gt;yes&lt;/span&gt;

&lt;span class="c1"&gt;# Work GitHub&lt;/span&gt;
&lt;span class="k"&gt;Host&lt;/span&gt; work.github.com
    &lt;span class="k"&gt;HostName&lt;/span&gt; ssh.github.com
    &lt;span class="k"&gt;User&lt;/span&gt; git
    &lt;span class="k"&gt;Port&lt;/span&gt; &lt;span class="m"&gt;443&lt;/span&gt;
    &lt;span class="k"&gt;IdentityFile&lt;/span&gt; ~/.ssh/id_ed25519_work
    &lt;span class="k"&gt;IdentitiesOnly&lt;/span&gt; &lt;span class="no"&gt;yes&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here’s the trick: you’re telling SSH that anytime it sees &lt;code&gt;personal.github.com&lt;/code&gt;, it should use your personal key, and for &lt;code&gt;work.github.com&lt;/code&gt;, your work key.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧪 Step 4: Clone Repos Using the Right Host
&lt;/h2&gt;

&lt;p&gt;Here’s where that custom Host comes in.&lt;/p&gt;

&lt;p&gt;Instead of the usual GitHub URL, clone like this:&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="c"&gt;# For personal projects&lt;/span&gt;
git clone git@personal.github.com:yourusername/repo.git

&lt;span class="c"&gt;# For work projects&lt;/span&gt;
git clone git@work.github.com:yourcompany/repo.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It might feel weird at first, but this is how SSH knows which key to use. No more key conflicts!&lt;/p&gt;




&lt;h2&gt;
  
  
  👤 Step 5: Automatically Use the Right Git User Info
&lt;/h2&gt;

&lt;p&gt;Okay, this part was a game-changer for me.&lt;/p&gt;

&lt;p&gt;You know how Git uses your name and email in every commit? If you don't set it correctly, your commits might show up under the wrong GitHub account.&lt;/p&gt;

&lt;p&gt;You could set it manually for each repo with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git config user.name &lt;span class="s2"&gt;"Your Name"&lt;/span&gt;
git config user.email &lt;span class="s2"&gt;"you@example.com"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But... that gets old fast. Instead, let’s make Git smart enough to pick the right user based on the folder your repo lives in.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Open your global Git config:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nano ~/.gitconfig
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Add these lines:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="o"&gt;[&lt;/span&gt;includeIf &lt;span class="s2"&gt;"gitdir:~/projects/personal/"&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
    path &lt;span class="o"&gt;=&lt;/span&gt; ~/.gitconfig-personal

&lt;span class="o"&gt;[&lt;/span&gt;includeIf &lt;span class="s2"&gt;"gitdir:~/projects/work/"&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
    path &lt;span class="o"&gt;=&lt;/span&gt; ~/.gitconfig-work
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This tells Git: “Hey, if I’m working in any folder under &lt;code&gt;~/projects/personal&lt;/code&gt;, use the personal config. If I’m in &lt;code&gt;~/projects/work&lt;/code&gt;, use the work one.”&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Create the two config files:
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;~/.gitconfig-personal&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ini"&gt;&lt;code&gt;&lt;span class="nn"&gt;[user]&lt;/span&gt;
    &lt;span class="py"&gt;name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;Your Personal Name&lt;/span&gt;
    &lt;span class="py"&gt;email&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;your_personal@email.com&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;~/.gitconfig-work&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ini"&gt;&lt;code&gt;&lt;span class="nn"&gt;[user]&lt;/span&gt;
    &lt;span class="py"&gt;name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;Your Work Name&lt;/span&gt;
    &lt;span class="py"&gt;email&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;your_work@email.com&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4. Organize Your Projects
&lt;/h3&gt;

&lt;p&gt;Put your repos into folders like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;~/projects/personal/my-website
~/projects/work/client-dashboard
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now Git will automatically use the right name and email when you commit — no extra commands needed.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧼 That’s It!
&lt;/h2&gt;

&lt;p&gt;Now you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Push to multiple GitHub accounts using different keys&lt;/li&gt;
&lt;li&gt;Keep work and personal commits separate&lt;/li&gt;
&lt;li&gt;Avoid annoying identity issues forever&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🛠 Bonus Tips
&lt;/h2&gt;

&lt;p&gt;Run git config user.name inside a repo to double-check which identity it’s using.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Run &lt;code&gt;ssh -T git@personal.github.com&lt;/code&gt; to test if your SSH key works.&lt;/li&gt;
&lt;li&gt;Keep all your SSH keys safe and backed up.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  ☕ Wrapping Up
&lt;/h2&gt;

&lt;p&gt;This setup might seem like a lot up front, but once it’s in place, it just works. No more errors, no more misattributed commits, and no more mental juggling.&lt;/p&gt;

&lt;p&gt;Hope this helped you clean up your GitHub life! If you’ve got questions, drop a comment — or if you’ve got tips of your own, I’d love to hear them.&lt;/p&gt;

</description>
      <category>git</category>
      <category>github</category>
      <category>bitbucket</category>
      <category>softwareengineering</category>
    </item>
  </channel>
</rss>
