Ну, это проще простого:
1. Находим проблему в проекте, которая вам мешает
2. Исправляем её, убеждаемся, что новый код по стилю и требованиям совпадает со старым
3. Отправляем изменения так, как указано в требованиях проекта
Самое главное - разбираться в проекте. Читать его баг-трекер и понимать потребности и над чем работает сообщество. Я как-то пытался стать контрибутором apache ignite но не вышло. Времени не хватало. А потребности были со стороны нашего проекта.
Вобщем читаете баг-трекер. Берете проблему и разбираетесь. Поскольку речь идет о больших проектах то пройдут месяцы и годы прежде чем вы сможете делать фичи.
Техническая сторона не особо важна. Главное что у вас есть ценный merge-request который нечто исправляет и это НЕЧТО очень нужно в мире.
Мой тебе совет: вливаться стоит только в новые проекты или с целью исправления ошибок.
Пошаговая инструкция:
1. создаешь форк репозитория
2. отправляешь PR'ы в основной репозиторий
3. как только твой вклад перевалит за 5-10% от его кода, можешь попроситься в owner'ы
3. profit!