A Contributor’s Story with Samuel Adjei
The Contributor’s Story series is designed to give our key open source contributors and community members a face and voice, an overview of the projects they’re working on, and the successes and challenges contributors face in developing it.
For this blog post, we spoke to Samuel Adjei, a Docusaurus employee who works on blog and documentation plugins through the Major League Hacking (MLH) grant.
“For me, I always wanted to be part of something that is bigger than me. [In] The technical part was mostly about contributing to open source and helping others get into coding by making it easier. “
Tell us a little about yourself and your current experience in the MLH scholarship.
My name is Samuel Adjei, I am a sophomore computer science student at the University of Ghana. I am currently working on Facebook’s Docusaurus in the open source track of the MLH Fellowship. Docusaurus is basically an open source project for easily creating, managing and providing technical documentation.
Before joining the MLH scholarship, I looked for open source programs for students. I heard about the fellowship program and decided to investigate further. I read many articles and threads to get a feel for how the program really worked, especially for the open source track. It was exactly what I was looking for. I went through the application and interview process, was accepted and started developing Docusaurus.
Where did you first find out about open source? How did you come to use / contribute something?
I heard about open source pretty early on when I started learning to code. I didn’t really have a lot of experience with it when I first got into the Fellowship. That said, a lot of the knowledge required to use and contribute to open source projects became intuitive as I learned how to use GitHub. It made sense to me: let’s write software so that everyone can be a part of it. With the resources of the Fellowship and watching people use tools like GitHub, I spent much of my first week learning about the open source ecosystem as a whole.
After understanding how it worked, I made a few posts here and there and wrote a few packages myself on GitHub.
Describe the project you are currently working on.
I am currently working on Docusaurus in the Fellowship. On the technical side, what impresses me most is that they take a modular approach. Almost every feature like the blog and documentation functionality is basically a package. It’s well thought out and abstracts away most of the technical details so that you can configure and write documents and blogs very easily without touching the code. The best part is that you can write your own plugins to extend and build on the plugins already available.
How did you initially go about approaching the problem?
Contributing to huge repositories could be intimidating. Much of what you learn and contribute initially has to do with the structure of the project. As already mentioned, many functions for Docusaurus have been created as plugins. This makes it relatively easier to use and contribute to Docusaurus in my opinion.
To start working on a problem, I first carefully read the description of the problem and any previous discussions about it. For me, this ensures that I actually understand what the problem is about. The next part is knowing where to look. In Docusaurus, the most accessible solution is to examine the plug-in that is causing the problem. You may need to track from the project’s entry point to get there. However, once you understand how it all fits together, it is relatively easy to know how to solve the problem.
What obstacles or problems have you faced in your post so far?
In general, the most obvious problems arise due to a lack of context. Sometimes it can be difficult to search through the project’s code. Things may not be conventional to you yet. Knowing exactly where to look may not be intuitive. A file might be too large and import a lot of unknown dependencies. If you don’t know how all of these things fit together, you may go insane. Learning to follow the project yourself will help you in the long run. You can understand how the framework works from the ground up. That said, if you get stuck, don’t be shy about asking the caregivers for help.
What is the current state of development?
Overall, I think my Docusaurus team and I have come a long way in terms of contributions and development with the help of very experienced project supervisors. I would say that most of the problems assigned to us were resolved with the help of the supervisors when necessary. We only have a couple of issues that we need to summarize and call a cohort! The nice thing about Open Source and this fellowship is that these projects are visible and community-oriented, so that we can continue to make a contribution even after the fellowship.
What have you learned about the project, development or open source so far?
I would say that posting on Docusaurus gave me a solid foundation from which to contribute to other major repositories in the future. I was able to see how technical discussions work in larger open source projects and I was able to participate in the conversation. Working with Docusaurus and the supervisors, I learned some really nice test tricks and a whole range of strategies that I couldn’t get from many tutorials. Really, just getting the chance to work on such a large repository has made me grow as a developer.
What advice would you give future contributors to the open source project?
I would say debug and trace the repo from the start. This would help you grow the code base faster, and you would get the best of it, contributing to open source and fellowship in that way. Don’t get stuck trying to figure things out for yourself. Ask the carers and community for help and I am sure you will get great results.
We’d like to thank Samuel for her continued contributions to the Facebook open source ecosystem. You can follow Samuel’s work on GitHub and LinkedIn.
To learn more about Facebook Open Source, follow us on Twitter, Facebook, and YouTube for relevant updates, and visit the Docusaurus website, Twitter, and GitHub to learn how to get started.