October 22, 2018
I have used Python for more than 10 years as a software engineer, but PyGotham 2018 was my first Python conference. With that said, I have attended other technical conferences (such as MongoDB World), so I was pretty sure that I knew what to expect. And the list of talks seemed to mostly confirm my expectations: tips on using cool but lesser-known Python features, various ways companies use Python, and some deep dives about Python internals.
I enjoyed Evan Morikawa’s talk about trying to detect and fix bugs in servers that get billions of requests, especially because my team also runs Python web servers and have used some of the same tools. I also found Nikhil Marathe’s talk about translating a CPython backtrace into a Python stack trace fascinating and educational.
But I was most impressed by the very first talk of the conference, about open source software. Most of us know what open source is, and the supposed struggle between people who want to keep software open and free and big corporations who just want to make money. An interesting aspect of working at MongoDB is that we understand both sides of the debate: we are committed to keeping MongoDB’s source code open but also want to thrive and succeed as a business. To me, open source software sounded like a good idea for various reasons but I didn’t give it much thought.
But Karen Sandler clearly and convincingly demonstrated why making code freely available is not only good but essential, especially as software finds its way to more life-critical situations. She is an embodiment of questions that arise with critical software: she has an enlarged heart, and to treat it, a programmable defibrillator is implanted in her body. The doctors naturally know nothing about the software in this device. And most such devices have Wi-Fi, which is convenient but opens them up to attacks over the network.
Since we are talking about software, there are bound to be bugs, unanticipated edge cases, and security flaws. She talked about the time she was pregnant, which led to occasional heart palpitations. The defibrillator detected the palpitations as anomalies and shocked her heart to “fix” them. So how did Karen go about trying to fix this issue? She spent a long time being passed around from one support representative to the next. This process is annoying enough when your earbuds stop working or your shoes were not delivered on time. Imagine if the issue is life-threatening. And yet she suspects that the bug report probably ended up in some queue, where it may be fixed sooner or later (or never) depending on some manager’s list of priorities. Meanwhile, Karen had to take medications to slow her heart down.
Karen argues that there should not be corporate gatekeepers for defibrillator software and that if the software was open source, anyone can detect and fix problems sooner and ultimately make the software better. While I don’t believe that open source is a panacea to software engineering problems, she opened my eyes to a problem that I’ve more or less ignored for most of my career.
She inspired me to read about the open source licenses that cover MongoDB products such as AGPL and the recently introduced Server Side Public License. On a personal level, I would like to see our team open source the MongoDB University code (although this is considerably less critical than defibrillators).
I also became much more appreciative of Python and the volunteers that put together PyGotham. Python is free, open source software and software companies (including MongoDB) get immeasurable value from it. And while both Python and conferences like PyGotham have corporate sponsors, without volunteers, they would either cease to exist or be very different, likely for the worse. I would definitely return to more PyGotham conferences in the future, to learn about Python as well as the philosophy of the community behind it.
John Yu is a staff engineer at MongoDB’s education team. He is one of the maintainers of MongoDB University, a web application written in Python and the Django web framework. Previously, he was an application developer at companies such as Opsware and HP.