A little reverse chronology of talks I have enjoyed presenting, complete with video and slides. If you like this sort of thing, also check out Enterprise Software with Python, as well as my other appearances.


Ask the Ecosystem: Lessons from 350+ FOSS Python Applications

Continuing to build on Awesome Python Applications, this version of the talk expands the dataset to 350+ applications, and generally improves data collection. All in all, 2,700 years of living Python application maintenance time.

Ask The Ecosystem: Lessons from 250+ FOSS Python Applications

Building on Awesome Python Applications, this talk starts and ends with the motivations of the project, with a sizable middle presenting findings and case studies selected from the ~250 projects featured in the APA at the time of writing. See trends and spotlights of architecture, dependencies, licensing, and packaging for over 20 years of Python application development.

Nuances for Engineering Social Change

It's a big world out there, what's one engineer supposed to do? This talk starts with a technoparable about King Midas, then ties in Society 5.0 (one theme of the conference), and rounds out with lessons I learned to stay productive and keep growing as an engineer.

This was my first keynote and my first time speaking at a general engineering conference (by a show of hands, the audience was less than 20% software engineers).

Restructuring Data in Python

A companion to this post, this lightning talk offers a quick introduction to glom.

Given that the library was only 2 weeks old and released 2 days prior, and that the slides were prepared 2 minutes before presenting to 1000+ people on the first night of PyCon 2018, I think it worked out pretty well!

Production-grade Packaging with Anaconda

Anaconda has always been a powerful platform for data analysts and scientists across the Python world. The same reasons that make it work for those groups also apply to engineers building and shipping scalable services: Easy access to prebuilt packages, including system packages not managed by pip, and other packages not conveniently provided by the operating system.

This is less a talk about how to build conda packages, as it is a talk about how to use Anaconda in real-world industrial settings to ship products, as my team(s) did at PayPal and Shopkick.

Pocket Protector: Secrets as Code

At SimpleLegal we have quite a few integrations, and as a result, quite a few secrets. Multiply that by a few environments, and we've got a management situation on our hands. Leveraging Kurt's and my past experience doing application security, we built Pocket Protector, a secrets management system which leverages version control to provide a simple, secure approach, sized right for small and growing teams.

A Plug for Plugins

In almost every case of large application development, the result involves a pattern too often maligned or overlooked: the plugin. Call them modules or extensions, if you'd prefer, the facts remain the same. The success of plugins is second only to the variety of implementations, especially in Python's dynamic environment.

This talk covers the basis for plugins, reviews Python's current offerings using examples, and provides guidance as to the bright future of plugin architecture.

The Packaging Gradient: A Holistic Guide to Software Distribution

Deployment is not the last step of development. Experienced engineers know to work backwards from deployment requirements, planning and designing for the reality of production environments.

Python packaging sometimes gets a bad reputation, but a lot of this comes from less experienced engineers learning the hard way that implementation language does not dictate their packaging solutions.

Packaging is all about target environment and deployment experience. Python was designed to be cross-platform and runs in countless environments.

This talk moves example by example, presenting shippable code, and the simplest packaging solution appropriate for it. All the examples are in Python, but the lessons are absolutely language agnostic. Learn the packaging gradient and put those deployment doubts to rest once and for all.

The Packaging Gradient: A Holistic Guide to Software Distribution (Extended Edition)

After the success of my PyBay 2017 talk, the organizers of BayPIGgies, the venerated South Bay Python interest group/meetup asked me to turn my 50 minute talk into something that could fill a slot closer to two hours. I go a bit slower, tell a couple more stories, talk a bit more about static linking, and field more questions.

URLs: In Plain View

The web wouldn't be the web without URLs. You're using one right now! Unlike most web technology, URLs are not designed primarily to connect computers to each other. URLs connect us, people, to our software. This talk is an approachable engineering introduction to the often-overlooked URL, its evolution, and its many moving parts, concluding with newest URL implementation Python has to offer, the hyperlink package.

Python Profiling and Performance: Elementary to Enterprise

Performance is a complex topic. It means a lot of things to a lot of people. Python gives us a great starting point: strong primitives and the "good enough" philosophy. But is Python actually good enough for performance-critical applications?

This talk defines different kinds of performance, covers basic principles, and dives right into measurement. With those foundations laid, it outlines eight approaches to scaling Python, four of which are stack-agnostic and four of which are Python-specific. It outlines many examples from industry to provide a holistic view of performance as a practical process, not a large-scale benchmarking competition.

Other speaking

Some talks I've given were more informal or less recorded, but here's a list in any case.