Pages

Monday, April 9, 2012

My PyCon Experience, 2012

PyCon 2008 in Chicago was my first one. I attended the main conference with some co-workers and it was nice. Last year I had the chance to go again (Atlanta), this time alone and for the full length of the conference. Every part of that conference exposed something new and remarkable to me, from the tutorials and the sweet community vibe on those days, to the awesomeness that is the sprints. My experience at PyCon last year was a revelation.

Talk Proposals

During PyCon last year I got an idea for a project that I've been working on since then. I resolved to speak about it at PyCon, but figured it wouldn't be ready for 2012, instead aiming for 2013. In the interest of getting a feel for the proposal and review process, I submitted several talk proposals. All of them were serious, but some would have been a lot of work if they'd been accepted.

The proposal interface on the PyCon site worked great. I put up a summary and an outline for each of the talks. I got good feedback from reviewers on the Program Committee. In the end I killed several of the proposals before the committee meetings started, had several make it through, and had two accepted. All in all, I learned that a good proposal is one that doesn't try to do too much, still covers something interesting, and is backed by solid knowledge.

Program Committee

This year I wanted to get more involved in the conference organization. So the first step I took is to join the program committee and participate there. As a bonus, it gave me lots of insight that will help me make solid proposals for 2013. The first phase was to review proposals through the web interface. Of the (give or take) 400 proposals, I was able to review over 100. It was mind-blowing how many great proposals there were.

After a while the committee started the first round of review meetings. We met in IRC at designated times, and discussed each proposal for several minutes before everyone voted yea/nay. At the beginning of the discussion anyone could volunteer as a champion for a proposal and would have the floor for a couple minutes to make a case for accepting the proposal. A few proposals were easy to eliminate. Most were good, however. A few proposals spawned lengthy or heated discussions. Several required the committee chair to make a decision when voting was close. It was a fascinating process and I attended as many meetings as I could.

After several two-a-day weeks we moved into the next round, thunderdome. The committe chair, Jacob Kaplan-Moss, grouped the remaining talks by subject, with groups of 2 to 5 proposals. We had similar review meetings, but this time we'd indicate which talks in the group we thought should be accepted, instead of just saying yea/nay. For small groupings we'd select 0-1 proposals. For some large groupings we'd select as many as 3. This also went on for weeks.

The experience here was fantastic. The committee was run well. The committee members were great. I got to know quite a few people in the community this way, and put faces to names when I got to Santa Clara.

Our schedule was grueling due to the massive volume of great proposals. We could have had double the tracks and still filled them all with great talks. All things considered, I think it turned out really well.

PyCon Organizers

While working on my proposals I found that there wasn't a lot out there to guide a conference-speaking-newbie like myself. So I started to put together something along those lines. At one point I had collected enough that I offered it to the PyCon organizers. As a result, I came to be aware that anyone can join the PyCon organizing committee and get involved really easily.

I moved forward with my speaking advice page, got access to put it up on the PyCon site, and helped organize a Q&A for speakers the night before the sessions started. Everyone in the community was really helpful in all of it and the meeting was a success because of that. It just reaffirmed my conviction that the Python community is amazing.

Language Summit

Last year I got to know a bunch of the CPython core developers during the sprints. I worked hard to stay involved on the mailing list since then. As a result, I was able to go to the language summit, and take notes that were compiled into the official report.

The language summit is where all the core developers that can make it get together in one big room during one of the tutorial days. They discuss current issues for the language that need decisions. One of the core developers chairs the meeting and conducts the discussion through an agenda that they've prepared ahead of time. It was great to be there, contribute to a small part of the discussion, and help with some extensive note-taking.

Speaking at PyCon

This year I gave two talks, one on imports and one on interfaces. Even though I'd been preparing for many months, I felt really under-prepared. This was my first time speaking at a technical conference, though I've been speaking publicly for most of my life, so I wasn't sure what to expect.

My interfaces talk was on Friday and I went in expecting to get through my slides too quickly, so I made an effort to slow it down. Unfortunately this had the wrong effect. I ended up having to cut my talk about 10 slides short and lost my Q&A time. As disappointing as that was, it was a good experience that paid off the next day.

My imports talk on Saturday went much better. Between my experience the day before, and my higher expertise with the subject matter, the talk went off great. I covered the material, finished right on time, and had good Q&A time. I also got a lot of positive feedback, which was encouraging. If I've lucky enough to get a proposal accepted, this year's experience will make a big difference.

Inaugural PyCon 5k

This year was the first PyCon 5k and I participated. Where there were around 150 who came, there were only a handful of us that walked it. I was nervous about doing anything that might adversely impact my talk that day, so I took it easy. As a result, I spent the next 45 minutes chatting about Jython with Jim Baker, one of the Jython core developers. An awesome turn of events!

Sprinting on CPython

Like last year, this year I sprinted with the CPython core developers. Unlike last year, I had specific objectives, centered on the import system. The first day a number of us met together to come to some decision about PEPs 382 and 402. It was a fruitful and insightful day, and I was able to be heavily involved in the discussion.

Guido was able to come the next day too, and he and I had a nice talk about imports and language transformations. The rest of the sprints I worked on the import system, particularly with things related to the importlib bootstrap (issue 2377), with most of my working going into issue 13959. Brett Cannon could only stay for one day of the sprints, but it was enough to talk about what needed to get done with the work surrounding importlib.

Getting to Know People

One of the best things about PyCon is that it's your one chance each year to talk face-to-face with people with whom you interact online the rest of the time. A lot of stuff gets done. But you get to know people a lot better too. Throughout the conference I was able to spend most of my evenings with core developers, going out to dinner and the like. Last year I met a few of them, but I hadn't really gotten very involved yet, so it wasn't the same thing. This part of PyCon makes attending worth it.