Contributing to a Browser Used by Millions

Published: (April 16, 2026 at 05:04 PM EDT)
4 min read
Source: Dev.to

Source: Dev.to

I’ve applied to Outreachy twice before this round. Both times, I didn’t get in. By my third application, I had stopped expecting anything. I just told myself I would keep applying anyway.

When the acceptance email arrived, I felt a mix of emotions—happiness that I made it to the contribution phase, and surprise. Not because I was pessimistic, but because I genuinely didn’t see it coming.

Below is my experience contributing to one of the projects I worked on: Mozilla Firefox.

Choosing the Project

When I saw the Firefox project listed, I almost skipped it. It looked like one of the “easier” options, and I assumed it would attract the most people. My thinking was: if everyone is going there, maybe I shouldn’t.

A friend reminded me:

“It’s not always about doing it. Sometimes it’s about doing it well.”

So I chose Firefox and told myself: don’t just do it — try to do it well.
Did I do it well? I’ll probably ask my mentors for feedback.

Setting up the Codebase

Setting up the project was straightforward for me. But when I opened the codebase, I was honestly blown away—Firefox is huge.

My first instinct was to understand as much of it as I could. Slowly, what felt overwhelming and unfamiliar started to feel… manageable. Not simple, but familiar enough to navigate.

The Rule That Made Me Better

Firefox banned the use of generative AI tools during the contribution phase. I decided to fully commit to that:

  • No AI‑generated code.
  • No AI explanations.
  • Every bug, every fix, every mistake— all mine.

It wasn’t easy. There were moments I really wanted to open ChatGPT and get unstuck quickly. Working without it was uncomfortable at times, but the sense of ownership at the end felt different—better. I realized that relying too heavily on AI can quietly weaken our ability to think deeply.

The Bug That Was Closed

Bug 1982519 — No default icon shown when an extension icon is missing

I initially suspected the issue wasn’t really a bug or had already been fixed, but I built a solution anyway. When I submitted it, Rob Wu from the Firefox extensions team questioned my use of a generic regex. After a few back‑and‑forth comments, the bug was marked out of scope and closed.

Seeing his comment triggered imposter syndrome. I started questioning everything—was I wrong? Was my approach off? Communication helped: we clarified each other’s perspectives, which eased my doubts.

The Bug That Almost Broke Me

Bug 2015491 — Keyboard navigation issue in Firefox’s tab notes feature

When a user pressed Enter on the Cancel button, the note was still being saved.

  • I fixed it and submitted my patch. It landed, then got reverted.
  • I fixed it again—reverted.
  • A third attempt—reverted.

Three backouts, three failure messages. The self‑doubt crept in, and the temptation to use ChatGPT grew stronger. Yet this bug became the highlight of my experience.

At one point I found a “fix” that made all the tests pass—clean, green, done. However, an existing test (browser_b_notes_telementry.js) felt off. My fix passed only because that test was flawed.

The real test was a choice:

  • Submit something that looks correct, or
  • Hold back and do what’s actually right.

I chose to speak up and ask for help. In doing so, I not only fixed the bug but also identified and corrected an issue in the existing test—something that hadn’t even been reported as a bug yet. In a way, I caught a future bug.

My code is now in Firefox 151. Millions of users will benefit from a fix I wrote from my laptop in Abuja, Nigeria—without a single line of AI‑generated code.

I made only two contributions this phase (excluding the out‑of‑scope one). The experience, growth, and impact mean far more than the number.

The lessons? That’s for the next post.

0 views
Back to Blog

Related posts

Read more »

Mozilla Thunderbolt

Article Mozilla Thunderbolthttps://www.thunderbolt.io/ Discussion Comments on Hacker Newshttps://news.ycombinator.com/item?id=47792368 – 60 points, 53 comments...