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.

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.

http://pre11.deviantart.net/a182/th/pre/i/2010/120/b/c/the_imposter_by_yastach.jpg

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!

Protesting doesn’t “DO” anything

The other day a colleague told me that he doesn’t understand why people block the streets and disrupt his commute to protest. According to him, protesting doesn’t “DO” anything.

Immigration Ban Protest at Chicago’s Federal Plaza | source: wikimedia

When I questioned him further he told me “no serious policy change” has come about as a result of protest action. After I cited the civil rights movement of the 1960s, I was told “well that was different.”

Why?

These protests sprung from the centuries-old, systemic oppression of people of color by whites. The entire movement can be attributed to a marginalized minority group with no other course of redress. A government “of the people, by the people, and for the people” consisted and served only the interests of white Americans. Folks of color, primarily black people, were so disenfranchised and downtrodden by the societal apparatus that they had no other way to express themselves, vent their frustration, or be heard.

In the days before the Internet and social media, taking to the streets was akin to sharing a status or posting to a trending hashtag. Standing up for what you believe in, disrupting a majority group’s privilege, being heard, and being seen is, quite frankly, DOING a lot.

Congressman John Lewis as a member of the Student Nonviolent Coordinating Committee (SNCC) is beaten by white police officers on March 7, 1965. | source: US Embassy The Hague

Being in the streets, eating up government resources, reminding the majority that America does not stand for tyranny, and disrupting a status quo that seeks to dehumanize and disenfranchise minority groups calls attention. It calls a lot of attention.

But what about “counter-protesters”? Don’t they call a lot of attention too?

Today: A Trump rally where a black woman is beaten and verbally abused. Is it so different from a crowd of white people beating, fire hosing, and turning dogs upon black people in the streets?

Today: “Counter-protesters” in Berkeley who beat victims senseless while the police look on with indifference, or are complicit themselves. Dallas. Ferguson. Detroit. Cleveland. Baton Rouge.

A 1942 sign in a Detroit suburb. Make America Great Again? | source: wikimedia

So “counter-protesting” is not a real thing. It’s a term coined by modern day oppressors to whitewash acts of intimidation. Extra-judicial killings of minorities are not new to America. The shame of lynching, abuse, and systematic violence as a form of oppression continues.

The extra-judicial killing, lynching, of Laura Nelson in May 1911. | source: wikimedia

Recently race-based violence has superseded justice and imposed death sentences upon Dontre Hamilton, Eric Garner, John Crawford III, Michael Brown, Ezell Ford, Dante Parker, Tanisha Anderson, Akai Gurley, Tamir Rice, Rumain Brisbon, Jerame Reid, and Laquan McDonald. for being of color. And it keeps happening. Again. And again.

So the next time you hear someone speaking from a place blinded by a history of privilege, check them. Check yourself. And acknowledge that protesting is a legitimate way of DOING something. Anything. For some people, it’s the only option they have.

ChiPy: Python, Snake Charming, and Civic Tech

ChiPy (pronounced ‘chi,’ as in “chip,” ‘pee’) is a Chicago-based Python user group. Opening their doors to members of all-levels, ChiPy is a supportive space where novice programmers like me can sharpen their skills in a non-judgmental community. I was thrilled to be part of a small group selected to participate in ChiPy’s sixth iteration of of its nationally acclaimed Mentorship Program.

Upon embarking on this 12-week journey into the world of computer programming (which turns 70 today), I was fascinated with the magic of technology. Learning Python, to me, was akin to charming snakes. The earliest records of snake charming can be traced back to ancient Egypt where charmers acted as mystical healers and consultants to their clients. Using their magical ability to charm snakes, snake charming grew into a venerable and respected profession in the ancient world.

Fast forward to modern times, and I find myself enamored with the power of computing. As a full-time bureaucrat and millennial by birth, I find these components of my identity at odds. Why am I struggling day in, day out to use labor-intensive, manual processes on geriatric computer systems when, as Code for America’s Chicago Brigade Leader, Christopher Whitaker writes in his book, we have the power of a 1950s supercomputer in our pockets? As I was completing a weekly manual review of thousands of lines of XML containing addresses and order numbers, and comparing two CSVs side-by-side in Excel, I couldn’t help but think: there has to be a better way.

But how?

As a digital marketer by profession in the public service industry, I’ve been a regular attendee of Chi Hack Night, a weekly civic technology hackathon. Notably I supported the Chicago Nursing Home Search project by translating marketing graphics into Spanish for their launch. I also document the pre-hack meetings for the Chicago chapter of Young Government Leaders. While using my talents to support the civic tech movement is rewarding, I couldn’t help but notice all these cool applications changing the face of how social services and the public good can intersect with modern innovation in the digital age.

Yet I barely had the skills to create a basic HTML website from another developer’s template. Reenter ChiPy.

I am simultaneously humbled and floored to be working with my mentor Chris Foresman, a senior developer with Sprout Social, Ars Technica contributor, former indie record producer, dad, and all-round badass.

In the three weeks that we have been working together, I have used the Python CSV library to automate what was once a tedious, manual process in my day job. Chris’s Purdue computer science background really adds an interesting level of theoretical depth on how each line of code is parsed by the operating system and executed by the computer’s hardware. I find that my mentor’s formal education combined with a successful career as a technology writer and over six years of professional experience as a developer makes for an incredible learning experience. The patience and wisdom that come from having a three-year-old son at home also aren’t lost on me and greatly appreciated.

Next up, Chris and I plan to use Beautiful Soup and Requests to build an app that calculates the cost of meetings conducted by federal employees. Another tool I hope will encourage attention to transparency, efficiency, and efficacy in my line of work.

Image result for requests http for humans

Towards the end of the 12-week experience, I hope to have time left to pick Chris’s brain about APIs.

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.

size_550x415_scoobycinema10

On Fleek, Swipe Right

Sitting on the subway and minding my own business was suddenly made incalculably more difficult when she got on the train. As her feet crossed the threshold of the platform, the warm fall day seemed to permeate the metal sides of the train raising the temperature several degrees. Tossing her reddish-brown hair over the left shoulder, she glanced around the sparsely populated car. I couldn’t help but notice her perfect fitting black baby doll t-shirt tucked seamlessly into a pair of waist-high skinny jeans which tapered at the ankle. Her red canvass flats matched the lush red of her lipstick which was the only makeup she was wearing. Two small pewter lighthouses dangled mysteriously from her earlobes, guiding my thoughts through the tempestuous churning beginning just below my navel.

My stomach did a somersault as she took the seat across from me. There were maybe three other people in this particular car. We made eye contact briefly and I looked away, hurriedly feigning a profound interest in the misspelled National Guard recruiting poster above. Moments later the girl took out a brown hardcover book with black binding on the spine. There was no dust cover and the tome was sans title. Naturally, I was intrigued. Her eyes flicked up at me again and then back down at the leaves of her book.

“What are you reading?” No. “I like your red Toms.” Even worse. “Hi, my name is Cyrus.”

No way, none of those are acceptable ways of initiating conversation. If I’ve learned anything from my time back in America, it certainly isn’t acceptable to strike up a random conversation with strangers. It immediately brands you as a “creep” or a “weirdo.” I certainly wouldn’t want this young lady to deem me basic, as if her stunning outward appearance were the only thing I was interested in getting to know.

Before I could arrive at the most appropriate way to parlay my doubt into a decent conversation, a scruffy looking fellow stumbled over. Pungently perfumed with the scent of stale malt liquor, he took the initiative that I had been lacking.

“Hey girl, where you goin’?”

Bracing myself to feel an onslaught of discomfort and secondhand embarrassment, the lady gracefully disengaged without the slightest bit of awkwardness or demeaning the enterprising gentleman in the slightest. Great. If it was unacceptable to strike up a conversation before, that guy just totally torpedoed any possibility.swiperight

As I continued to admire the ads posted above the opposite row of windows, I noted another gentleman step onto the train. Completely immersed in his smartphone, he glanced around the car and took a seat a few spaces to my right. Furiously swiping left and right on his phone, this man was on a mission. Now he’s typing something, furtively glancing around between words. I watch his dancing fingers, looking to avoid the temptation to stare at the pretty girl. After a few minutes of this, I return to watching Chicago’s majestic skyline from the window, counting stops.

The girl, balancing the book, spine up, on her knee, has taken out her phone. A smile flickers across her face as she looks around the train.

“Hi, Greg?” she asks with only a hint of apprehension in her voice.

“Hey nice to meet you. Carey, right?” he replies without hesitation.

“What? How was this happening?” I marveled to myself, and continued to listen.

“Yeah that’s right, crazy that we’re both right here and we matched.”

“I know, right?”

They begin to chat animatedly and over the course of the next four stops the newly matched pair covered Carey’s book, Greg gave appropriate comments about her lighthouse earrings, and they covered topics ranging from the Cubs to their daily occupations. Are you kidding me? I was struck dumb by my apparent lack of dating app prowess.

By the time I stood up to get off, Greg and Carey had already made plans to hang out the following weekend and exchanged numbers. While stigmatized behavior to strike up a conversation with a stranger on the train or in a coffee shop, the use of a dating app to do the same thing was completely acceptable. Though I have no concept of the smooth first text message game of Greg, Surely the same approach, as demonstrated by the malt liquor man, would not have been effective in a random, first-time, face-to-face encounter.

“On Fleek, Swipe Right” is my first attempt at fiction in over a decade. I welcome any feedback you may have!