PyCon Canada 2019


I had the pleasure to attend the PyCon (Python Conference) Canada 2019 in Toronto a weekend ago (November 16-17).

In this article I wanted to give a quick review of the event from my perspective and then describe quickly the talks I went to.

Talks will be put on Pycon’s YouTube channel. I’ll try to edit this article to add them in when they do.

PyCon Canada is a branch of the PyCon conference cycle. Find one near you!

My perspective

Before I talked about my perspective on the conference, I must disclose where I’m coming from since that obviously colours my perspective.

My relationship with Python is a little unusual.

In the early 2000 I needed to learn a scripting language to automate some tasks. I looked at Perl for a few days and felt sick. I looked at a new emerging language at the time called Ruby which was the antithesis of Perl. Although it was elegant, it wasn’t very ubiquitous back then. I then found Python. Python was widespread, had good tooling and… man was it easy to learn and to do things with it! I was the biggest fan of its array manipulation system and never understood why it wasn’t copy-cat over to other languages.

I stopped using it for close to 15 years until I started again a few years ago. Now it’s the Data Science language and one of the most popular language in the world.

So in a nutshell, although I’ve known Python for close to 2 decades, I’m far from an expert. I used it for automation and Data Science only. Also, I have a huge bias towards Enterprise mindset as those are my customers (i.e. big teams, budget, red tape, regulations & security discussions until the cows come home).

Review

This is a conference around one programming language and its community.

Most people I spoke to were from start-ups or product company. Everybody I spoke to was either a dev or Data Scientists.

For me those conferences are the opportunity to see what the rest of the world are doing. It’s a great opportunity to learn.

The first learning is the breath of application of Python. Sure Data Science is big. There was an entire Track / room for that topic. But people are also using Python for Web Development (e.g. Flask, Django, Bottle, Web2py, etc.) and bunch of other tasks. It’s used a lot for integration work: processing files, stitching processes together, etc. .

Second learning is that Python really has a strong community. I knew it was an Open Source language and hence is community driven, but the breath of community involvement is impressive. There are alternative compilers, meetups & obviously conferences. There is an entire Python history with its lore packed in the old mailing list. It’s akin its own culture.

A very refreshing aspect of the conference was the diversity of the audience and especially the presence of women. We’re still far from parity, but way closer than I’m used to see. The penny dropped for me in a talk given by a woman and two women in a row were asking questions. They of course bring a different perspective and tone. Being a father of a little girl who’s into computers and electronics, I found it especially refreshing!

There was little content specific to Enterprises. It’s not a real minus, it’s just that I’m so used to have sessions dedicated on team scaling or security issues that I couldn’t help noticing it.

The negative point I found was the amount of talks that were side shows to Python. There was a bunch of talks about Kubernetes, GitOps, DevOps, scale-out architecture, etc. . All hot topics nowadays, but that’s not really why I went to a Python conference. It might reveal the limitation of doing an entire conference on a specific language.

Otherwise, the vibe was good, organizers were energetic, and no jerk was encountered, which is always a plus! It’s a small conference. 400 people? I don’t know really but it felt about that, maybe a little less?

Talks

The schedule of the talks is available online for day 1 and day 2.

There were 4 rooms, so I attended to a little more than %25 of the talks (the Key Notes were all together). I’ll only lists the ones I found interesting. As mentioned above, I’ll add video links once they get released.

Opening Keynote

By Ideshini Naidoo from Wave.

That was your typical digital transformation speech with a specific bend on Data / AI centric companies.

The speaker was strongly pushing for a reactive system architecture (a la Event Sourcing).

Interesting ideas: In order to become a Data / AI centric company, you need a Data Ecosystem where your data is easily accessible (democratize access). I see a lot of companies struggling between that and security.

Debugging Jupyter Notebook

By Maria Khalusova from Jetbrains (company behind PyCharm, a popular Python IDE).

Down to Earth talk about debugging with bunch of useful techniques (e.g. %Xmode magic, %Debug magic, Breakpoint(), etc.).

Interesting ideas: Maria is hosting the PyData meetup in Montreal (my home town)!

Move fast, and break things, deploying Python largest Python site in the world

By Alvaro Leiva from Instagram.

That’s an example of a talk having nothing to do with Python itself. The site the speaker talked about happened to be written in Python, but there was nothing Python specific about the talk.

That being said… DevOps is of interest to me, so yes, I enjoyed it.

Instagram apparently deploy every 7 minutes in average, which is definitely extreme.

They do not deploy at the of sprints. They tried it but with the scale of changes they were doing it wasn’t working:

  • You can’t really rollback because of DB incompatibility
  • So you push a hotfix
  • If you must deploy in mid-sprint (ASAP), you need to cherry pick between your release and Master branch
  • Sometimes you don’t understand the broken code
  • Client doesn’t like what they see after deployment
  • Sometimes people who introduced changes left the company by the time it’s pushed to production

For those reasons they use a much more agile approach where they deploy when a feature is ready with the following process:

  1. Unit-tests
  2. Canary tests
  3. Canary tests with %2 coverage
  4. Full (%100) coverage

That cycle takes around an hour (yes, they sometimes batch changes). They expect engineers to be around when their changes are pushed to production.

They do not have a branching system: they develop on Master and deploy the commits.

Culturally they encourage engineers to break AND fix things. They empower them to do so.

Why they need to introduce so many changes so quickly on a mature product remains unanswered questions.

Interesting ideas: Instagram is the biggest Python site in the world.

Visualization with Altair

By Stephen Childs from York University.

Altair is a declarative statistical visualization library for Python, based on Vega and Vega-Lite, and the source is available on GitHub.

Part of its strength is that the interactivity is client-side.

Interesting ideas: It is based on Grammar of Graphics, a seminal book on visualization.

From hot mess to information

By Serena Peruzzo from Bardess.

Practical talk on Data Cleaning to obtain Data Quality. She actually gave a 5-6 steps process.

Interesting ideas: Finally somebody is practical about the reality that %80+ of Data Science is Data Cleaning!

RenPy for narrative video games

By Susan Chang.

Interesting introduction to narrative video games and the platforms powering them.

Day 1 closing Keynote

By Huda Idrees, founder of Dot Health.

The tile was Small but Mighty: a guide to building tiny teams to solve big challenges. Entrepreneur talk.

Huda told the story of her journey to build a start-up in the Health industry in Canada.

Her company is only 20 people. She drew comparison to the early GitHub, WhatsApp, Uber Diner, etc. , companies with small head counts which have disrupted their industry.

Because of their small size, they can move very quickly.

Day 2 KeyNote

By Francoise Provencher from Shopify.

Interesting ideas: She used data, on paper (because the last thing you bring at the doctor is your computer), to monitor difficulties with unborn twins.

Lighting talks

Interesting ideas: Gazpacho soup Python library for web scraping.

Operator overloading

By Greg Ward.

This was an unapologetic rant against abuse with operator overloading in Python (and other languages). It was very funny.

The speaker started by comparing history of C, C++ & Python:

  • Operators in C (e.g. i++) are fast, bounded & predictable
  • Operators in Python are predictable

Long story short, this is how they should remain.

Fun with compilers

By Peter McCormick.

Again, a topic found to my heart: compilers!

The speaker went into an overview of what a compiler does in general and then dove into how Python’s interpreter (CPython) is implemented.

Interesting ideas: Pypy is a just in time (JIT) Python compiler written in Python.

Last Keynote

By William Lachance from Mozilla.

The speaker presented Iodide, a product developed by Mozilla Dev with Open Source contribution.

Iodide has the ambition to be a better Jupyter Notebook by putting the computation on the client side. This would simplify the setup of Jupyter notebook.

They are leveraging Web Assembly to emulate Python in the browser, similarly to Blazor with .NET Fx.

Interesting ideas: Glitch as an inspiration to democratize Data Science.

A Day In The Life Of A Corporate Data Science Platform

By Lucas Durand from TD Bank.

The speaker quickly demo how we could instrument notebooks to log cell activities. He then used those logs to learn about a Data Scientist activities.

Although this was a simple example, it led to a great discussion about how to do Data Driven DevOps.

Interesting ideas: Data Driven DevOps ; using data to understand what your users are doing and what they need / will need before they ask.

Summary

So, quite a few talks!

For me a couple of good eye opener on a community I knew little about.

I hope this post give you a roadmap on videos to watch.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s