Didactic: I teach a topic. I draw examples from my career, but the talk does not center me or my personal experience. For example, I talk about leveling up, but not my journey into software development.
Technical: I focus on things I think engineers should know (though I make sure to include something for designers and product folks, too). The examples come from application or machine learning development projects. The slides may have code samples. For example, I talk about refactoring, but not “being a woman.”
Language and version agnostic: I stick to principles and approaches that remain valuable across languages, frameworks, and versions. For example, I talk about debugging strategies, but not what’s new in the latest Android SDK release.
I love speaking and facilitating workshops at conferences, and nothing brightens my day like an invitation to speak at yours!
That said, I’ve been doing this long enough to see that a) conference organizing is hard and therefore b) it’s not unusual for conferences run by well-meaning people to negatively impact the community by accident. When I’m deciding whether to speak at a conference, I consider:
The organizing committee: Conference organizing is hard. One person trying to organize a conference is risky. Success in this realm usually takes a team. At least some of the organizers on that committee ought to have conference organizing experience.
The Code of Conduct: Is it complete? Is it specific? Is it a good code of conduct from knowledgable CoC people, or is it hand-rolled? Does it have an enforcement measure that I believe in?
The equity plan: What is the plan for ensuring a diverse list of speakers and attendees, and how is the conference planning to proactively meet the inclusion needs of a diverse group?
The compensation plan: It helps a lot if an in-person conference conference covers travel, lodging, and the ticket price. It’s not that I can’t or won’t pay: it’s the effect that the policy has on the speaker list. See, a conference that expects speakers to cover themselves is only accessible to speakers who have the cash to foot the bill, and it’s only really attractive to speakers working at a company that will pay it for them. I’m tired of hearing talks from people at the same six companies.
Also, don’t be Lesbians Who Tech and pay your hetero keynote speaker while expecting all your actually queer speakers to not only cover travel and lodging, but also pay for a ticket. I’m pretty sure if I pitched the LWT speaker strategy to Portlandia, they’d say it’s an unrealistically uncharitable depiction of tech.
I think panels are an excellent way to juxtapose varied perspectives on a topic. To that end, I’m thrilled to consider moderating and speaking on panels that are germane to software engineering or software leadership.
I’ll also consider inclusion-related topics, but the audience must be private and the event must not be recorded or distributed. These engagements also have a separate fee structure from technical topics.
For all panel appearances, please ensure the following (adapted from Mary Robinette Kowal’s inclusion rider): I’m not the only woman on the panel, and the panel is not homogenous by gender (which includes trans & cis), sexuality, ability, or race. If you need help balancing a panel, I’m happy to help find voices from underrepresented groups.
Talks I Currently Give:
A Framework for Addressing Technical Debt
Length: 45 Minutes
Philly ETE, 2022
Getting out of tech debt can feel like a Sisyphean task. After weeks of work, the success case is for the app to work the same as it used to. Organizations often declare code bankruptcy and rewrite working systems from scratch. How do we end up here? And how do we alleviate, or even better, prevent such a situation?
In this workshop, you will learn how to measure tech debt and address the areas of highest need first. You’ll learn to identify high leverage code changes and separate those from renovations. You’ll also learn about the skills tech teams can use to prevent and reduce tech debt.
The Technology and Psychology of Refactoring
Length: 45-60 Minutes
PearConf 2019, Center on Halsted, Chicago, 2019
PearConf Distributed Lecture Series, 2019
When the requirements change out from under your tech team, your code has to change. So it’s worthwhile to build your skills in assessing code maintainability, deciding whether to refactor, and doing the refactor.
In this talk, we’ll answer questions like:
What does it mean for code to be maintainable, and how do we make code more maintainable?
How do we know when to refactor—and how do we know when to stop refactoring?
How do we sell stakeholders on giving us space to make a large refactor?
This talk includes both code samples and architecture samples from apps in use today.
Here’s a Condensed (23 Minute) version of the talk that I recorded for JuneteenthConf’s Supporting Speaker Track:
How to Level Up as a Technologist
Length: 35-45 Minutes
COUNTRY Financial Internal DevOps Conference, 2018
PearConf Meetup, 8th Light, Chicago, 2019
To thrive as a technologist, you need to constantly level up your skill set.
That sounds daunting: after all, there’s so much to learn. You might have even experienced some false starts in the past where you tried to learn a new skill and it didn’t work out.
It’s not because you can’t. In fact, I’m confident that you already have the innateability to addbreadth and depth to your skill sets.
I know that because I know that you use that ability every day to stay current as a technologist.
Leveling up is itself a skill that you can sharpen. Today we’ll talk about some techniques that you can use to get better at leveling up. These techniques will help you translate your innateability to learn so you can broaden and deepen your skill set more effectively, and even enjoy doing it!
Here’s an abridged (22 minute) version of the talk that I gave at a meetup as a favor to a friend:
Debugging: Techniques for Uncertain Times
Length: 20 Minutes
When we learn to code, we focus on writing features while we understand what the code is doing. When we debug, we don’t understand what our code is doing. The less we understand, the less likely it is that our usual programming mindset—the one we use for feature development—can solve the problem.
It turns out, the skills that make us calmer, more effective debuggers also equip us to deal with rapid, substantial changes to our lives.
Whether you’re uncertain about what’s going on in your code, your life, or both, in this talk you’ll learn debugging techniques to get you moving forward safely.
Here’s an abridged (22 minute) version of the talk that I gave at a lunch and learn, again, as a favor to a friend:
What Counts as a Programming Language?
Length: 20-30 Minutes
Code Mesh V, 2020
What we can learn from questioning how we categorize things
How to identify “assumed context,” and why it matters
Lessons learned from “domain specific” programming languages
Here’s the Code Mesh V version of the talk, plus a little Q&A 😉:
Talks I Have Retired:
Allyship in Times of Crisis
Length: 20 Minutes
Pivotal Labs Employee Professional Development Series, 2016
This talk is for allies who want to take care of marginalized communities affected by traumatic events. I gave it shortly after the Pulse shooting in Orlando, but the principles apply in many crisis situations.
In the event of a tragedy like this, we need allies to step up. It can be difficult to know what to say or do if you are not a part of the affected community. That’s what this talk is for: it’s a starting point for allies.
We start with some terminology and talk about what we mean by terms like target, ally, bystander, and crisis. Then we discuss the grief and fear that prevail within a target community after a crisis, and where allies can start to help with that.
Finally, we relate the discussion back to what an ally can do on a daily basis to help fight for equality—and how social change happens.
Full Video Available At:
Chelsea, come give this talk at my meetup!
I’m so glad you appreciate the talk! But lovingly, no.
I only have, and only will, give this talk once. I didn’t even rehearse it.
That’s why I asked Elliot, the best videographer I know, to record it: I knew, if the video or audio recording failed, the talk would be lost forever.
As you can see, Elliot pulled through and got a full recording. So if you want this talk at your meetup, you’re welcome to play the video.
Speaker Bio and Headshot:
Chelsea is a Staff Data Engineer at Mozilla, focused on the role of data privacy and scientific rigor in automation. She is a maintainer for the Roc programming language and mentors formerly incarcerated technologists through Emergent Works. She teaches Python & Mobile Development at the University of Chicago Master’s Program in CS, hosts workshops for O’Reilly, and writes at chelseatroy.com.
Chelsea flings barbells around for fun. She drives an electric cafe cruiser named Gigi.