While riding the ferry to Liberty Island, looking back at the Statue of Liberty and South Manhattan; photo credit: Katherine Michel
While riding the ferry to Liberty Island, looking back at the Statue of Liberty and South Manhattan; photo credit: Katherine Michel

A Powerful Call-to-Action

PyGotham, New York City's regional Python conference, took place again last fall at the historic Hotel Pennsylvania, in the heart of Manhattan. I've been fortunate to have been able to attend PyGotham every year for the past three years.

The content at PyGotham is excellent and I always find myself struggling to choose which talk to attend (fortunately, the videos are published online).

But what stood out to me the most this year, was the collective call-to-action to make the tech community a place where everyone can feel a sense of belonging and thrive.

I felt this call-to-action in several ways:

In addition to open captioning, every PyGotham talk was interpeted in American Sign Language.

The three keynotes, "Python Use Spectrum" by Kojo Idrissa, "Accepting your successes" by Piper Thunstrom, and "Because Equity: Python FTW" by Meg Ray, were about welcoming people on the fringes into the community and making them feel valued, for the greater good of all.

I felt inspired by a talk by Froi Irizarry Rivera and José Padilla called "Python, Governments, and Contracts," in which they told of their feeling of helplessness as they watched a hurricane ravage Puerto Rico and how they had spontaneously channeled their frustration into an appeal for grassroots volunteers who have now created powerful tools to root out corruption.

And during my own visit to the Statue of Liberty and Ellis Island, I watched Ranger Jenn re-enact the impassioned stories of people who had arrived at Ellis Island as prospective immigrants. She told of the extreme adversity many had faced to be accepted in the United States. More about that later in this blog post.

All converged into one interwoven experience that felt very fitting in such a diverse city.

A Note About American Sign Language at PyGotham

Approximately a month before PyGotham, I attended an event at Strange Loop conference in St. Louis where a deaf woman named Mel Chua was a featured speaker. Mel is an electrical computer engineer with a background in free open-source software (FOSS), large-scale distributed engineering team collaboration, and engineering education culture.

Mel told her story, primarily through American Sign Language. I'm embarrassed to say, this was the first time I can remember ever having seen sign language interpretation happen in real life.

Having grown up loving math, science, and computers, Mel wanted to join the "beautiful" tech world. But she wanted to leave behind the things that made her not fit in. Eventually she realized that by being her true self and becoming what tech looks like, she could make the tech community more welcoming for people like her and impact the perceptions of others. Cultures form in response to the people in them, she pointed out.

Mel gave a call to action during her message, to see tech as one culture. "Let’s hack it together, and remake it in the image of all of us," she said.

After having heard Mel's powerful message at Strange Loop, it made me happy to see her at PyGotham, along with a group of other deaf developers, making use of the services of the American Sign Language interpreters.

A. Jesse Jiryu Davis wrote "PyGotham 2019's ASL and Live Captioning Playbook" in the hopes that it will be used to make other conferences accessible for the Deaf and hard-of-hearing.

Members of the Deaf community at PyGotham; photo credit: A. Jesse Jiryu Davis (used with permission)
Members of the Deaf community at PyGotham; photo credit: A. Jesse Jiryu Davis (used with permission)

Friday

Python Use Spectrum

I was thrilled that the conference kicked off with a keynote about the "Python Use Spectrum" by Kojo Idrissa!

Kojo is a DjangoCon US Organizer, former DEFNA Board Member, and currently DEFNA North American Ambassador. DEFNA is the non-profit that oversees DjangoCon US (disclosure, I'm a DEFNA Board Member and DjangoCon US Website Co-Chair). DEFNA also provides small amounts of funding for Django events in North America. As a fellow organizer, Kojo extended an official "hello" and group hug to the PyGotham organizers from the DEFNA Board and DjangoCon US team. Thank you, Kojo!

Kojo's talk was about how we, as a community, can ensure that as Python grows in use, the number of contributors and the skillset of contributors grow as well.

Kojo Idrissa; photo credit: Casey Faist (used with permission)
Kojo Idrissa; photo credit: Casey Faist (used with permission)

CPython, the most popular implementation of the Python interpreter, is an open-source project developed primarily by volunteers. Burnout is a real possibility. As projects like CPython grow, they also need skills beyond coding, that are not taught in traditional CS programs.

Kojo showed us what he calls the Python Use Spectrum. On one end of the spectrum is programmer. On the other end is software engineer. Data scientist is somewhere in the middle.

A programmer might be working alone, using just Python to solve a problem. Perhaps he or she is a professional making a tool to improve their workplace, or a hobbyist making a video game or a website.

On the other hand, a software engineer tends to be a member of a team, using special tools and a process to ship code professionally. The code itself is the product and might be used by other people.

Kojo Idrissa; photo credit: Casey Faist (used with permission)
Kojo Idrissa; photo credit: Casey Faist (used with permission)

Kojo believes that the Python community has developed a strong bias toward software engineering as the "one true way of writing code" and that this is detrimental to the community.

In reality, everyone on the spectrum is using Python to solve problems and all are potential contributors to the Python ecosystem. One way that we can actively work to increase the number of contributors and the skill set of contributors is by embracing and valuing all members of the community, regardless of where they are on the spectrum.

Kojo Idrissa; photo credit: Casey Faist (used with permission)
Kojo Idrissa; photo credit: Casey Faist (used with permission)

Friday Talks

As a Pinax Maintainer, I find that talks I can apply to my work particularly resonate with me. There were several such talks on Friday.

Hynek Schlawack is a CPython Core Developer and maintainer of many open-source projects. In his talk, "Maintaining a Python Project When It's Not Your Job," Hynek explained how a maintainer with limited time can publish a high quality Python package, that as much as possible leverages the contributions of others. Even though the title suggests it's for volunteer maintainers, the talk included lessons that could be useful to just about any maintainer. Hynek has made a fine science out of creating a welcoming environment for all prospective contributors, removing the fiction from the contribution process, and automating the package continuous integration and release process. This process has also been helpfully documented in an outline on his blog. I particularly liked that the talk went beyond a list of tips, to focus more on the psychology of motivation and time, and the tools and configurations he uses.

I found myself completely engrossed in Mason Egger's high-energy talk, "Building Docs Like Code: Continuous Integration for Documentation." Mason is a self-described "documentation fanatic" who believes that developers dislike writing code because they have to context-switch out of the code writing tools that they love in order to write docs in a workflow they don't love. Empowering developers to document within a workflow they already know and love can result in beautiful, uniform docs. Mason believes we should treat documentation like code... store it in version control alongside the code it documents, write it with markup language, review and test it with the same granularity as code to ensure it is accurate and functional, and auto-publish it. Mason did a review of documentation types and tools, including Sphinx and MkDocs. He also gave a case study and demo showing how he created a docs pipeline.

Going on at the same time as Mason Egger's talk was "How I Solved my NYC Parking Problem with Python," by Jessica Garson. I was particularly interested in this talk because Jessica created a fun app to solve her own problem, something I'd like to do more of myself. Jessica lives in Brooklyn and used to have a car. Because of alternate side of the street parking restrictions, every night at 9 o'clock, she would move her car to avoid an expensive parking ticket. She was spending a lot of time looking for a new parking space, sometimes overlooking that she didn't need to, due to a holiday. So, she built an app that would let her know when she didn't need to move her car! Twice a day, a cron job runs the app. Using a Twitter Premium Search endpoint, when the words "suspended" and "tomorrow" show up in a tweet from the NYC Alt Side Parking Twitter account, Twilio sends her a text message letting her know she doesn't need to re-park. Very cool!

Accepting Your Successes

Saturday kicked off with a keynote by Piper Thunstrom: "Accepting your successes."

Piper Thunstrom; photo credit: Casey Faist (used with permission)
Piper Thunstrom; photo credit: Casey Faist (used with permission)

I first heard Piper speak at PyGotham 2017 when I attended her talk "Monkey Patching My Life- Being a Trans Python Developer."

In Piper's own words, she's "A domestic violence survivor, a trans woman, a game developer, and a book editor that struggles with suicide ideation and loves her community."

In her keynote, Piper walked us through the difficult times in her life, and how she came out on the other side having found the Python community and achieved success.

I found it very poinant when Piper said that she stands on stage vulnerably, because she is reaching out to her own self of 10 or 20 years ago, "The little kid who will be going through a world of hurt." She needed for other people to do that for her. She is also doing it for her current friends who haven't reached out.

In my opinion, her ability to be a role model and voice for other trans members of the community and victims of trauma, could be her most important form of success, and a source of healing for her.

I think Piper's own words best sum up the lessons of her talk:

"Every one of us has something to contribute to our community. If you've been around, you should look for people you don't recognize and new faces and help lift them up.

Stop treating societal expectations as success metrics: write your own success story and learn to recognize when success doesn't look like you imagine.

If you're struggling with your mental health: you're not alone. Don't be afraid to reach out to those around you."

Python, Governments, and Contracts

On Saturday, I spent a lot of time in the "hallway track." But there was one talk I did attend that I found particularly important. It was "Python, Governments, and Contracts," by Froi Irizarry Rivera and José Padilla.

In 2017, Hurricane Maria, a category 4 storm, made landfall in Puerto Rico and devastated the island. Feeling helpless as they worried about their families back home, Froi and José decided to do something. They started the Maria Tech Brigade. In two or three weeks, through grassroots organizing, they were 300 volunteers strong.

Froi and José soon became aware of the website of the Oficina de la Controlar de Puerto Rico. Contracts made by government entities to other government entities or contractors are published there. The Puerto Rican Power Authority has had a number of suspicious contracts over the past two years.

Froi Irizarry Rivera; photo credit: Casey Faist (used with permission)
Froi Irizarry Rivera; photo credit: Casey Faist (used with permission)

Froi and José found that the controller website has a terrible user experience. The site data is neither open nor usable. Users have to download documents one at a time. There is no real API. The contract documents are sometimes missing. The search functionality is rudimentary. The document content is not searchable. The pagination is broken. No real insights or data visualization tools are provided.

Froi and José began to build their own tool Contrato PRA to help journalists and interested citizens investigate corruption.

The batteries included philosophy of Django and the third-party extensions in the Python and Django ecosystem enabled them to get the project up and running as quickly and cost effectively as possible.

The project was split into two parts: a REST API built with Django REST Framework, Python, Redis, Celery, Docker, and Postgres; and a front-end, which users can access the API data through, built using a React framework called Next.

Froi and José used JSON endpoints and self-throttling to optimize data collection, without negatively affecting the controller site. In the Contrato PRA site, documents and their contents are now searchable and the data can be visualized by category.

Sadly, the work is not done, because the consequences of mismanagement and corruption are still ongoing and Puerto Rico has suffered additional natural disaster.

They have met their goal of collecting the million contract documents on the website. They have also explored ways of making their scraping logs and project financials transparent. They want to collect input from journalists and members of the data science community to help improve the site. And they are interested in finding sponsorship for the $60/month cost of running the project.

If you are interested in the project or would like to contribute, reach out to them!

Closing Keynote

The conference closed with a keynote by Meg Ray: "Because Equity: Python FTW."

Meg's keynote at PyGotham was very timely. She had recently been awarded a PSF education grant to create an open-source, PSF landing site for Python education. Meg wants to bring together Pythonistas who are interested in education and educators interested in Python. And she's looking for contributors! Reach out to her if you are interested.

Meg Ray; photo credit: Casey Faist (used with permission)
Meg Ray; photo credit: Casey Faist (used with permission)

According to the Association for Computer Machinery report "Running on Empty," lack of access to computer science education or privileged knowledge in US K-12 schools is a significant social justice issue.

Meg Ray; photo credit: Casey Faist (used with permission)
Meg Ray; photo credit: Casey Faist (used with permission)

Meg's talk explored ways to bring computer science education to every student.

There are a variety of obstacles that prevent students from being exposed to computer science, internal and external, physical and psychological.

Some schools are lacking the basics: reliable internet, power, technology devices, or technology device support. Some schools have made choices that affect exposure, such as restrictions on internet access or lack of the computer science courses that qualify students for college-level computer science programs. It's also difficult to find or create a curriculum that works in the classroom.

There are personal obstacles as well. Some students have visible or invisible disabilities. Others feel that they don't belong or that the subject-matter is boring.

By the time students are in high school, they tend to be either on a computer science track or not.

Speaking from her own experience, having redesigned Young Coders for PyGotham along with Barbara Shurette, as well as referencing resources such as the Gates Foundation's Reboot Representaton coalition, Meg gave tips for engaging every student.

Students need to be motivated to pursue programming. Making kids sit at computers and power through boring stuff doesn't work. When students go to stations and make take-home projects, they learn the basics, make something meaningful, and get hooked. Students also tend to retain more of the knowledge when they make something tangible.

Holistically, schools can create a longterm path for every student by offering diverse on-ramps for beginners, not one set path. A sense of belonging should be created immediately and fostered intentionally for the longterm.

Meg also gave a few tips from the "Zen of Python Education" talk she gave at PyCon 2019.

Meg Ray; photo credit: Casey Faist (used with permission)
Meg Ray; photo credit: Casey Faist (used with permission)

At the end of the talk, Meg gave a call to action for community members to advocate and volunteer. Ways to make a difference include: personally advocating at a state or local level for computer science as a graduation requirement; professionally promoting computer science education via your workplace by supporting employees in volunteering for computer science education week or make events, hosting school field trips in your office, inviting high school students to shadow you for a day on take your child to work day, or recruiting a first-time intern.

Hallway Track

As usual, the "hallway track" was an invaluable opportunity to network. The connections made were too numerous to list all, but here are a few highlights:

It was a pleasure to chat with PSF Director Lorena Mesa about PSF diversity initiatives, and meet for the first time PyCon US 2019 and 2020 Financial Co-Chair Jigyasa Grover.

While mentioning to Meg Ray that perhaps there were some lessons in her talk that I could apply to my work as an open-source maintainer, we arranged for her to pick my brain about my experiences as DjangoCon US Website Chair and Co-Chair and Pinax Maintainer as she embarks on the new open-source PSF Education landing page.

During the last few hours of PyGotham, I also serendipitiously met employees of three companies that have had a huge impact on my life, and was offered tours of the San Francisco-based headquarters of all three. Fun!

Statue of Liberty and Ellis Island

When I attended PyGotham for the first time in 2017, it was the first time I had ever visited New York City. I had read about and seen pictures and videos of New York City all of my life, of course, but you really have to physically be in a place to understand it, in my opinion. It both was and wasn't what I had expected.

I hadn't realized ahead of time how meaningful it would be to finally experience for myself a place that is such an important part of our culture.

When I arrived at Penn Station in 2017, I distinctly remember emerging from the station onto bustling 7th Avenue, Madison Square Garden behind me and Hotel Pennsylvania in front of me.

I was gobsmacked by my surroundings. Walking around the streets of New York, marveling at the landscape, I found the people to be austere in appearance, but kind. I was fascinated by the rich diversity I saw around me and the sight of people just living who they are, unapologetically.

7th Avenue; photo credit: Katherine Michel
7th Avenue; photo credit: Katherine Michel

Times Square; photo credit: Katherine Michel
Times Square; photo credit: Katherine Michel

During that 2017 trip, I rode the Staten Island Ferry past the Statue of Liberty. There were so many sights on my list to see that at the time, I was satisfied with that.

This year, I decided it was time to visit the Statue of Liberty and Ellis Island for the first time.

It's mind blowing to think that some of my own Scottish, Volga German, and Pennsylvania Dutch ancestors arriving in New York City as prospective immigrants, saw the same timeless Statue of Liberty that I did, and walked through the same hallowed halls of what is now the National Museum of Immigration on Ellis Island.

In Battery Park, I boarded the ferry and rode to Liberty Island, home of the Statue of Liberty and Statue of Liberty Museum.

Boarding the ferry to Liberty Island; photo credit: Katherine Michel
Boarding the ferry to Liberty Island; photo credit: Katherine Michel

On the island, I walked around the perimeter in front of the statue, then walked 215 steps up to the statue pedestal for a beautiful view of the Manhattan skyline and Statue of Liberty Museum.

Standing in front of the Statue of Liberty; photo credit: Katherine Michel
Standing in front of the Statue of Liberty; photo credit: Katherine Michel

The view of South Manhattan from the pedestal; photo credit: Katherine Michel
The view of South Manhattan from the pedestal; photo credit: Katherine Michel

The view of the Statue of Liberty Museum from the pedestal; photo credit: Katherine Michel
The view of the Statue of Liberty Museum from the pedestal; photo credit: Katherine Michel

The view of the statue from the Statue of Liberty Museum; photo credit: Katherine Michel
The view of the statue from the Statue of Liberty Museum; photo credit: Katherine Michel

I then went to the Statue of Liberty Museum and saw pieces of the statue at scale, an exhibit showing how the pieces were made, and a replica of The New Colossus plaque enscribed with that famous poem that begins "Give me your tired, your poor; Your huddled masses yearning to breathe free," among many other historical items.

The beautiful Statue of Liberty Museum; photo credit: Katherine Michel
The beautiful Statue of Liberty Museum; photo credit: Katherine Michel

A piece of the statue at scale; photo credit: Katherine Michel
A piece of the statue at scale; photo credit: Katherine Michel

A piece of the statue at scale; photo credit: Katherine Michel
A piece of the statue at scale; photo credit: Katherine Michel

A replica of The New Colossus plaque; photo credit: Katherine Michel
A replica of The New Colossus plaque; photo credit: Katherine Michel

I then re-boarded the ferry to travel to Ellis Island, to the National Museum of Immigration, where immigrants were once welcomed.

The National Museum of Immigration; photo credit: Katherine Michel
The National Museum of Immigration; photo credit: Katherine Michel

In the Baggage Room, I joined a tour that was in process.

A description of the Baggage Room; photo credit: Katherine Michel
A description of the Baggage Room; photo credit: Katherine Michel

A view of the Baggage Room from the stairs leading up to the Registration Room; photo credit: Katherine Michel
A view of the Baggage Room from the stairs leading up to the Registration Room; photo credit: Katherine Michel

Ranger Jenn gave us an impassioned depiction of what the atmosphere would have been like for new arrivals in the Baggage Room.

Ranger Jenn giving an impassioned depiction; photo credit: Katherine Michel
Ranger Jenn giving an impassioned depiction; photo credit: Katherine Michel

Ranger Jenn giving an impassioned depiction; photo credit: Katherine Michel
Ranger Jenn giving an impassioned depiction; photo credit: Katherine Michel

We then moved onto the Registration Room.
We then moved onto the Registration Room.

We then moved onto the Registration Room.

A description of the Registration Room; photo credit: Katherine Michel
A description of the Registration Room; photo credit: Katherine Michel

A photo of what the Registration Room looked like ca. 1912; photo credit: Katherine Michel
A photo of what the Registration Room looked like ca. 1912; photo credit: Katherine Michel

A photo of what the Registration Room looked like on the day that I was there; photo credit: Katherine Michel
A photo of what the Registration Room looked like on the day that I was there; photo credit: Katherine Michel

Standing at a registration desk, Ranger Jenn took us through a mock conversation between an official and a prospective immigrant. It was not unlike today. The officials were human life detectors, questioning the prospective immigrants, who had to answer correctly and show they were able-bodied.

Ranger Jenn taking us through a mock conversation between an official and a prospective immigrant; photo credit: Katherine Michel
Ranger Jenn taking us through a mock conversation between an official and a prospective immigrant; photo credit: Katherine Michel

Ranger Jenn taking us through a mock conversation between an official and a prospective immigrant; photo credit: Katherine Michel
Ranger Jenn taking us through a mock conversation between an official and a prospective immigrant; photo credit: Katherine Michel

Amazingly, the green benches in the Registration Room were the same benches used when the building was in service, Ranger Jenn pointed out.

One of the green benches used when the building was in service; photo credit: Katherine Michel
One of the green benches used when the building was in service; photo credit: Katherine Michel

At the end of the tour, Ranger Jenn led us to the far end of the room to the "golden doors" that people passed through after being approved.

She said to us, "May you have many golden doors in life the way Ellis Island was for them and may each of you be a golden door in this life for someone else the way this spot was for so many, personally and collectively. One third to one fourth of all Americans today can trace at least one ancestor to this little spit of land in the New York Harbor."

Ranger Jenn standing in front of the
Ranger Jenn standing in front of the "golden doors"; photo credit: Katherine Michel

Remembering back to the time I spent working for U.S. Immigration, I had all the feels.

Ranger Jenn then gave us a special viewing of the Hearing Room.

The view of the Hearing Room from the gallery; photo credit: Katherine Michel
The view of the Hearing Room from the gallery; photo credit: Katherine Michel

She was keen to tell us the story of Frank Woodhull/Mary Johnson, a biological woman who looked like a man, who arrived at Ellis Island in 1908 and had a hearing to determine if he/she should be allowed to enter the U.S.

A photo of Frank Woodhull/Mary Johnson
A photo of Frank Woodhull/Mary Johnson

Despite having illness that could have been disqualifying, Frank Woodhull/Mary Johnson was allowed to enter the U.S. and was the only person who ever had a name change at Ellis Island.

A dog-eared article about Frank Woodhull/Mary Johnson
A dog-eared article about Frank Woodhull/Mary Johnson

After the tour was over, I had the chance to chat with Ranger Jenn about my time spent working for U.S. Immigration and how that experience still inspires my work today. She scribbled some thoughts down on a piece of paper, because she likes to reflect on the experiences of people she meets there, and incorporate these insights into her work.

It was an experience of a lifetime.

Thank You

PyGotham was yet another life-changing conference. Thank you to Conference Chair Jon Banafato and all of the organizers who put so much hard work and planning into making it a wonderful event. Looking forward to next time!

Souveniers at LaGuardia Airport; photo credit: Katherine Michel
Souveniers at LaGuardia Airport; photo credit: Katherine Michel