The Goldilocks Contribution: How can someone find open source issues that challenge them just the right amount?

In open source, how can someone find their Goldilocks issue — one that stretches their skillset just right — in the chasm between contributions that are too easy and too hard?

I'll use myself as an example. As someone who has already had a few pull requests merged, I find that issues labeled “beginner don't seem challenging enough to help me grow. However, some issues labeled "bug" or "feature" can be over my head. My goal in contributing to open source is to give back to programming communities I care about, but also to advance my technical skills.

I find that it's pretty difficult outside of the "easy but we don't have bandwidth" issues to estimate up front the difficulty of a task - everyone is different, and most github repos don't have the most regular triage/labelling. In leu of a github filter, here are some things I do when finding issues to fix:

Find an issue that is relevant to a project or interesting to me personally. This keeps me motivated on more difficult tasks.

Find issues that I can write tests for - edge cases can take a long time and in my experience have a higher regression risk. If I can reason about how a test would cover an issue, I can usually avoid getting in too deep.

Find issues that are active and recent, so you can reach out the the reporter should you run into reproduction issues or need help testing.

Work on familiar projects - difficulty is usually fairly parallel to familiarity, especially on larger code bases. You'll be able to take on much more difficult problems if you stay inside an ecosystem (and avoid making style errors or disappointing PR rejections). Also, some repos/maintainers are more friendly or responsive, and it feels good to feel like "part of the team".

Try before you assign - fork it make a branch, and start on your fix! If it's too hard, there's no shame in abandoning it and if you don't get followers' hopes up you'll feel much better about moving on if you hit some snags.

Consider stack overflow answers for more isolated concepts - when I was learning regular expressions, it was tough to find real applications that would stretch my knowledge once I got past the initial learning curve. I would camp on the stack overflow regex tag and try to answer all the questions that came through. Sometimes I wouldn't come up with something in time, sometimes I wouldn't come up with anything at all, but it was a great exercise for a specific task that would be harder to find on github.

YAY this is everything I had hoped for! I hadn't been able to find a good answer just from Googling, so it's no wonder that other people have faced this dilemma before. Thank you so much for channeling experience into advice, Jesse. 💖

Now my next step is to figure out exactly what I want to learn from OSS and StackOverflow... Hmm... 🤔