From User to Maintainer:

My NumPy Journey

Ganesh Kathiresan

2026-02-21

Why This Talk?

Ever wanted to contribute to open source but held back?

  • “I’m not experienced enough”
  • “The codebase is way too big”
  • “I wouldn’t even know where to start”

I felt the same way. Turns out, you don’t need to be ready — you just need to begin.

My Journey

%%{init: {'themeVariables': {'fontSize': '14px'}}}%%
timeline
    title From First PR to Maintainer
    section 2019
        Dec : First OS contribution | Garbage Collector — clang support
    section 2020
        Feb : First NumPy contribution
        Dec : First big contribution | ~50% speed boost in integer division
    section 2021
        Apr : Biggest PR merged | ~80%+ speed boost in division
        Jul : Became a NumPy Maintainer
        Nov : First full feature | bit_count

Diving into features - show_runtime

PR Link

  • Solved a real pain point on identifying how NumPy was built and not just what it’s running
  • Today it’s used in every issue creation template in NumPy

Diving into features - integer division

  • Every integer division flow in NumPy goes through this change
  • Over 6 months of effort yielded 80%+ speed improvements
  • Landing before the AI boom, this change, along with other SIMD optimizations, helped reduce the carbon footprint of Python-based LLM workloads

Diving into features - bitwise_count

PR Link

  • Counts the number of 1-bits in the absolute value of the input
  • Based on a paper that runs in just 12 CPU cycles, though it took 2+ years to get merged
  • The paper and CPython only support 64-bit inputs, so additional work was needed to extend it to 8, 32, and 128 bits

Performance Comparison

Not everything works - float.hex/from_hex

PR Link

  • This change is massive with not much upside, it’s still under progress for the past 4 years
  • Lessons Learned: Look for value in the community before working on something

“There are a lot of things that people talk about but don’t end up as an issue. If you can pay attention and pick some stuff and use that to open an issue and PR, you are on the next step of the journey.” - CNCF Words of wisdom

What Counts as a Contribution?

  • 🐛 Bug reports
  • 📝 Documentation fixes
  • 🧪 Adding or improving tests
  • 🔧 Small bug fixes
  • 💬 Answering questions in issues
  • 📦 Packaging and CI improvements

Refer to this awesome guide for more details: CNCF FAQ

Contributing to NumPy

Not sure where to start? numpy.org/contribute lists many ways to help:

  • 💻 Writing code and reviewing pull requests
  • 📚 Developing tutorials, how-to’s, and educational materials
  • 🔍 Issue triaging — finding duplicates, adding reproducers, labeling
  • 🌐 Website development and graphic design
  • 🌍 Translating website content into multiple languages
  • 📣 Community coordination, outreach, and fundraising

Working with Maintainers

  • Join Slack channels and mailing lists to stay up to date with communications
    • Ask questions on small, well-researched topics in Slack
  • Attend open community calls or newcomer hours to connect with maintainers
  • Address all review comments before requesting another review
  • Open Source is slow
    • But that’s a good thing!

Usage of AI

AI can be used for the following (but not limited to):

  • Fill in boilerplate code
  • Deep dive into the code base or specific modules
  • Refactor UT to get more coverage

Caution

  • AI is a useful tool!
    • But use it with caution
    • Review each line and understand the changes

Practical Tips

  • Start small — don’t aim for heroic PRs
  • Run the test suite locally before submitting
  • Set a rhythm (spend few mins every day)
    • Most days I just go over 10+ issues looking for gaps
  • Reference the issue number in your PR
  • It’s okay to take breaks
  • Celebrate small wins!

Key Takeaways

  • Open source is approachable — start before you feel ready
  • Small contributions compound over time
  • Communication and respect go a long way
  • It strengthens real engineering skills
  • Your contributions build a visible professional portfolio

Thank You

  • Your first contribution to open source will be the hardest but best experience as a developer. Thousands of people have contributed their knowledge to develop some of the best projects that have progressed humans to where we are today.

  • Are you ready to make your first contribution?

Questions?