I gave a talk at Laravel Live Japan. An international conference, and very nearly my first time presenting in English. For me, it was a stage where a whole pile of “firsts” came together.
People are surprised when I tell them, but I’m genuinely the nervous type.
I’m also the type who flips a switch the instant I step on stage and say my first word. I know that gap in myself, and the rhythm that follows it, so lately I’d even started to enjoy the nerves beforehand. Or so I thought.
This time, I couldn’t ride that wave. A flawless stage, one that doubles as a live music venue. I couldn’t picture myself finding a rhythm up there. And my usual switch, that “first word,” would itself be in unfamiliar English.
With no clear sense of what lay ahead, I headed to the rehearsal venue the day before.
The Rehearsal Got Me Hyped
Let me borrow a post from @enunomaduro. The rehearsal, as seen from the stage:
The stage sits high, with a clear line of sight. The monitors are plenty big. From any seat in the house, the audience can see the slides in full, nothing cut off. Two monitors for the speaker, center stage.
With this, I could land the message I wanted to.
I ran a mic check. The return was plenty loud; through the speakers I could hear only my own voice, crisp and clear. I tried pushing it louder. No feedback at all, of course.
With this, even my voice, which tends to run away with me once I get going, would reach the seats, steady.
I turned around to check the YOYO1 translation. The English I’d scraped together at the last minute came back rendered into Japanese, and quite accurately at that.
With this, I could reach everyone, Japanese or English.
What rescued me from that fog of uncertainty was the venue’s equipment and technology, and the staff who made it all work. I’m truly grateful.
I went into the night before the big day in perfect shape. Apart from the two hours of sleep I managed, too excited for what was coming.
A Tech Glitch Turned Me Pale… Then Hyped
Showtime at last. I was to come on introduced by @DCoulbourne. I hadn’t been shown his script, but he gave a crisp rundown of my everyday OSS and community work. Every single topic he picked landed somewhere that mattered. I was hyped.
On the walk to the stage, I stepped into the spotlight and the show lighting. How many decades since I’d last been under lights like these? I was hyped.
Riding that high, just as I was about to begin, the AV tech was at my Mac, looking troubled. A connection problem, it seemed. Nothing on the speaker’s monitor.
Figuring I’d better fill the gap, I ad-libbed some idle small talk in Japanese. Two, three minutes, maybe? When I ran dry, I stepped back to the lectern, but it still wasn’t fixed.
…I went pale.
Having started to fill the gap half-heartedly, backing down now would be rude to the audience and the host alike. I had to say something. But what?
I’m standing on stage at a Laravel conference. Not PHP. Laravel. I can talk Laravel all day, but that’s exactly what makes it harder. Talk carelessly and I might overlap with another speaker. And winging it from memory, at a conference Laravel itself sponsors? In front of Laravel’s own people, I couldn’t afford to be wrong. So what could I talk about? Was there something I wanted to tell Laravel users? Something for the engineers who work above the framework layer. Surely I had that. Think. Yes, PHP. The evolution of PHP itself, and the people who drive it. I’d wanted to talk about that for ages.
“Want to talk generics2?”
Applause broke out. …Now I was absolutely hyped.
For the next ten minutes or so, I gave a completely improvised technical talk. With only memory to lean on I couldn’t go deep, but I didn’t miss the points that mattered. The pain of users, the pain of tool developers, the pain of PHP developers. Whether I drew out the audience’s interest in PHP any more strongly, I can’t say. But I have the real sense that I did what a PHP contributor ought to do.
Right as the talk wound down, it was lunchtime. The host decided my main session would come after the break.
I’d gotten to talk about whatever I wanted, as much as I wanted, riding the highest of highs, and now I was in the zone. Then a break, then the main session. You don’t get an experience like this often. I’ll savor it.
The afternoon looked set to go just as smoothly. Apart from my decision to skip lunch so the crash from all that hype wouldn’t hit, which left me facing the main talk on an empty stomach.
Facing the Main Talk, Calm
That said, I had a small problem.
There was a sense that I’d burned through my mental reserves on the morning’s improv. I tend to talk on emotion as it is, and back-to-back high-energy talks from the same speaker would wear anyone down. The “spoiler” I’d let slip mid-improv had even forced a few script changes.
And thanks to everything leading up to this moment, I was quite relaxed now. All right, for once, let me talk “calmly.”
(my translation) Less hyped than earlier.
He read me perfectly. @hanhan1978 has watched many of my talks from the front row. Yes, calm on the outside, but my head was racing the whole time! Thanks as always, and here’s to the next one!
There isn’t much to write about the main session itself. It’s a project, a deck, and a script I poured a very long time into, so please, go watch that. The gist: the Laravel Way works for humans and AI alike.
Why Laravel Apps Break — And How to Keep Them Maintainable
The reactions in the hallway split cleanly down the middle. Nearly every Japanese attendee praised the improvised Japanese first act; nearly every non-Japanese attendee praised the scripted main session. For some, the off-the-cuff Japanese landed more accurately than the English I’d prepared. I don’t regret choosing to speak in English, but my clumsy English must have been hard for the translation AI to handle. In places, the translated text was hard to follow.
If I get the chance, I’d love to perform it again with the deck and the script in Japanese. Organizers, if any of you are reading, I’d be grateful.
That’s the view from the stage. The surprises and discoveries I picked up from the audience side, I’ll save for another article, soon.
Footnotes
-
A live translation system for conferences, built by Laravel Live Japan organizer Ryuta Hamasaki: Live Translation for Meetups & Conferences - YOYO ↩
-
Generic types. A proposal under discussion, aiming for a future version of PHP (8.6?): PHP RFC: Bound-Erased Generic Types ↩