Yep! That is me in black, looking all serious at our team meeting for LadyHacks2017. I attended my first hackathon over the weekend and it was a fantastic experience. LadyHacks is women-only event organized by women of the Greater Philadelphia tech community.
The event took place at Azavea, which was a perfect space for working at an event like this. There were conference rooms available, a stocked kitchen and living room-type spaces spread throughout. I have to admit that I checked out their website to see if they were hiring after using the space the last couple of days!
The event was attended by almost all first-time hackers, so I felt like I fit right in. It was also a confidence booster to realize that I was not the “newest” person in the room. While I still have a lot to learn, I definitely wasn’t out-of-place and was able to contribute to my team’s project. So the first thing that I gained from the experience was a decrease in “imposter syndrome.”
It started Friday evening with a time of pizza and networking before moving into the pitches. Several people got up to share ideas based on this year’s theme of STRENGTH. It was really hard to pick what I wanted to work on after listening to all the pitches because there were several interesting ideas.
In the end, I chose to work on a project presented by the co-founder of CLASP. CLASP stands for Community Legal & Advocacy Services Project. Her idea was to create a website where people can get information about prosecutors to make a more educated decision when voting in elections. I was drawn to the fact that it was a civic project that would continue past the weekend, so I jumped right in.
We spent some time brainstorming ideas and came up with the team name “Justice League.” We decided to focus on local candidates that were going to be running in a Philadelphia election this week. The idea was to create a backend with databases since all information is currently being kept in google spreadsheets and gathered using google forms.
On Saturday we decided to break up the work into three teams, a backend group, front-end group, and people working on gathering data. The group chose one candidate to focus on and we got to work. I was part of a three-person backend team. We created an app using Ruby on Rails and worked on figuring out necessary models and table information. One of the challenges we faced was trying to limit the scope for the weekend, while also keeping in mind that the eventual goal is that this site includes information for federal, state, and city prosecutors.
I really enjoyed the backend team that I worked with. Both of the other women attended an in-person bootcamp in Philly and one of them is even a former librarian making a career change into web development! One of the interesting things about working on a project like this is the fun of not knowing ahead of time what you will be working on and what technologies you will be working with. I expanded my skills in areas that I wouldn’t have even thought of before. Here are my top three take-aways:
- Github I feel very comfortable using github in my daily work flow, but I am usually just working in my own personal repositories. I gained a lot of knowledge about how to work when multiple people are all committing to the repo at the same time. I also learned some cool features to help with solving merge conflicts. My favorite is -difftool, which actually gives you a visual representation of the two files and their differences side-by-side.
- JSON data I think my favorite new discovery was how to convert information in a google spreadsheet into a json file. We then figured out how to use that file to seed the database with the information that the data team found. I didn’t work much with seed files in earlier Rails projects, so this was fun.
- Naming conventions You would think that something like this would be a no-brainer, but my team managed to use either Ruby-protected or Rails-protected words TWICE in our work! I blame words that have multiple meanings. When we decided to use a Case model, we were thinking about legal cases, not case statements! So, we changed case to trial and renamed everything in the database, models, and controllers. We then discovered that one of our table column names was also protected, so repeated the process again…
I haven’t been very good about getting myself out there in the Philly tech scene so far. I always have good intentions, but let my shyness and my busy life get in the way. I had a blast this weekend and I need to remember that the next time I am on the fence about attending a meet up!
I would love to continue working on the project in the future. You can check out the repo from this weekend here.