Setting Up Your GitHub Profile
First Impressions Matter
When you submit a PR, maintainers will look at your profile. A professional profile builds trust. A blank profile raises red flags.
What Maintainers See
┌─────────────────────────────────────────────────────────────────────────────┐
│ MAINTAINER'S FIRST LOOK │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────┐ │
│ │ YOUR GITHUB PROFILE │ │
│ │ │ │
│ │ ┌─────┐ @username │ │
│ │ │ 📷 │ Full Name │ │
│ │ └─────┘ Bio: "What I do" │ │
│ │ 📍 Location │ │
│ │ 🔗 Website │ │
│ │ 🏢 Company │ │
│ │ │ │
│ │ ═══════════════════════════════ │ │
│ │ 🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩 │ │
│ │ Contribution Activity │ │
│ │ │ │
│ │ 📌 Pinned Repositories │ │
│ │ [Project 1] [Project 2] [Project 3]│ │
│ │ │ │
│ └─────────────────────────────────────┘ │
│ │
│ In seconds, they evaluate: │
│ ✓ Is this a real person? │
│ ✓ Do they have relevant experience? │
│ ✓ Have they contributed before? │
│ ✓ Are they likely to finish what they start? │
│ │
└─────────────────────────────────────────────────────────────────────────────┘The Good vs Bad Profile
🚫 Red Flag Profile
- No profile picture
- No bio
- No pinned repositories
- No contribution activity
- Generic username like "user12345"
- Account created yesterday
✅ Trust-Building Profile
- Professional photo or avatar
- Clear bio with skills
- Pinned personal projects
- Regular contribution activity
- Professional username
- Account with history
Step-by-Step Profile Setup
1. Profile Picture
Choose a photo
Options in order of preference:
- Professional headshot
- High-quality casual photo
- Illustrated avatar (like Notion style)
- GitHub-generated identicon (acceptable)
Never: No photo, memes, anime characters (for professional contributions)
Upload
Go to github.com/settings/profile (opens in a new tab) and click "Upload new picture"
2. Name and Username
┌─────────────────────────────────────────────────────────────────┐
│ NAME GUIDELINES │
├─────────────────────────────────────────────────────────────────┤
│ │
│ USERNAME (handle) │
│ ════════════════ │
│ ✓ johndeveloper, jsmith-dev, jane-code │
│ ✗ user123456, xXx_hacker_xXx, temporary_account │
│ │
│ DISPLAY NAME (full name) │
│ ════════════════════════ │
│ ✓ John Smith, Jane Developer │
│ ✗ (blank), "The Hacker", emojis │
│ │
└─────────────────────────────────────────────────────────────────┘3. Bio
Your bio appears in many places. Make it count:
Template:
[Role/Title] | [Primary skill] | [Secondary skill] | [Optional: Interests]Examples:
Full-stack developer | TypeScript & React | Open source contributor
CS Student @ Stanford | Python & ML | Building tools for developers
Software Engineer | Rust enthusiast | Contributing to database projects4. Details to Add
| Field | What to Put |
|---|---|
| Company | Your employer or "Independent" |
| Location | City, Country (or just Country) |
| Website | Personal site, blog, or LinkedIn |
| Social accounts | Twitter/X if relevant |
Create a Profile README
A profile README appears at the top of your profile:
Create repository
Create a new repository with the same name as your username.
Example: If you're @johndoe, create repo johndoe.
Add README.md
# Hi, I'm John 👋
I'm a software developer interested in open source and web technologies.
## 🔧 Technologies I work with
- JavaScript / TypeScript
- React, Next.js
- Node.js, Python
## 🌱 Currently learning
- Rust
- System design
## 💬 Open source interests
- Developer tools
- Documentation
- Accessibility
## 📫 How to reach me
- Twitter: @johndoe
- Email: john@example.comKeep It Simple
Don't add excessive badges, stats widgets, or animations. Many maintainers find them distracting. Simple and professional wins.
Pin Your Best Repositories
Choose 4-6 projects to pin
Priority:
- Open source contributions (forks you've PR'd to)
- Personal projects with clean code
- Tutorial projects (lower priority)
Pin them
Go to your profile → Click "Customize your pins" → Select repos
Add descriptions
Each pinned repo should have:
- Clear description
- Relevant topics/tags
- README with instructions
Contribution Graph
┌─────────────────────────────────────────────────────────────────┐
│ CONTRIBUTION GRAPH │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Less More │
│ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ │
│ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ │
│ ░░░░░░░░░░░░░░▓▓░░░░▓▓▓▓▓░░░░░░▓▓▓▓▓▓▓▓░░░░░░░░░░ │
│ ░░░░░░░░░░░░░░▓▓░░░░▓▓▓▓▓▓░░░░▓▓▓▓▓▓▓▓▓▓░░░░░░░░░ │
│ ░░░░░░░░░░░░░▓▓▓░░░▓▓▓▓▓▓▓░░░▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░ │
│ ░░░░░░░░░░░░▓▓▓▓░░░▓▓▓▓▓▓▓▓░▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░ │
│ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ │
│ │
│ What maintainers look for: │
│ ✓ Consistency over time (not just Hacktoberfest) │
│ ✓ Activity on weekdays (shows regular work) │
│ ✗ Obvious contribution farming │
│ │
└─────────────────────────────────────────────────────────────────┘Don't Game the Graph
Don't make fake commits to fill your graph. Quality matters more than green squares. Maintainers can tell.
Final Checklist
- Profile photo uploaded (face or professional avatar)
- Display name set to your real name
- Bio written with skills and interests
- Location added
- Website or social link added
- Profile README created (optional but recommended)
- 4-6 repositories pinned
- Pinned repos have descriptions and READMEs
- Email verified
- Two-factor authentication enabled
Two-Factor Authentication
Enable 2FA Now
Many open source projects require 2FA. GitHub itself is moving toward requiring it. Set it up before you need it.
Go to github.com/settings/security (opens in a new tab):
- Click "Enable two-factor authentication"
- Use an authenticator app (recommended) or SMS
- Save backup codes somewhere safe