Code & Coffee: Uptown Brigade

In September 2017, I launched an edition of Code & Coffee in Uptown– my neighborhood in Chicago. In collaboration with my friend and colleague, Ryan Koch, we have launched a weekly meetup for the technology community in our neighborhood. In three month’s time, the group on meetup has grown from zero to 136 members, we have begun a civic technology project in collaboration with the Chicago Public Library, and built an inclusive, diverse community composed of diverse ethnicities, gender identities, and faiths. Our small but mighty group was invited to participate in the Code for America Brigade Congress and gained the attention and support of our local Alderman’s office in securing local government buy-in for our civic hacking projects.

Due to demand, we have expanded our twice-per-month co-working event to a weekly gathering at Emerald City Uptown and begun to pioneer an evening edition dubbed Bytes & Beer in collaboration with the Uptown Arcade.

In addition to the resource portal for underserved residents in our neighborhood and have been asked by the Chicago Public Schools to breathe new life into our neighborhood public school’s website.

I am proud of the eclectic group’s diversity not only in terms of technology stacks but racial and ethnic diversity, gender inclusiveness, age, and socioeconomic inclusiveness. Future goals include partnering with other community organizations such as TransTech Social and the Center on Halsted to reach broader and more diverse groups of technologists.

Check out our website and join us on Slack!

It’s Working! ChiPy Mentorship Next Steps

This triumphant scene is from everyone’s favorite installment of Star Wars: when young Anakin Skywalker, played by Jake Lloyd, fires up his pod-racer for the first time– and it works! The sentiment is akin to running a program, again, and for the first time, returning the desired results instead of error messages.

Well folks, 13 weeks later, I’ve gone from a tinkering script kiddie to a Padawan of the Jedi Arts software development. Some really serious interpersonal changes have happened in a relatively short amount of time:

  1. I came to the ChiPy Spring Mentorship Program with low confidence. I’ve always wanted to be a programmer but high expectations and hyper-critical energy from my folks growing up instilled the idea that I couldn’t ever do it.
  2. Surprised that I even got accepted, I began to struggle with imposter syndrome. While not the first time in my life I’ve experienced such a phenomenon, this is the first time that people I respect and look up to have acknowledged the real battle within. My formal mentor Chris as well as Ray the program coordinator, other mentees, and ChiPy members have made me feel welcome, valued, and capable of participating in this environment.
  3. After all these years letting the creative, innovative part of my brain stagnate, for the first time I feel energized, empowered, and excited to be working on things that fuel and thrive off this type of energy.

That said, I’ve also gotten some serious work done through the mentorship program; three projects to be precise. Chances are, without the structure, rigor, and support of the program, I’d still be struggling to get my first project off the ground. So what DID we do anyway?

  1. Used Python’s CSV library to create a script that automates a previously manual, inventory review process at my day job. The labor intensive process took several hours each week to resolve and the simple script has shaved at least 5 hours per week off my workload. Getting this out of the way first not only was a powerful learning experience but gave me the opportunity to free up more time to study and code.
  2. Using the Requests framework and some API endpoints, build a command line tool which keeps track of the running total cost of meetings attended by federal employees.
  3. Hot on the heels of the meeting tracker command line script, my mentor introduced me to Falcon, a microframework for developing APIs. Using gunicorn and Falcon, I turned the command line script into a microservice which accepts JSON input. I am currently working on a React.js front-end which can connect to the microservice. Any front-end tips/ tricks/ pointers would be most welcome! You can access the microservice on Heroku. It accepts JSON input like in this sample.

This Friday I am leaving for vacation in Alaska with my sister. Even though I will miss the final ChiPy meeting of the mentorship, I am so excited to share with you all a video of my progress and celebrate our monumental successes alongside my peers.

There is a lot of momentum right now and while I am still learning not to compare my progress to other people’s, the ChiPy Mentorship has helped me grow as a person as well as a programmer. I am excited to continue learning about this field, sharing my progress, and seeking the advice and camaraderie of fellow developers.

As an avid scuba diver and student of Buddhism, the journey has reminded me of this powerful Confucian mantra.

Falcon, JSON, APIs, Oh My!

This is the final blog post of the ChiPy 2017 Spring Mentorship, but the experience is far from over! I began the program as a timid, self-concious, and novice programmer. Only one of these three conditions remains true. While I might not be an independently amazing, full-stack developer just yet, the weeks which have transpired since the beginning of the mentorship. Not only do I feel confident I know how to reason my way through most Python-related problems, given some time I can definitely even figure out the implementation!

I have learned how to use Git, set up virtual environments, edit my terminal colors in the bash config file, and gained practice making two command-line tools. The struggle to overcome imposter syndrome continues, yet my proficiency is growing– which makes me feel proud of my effort and grateful to the program for the opportunity to …. program.

So what’s new since last time?

I still have two primary projects contained within the scope of the mentorship. The inventory reconciliation script and the federal employee meeting cost calculator. Since we talked last time, the meeting cost calculator has grown a bit. Since the dataset containing federal employee locations, grades, and salaries is incomplete when looking up individuals by name, a workaround is to query the API using the individuals’ grade and step, equivalent to a rank in the armed forces. This method always returns some non-zero integer which directly addresses a major design flaw in the previous version.

The next step now is using Falcon instead of Requests (process outlined in the first ChiPy blog post). Falcon is a WSGI framework which allows for the construction of speedy APIs to handle simple HTTP verbs: GET, POST, PUT/PATCH, DELETE.


A falcon

So why do this if the program was essentially working before using the Requests framework? Sure, the program “worked,” i.e. a proof-of-concept was created. The goal now is to improve usability of the application and even build a JavaScript front-end that can be presented to the group on July 6!

The program working as a command line script. Dreaming of a day when it can be accessed from the web!

Here’s a sneak peek— but take note that it doesn’t work yet! There are even some lovely notes from my epic mentor Chris Foresman for your enjoyment. Chris was generous to gift me 500 hours of Heroku Cloud Application Platform so we can get it launched!

Happy coding!

On Learning Python: Pixie Killing, Imposter Syndrome

Adventures with Python continued this past month with the Chicago Python Mentorship Program. I’m pleased to announce significant progress with two projects that have been the focus of my participation, both the inventory control script for my work and a meeting cost calculator for Federal employees. However, the biggest gains in the past month manifest not in lines of code, but rather feeling for the first time that, I can do this.

Over cookies and coffee with Ray Berg, Braintree Developer and Mentorship Coordinator, we carefully unpacked two concepts that have been key to my participation as a mentee: pixie killing and the imposter syndrome. In my last post, I referenced my fascination with the “magic” of technology. Crediting my mentor, Chris Foresman, an amazing brain and computer scientist for Sprout Social, I have been able to learn a tremendous amount about why these lines of code I type into Atom can direct a computer to behave in a certain way– accomplishing complex tasks automatically. While True: this does take some of the sorcery out of technology, it has made me a more competent and confident budding programmer.

Confidence is key to being successful in this (or any field). The Atlantic wrote recently about a confidence gap that exists between equally qualified women and men performing the same work. Making the decision to build my skill set and move towards the tech industry has raised a lot of questions. Can I even do this? What am I doing here trying to talk the talk with so many well-qualified and experienced programmers? Am I an imposter? Imposter syndrome is a real issue defined by the American Psychological Association. And the issue of feeling like a fraud isn’t new, even in the wild west of software engineering.

There are lots of folks willing to help overcome these issues of confidence and self-doubt in the computing community. If you’re a mentee in the program and this is on your mind, let’s talk about it! Or talk to your mentor. Or one of the coordinators. You can also look here. Or here. Or here.

Additionally, this is the first time that I’ve built a program that carries out several complex tasks simultaneously in order to return the desired output. Several times throughout the process I found myself feeling overwhelmed, confused, lost, and generally anguished. But yet again, I was reminded that I’m not alone in facing these challenges. In addition to the helpful community on Slack, Chris introduced me to a new strategic approach to programming, “chunking.” Essentially breaking up the larger program into smaller, more manageable components, testing these components individually, and then, once working integrating them with other “chunks” of code to hack together a working prototype. Chunking is also an excellent way to debug when errors happen. Directing the computer to return information that the program ought to have gathered by certain points in the operation, the savvy programmer can better see where the error might be originating.

Cool, so I learned some stuff. But what have I actually done with it? Part of my job used to involve a tedious, weekly manual review of inventory manifests. The process required me to compare a warehouse and an office manifest and account for discrepancies greater than 500 items. Passing this data into two CSVs allowed me to lean on Python’s built-in CSV library to build a script which completes what previously took hours out of my week in under 5 seconds.

Items that diverge by more than 500 stock are printed.

In the script above, item numbers that diverge by more than 500 stock are printed. Other items that appear on one list but not the other are parsed with the exception handler and printed as a double-check for the operator (me). Shoutout to fellow Chicago Pythoneer and ChiPy member Ryan Koch for his help with exceptions.

A less practical but more fun project nearing completion is a meeting cost calculator for Federal civilian employees. The user enters all the attendees at a meeting, using requests, Python pulls the public employee salary data from an API, and the cost of the meeting in calculated in real time.

I’m having a blast and am looking forward to continuing to share more with my fellow mentees and the Chicago Python community!

CHIditarod XI

Friends, family! I am happy to announce that I will be participating in the 11th annual CHIditarod.

CHIditarod is Chicago’s 100% volunteer-driven epic urban shopping cart race, charity food drive, costumed beauty pageant, talent show and chaos generator, all in one. It’s a micro-grant fundraiser for the CHIditarod Foundation, and probably the world’s largest mobile food drive, benefiting the Greater Chicago Food Depository.

I will be braving the ice and snow of Chicago’s winter to dress as Scooby-Doo with 4 other valiant RPCVs. As the Mystery Team, we gallivant about the world attempting to solve various social issues each member holds dear to their heart. Community gardening, women’s empowerment, marine conservation, and animal rights count among these causes. Together we unveil that behind each of these seeming intractable ails of the modern world- just like the other ghouls, goblins, and ghostly apparitions our town fears- there is a reasonable solution.

Mystery, Inc. is about to embark on its latest adventure, the quest to vanquish an alarmingly large villain in our own backyard: Hunger. Through their participation in the 2016 CHIditarod, we hope to raise as much non-perishable food for the Greater Chicago Food Depository as possible. To date, this event has raised over 100,000 pounds of food for our Chicago neighbors.

Chiditarod 2014 & 2015

Please support us by making a donation to the cause via our team’s page on Razoo.

Your generous donation supports grassroots, hunger-fighting initiatives. CHIditarod parters with food banks, urban farms, educational programs for children in Chicago Public Schools, mobile farmers markets, and more!  Thank you so much for your generous contribution, it makes a world of difference.

Upon commencing a sabbatical from Mystery Inc., the five members traveled across the world in pursuit of fulfilling work and the promotion of world peace. Their colorful history as a crime-solving team had oddly prepared them well to tackle social issues far and wide. Join the Mystery Team in their latest adventure against an alarmingly large villain: Hunger. ZOINKS!

As Peace Corps volunteers we engaged in the search for creative, fun solutions to difficult problems. After service, we remain committed to confronting hunger, a major issue in our new home of Chicago.

Fred Jones, worn out from the stress of Mystery Inc. and overwhelmed by the tightness of his ascot, set out for Senegal, West Africa, in search of a new experience. Upon the return to his motherland, Fred has enjoyed bicycling to breweries and pursuing the search for the perfect new ascot.

Miles Conant as Fred Jones

Danger-Prone Daphne, after being evacuated from Ukraine, has set roots in Chicago. Despite being back in the US, her love for vodka and adventure continues! Daphne can now be found marathon training with Scooby. By the way, after Daphne was evacuated from Ukraine, she returned to an active war zone to pick up her dog who now lives safely in Illinois.

Rachel Story as Daphne Blake

Velma jetted off to Morocco to solve a mystery when she lost her glasses back in the US! Luckily she solved the mystery of Moroccan Arabic and got a new pair. When she isn’t solving mysteries Velma likes sing with her choir, work on her cooking skills, and day dream about her next adventure.

Lexy Huber as Velma Dinkley

Shaggy, having been surrounded by a perpetual haze all of his life, awoke one day to find his aspirations dissipated into smoke. Realizing nothing of merit had been accomplished in his life thus far (beyond training a dog to giggle); he joined the Peace Corps and took off to the other side of the world. He’s recently moved back to Chicago. Shaggy has since donned a tie, got a haircut, and found a real job while still attempting to maintain that hippie spirit.

Mike DeLadesmo as Shaggy Rogers

Scooby Doo recently arrived in Chicago after pursuing good food and cheap beer in Guatemala. Between snacks, he can be found pursuing his passions for scuba diving and marine conservation.

Yours truly as Scooby-Doo!

For those of you in the Chicago-area, the CHIditarod will take place on March 5. You can come out and support Mystery, Inc. in the battle against hunger!

Please support us by making a donation to the cause via our team’s page on Razoo.