Speaking Engagements and Podcasts

I love to share my knowledge and experiences with audiences on stage and on the Internet. Below is a list of conferences I've spoken at, as well as the topics I discussed. You'll also find a smattering of podcast appearances. Videos and links are given when available. Enjoy!

OSCON 2017

It's all business: How contributing to OSS prepares you for entrepreneurship

A large, successful open source project runs a lot like a business. Indeed, some large, successful open source projects are businesses. In this talk, I explain why open source is the best playground and laboratory for new entrepreneurs and why this is a good thing for open source projects.




Mobile Web Developer Conference

Keynote Address

Dont't overreact: it's just React

React is a front-end JavaScript framework that’s grown popular over the past few years. Perhaps you’ve used React for a project before or perhaps you're familiar with other front-end frameworks? This talk will explore the technical implementation of React, go through the pros and cons of the framework, and leave the audience with a technically-backed understanding of the best situations to use React in their web applications.

Node Interactive 2016

Let's Crank Up the Volume: A Deep Dive into the Crankshaft Compiler

Crankshaft is the V8 JavaScript engine’s optimizing compiler, a helpful little fellow built into the V8 engine that is designed to improve the performance of our JavaScript applications. But how does it work? In this talk, I deconstruct the internals of the Crankshaft compiler, discuss the process it goes through to optimize our code and the results of these optimizations, and examine how we might leverage our understanding of the internals in our day to day development work.



Storytelling for Society's Sake

Data is a powerful storytelling tool and data visualizations are one of the most approachable storytelling forms. In this presentation, I discuss how a combination of storytelling and computational narratives can be leveraged to present impactful and approachable information about social issues.





PyCon Canada 2016

Keynote Address


PyData Chicago, JupyterDays Boston, PyTennesse

Popping Kernels: An Exploration of Kernel Development for Jupyter Notebooks

Jupyter Notebooks allow users to create interactive documents with text, images, executable code, and interactive widgets. These documents can be backed by a variety of programming languages such as Python, R, and Julia. In this presentation, I discuss the architecture that powers this functionality.


Abstractions Con

Flunking the Turing Test

In popular culture, the Turing Test is often depicted as the absolute test for determining machine intelligence. However, there are numerous alternatives that capture the nuances of intelligence more effectively, such as the Winograd Schema Challenge. In this talk, I discuss the shortcomings of the Turing test and alternative metrics for measuring machine intelligence.

MidwestJS, CascadiaFest, JSConf BP

The Hitchhiker's Guide to All Things Memory in JavaScript

Unlike lower level languages, JavaScript protects us from the frustrations of managing memory on the system. Nonetheless, it is important for developers to have a comprehensive understanding of memory allocation and how the memory allocator in JavaScript works so that they can develop memory-performant code. In this talk, I discuss garbage collection techniques and explain how memory management works in the Node V8 engine.

JSConf BP, CascadiaJS

Twilio SIGNAL 2016

How ZeroMQ Makes Science Possible

The Jupyter Messaging Protocol is at the heart of all things Jupyter. In this talk, I'll give a basic run-down of the Jupyter ecosystem, how the protocol (built on zeroMQ) works, and some of the challenges associated with the architecture. In this talk, I explore how communication is done in the scientific world from both a technical and non-technical perspective.


Do Good Data 2016

Things They Never Told You About Cleaning Your Data

Cleaning data is often described as the "unsexy" part of data science. I don't think this is true. Scrubbing a messy data set can reveal volumes about the context, history, and flaws of the dataset collected and inform the data analytics process. In this talk, I cover techniques that should be used when approaching data cleaning and provide practical exercises for attendees to complete.


Becoming A Data Scientist


Codemash 2016

Making Magic with Meteor.js

Meteor.js is an open-source framework for developing web, desktop, and mobile applications. In this talk, I guide users through the process of building an anonymous mobile forum in 2 hours using Meteor.

PyLadies Chicago

Introduction to Data Science with Python

In this 9-part workshop series, I guided students through a cursory overview of the data science using the Python programming language. The series covered the fundamentals of programming in Python, data visualization using Python tools, and machine learning techniques such as Bayesian classifiers, decision trees, and neural networks.

MidwestIO, Chicago Association of Computing Machinery

A Gentle Guide to Genetic Algorithms

Genetic algorithms are one of the most interesting search heuristics in the field of artificial intelligence and go back as far as the 1950s. In this presentation, I cover the history of genetic algorithms, the implementation of a simple genetic algorithm, interesting use cases of genetic algorithms, and the future of the technique in academia and industry.


Beyond the Code

Empathetic Teaching Techniques

Learning is the doorway to magical revelations and exciting journeys. Technical education is evolving beyond lecture halls and classrooms and into conference rooms and Meetup spaces. As education expands into non-traditional boundaries, it's important that educators of all kinds foster diversity, curiosity, and empathy in the classroom, especially in the technical discipline. In this talk, I explore tips and techniques learned through a variety of experiences in technical education, including developing empathy in the learning process, fostering student collaboration, and encouraging continued exploration.

DePy 2015

Free the Research Papers

What's even funner than reading interesting research papers? Implementing some of the techniques they describe! For some programmers, this can be a daunting and nerve-wrecking process. The strange symbols and the stranger jargon can be off-putting to the newly-minted research paper reader. In this talk, I discuss practical techniques for creating prototypal code for algorithms discussed in research papers.