Giving back to the community


TL; DR

Be the person you need. Summarize and help those who need help. Try to help with work that you’re interested in. Don’t be intimidated to help; someone has to help, and you don’t need to be an expert to teach. The sooner you do something, the faster that you can learn.


At the start of my career, I felt like an imposter. I worked at companies that used CMS’s such as Umbraco, Sharepoint, and Drupal but hardly ever had to do any real customizations. Whenever I did do complex work, I had a mentor to guide me. The imposter syndrome only got worst as the client requests got more and more complicated.

I do not think that I’ve emphasized this enough.

Whenever I did any complex work, I had a mentor to guide me.

Someone more experienced than me was willing to answer my questions. I had to learn how to phrase my questions just right so that he can help me. I think that the importance of helping out in the community is overlooked; we live in a world where there is more data than we can hope to parse. Although technology is getting better at providing contextual data, I believe that having a person explain a topic is more valuable than having an algorithm provide hyper informed suggestions.

Once this became apparent, I decided to volunteer more around the community. This led me to think of a few different ways of helping out. The following are a few that I came up with:

  1. Participate in open source projects
  2. Participate in hackathons
  3. Participate in local meetups
  4. Participate in mentoring programs

The last three months, I’ve been doing these things and a few more.

Participating in open source projects

It is important to call this out at once: contributing to an open source project does not mean that you need to write any code. There are so many out there, many of which might just need some better documentation, testing or just code reviewing. Beginners are often intimidated by complex open source projects, but they do not need to be. Asking to see how one can be a part of the project is often the best way to start.

In July, I became a team lead on an open source project called Alliance Community. It’s been a lot of fun and was even made Scrum Master (they use the term Coach). It started because I wanted to help out doing code reviews, and ultimately ended up restructuring the entire application. It’s important to note that my beginnings at Alliance Community seem rather small; I started small and gained responsibility as time passed by.

This is important.

I started small and gained responsibilities as time passed by.

Participating in hackathons

Aside from trying to find a project online, you can also participate in hackathons. This is a great way to learn and give back; you get to work on something small that has potential to grow really big. You’re also able to work with individuals that have very diverse backgrounds.

In October, I participated in a Hackathon called She Hacks Chi. It was aimed at mostly female developers trying to get young girls into Science, Technology, Engineering and Mathematics (STEM). I participated by becoming a mentor for the hackathon. The team I mentored ended up winning an award for appealing to the most young girls.

Helping out in Hackathons is a great way to share your knowledge and learn something new. They are very focused and everyone at the hackathon is there for similar reasons.

Participating in local meetups

Giving back can be done through your local meetups. It is important to note that you should share whatever knowledge you find valuable. When I was a beginner, it was very difficult for me to find what to share because I felt that everyone either (a) was too advanced for my contributions or (b) my contributions were not applicable to anyone. Regardless of what skill level you’re at, share the knowledge.

In September, I gave a lightning talk at Chicago Ruby about programming for the internet of things using Ruby. Ruby is not usually the first language that people consider for the Internet of Things but I provided two use cases in which you can use Ruby to perform these things. In the process of preparing the lightning talk, I ended up fixing the Artoo Ruby gem and made my first unintended open source contribution.

Going to local meetups will benefit you in a sense that whatever you share, it will be rock solid; you will likely do research and try to think of your nugget of information as something that can help many people. This will allow you to get a better understanding of what you’re doing and where you’re going. The best part of it is that you will educate people around you.

Another helpful thing about local meetups is that you get to see what is currently being done in the industry. You will learn what new technologies or paradigms are out there, and how they are actively being developed.

Participating in mentoring

Another way to contribute to the community is to mentor someone. It can be a friend, a co-worker or a stranger. Find a local meetup and offer to start a mentoring program that is a few months long.

As of mid-October, I have been mentoring two exceptional developers in Web Development using Python. I was able to find them by going to Chicago’s Python user group (Chipy). The program is meant to teach an individual how to do some web development from the ground up.

There are other groups that are looking for experienced developers to mentor the youth. The best way to find these types of groups is to go to a meetup group and find out how you can help. It doesn’t hurt to ask.

Final notes

There are many ways to contribute to the community. Other people will learn and will teach you new things. You don’t need to be an expert to teach people. Some people are known for thinking that the best way to learn is to teach.

Go out there and make a difference. Help out the people who were in your shoes when you were getting started. If you’re a beginner, voice your thoughts and ideas. You’ll impress people and get valuable feedback.