Jason C. McDonald

Author | Speaker | Hacker | Time Lord

Speaker and Comedian

I have been speaking since 2013 about programming, communication, and professional development, and programming. With over a decade of experience in mentoring, teaching, and tutoring, I effectively and memorably present advanced concepts to listeners of all experience levels. (I am also a family-friendly comedian.)

Each presentation is tailored to the needs of the particular audience, but always delivered with the same humor and passion.

The Bug Hunters Café

Check out my podcast with Bojan Miletic, "The Bug Hunters Café", where we sit down and chat with developers from all over the world about making, fixing, and preventing mistakes in code.

Listen Now!

Upcoming Events

None scheduled right now.

Talks

Functional Meets Objects

Pyjamas 2022 | November 2022

Functional and Object-Oriented Programming: two completely disparate paradigms, right? Maybe not! In this talk, I demonstrate how the two paradigms can be combined to produce cleaner, more stable, more maintainable code. I also show you how to code your own immutable classes!

Cruelty-Free Critiques

Pyjamas 2021 | December 2021

Critique is one of the most important ways that we learn as professionals, but sometimes getting someone to receive that feedback from us can be hard. In this talk, I share ten techniques for making critiques more effective, and less painful for both parties.

Escaping the Cargo Cult (v2)

Pyjamas 2021 | December 2021

Structuring a Python project is often non-trivial. We pick up pieces of different patterns and techniques, blindly applying them without understanding their implications, in an attempt to ship software. Testing and packaging become significant pain points for many developers, and this need not be so.

In this talk, Jason C. McDonald breaks down the best way to structure a Python project for maximum portability and maintainability...and more important, explain WHY these patterns exist.

Whose Method Is It Anyway?

Conf42: Python 2021 | May 2021

Python does a shockingly good job at handling multiple inheritance. In this emoji-powered talk, learn how Python figures out what method to call in a multiple inheritance situation, and utilize that to employ mixins in your classes. Armed with this knowledge, you'll be prepared to swing in as the hero the next time your team is scratching their head and asking "why's THAT code getting run??"

Effective Code Reviews (Lightning Talk)

PyCon 2021 Online | May 2021

Escaping the Cargo Cult

Pyjamas 2020 Online | December 2020

Structuring a Python project is often non-trivial. We pick up pieces of different patterns and techniques, blindly applying them without understanding their implications, in an attempt to ship software. Testing and packaging become significant pain points for many developers, and this need not be so.

In this talk, Jason C. McDonald breaks down the best way to structure a Python project for maximum portability and maintainability...and more important, explain WHY these patterns exist.

NOTE: This talk is out of date. Please watch "Escaping the Cargo Cult v2" from Pyjamas 2021 above instead.

Whose Method Is It Anyway?

Python Pizza New Years Party | December 2020

Python does a shockingly good job at handling multiple inheritance. In this emoji-powered talk, learn how Python figures out what method to call in a multiple inheritance situation. Armed with this knowledge, you'll be prepared to swing in as the hero the next time your team is scratching their head and asking "why's THAT code getting run??" How is your talk unboring? : The C3 MRO...an infamously advanced topic...explained in plain English with emojis.

You're Doing Objects Wrong (And So Is Everyone Else)

Pyjamas 2020 Online | December 2020

Objects: the thing everyone with an elementary understanding of programming feels like they know. It's one of the first things a new programmer is taught. And with rare exception, we were all taught wrong. In this talk, I explore how objects are really supposed to be designed and used, and how that insight will transform how you design your classes forever. Whether you've been coding in Python for ten minutes or ten years, you're almost certain to walk away with a new perspective on this most elementary of code structures.

Writing Zenlike Python

EuroPython 2020 Online | July 2020

There's a profound gap between working code and Pythonic code. To the developer whose first language is NOT Python, the distinction can appear blurry, even arbitrary. What is this "one obvious way" all those Python nerds are going on about? In this talk, I unpack how the twenty principles (including the unwritten rule) of Tim Peters' (in)famous Zen of Python can guide you to write beautiful, maintainable code, by treating Python AS Python!

Functional Meets Object-Oriented

Python Pizza Remote 2020 | April 2020

Functional and Object-Oriented Programming: two completely disparate paradigms, right? Maybe not! In this talk, I demonstrate how the two paradigms can be combined to produce cleaner, more stable, more maintainable code.

The Cake Is A Lie

Whitworth University | 2017

Programming and computer science are one and the same, right? Maybe not! In this talk, I introduce how programming is more art than science, and just how profoundly that affects how we write software.

Field Guide to Common Nerds

North Idaho College ACM Club | 2014

In this presentation to the ACM Club at North Idaho College, I introduce the odd personality types that dominate the programming field, and how to interact with them without losing your head (perhaps literally).

Podcast Appearances