AvnishYadav
WorkProjectsBlogsNewsletterSupportAbout
Work With Me

Avnish Yadav

Engineer. Automate. Build. Scale.

© 2026 Avnish Yadav. All rights reserved.

The Automation Update

AI agents, automation, and micro-SaaS. Weekly.

Explore

  • Home
  • Projects
  • Blogs
  • Newsletter Archive
  • About
  • Contact
  • Support

Legal

  • Privacy Policy

Connect

LinkedInGitHubInstagramYouTube
Your Code is Good, But Your Repo Looks Abandoned: A Guide to GitHub Hygiene
2026-02-21

Your Code is Good, But Your Repo Looks Abandoned: A Guide to GitHub Hygiene

6 min readCareerEngineering Best PracticesGitHubOpen SourceCareer GrowthDevRelPersonal Branding

Turn your GitHub repositories from storage units into portfolio assets. Learn the art of the perfect README, effective tagging, visual demos, and issue templates.

I look at a lot of GitHub profiles. Whether I’m hiring, looking for a collaborator, or just browsing a library I want to use in an automation workflow, I have a subconscious "3-second rule."

If I land on a repository and see a generic file list, a default "Initial commit" message, and a README that just says the project name, I bounce. Immediately. Even if the underlying Python code is brilliant, the packaging tells me it's not maintained, not documented, and risky to depend on.

As engineers, we tend to over-index on the code itself. We think the loop logic or the efficient database query speaks for itself. It doesn't.

In the context of career growth and personal branding, your GitHub repository is a product landing page. If you are building intelligent agents or micro-SaaS tools, your repo needs to sell your competence before anyone even looks at a line of code.

This is my guide to Repo Hygiene—the specific steps I take to polish a project from "hackathon dump" to "portfolio asset."

1. The README is Your Sales Letter

The README.md file is the single most important file in your project. It is the first thing a recruiter, CTO, or fellow developer sees. It needs to answer three questions immediately:

  1. What does this do?
  2. Why does it exist?
  3. How do I run it?

The Header Strategy

Don't just use the repository name. Use a banner image or a centered logo. If you don't have a logo, use a clean H1 title followed by high-contrast badges.

# 🤖 Auto-Agent-V1

![License](https://img.shields.io/badge/license-MIT-blue) 
![Python](https://img.shields.io/badge/python-3.10-green)
![Status](https://img.shields.io/badge/status-active-success)

> An autonomous agent that scrapes documentation and updates vector databases automatically.

Badges serve a psychological purpose: they signal standard compliance. They show you care about versioning, licensing, and build status.

The "Features" Section

Bullet points are your friend here. Do not write paragraphs of text explaining the architecture yet. List what the tool achieves.

  • ✅ Recursive Scraping: Handles dynamic JS rendering using Playwright.
  • ✅ Vector Embeddings: Automatically chunks text and pushes to Pinecone.
  • ✅ Rate Limiting: Built-in exponential backoff to respect robots.txt.

2. The Visual Hook: Demo GIFs

If you take nothing else from this post, take this: If there is no screenshot or GIF, it didn't happen.

Humans are visual learners. When I built my latest CLI tool for scaffolding Next.js projects, I didn't just paste the command line arguments. I recorded a 10-second GIF of the terminal executing the command, showing the colored output and the speed of execution.

Tools I use for this:

  • Screen Studio (Mac): For high-production value screen recordings with automatic zooming.
  • Terminalizer: If you want to record a terminal session and output it as a GIF directly from code.
  • Ffmpeg: For compressing those GIFs so they don't take 10 seconds to load on the GitHub page.

Place this visual demo right after your intro text in the README. It proves the system works.

3. The "About" Sidebar and Tags

Look to the right side of your repository (on desktop). That "About" section is often left blank or filled with generic text. This is a massive SEO mistake within the GitHub ecosystem.

The Description:
Write a concise, keyword-rich sentence.
Bad: "My python bot."
Good: "Python-based Discord bot using OpenAI API for automated community moderation."

The Topics (Tags):
GitHub allows you to add topics. These function like hashtags. If you want your repo to be discovered by other developers building similar automation tools, tag it properly.

I always include:

  • Language: python, typescript
  • Frameworks: langchain, nextjs
  • Domain: automation, llm, agent

This increases the "Surface Area of Luck." People searching for "LangChain boilerplate" might stumble upon your repo, see the clean README, and decide to star it or follow you.

4. Professionalism Signals: Issue Templates

Nothing screams "Senior Engineer" like a repository that is prepared for collaboration. Even if you are the only one working on it right now, setting up Issue Templates shows you understand the software development lifecycle.

Create a folder named .github/ISSUE_TEMPLATE. Inside, add two markdown files: bug_report.md and feature_request.md.

GitHub has default templates you can use. This forces anyone submitting an issue to provide:

  • Steps to reproduce
  • Expected behavior
  • Screenshots

When a hiring manager sees this structure, they don't just see a coder; they see a maintainer. It signals that you write code that is meant to survive in production.

5. Code Hygiene and Structure

Now, let's talk about the actual files.

The .gitignore is Non-Negotiable

Committing __pycache__, node_modules, or .DS_Store files is the digital equivalent of leaving your dirty laundry on the floor during a house tour. It looks sloppy.

Ensure you have a robust .gitignore file. If you accidentally committed environment variables or an API key, revoke the key immediately and rewrite the git history (or nuke the repo and start over if it's new). Never leave an API key in your commit history, even if you delete the file later.

Directory Structure

Don't dump everything in the root folder. Use standard conventions:

  • /src or /app for source code.
  • /tests for unit tests.
  • /docs for additional documentation.
  • /scripts for build or utility scripts.

This structure helps a stranger navigate your brain. It shows you think in systems, not just scripts.

6. Conventional Commits

Stop writing commit messages like "fix", "wip", or "update".

Adopt Conventional Commits. It’s a standard for commit messages that makes history readable and allows for automated changelog generation.

  • feat: add vector database connection logic
  • fix: resolve timeout issue on scraper
  • docs: update README with installation steps
  • chore: upgrade node dependencies

When someone looks at your commit history, they should see a story of development, not a panic of random saves.

7. The "How to Contribute" File

If you want to position yourself as an Open Source contributor, add a CONTRIBUTING.md file. Even a simple one that says:

"1. Fork the repo.
2. Create a feature branch.
3. Submit a PR with a description."

This is a subtle psychological trigger. It suggests your project is big enough to warrant contributions. It creates an aura of importance around the work.

Summary Checklist

Before I make any repository public, I run through this checklist:

  • [ ] Clear Title & Description: Does the About section explain the value?
  • [ ] README Polish: Badges, installation steps, tech stack listed.
  • [ ] Visuals: Is there a GIF or screenshot?
  • [ ] Clean Root: .gitignore is active, no junk files.
  • [ ] Tags: 5-7 relevant topic tags added.
  • [ ] License: MIT or Apache 2.0 included (crucial for adoption).

Your GitHub profile is your portfolio. Treat it with the same respect you'd give a production deployment. Clean repos build trust, and in this industry, trust gets you hired.

Share

Comments

Loading comments...

Add a comment

By posting a comment, you’ll be subscribed to the newsletter. You can unsubscribe anytime.

0/2000