Есть три генеральных варианта.
1) участвовать в крупных проектах с контрибьюторами, правилами и всем таким прочим 1а) закрывать issue s 1b) фигачить новый функционал (это сложнее)
2) участвовать в маленьких проектах где 1-2 контрибьютора, но на проект есть спрос со стороны сообщества. Скажем, openssl в свое время почти в 1 каску разрабатывался и тестировался, хотя использовался много кем.
3) участвовать в маленьких проектах, сделанных just for fun. Это может быть не так круто, как п.1 и п.2, но зато у вас там будет гораздо больше возможностей, а если не получится прийти к договоренности с автором - всегда можно форкнуть и пилить так, как хочется лично вам.
Проектов куча 1 и 2, начиная от фреймворков и инструментов, до библиотек и утилит. Кроме того, есть десятки тысяч just for fun проектов, это игры и тому подобная ерундистика.
Отсортировал варианты по убыванию сложности и по убыванию важности. Первое и второе можно упоминать в резюме (а-ля контрибутил в Linux Kernel), проекты третьего типа - нежелательно)