Mentoring Hackers @ BlocHacks Hackathon

BlocHacks - Hackathon for Social Good

Last weekend I gave my first live coding workshop at BlocHacks and I also participated as a mentor. BlocHacks is a hackathon for social good organized by the team at DevBloc, the social innovation catalyst at The Refugee Centre. Check ‘em out: http://devbloc.ca. The challenge given at the beginning of the hackathon was provided by the United Nations Refugee Agency (UNHCR) and gave the hackers a lot to think about while designing their solution.

Workshop:

During the course of the 24 hour hackathon there were multiple workshops presented to the hackers. There was one by Google, one by IBM, and one by… me & my teammates! 😅 We were tasked with giving an introduction on building a chatbot, using React Native & IBM Watson. I was in charge of the React-Native part & my teammate Chris was responsible for the Watson part.

The room was packed as attendance was around 30 people; an amazing turnout - more than we expected! 😄 I began from scratch and started a React-Native project with Expo using CRNA. I was casting both the mobile phone & the code editor to the projector and enabled hot-reloading so that everyone in the room can see the progress & debug problems in real-time. The first part was to introduce the basics of React-Native and build a component with basic styling to display chat messages and an input box, using the state to store all messages. The second part involved using lifecycle methods and callbacks to make API calls to the Watson service and display message responses on the screen. The result is very simple (See it on github), but the main challenge, given that we had a time constraint, was to balance the amount of time spent on explaining core concepts about the language and technologies being used, versus actual implementation and focusing on the goal of building a chatbot. In addition, the level of experience of attendees ranged from non-developers to seasoned React developers, so I didn’t want anyone to get bored or to feel lost at any point.

Live coding was a cool experience. I had existing code available for reference in case something unexpected happened, which I felt was a solid backup plan to avoid freezing during the live presentation. Some bugs did appear but I knew how to fix them right away and explained the problem & solution to everyone, which was cool. This provided a glimpse to the attendees of some common issues faced when working with React-Native.

Anyways, it went really well. I deployed the app to Expo and displayed the QR code on the screen for everyone to try it out themselves on their mobile phones (hurray for cross-platform!). This added a more interactive feel to the workshop which I feel was beneficial; showing everyone that in less than an hour they can have a working chatbot that can be used in their hack for example.

Mentoring:

Now as I mentioned I also volunteered as a mentor for this hackathon. This was my first hackathon mentorship experience and I was worried that I would not be very helpful to the participants, I mean I’m just a student right?

The way it was structured was that there would be three mentor-hours during the course of the event where participants will be able to ask questions to the mentors. I put myself in the participants’ shoes and realized that it may seem kind of intimidating, people are usually reluctant to ask questions from fear that it would look “dumb” to the mentors (“experts”). From personal experience I feel like this sort of situation happens a lot, from classrooms to work environment, there’s this fear of sounding foolish in front of those seen as experts (mentors, project managers, etc.) as if seeking knowledge from others is a disservice to one’s own intelligence, weird isn’t it. ¯\_(ツ)_/¯

Anyways, we did not get called up by many teams when the announcement for the mentor-hour was made and so I decided to take a different approach. At random times, I went table to table, sat down with the teams and started talking to them in an informal manner about what they’re working on. Through these friendly conversations, we would identify blockers and think of ways to overcome them. This broke down the barrier between mentor & participant and created an environment where it was easier to communicate. I stuck around throughout most of the hack, and hackers were not hesitant in letting me know when they needed a second opinion or some advice, we became kind of like friends, it was really fun. 🙂

I ended up helping out in technical areas like Firebase, MySQL, Android, Solidity, React, etc. but also in terms of brainstorming and feedback about design and direction of their project. This actually helped me a lot in terms of self-confidence; let me elaborate. The tech field is so vast and ever-evolving that you always feel like you don’t have enough knowledge, because there is so much to learn and you only ever get to scratch the surface. As someone who recognizes that and is always looking to learn something new, its often difficult to venture deeply into a single topic. So this really made me realize that the breadth of experience and topics that I read and learn about are actually not to be taken for granted and should be appreciated by myself. I surprised myself in my own ability to help others, which really boosted my self-belief and encouraged me to continue learning every day. That’s really (selfishly?) one of my biggest takeaways from this mentorship experience. Assisting others overcome challenges in any way possible feels great, and I would love to do this again soon.


Thanks to the organizers for giving me this opportunity! 😊