Mostly I speak on software quality (such as my definition), techniques conducive to it (such as mutation testing), or explaining useful techniques that seem more complex than they are, so that people might be scared to try them (such as genetic algorithms). I have already done these talks at conferences (details here):
-
ACRUMEN: What IS Software Quality Anyway?!, about my definition of software quality. (Yes, I mean ACRUMEN, not ACUMEN. Follow the link for more details.) This is completely technology-agnostic; in fact there is not even any code! I have done this in lengths from 20 minutes to 50, and can do this as a keynote, a regular session, or a lightning talk.
-
Kill All Mutants! (Intro to Mutation Testing). I have prepared versions with the code in Ruby, Elixir, Python, and JavaScript, and lengths from 20 minutes to a bit over an hour (plus Q&A). This was voted the third best talk (out of over 70) at Software Quality Days 2024.
-
Tight Genes: Intro to Genetic Algorithms. Yes I do mean genetic, not generic! This one includes lots of code, but not live coding. (It is currently in Ruby, but I could certainly translate it into Elixir, Python, JavaScript, or even C if you like.) I have versions prepared from 30 minutes to 50.
-
Multi-Talking (not a typo!) with Genaver!, about a tool I created that lets me quickly and easily generate a version of a presentation (if it’s already in HTML, not PowerPoint, Keynote, etc.), with various parts customized. For instance, what human-language to use for the introduction, what programming language to use for any code samples, whether to use the short, medium, or long versions of various explanations (so that the talk can fit in various timeslots), and so on. This talk is the story of how the need came to be, how I settled on this implementation, how it works, and how to use it. This is currently written in Portuguese (as delivered at GambiConf 2023, in São Paulo, Brazil). Unlike most of my talks, this one is specific to JavaScript.
-
Ruby Gotchas. I have done this for local user groups, for about 45 minutes. It details some of the unexpected rough edges of Ruby, that are contrary to what one might expect, based on expectations built up by “most other languages”, or common sense. Unlike most of my talks, this is only in Ruby.
-
Drink Like a Chinese Egyptian Ethiopian Filipino Finnish Greek Indian Lithuanian Mayan Nepalese Polish Welsh Xhosa Viking: the History and Making of MEAD! Yes, this is not a technical thing, at least in the computer sense. ;-) This goes over the very basics, including the history, some common varieties, and how to make a small batch yourself at home with only equipment and ingredients you can surely find at your local grocery store. Basically, Mead 101.
Â
Other talks I am currently pitching include:
-
Bug Magnets: Booby-Traps in your Code, about certain patterns often found in code, that are not wrong per se, but make it much more likely that the next person to change that code will introduce a bug. These could be considered a subcategory of code smells.
-
From Examples to Exhaustive: Intro to Property-Based Testing.
-
TWO Weird Tricks: Intro to Property-Based Testing and Mutation Testing.
-
OOP: You Keep On Using That Word…, about how the term OOP (Object Oriented Programming) came to mean what it now means, versus what the person who coined it really meant (which is much closer to the Actor Model), when to use each, and how the two can be used together.Â
-
TDD like a Viking: Making Mead with JavaScript!, about the benefits and process of TDD (Test Driven Development), as applied to JavaScript, including Domain Object Model manipulation. This talk walks through several examples as I develop some helpful calculators for brewing mead. There is quite a lot of code, but it is not live-coded. Longer versions also include some of the how-to of brewing mead. Unlike most of my talks, this is only in JavaScript.
-
Whose Line of Code Is It Anyway? This is a hands-on demo of Ping-Pong Pair Programming with a co-speaker or a volunteer from the audience (or series of them), working on a problem and (at polyglot conferences) in a language both chosen by the audience (from a relatively small set).
-
Hire Mutants to Build Your Test Suite! This is a deeper dive into an idea from the extra-long version of my “Kill All Mutants” talk, about using mutation testing to build a test suite for code that doesn’t have tests yet.
-
From Audience to Authority: Breaking Into Conference Speaking, including things like why you might want to talk at a conference (or not), how to find and choose the conferences, apply to speak at them, track your applications, and a few basic public speaking tips.
-
Tame Two Tedious Tasks Together, with Doctests, on the benefits, limitations, and how-to, of doctests (tests built into the documentation), as commonly used in Python or Elixir. (This is intended to be a lightning talk of about ten minutes, for either language. I might be able to chop it down to five if needed, or stretch it out to fifteen or so by including both languages. Maybe even twenty with examples from additional languages, but I think that would get boring.)
-
COARSNO: The First Rule of Composition, about how things should be Composed Of A Reasonably Small Number Of items from the next layer down in the hierarchy.
-
Drink Like a Geeky Viking: the Nitty-Gritty of Brewing MEAD! This talk is about the geeky details that my main mead talk (above) omits, such as more on equipment (though still homebrew level, not commercial), calculations, how to fix problematic batches, what to do with the leftover sludge, and many more topics of technical interest. Basically, Mead 201.
I also have some five-minute “lightning” talks prepared:
-
Why we prepend to lists, instead of appending, when using immutable data, as is used with most “functional” programming languages.
-
Five-minute versions of my ACRUMEN, mead, and conference-speaking talks.
Other Info for Organizers
-
Want me to speak on something not covered above? Ask me, and we’ll see. I might write a new talk for free for a conference, but there will be a significant fee to write a new one for a corporate event. (Especially if I can’t use it again, such as if the company wants the IP rights or the talk is specific to that company.)
-
Except as noted above, these are all in English, but with decent lead time to translate, I could also do them in French or Portuguese. (In non-Anglophone countries, I also do my intro in the local language. So far, I have done that in Dutch, German, Greek, Lithuanian, Polish, Norwegian, Portuguese, Romanian, Serbian, Spanish, and Swedish.)
-
I will travel anywhere that is not a danger zone nor a PITA to get to, especially interesting tourist/history spots.
-
If you want my talk but are afraid of the airfare expenses, let’s talk about it. There may be options, such as combining conferences on one trip.