[this post is available online at https://s.apache.org/13mcu ]

by Ephraim Anierobi

This post is about how I became a committer and a Project Management Committee 
(PMC) member of Apache Airflow, and provides guidance to those new to 
programming, are new to contributing to open-source projects, and want to 
become committers and PMC members in their respective Apache projects.

About a year and a half after changing my career from electrical engineering to 
software development, I became a committer and a Project Management Committee 
member of Apache Airflow. Becoming a committer and a PMC member is a reward and 
a kind of validation that you are on the right part of your journey.

On February 16, 2021, I accepted an invitation to become a committer in Apache 
Airflow. It came as a surprise, as I was not expecting it. Six months down the 
line, I received another surprise invitation to become a PMC member in Apache 
Airflow.

These are impressive feats for me because before contributing to Apache 
Airflow, I didn't have experience working with other programmers. I was making 
websites and taught a few friends of mine how to make their own. I didn't have 
a mentor, and no one has ever seen my code to advise whether to continue on my 
journey or drop the idea of becoming a programmer.

While I desired to work with experienced programmers to improve my skills, I 
feared people seeing my code would talk me down. I almost gave up on my journey 
only to come across an Outreachy post on Twitter looking for interns for open 
source projects. Outreachy is a tech diversity program that provides three 
months of paid, remote internships to people underrepresented in tech.

I was ready to change my career and was looking for mentorship, but couldn't 
find an internship that could help me get started in my journey. In Nigeria 
where I'm living, your location affects your chances of getting an entry-level 
job. I was not close to the major cities. 

So I applied for an internship through Outreachy. 

There are two application processes. The initial application involves 
explaining your background and why you should be accepted into the program. You 
must pass the initial application before you could proceed to the next. The 
second application process (called the contribution period) is where you choose 
an open source project that matches your skill sets and then contribute to it. 
You must have some minimum contributions before you could be accepted.

That was how I found Apache Airflow.

You could imagine the joy I had when I was accepted into the program.

Here are things I did which I believe would help you in your journey to 
becoming an Apache committer and a PMC member.

Asking Questions

Asking questions is the fastest way to learn. Don't be afraid to ask questions 
if you do not understand something. I ask questions a lot and I always get 
answers, but I didn't start by asking questions: I made 40 commits to the 
repository without understanding what Airflow does. It was not until I joined 
my new employer Astronomer that I learned what DAG is and what a data pipeline 
is. Now I can easily reproduce issues following someone's descriptions. I wish 
I had asked questions earlier --I could have had more experience by now!

Start small

If you are like me, with little experience, start contributing from the minor 
issues. Find good first issues and work on them. You don't have to wait to 
contribute a large change before contributing.

While working on the REST API project, which I got hired by Outreachy to do, I 
was looking at the codebase. I started with Airflow providers because it was 
easy for me to understand. There were so many requests about providers at the 
time and I started looking into it, reading the code base, and helping with the 
providers. I didn't go into the core straight up; I avoided it. My first PR was 
on simple database migration during the Outreachy contribution period.

Refactor codes

Airflow is complex. Till now, I'm still learning it. Just last week I learned 
about how the execution date works. I know there are a lot of other things I 
have not understood very well but refactoring helped me to understand a lot.

When I was to work in the scheduler, I found the file was so large that I went 
back and forth without progress. I worked on separating the files and I'm glad 
I did because after that I could contribute. I recommend refactoring code but 
do not go into large refactoring. A little at a time, with the hope to 
understand the project. Avoid the core of the project if you are just starting.

Issues

One thing about issues is that most reporters would tell you how to reproduce 
them. Most times, you would find that the issue is quite easy to fix. I usually 
jump on those and fix them. Other times, I had to contact my superiors before I 
could fix it.

Looking at reported issues gives an added advantage that you could learn how 
the software works in the real world. Try to reproduce as many issues as 
possible. It adds to your knowledge.

Pull Requests

Here's where you can learn a great deal. I start my day by looking at the PRs. 
Most PRs link to issues. I read the issues and study PRs. I must admit that 
some of these PRs are just too complex for me. If I don't understand it, 
sometimes I ask questions, other times I go to the next PR. When I jump to the 
next PR, I record the topic that made me jump to the next and plan on reading 
about it some other time.

When you make a PR, ask for reviews in the community channel of communication. 
Airflow uses Slack and the mailing list for communications. You should ask for 
reviews in the slack channel and not the mailing list. The reviews not only 
give information on how to fix the problem but also teach you best practices in 
programming.

Culture

The ASF has a code of conduct that covers the Foundations activities as well as 
the projects. Read it first.

Among many other things, you would learn in Apache Airflow is communication. 
How to communicate with people in a civil manner. Spend time reading PR 
reviews, you will learn a lot and especially how to ask people to make changes 
to their code.

Conclusion

You don't have to wait for an invitation to contribute to an Apache project. 
You don't have to become an Outreachy intern to get involved with something 
you're interested in.

Don't be afraid to make a PR because nobody will penalize you if you're wrong. 
I know the feeling that people may think you are not good enough, forget it, 
they know you are new to the field and if you are thinking that they don't know 
your level in the language, forget it too, they know you are still a junior 
because it says so in your code. I can't count how many times I have had code 
reviews that showed me a better way to implement the code. Be open-minded, make 
mistakes, and excel.
---
Ephraim Anierobi started to work on the Apache Airflow project as an Outreachy 
Intern in May 2020. He became a committer in February 2021 and a member of the 
Apache Airflow Project Management Committee (PMC) in August 2021. He is a 
software engineer at Astronomer.

= = =
"Success at Apache" is a monthly blog series that focuses on the processes 
behind why the ASF "just works" 
https://blogs.apache.org/foundation/category/SuccessAtApache

= = =
NOTE: you are receiving this message because you are subscribed to the 
announce@apache.org distribution list. To unsubscribe, send email from the 
recipient account to announce-unsubscr...@apache.org with the word 
"Unsubscribe" in the subject line.

Reply via email to