Portfolio
Click a project title or image for information
Projects and Doodles
Simply Breathe
Description
Doodle I made for #Codevember 2018 Day 2 - Time. The circle in the middle expands, pulses, and contracts.
The idea is to time your breath to the circle to ground yourself and relax.
The color gradient in the circle changes depending on the time of day.
Links
View the code on Github, or see the project in action
at simplybreathe.me.
The Friday Series
Description
The Friday Series is a pair of sister sites that inform you whether or not it is Friday. Is it Friday Yet Today? also changes background color and sometimes has CSS animations based on the season. Is it Not Friday Today? is simpler and more straightforward.
The day and season are programatically determined, and can be tested in the developer console.
Links
- View the code on Github.
- Is It Not Friday Today?
- Is it Friday Yet Today?
Background Noise of the Universe
Description
Doodle I made for #Codevember 2018 Day 1 - Infinity. Dots clean up after themselves when they float
offscreen. If total number of active dots exceeds 1.5x the starting number of dots, excess dots are
cleaned up so as to maintain performance in the browser.
Links
View the code on Github or see it in action.
Confetti Burst
Description
Simple fun doodle that creates a burst of colorful dots when you click the screen.
Each click creates as many dots as have left the screen, so the longer you wait in between clicks,
the larger the burst of dots.
Links
View the code on Github or see it in action.
BetterReads
Description
BetterReads is a Python package available on PyPi that provides a user friendly interface for the Goodreads API. Unfortunately, the Goodreads API is now defunct, so I have archived the repository.
Links
View the public archive of the code on Github.
Talks
The Art of Mentoring and Being Mentored (because we are all always both)
Description
This talk was originally given at PyOhio 2017. It centers on professional development and is highly
customizable to the theme of any event or conference.
Abstract
Mentorships are some of the most important relationships we can foster for professional and human development.
Whether or not we realize it, most of us are simultaneously mentors and mentees to many people in our lives. The
best way to improve the strength and health of those relationships is to recognize them, focus on growing them,
and acknowledge when a mentorship has outlived its usefulness.
This talk explores the lifecycle of a mentorship. First we’ll discuss finding mentors and making yourself
available to mentees. Next is growing those relationships. Mentoring is a partnership built on trust and mutual
respect. Third, we’ll talk about how to set healthy boundaries and manage mentoring with other professional and
personal responsibilities. Last, we’ll talk about why a mentorship might draw to a close, and how to make an
amicable break.
Audience members will leave better equipped to engage in mentoring relationships out in the world. They’ll be
able to recognize informal mentorships, intentionally seek out mentors and mentees, and take care of themselves
in the process of helping others grow.
Links
The Zen of Python in Practice: Balancing Idealsim with Production Concerns
Description
This talk was originally given at Chicago Coder Conference 2017.
If you would like me to craft a version of this presentation for your conference or event, contact me via
email or Twitter.
Abstract
Shipping code is not always ideal or beautiful. The Zen of Python is a favorite Pythonista Easter Egg accessed
by typing import this
into a Python shell. It prints out a poem full of aphorisms and high minded
ideals that we all aspire to when we're developing. But once code hits production, things have a tendency to
fall apart. Aphorisms that seem so obvious and simple in our side projects sound hopelessly optimistic when
thinking about our day to day work.
This talk will walk through some of the ideals laid out in the Zen of Python and examine the challenges we face
in production codebases through this lens. The Zen of Python encourages flat, sparse, simple programs without
guesswork in the face of ambiguous problems. But sometimes you just need to push that bug fix. Our code doesn't
always have to be beautiful, but we need to learn not to let the adequate be the enemy of the good.
Intended Audience
This talk is great for people who are new to programming, or have moderate programming experience but are new to
Python.
Links
Why Python?
Description
This talk was originally given at General Assembly's
Road to Code.
If you would like me to craft a version of this presentation for your conference or event, contact me via
email or Twitter.
Abstract
Learning how to program can be a daunting task, especially if you're not sure which programming language to
start with. This talk serves as a brief introduction to parts of Python's philosophy and features that make it
great for beginners. From the Standard Library to a robust and active community, Python offers a solid
foundation for anyone looking to get their sea legs while providing ample room to grow into an experienced
software engineer.
Intended Audience
This talk is specifically geared toward people who want to learn to code, but haven't done significant practice
or study yet.
Links
Three Things to Learn the Hard Way
Description
This talk was originally written specifically for the Dev Together meetup..
If you would like me to craft a version of this presentation for your conference or event, contact me via
email or Twitter.
Abstract
There are tons of streamlined resources that make our lives as devs easier, but sometimes hinder long term
understanding and growth. I'm here to explain why junior developers should spend their first job using command
line git, avoiding ORMs, and making as many mistakes as possible.
Intended Audience
This talk was originally written for Dev Together Chicago's January 2019 meeting with talks themed around "Your
first dev job". This talk is specifically designed for students and recent graduates seeking their first job. It
is not appropriate for a mixed or advanced audience.
Links
Three Python Nuances I Wish I'd Known Earlier
Description
This talk was originally written for the Chicagoy Python User Group.
If you would like me to craft a version of this presentation for your conference or event, contact me via
email or Twitter.
Abstract
I'll briefly go over three Python gotchas that have given me headaches in the past that I wish I had known about earlier. We'll talk about a good use case for deepcopy, why default mutable arguments are unexpectedly tricky, and the difference "is" and "==" comparators.
Intended Audience
This talk was originally written for the Chicago Python User Group (ChiPy) January 2019 Meeting. This talk is designed for people who are newer to Python, but is appropriate for Pythonistas of any level.
Links
Open Source Contributions
So You Just Learned
Description
So You Just Learned is a community resource that catalogues instances of discrimination in the tech industry. It's meant to be a broad overview, not a comprehensive resource,
designed to be an accessible entry point for folks not familiar with the history of some of tech's unseemly issues.
I am a core maintainer on the project and helped compile many of the initial resources.
Links
View the project on Github.
PyVideo Data
Description
PyVideo.org is an index of Python related media. Many people do not have the resources (whether that be time, money, nearby user groups, etc.) to attend Python informational and educational events. PyVideo.org is a freely available index of freely available resources that seek to provide everyone with the opportunity to learn about Python.
I am a frequent contributor to the data indexed by PyVideo, and the #5 contributor to the pyvideo/data repo as of March 2019.
Links
Simply Breathe
Description
Doodle I made for #Codevember 2018 Day 2 - Time. The circle in the middle expands, pulses, and contracts. The idea is to time your breath to the circle to ground yourself and relax.
The color gradient in the circle changes depending on the time of day.
Links
View the code on Github, or see the project in action at simplybreathe.me.
The Friday Series
Description
The Friday Series is a pair of sister sites that inform you whether or not it is Friday. Is it Friday Yet Today? also changes background color and sometimes has CSS animations based on the season. Is it Not Friday Today? is simpler and more straightforward.
The day and season are programatically determined, and can be tested in the developer console.
Links
- View the code on Github.
- Is It Not Friday Today?
- Is it Friday Yet Today?
Background Noise of the Universe
Description
Doodle I made for #Codevember 2018 Day 1 - Infinity. Dots clean up after themselves when they float offscreen. If total number of active dots exceeds 1.5x the starting number of dots, excess dots are cleaned up so as to maintain performance in the browser.
Links
View the code on Github or see it in action.
Confetti Burst
Description
Simple fun doodle that creates a burst of colorful dots when you click the screen.
Each click creates as many dots as have left the screen, so the longer you wait in between clicks, the larger the burst of dots.
Links
View the code on Github or see it in action.
BetterReads
Description
BetterReads is a Python package available on PyPi that provides a user friendly interface for the Goodreads API. Unfortunately, the Goodreads API is now defunct, so I have archived the repository.
Links
View the public archive of the code on Github.
Talks
The Art of Mentoring and Being Mentored (because we are all always both)
Description
This talk was originally given at PyOhio 2017. It centers on professional development and is highly customizable to the theme of any event or conference.
Abstract
Mentorships are some of the most important relationships we can foster for professional and human development. Whether or not we realize it, most of us are simultaneously mentors and mentees to many people in our lives. The best way to improve the strength and health of those relationships is to recognize them, focus on growing them, and acknowledge when a mentorship has outlived its usefulness.
This talk explores the lifecycle of a mentorship. First we’ll discuss finding mentors and making yourself available to mentees. Next is growing those relationships. Mentoring is a partnership built on trust and mutual respect. Third, we’ll talk about how to set healthy boundaries and manage mentoring with other professional and personal responsibilities. Last, we’ll talk about why a mentorship might draw to a close, and how to make an amicable break.
Audience members will leave better equipped to engage in mentoring relationships out in the world. They’ll be able to recognize informal mentorships, intentionally seek out mentors and mentees, and take care of themselves in the process of helping others grow.
Links
The Zen of Python in Practice: Balancing Idealsim with Production Concerns
Description
This talk was originally given at Chicago Coder Conference 2017. If you would like me to craft a version of this presentation for your conference or event, contact me via email or Twitter.
Abstract
Shipping code is not always ideal or beautiful. The Zen of Python is a favorite Pythonista Easter Egg accessed
by typing import this
into a Python shell. It prints out a poem full of aphorisms and high minded
ideals that we all aspire to when we're developing. But once code hits production, things have a tendency to
fall apart. Aphorisms that seem so obvious and simple in our side projects sound hopelessly optimistic when
thinking about our day to day work.
This talk will walk through some of the ideals laid out in the Zen of Python and examine the challenges we face in production codebases through this lens. The Zen of Python encourages flat, sparse, simple programs without guesswork in the face of ambiguous problems. But sometimes you just need to push that bug fix. Our code doesn't always have to be beautiful, but we need to learn not to let the adequate be the enemy of the good.
Intended Audience
This talk is great for people who are new to programming, or have moderate programming experience but are new to Python.
Links
Why Python?
Description
This talk was originally given at General Assembly's Road to Code. If you would like me to craft a version of this presentation for your conference or event, contact me via email or Twitter.
Abstract
Learning how to program can be a daunting task, especially if you're not sure which programming language to start with. This talk serves as a brief introduction to parts of Python's philosophy and features that make it great for beginners. From the Standard Library to a robust and active community, Python offers a solid foundation for anyone looking to get their sea legs while providing ample room to grow into an experienced software engineer.
Intended Audience
This talk is specifically geared toward people who want to learn to code, but haven't done significant practice or study yet.
Links
Three Things to Learn the Hard Way
Description
This talk was originally written specifically for the Dev Together meetup.. If you would like me to craft a version of this presentation for your conference or event, contact me via email or Twitter.
Abstract
There are tons of streamlined resources that make our lives as devs easier, but sometimes hinder long term understanding and growth. I'm here to explain why junior developers should spend their first job using command line git, avoiding ORMs, and making as many mistakes as possible.
Intended Audience
This talk was originally written for Dev Together Chicago's January 2019 meeting with talks themed around "Your first dev job". This talk is specifically designed for students and recent graduates seeking their first job. It is not appropriate for a mixed or advanced audience.
Links
Three Python Nuances I Wish I'd Known Earlier
Description
This talk was originally written for the Chicagoy Python User Group. If you would like me to craft a version of this presentation for your conference or event, contact me via email or Twitter.
Abstract
I'll briefly go over three Python gotchas that have given me headaches in the past that I wish I had known about earlier. We'll talk about a good use case for deepcopy, why default mutable arguments are unexpectedly tricky, and the difference "is" and "==" comparators.
Intended Audience
This talk was originally written for the Chicago Python User Group (ChiPy) January 2019 Meeting. This talk is designed for people who are newer to Python, but is appropriate for Pythonistas of any level.
Links
Open Source Contributions
So You Just Learned
Description
So You Just Learned is a community resource that catalogues instances of discrimination in the tech industry. It's meant to be a broad overview, not a comprehensive resource, designed to be an accessible entry point for folks not familiar with the history of some of tech's unseemly issues.
I am a core maintainer on the project and helped compile many of the initial resources.
Links
View the project on Github.
PyVideo Data
Description
PyVideo.org is an index of Python related media. Many people do not have the resources (whether that be time, money, nearby user groups, etc.) to attend Python informational and educational events. PyVideo.org is a freely available index of freely available resources that seek to provide everyone with the opportunity to learn about Python.
I am a frequent contributor to the data indexed by PyVideo, and the #5 contributor to the pyvideo/data repo as of March 2019.