PyCon US 2016
PyCon! My favorite conference of the year, full of friends, projects, wacky ideas, and unexpected connections. I'm glad I had a few days between Write the Docs and PyCon to recover and prepare, because this year's PyCon was exhausting, inspiring, and wonderful.
For those of you who don't know, PyCon is a conference for programmers who use the Python programming language. There are many different regional PyCons held around the world, but when people say "PyCon" they're usually referring to PyCon US, which is the largest one by far. PyCon has about 3000 attendees, so it's a medium-size conference: large enough to be impressive and to attract sponsorships, but small enough that you keep on running into your friends over and over again throughout the convention. The convention sells out every year, and they run out of tickets faster and faster each time -- the conference organizers could easily make PyCon much larger, but doing so would increase ticket prices, limit the options for where the conference could be held, and disrupt the feel of the conference.
And PyCon does have a distinctive feel. The Python community is remarkably friendly, and cares deeply about diversity and outreach. Most programming languages have communities that consist almost entirely of white cis-gendered men, most of whom are straight; women and minorities are nowhere to be found. By contrast, the Python community is full of women, racially diverse, and has many prominent LGBT individuals. This year, 40% of the speakers at PyCon were women, which is absolutely unheard of for a tech conference. (Most tech conferences have a single female speaker, or none at all.) And the community won't be satisfied until we have gender parity, as well as better representation for racial diversity and LGBT representation. (During this year's PyCon, Guido van Rossum, the creator of Python and its "benevolent dictator for life", publicly re-committed to the idea of bringing on at least two female developers to the currently all-male core development team.) All this diversity makes for an incredibly welcoming and friendly environment: no matter who you are or where you come from, you can find friends at PyCon. Differing opinions and cultures are welcome, and the conference explicitly provides space for people to organize their own events, known as "open spaces", as I'll describe later.
PyCon is divided into three parts: two days of tutorials, three days of talks, and four days of coding sprints. The talks are the main body of the conference, and many people only attend PyCon for that part of the conference. There are five tracks of half-hour talks happening simultaneously, and this year there were 95 talks in all: it's impossible to see everything! Before the talks comes the tutorials; each tutorials is three hours long and capped at around twenty students or so, so that attendees can get a deep dive into their subject matter of choice. After the talks is the coding sprints, where people collaborate on open source projects and make tremendous progress on improving the software that the whole world runs on. The three parts form a nice arc of intensity: ramping up during the tutorials, full excitement during the talks, and gradually trailing off during the sprints.
This year, I was an instructor for one of the PyCon tutorials: Get Started With Git. Although I was a bit nervous going into it, I was well-prepared, and the tutorial went quite smoothly. I owe a tremendous debt of gratitude towards Gil Forsyth, who was a brilliant teaching assistant and allowed me to get through my entire deck of 90 slides without being derailed by technical issues. The entire tutorial was recorded and posted on YouTube as well!
If you want me to train your team to use Git better, contact me!
After my tutorial was done, I spent most of the rest of the tutorial days talking to other PyCon attendees. There were some people there that I already knew, and many that I didn't, and I found that I really enjoyed chatting with both groups. I spent a significant amount of time chatting with Trey Hunner about consulting and training, and he gave me a lot of insight and information that I hope to apply in my growing freelance endeavors. I also chatted for awhile with Al Sweigart, a very accomplished author of technical books, and we talked about writing for awhile.
Over the course of these two days, I realized that I was getting a lot out of these conversations -- not just enjoyment, but also useful information and professional contacts. In the past, I've always spent a lot of time attending talks at PyCon, but this year, I decided to try something very different: I would focus on the "hallway track" and have conversations with everyone I could instead of attending talks.
Talks and Open Spaces
I had a whole list of talks I wanted to see at PyCon, but following the decision I made during the tutorials, that list went out the window. Instead, I filled my time with hallway conversations, the expo hall, and some pretty awesome open spaces.
Open spaces are ad-hoc groups that come together to discuss any topic of common interest, Python-related or not. There are several rooms in the conference center dedicated to open spaces, and the conference organizers provide a large "open space board" near the registration desk that has a large, empty grid on it. This grid lists room numbers along one axis and times along the other. Anyone can declare an open space by writing a topic on an index card and pinning it to the open space board, which claims a time and location. Attendees were constantly clustered around this board, so it became a social hub as well as an information hub, and it was a great place to meet other people.
I declared two open spaces, one on Lektor and one on Docker. Both were very popular, and drew perhaps 15 or 20 other attendees, which is a success as far as I'm concerned. I also attended many, many other open spaces during the conference, on topics ranging from Flask and GIS to an LGBT meet-and-greet and acroyoga. I really enjoyed the open space dedicated to people who wanted to get their first software development job; I talked about my experiences in the software industry, answered a lot of questions, and was able to provide some good advice regarding projects and visibility. I also really liked the "random storytelling" open space, even though I arrived late; it was simply an open forum for people to tell each-other stories from their own life experiences. Some people shared some deeply personal and meaningful stories, talking about moments of great excitement and joy, sadness and fear, curiousity and discovery. It really brought home the idea that PyCon is about people more than it is about programming.
I also talked with a lot of interesting people in the hallway and in the expo hall. I talked with Rami, Yarko, Mike, and Andy about opportunities for consulting, training, and collaboration. I met Frank and Emily from Cuttlesoft, who started their own Python consulting company (which I think is very cool). I learned more about Git internals from Glen and Fred. I met some of the core developers and maintainers of Flask, including David -- not only do we share a name, but we also share an interest in a beautiful microframework. I helped Eric and Riley with deploying websites. And that's just a slice of the dozens of people that I got to talk with, however briefly. It was exhausting, but so worth it.
In the end, the only conference talk I attended was my own. In addition to teaching a tutorial, I also presented a talk about prototyping APIs in Flask, which also went well. I was approached by several people afterwards who told me that they really enjoyed my talk, and couldn't wait to start building their own APIs -- and as far as I'm concerned, that's the highest possible praise. Like my tutorial, the talk was also recorded and uploaded to YouTube for your viewing pleasure!
Want to learn more about Flask and APIs? Contact me to talk about technical training.
I'm currently finishing up the coding sprints, and even though the main part of the conference is over, the suprises keep coming. I chatted for awhile with the amazing Josh Simmons, who gave me some great advice about training and networking. On top of that, I helped a fellow attendee land his first open source contribution and I became a maintainer for Lektor, and frankly it's hard to say which one makes me more proud. I wrote subtitles for my Flask talk, and found another attendee who was such a fan of my talk that he agreed to translate those subtitles into Spanish, so that more people could learn. Amazing!
I haven't actually made much progress on improving open source projects, which is the supposed goal of the coding sprints. However, if there's one thing I've learned from this year's conference, it's that there's more than one way to do a conference well. I've had a fantastic PyCon, and I look forward to next year's conference, as well as all the Python people and Python events I run into before then!