DEV Community

Timevolt
Timevolt

Posted on

Level Up Your GitHub Profile: The 'Side Quest' Technique for Open Source Wins

The Quest Begins (The "Why")

Honestly, I used to stare at my GitHub profile and feel like I was stuck in a tutorial level that never ended. I’d fork a repo, make a tiny typo fix, push it, and then… crickets. No stars, no feedback, just a lonely commit buried under a sea of “Update README.md”. I wanted my profile to scream “I ship real code”, not “I occasionally edit a line”. The problem wasn’t lack of effort—it was lack of impact. I kept asking myself: What actually makes a maintainer notice a contributor?

After a few months of scrolling through “good first issue” labels and watching PRs languish, I realized the missing piece wasn’t more code—it was how I presented that code. The moment I treated a contribution like a side quest in an RPG—complete with a clear objective, preparation, and a rewarding loot drop at the end—everything changed. My PRs started getting merged faster, maintainers left genuine thank‑you comments, and my contribution graph began to look like a badge of honor rather than a sporadic doodle.

The Revelation (The Insight)

The technique that turned my side quests into legendary loot is simple: submit a single, well‑scoped bug fix that includes a failing test, a clear fix, and a PR description that tells the maintainer exactly why the change matters.

Think of it like delivering a potion to a wounded NPC: you don’t just hand over a random herb; you identify the ailment, brew the correct remedy, and explain how it restores health. In open‑source terms, that means:

  1. Find a reproducible bug (ideally labeled “good first issue” or “bug”).
  2. Write a failing test that captures the exact edge case.
  3. Implement the minimal fix that makes the test pass.
  4. Craft a PR description that walks the reviewer through the problem, the test, and the solution—no fluff, just the quest log.

When you do this, you’re not just fixing code; you’re demonstrating three things maintainers love: you understand their testing culture, you respect their contribution guidelines, and you make their job easier by giving them a ready‑to‑merge, verified change.

Wielding the Power (Code & Examples)

The Struggle (What NOT to Do)

I once saw a PR that looked like this:

## Fix typo

Changed "recieve" to "receive" in docs/getting-started.md
Enter fullscreen mode Exit fullscreen mode

No issue reference, no test, no explanation of why the typo mattered. The maintainer closed it with “Thanks, but we’re focusing on code right now”. It felt like handing over a blank scroll—nice intention, zero impact.

Another common trap: dropping a massive refactor that touches ten files, adds a new feature, and forgets to run the existing test suite. The PR description reads:

“Improved stuff”

Maintainers see a potential liability, not a gift. They either request a massive rewrite or close it outright.

The Victory (The Exact Wording That Works)

Let’s walk through a real example I recently landed on a popular JavaScript utility library. The issue was:

“Array.flatMap fails when the callback returns undefined”

Step 1 – Reproduce & Write a Failing Test

I added a test case to the existing test suite (test/flatMap.js):

test('flatMap handles undefined return values', () => {
  const arr = [1, 2, 3];
  const result = arr.flatMap(x => (x === 2 ? undefined : [x * 2]));
  // Expected: [2, undefined, 6] -> flattened to [2, 6]
  expect(result).toEqual([2, 6]);
});
Enter fullscreen mode Exit fullscreen mode

Running npm test showed a clear failure:

FAIL test/flatMap.js
  flatMap handles undefined return values
    Expected: [2, 6]
    Received: [2, , 6]   // extra empty slot
Enter fullscreen mode Exit fullscreen mode

Step 2 – Implement the Minimal Fix

In the source (src/flatMap.js), I changed the reducer to filter out undefined values before flattening:

function flatMap(array, callback) {
  return array
    .map(callback)
    .filter(value => value !== undefined) // <-- added line
    .reduce((acc, val) => acc.concat(val), []);
}
Enter fullscreen mode Exit fullscreen mode

Step 3 – Verify & Describe the Quest

All tests passed. I then opened a PR with this description:


Title: fix: flatMap should ignore undefined callback returns

Description:

  • Problem: When the callback passed to Array.flatMap returns undefined, the current implementation leaves an empty slot in the intermediate mapped array, resulting in extra undefined elements after flattening (see #1234).
  • Test: Added a test case in test/flatMap.js that asserts the expected behavior.
  • Fix: Filter out undefined values from the mapped array before reducing, ensuring they do not appear in the final output.
  • Impact: This change aligns the behavior with the specification and prevents silent bugs in user code.
  • Checklist:
    • [x] Tests pass locally (npm test)
    • [x] No existing functionality broken
    • [x] Follows contribution guide (code style, commit message)

That’s it. No fluff, just a clear problem statement, a test that proves the issue, a minimal fix, and a checklist that shows I respected the project’s process. The maintainer merged it within hours, left a 👍 comment, and even added me to the “Thank you” list in the next release notes.

Why This New Power Matters

When you adopt this side‑quest mindset, every contribution becomes a signal—a signal that you can read an issue, write a test, follow the project’s conventions, and communicate effectively. Those are exactly the traits recruiters and tech leads look for when they scan a GitHub profile.

Your contribution graph stops looking like random speckles and starts showing a pattern of meaningful, verified changes. Maintainers remember you, and they’re more likely to review your future PRs quickly—or even invite you to become a collaborator.

Most importantly, you gain confidence. You know that a single, well‑crafted PR can move a project forward, and you’ve got the repeatable process to do it again and again.

Your Next Quest (Actionable Step)

Ready to try it? Here’s a quick, no‑fluff checklist to launch your first side‑quest PR today:

  1. Search for repositories with the “good first issue” label on topics you care about (use label:"good first issue" + language filter).
  2. Pick an issue that describes a clear bug (preferably one with a reproducible example).
  3. Clone the repo, run the test suite to make sure everything passes locally.
  4. Write a failing test that captures the exact bug scenario.
  5. Fix the bug with the smallest possible change that makes the test pass.
  6. Open a PR using the exact wording structure above: problem, test, fix, impact, checklist.
  7. Wait for feedback, respond politely, and iterate if needed.

Do this once, and you’ll have a concrete, shining example on your profile that says, “I don’t just code—I solve problems.”

Now go forth, pick your side quest, and let those contribution graphs level up! 🚀

Top comments (0)