Skip to main content

[How I became an Apache ShenYu Committer one year after graduation]

· 6 min read

Introduction of new Committer#

Hello, everyone. My name is Liu Liang. I am working as a software development engineer in China Merchants Network Technology Co., LTD. It is my great honor to receive the invitation of Apache ShenYu community to become a Committer of Apache ShenYu. Now I would like to share with you my growth and suggestions during my participation in Apache ShenYu community.

Know Open Source#

After graduation last year, I feel that my skills are far from enough, so I am constantly learning. Along the way, one of the teachers offered the opportunity to participate in an open source project. I started with the idea that working on open source projects would improve my skills and help me get a job.

The open source project involved is Apache ShenYu(Incubating), which is an asynchronous, high-performance, cross-language, responsive API gateway. In the community communication group, there are many active students who actively discuss issues and consciously find bugs.

Participate in the open source#

My first task was to add test cases. Tasks are usually posted as an issue, and if you're interested, reply under the issue. Fortunately, the official community provides an action document that simply follows the steps above, mainly forking the project into its repository, pulling it locally, creating the corresponding issue branch locally, and then actually writing code.

The first task is to write unit tests for the entity class. The solution is to call the get/set method via reflection, and when you're done, submit your code and merge it. This was my first PR contribution to an open source project, and I've been a contributor to open source projects ever since, hahaha.

Then I did other tasks. The second time, I looked back at the code I submitted the first time and found it was different from the one I submitted. I checked the git submission record and found that my code was committer refactored. I took a close look at my code and the refactored code and said, "Well, this is a more elegant way to write it.

In continuing to be involved, I've gained a deeper understanding of Apache ShenYu(Incubator) projects and a greater understanding of the open source culture.

Apache ShenYu(Incubating) committers can often publish tasks through mail, issues, and community groups. I noticed that there was a feature on gRPC optimization that no one had done yet, and was ready to take it on. However, I still remember hesitating for a long time at that time. I don't know what to do with this feature. Can I handle it? GRPC is not used, I can also go to optimize? In constant doubt and denial...... This function is a core part of the project, so it's a rare opportunity. Why not try it first? Finally, I took a step to complete the task.

The next step is how to solve this problem. This is a very specific technical problem, I will not expand, mainly about their feelings. When you encounter a problem, you should first analyze what the specific problem is, where to start to solve it, why the existing solution does not work, and what results to achieve in the end, and communicate with others more. I've also been in constant communication with Apache ShenYu(Incubating) PPMC while I've been working on this issue, to discuss whether my solution is feasible. In the process of research and analysis, I have always backed down, because this problem is not easy for me to do. But PPMC in Apache ShenYu(Incubator) has been encouraging me: There's no time limit on this, you can take your time and talk to others about it. In this way, step by step, constantly consult, finally solved the problem, the submitted code was successfully merged by the project.

And then later, you started in Apache ShenYu(Incubator weekly meetings) to learn what other people are doing, learn about incubating, and learn more about open source culture. I also contributed more to Apache ShenYu(Incubating) in its own website.

Experience in the Apache ShenYu(Incubating) community#

I have been talking about my open source experience in the past. In fact, this is my true inner activity and a process of growth. Since you've been in open source, you've slowly felt more open source charm, and the Apache ShenYu(Incubating) community is in a good mood.

  • Community over Code: Building a good community is more important than writing code. The Apache ShenYu(Incubator) community is also working to improve, to get new users in and lower the threshold where possible;

  • Transparent and open decision making: community development, feature development, and user issues are made public and archived in mailing lists;

  • Equality and respect: focus on the communication of technical community, your contribution determines your authority;

  • Broaden vision: not satisfied with CRUD in daily work, participate in open source, your code will be reviewed, see what is good code, learn more about open source projects, improve personal technical ability;

  • No size of contribution: Whether you complete a core feature, write a test case, build a website, modify documentation, these contributions are the same and will be recognized by the community.

A little advice for the new guy#

If you have friends who are interested in open source, but have not participated in it yet, do you have these problems?

  • If you ask too simple questions, do you seem incompetent? No, people are well prepared for technical discussions, their own questions, have more background information, and the community is happy to respond to you and answer your questions.

  • Newcomers don't know how to participate? The community provides documentation, follows through, and can participate. There are also novice missions that can be directly participated in.

  • No time? The development of the community is personal investment, no commercial interests, members are free time to participate in it, I believe you can also.

  • Too difficult to solve? Talk to people in your community. That's how you develop your skills.