It was a normal week day when I decided to apply for a software development talk at my Alma Mater (Pontificia Universidad Católica Madre y Maestra – Santiago, Dominican Republic), not much went through my head at the moment other than that it would be nice to meet the new generation of CS students and serve as a bridge between what they are learning versus real world execution.

Redux and the modern web

While I was preparing for my talk a dreadful thought came to my mind: I was preparing a talk not only for a bunch of CS students and software enthusiasts but for my younger self... I know, it sounds cliché but the more I thought about it, the more I realized I used to be in their position ten years ago, craving for knowledge, seeking guidance. So I asked myself the following question:

If I were to give a talk to my younger self, how would I inspire his curiosity?
That’s when I realized the two most important principles of my talk:

Empathize

I realized that if I wanted to get the students attention and truly teach them something new I had to empathize with them first. I had to put myself in their shoes, visualize my younger self as an attendant of my talk.

A good friend told me “You could entertain people with technical jibber-jabber”, but I knew I had to do more than just slides and tech talk to create a connection with them. So I decided to start my talk with an offtopic advise that would immensely help them on the long run as it have helped me and my colleagues (thanks for that, younger self!): know your english, make it your second language, now. No next year, no next month, right now! You’ll be thanking yourself for that in the years and challenges to come.

In that moment a pact was made between the audience and me and they knew I really cared for them, so I wasn’t there just presenting some slides and building a reputation. My goal was that by the moment the talk was over, they were better people than they were when they walked into the room.

I shaped every aspect of my talk with this principle in mind, every single example, every single line of code. Which led me to the second most important thing.

Inspire

After the connection was established it was my job to keep them interested and curious, it was my goal to inspire them. I layed out all my ideas and started to create a simple but meaningful path to follow over the talk, I tried to have them entertained, interested and wanting more all the time.

I have to admit it was terrifying wanting to achieve so much without really knowing if they’d be inspired at all. Talking to crowds is not my forte so this was a challenging situation for me, I had to unleash myself while trying to inspire others. Then I recalled this article from X-Team’s CEO Ryan Chartrand, in particular this part:

…I realized how incredibly fortunate and honored I was to even have the opportunity to inspire one person…

Don’t let that possibility of someone not being interested stop you from fulfilling the opportunity to inspire just one person in the world. It’s an incredibly great feeling, I promise you of that.

I decided to give them everything I could even if my public speaking fear kicked in and messed up my oratory. I expected them to be motivated and have a solid set of content to dive in. So, as any great magician –reference intended–, my act was divided in three parts.

The first part is called "The Pledge".I presented them a web development problem and explained how we experience it in real life, and how we’ve become to accept it as a normal thing, part of our everyday work.

The second part is called "The Turn". I gave them a reason why that “normal” thing could be a problem, showed them how a proposed solution was conceived and born, went over the whole anatomy of the solution, showed them real working examples along with code snippets explaining how they worked, made clear how it could make their apps and their development cycle better, traced a learning path by sharing with them links for training material around the internet and gave them a direct way to contact me in case they had any questions. But they wouldn’t be truly inspired yet, because of course talking and changing slides and showing examples wasn’t going to be enough, I had to bring something solid to the table.

That’s why this act have a third part, the hardest one, the part we call “The Prestige”:

Imagine the look in their faces when I revealed them that every single slide, every single example, every single thing they saw on the screen was a web application built from the ground up using the exact same tools we were discussing in the talk and that I made it specifically for them, that I was giving them all that code to play and experiment on their own, that they had a solid, real example they could take home and dive in. They loved it.

And man, that was a truly incredible feeling!

It took a lot of extra effort to go that fancy and write a not-so-basic yet fully functional presentation engine in React/Redux in order to give them a great ending, in order to make the talk more meaningful after it was over.

I don’t regret a single hour invested into making that talk. I don’t regret my mistakes and I absolutely don’t regret my successes because I can say for sure that at the end of the talk people walked out of the door motivated, inspired.

one more thing

My younger self would have been happy investing his time attending to that talk. As happy as I was investing mine preparing for it, inspiring with it.

Here's the repository with all the code, including the presentation engine: Redux and the modern web, a love story. Feel free to contribute, play with it or use it for your own talks. :)