TrueNorthPHP 2016 Review
Last weekend I had the privilege to attend the fifth and final TrueNorthPHP in Toronto, Ontario. This was my third and hadn't realized there were only five altogether! I think this says a lot about this conference as it had always felt to me like it had been around much longer than that.
One of my favorite things about conferences is seeing people I only ever get to see at conferences. I used to do a decent job of remembering all of the people I'd see but it gets harder with age. I am happy that I do seem to be getting a bit better at remembering names and faces, though. :)
Many thanks to Chris Hartjes and Peter Meth for all their hard work making TrueNorthPHP 2016 the event that it was. Pete picked me up from the airport again and got me safely to the hotel even though my flight was several hours late. He also managed to keep a PHP Wooly Mamoth from last year so I could finally add it to my collection!
Tutorial Day
One of the nice things about TrueNorthPHP was that the conference ticket gets you into the tutorial day as well. The side effect of this is that the tutorials are far more full than they usually are! I can say that as a tutorial speaker this makes a big difference. Larger crowds can be a lot nicer than just getting three to five people total. While those experiences can be a bit more intimate it is always nice to have a crowd that is a little larger.
I had to miss the morning tutorial session on account of some previously scheduled Blackfire on boarding sessions so I wasn't able to take part in any tutorials myself. I showed up just prior to lunchtime to start setting up the SensioLabs and Blackfire table in the sponsor area. I was pleasantly surprised to see Paul Reinheimer and Gemma Lynn representing WonderProxy already setup and had a nice chat with them. I also got to meet Markus Latzel and Rachel Lapp representing WebPal and learned more about their business.
For anyone wondering about return on investment and costs of sponsoring a conference, the WonderProxy blog has some great information for you! Paul wrote "How to Sponsor a Conference" and it is filled with great information.
Introduction to Event Sourcing and CQRS
I gave one of the two tutorials offered in the afternoon. This was the first time I've delivered my "Introduction to Event Sourcing and CQRS" talks in North America. I'd recently talked about the fact that I hadn't done any Event Sourcing or CQRS related talks or tutorials anywhere but in Europe on Episode 32: Revival of That Podcast. It was nice to have that change and TrueNorthPHP was a great place to do it! The crowd was large, great to interact with, and came ready to ask questions. They were also kind enough to overlook a few of the technical hiccups I encountered during the live coding parts of the tutorial.
I was happy with my performance for the most part. It was clear to me that I had relied a little too heavily on the fact that I've given this tutorial several times in the past and hadn't prepared enough on the live coding side of things. In particular, I've upgraded to PHP 7.0 since the last time I delivered this tutorial and project was yielding unhelpful error messages from PHPUnit. The errors were expected, but the usual helpful pointers to get us all to the next level (like methods that needed to be implemented) were replaced with actual PHP Errors bubbling. I fixed it myself by using an old version of PHP 5.6.9 I had laying around on my laptop while someone in the audience who also happened to be running PHP 7.X (GO YOU!) fixed it by updating to a newer version of PHPUnit.
I also need to get more familiar with presentation mode in PHPStorm. It worked for the most part but I lost a tiny bit of time trying to tweak things to make them look better. I had someone come up to me later and gave me a new PHPStorm short-cut that I hadn't known before. That was super useful, though I cannot remember exactly who did that. If it was you, thanks again. :)
Speaker Dinner
Following the tutorials on Thursday was a speaker dinner at Chop steak house. I'd eaten here the previous year and enjoyed it both times. Chris does a great job about trying to make sure that people are comfortable and asked me if I was going to be attending and didn't just assume that I would. Although I doubt I expressed it at the time, I thought this was amazing. Thanks, Chris, for thinking of me in that respect.
Speaker dinners can be an interesting opportunity to talk with new people. And by interesting, I mean sometimes stressful. For me, it generally involves a bunch of people I should probably know (or have already met in person one or seven times) but either don't remember ever having met them or not sure who they are. I think I'm getting better at it, though.
I've been trying something new lately to help get me more out of my comfort zone and to interact with people I might not otherwise interact with. The trick is trying to sit down on the edge of a group of people. This opens up the possibility of letting people sit around you that you haven't chosen to sit by yourself. Not that there are people I would avoid talking to, exactly, but it is a lot easier to do the comfortable thing and sit by people you know better.
It works out for the most part and it worked out here, as well. The conversation was great and I had a blast getting to know some new people better and also to catch up with some other people I haven't seen in awhile.
I had walked to the restaurant with a group of people and spent most of that walk talking to Michelangelo van Dam. I had hoped for a ride back to the hotel after the dinner, though. Fortunately Elizabeth Smith offered a ride in her awesome minivan. Thanks Liz!
Day One
Day one was almost entirely dedicated to manning the SensioLabs and Blackfire booths. I had a chance to talk to a bunch of people who either hadn't heard of Blackfire or had heard of it but had never used it.
One great surprise was to have a chance to talk to Arnold Visser of Demac Media. Unlike almost everyone else I talked to, Arnold had used Blackfire a ton and wanted to find out the best way for Demac Media to use it more.
This has been an ongoing theme that I've very much enjoyed in my first few months onboarding users and teams to Blackfire. Almost everyone loves it. It would be a lot harder for me to stay engaged and excited about getting people to use software that wasn't so exciting to its users.
The team behind Vehikl was another sponsor neighbor. I chatted with Chris Keithlin, Colin DeCarlo, and Grant Lovell. Grant was nice enough to loan me a charging cable for my iPad. Thanks Grant!
Jason Hamilton-Masci from TestLauncher, another sponsor, also introduced himself and told me a bit about his business.
It was also nice to have Mo introduce himself to me this year. Thanks for coming out, Mo, and I hope we can stay in touch. :)
Not only was Jeremy Mikola nice enough to bring several pounds of fresh mozzarella from Hoboken, NJ, he was nice enough to leave it right at the SensioLabs and Blackfire booths! Thanks, Jeremy.
I was also excited to see Adam Lundrigan again! We had a chance to catch up for a bit so that was quite nice. Hoping that we'll be able to meet at another conference sometime soon.
Jonathan Reinink and Adam Wathan came by for a bit, too.
I met Adam at my very first TrueNorthPHP several years ago. I seem to recall we were two non-speakers (though maybe he was speaking then?) trying to find other people to hang out with and ending up having a long conversation in the hotel bar while we waited for other conference people to show up that night.
Over the last few months I've had a chance to work directly with Jonathan and that was a blast. It was great to have a chance to see him in person again and hang out. Hopefully we'll be able to continue working together sometime in the future.
Domain-Driven Design Deconstructed
The only talk I managed to visit was "Domain-Driven Design Deconstructed" by Andrew Cassell. I talked Jonathan into attending it with me.
I thought the talk was an excellent breakdown of many DDD (Domain-Driven Design) concepts. I've long wanted to do a high-level DDD talk and Andrew did it better than I could have hoped to do so.
The hard thing with DDD is knowing what your audience knows. I have a background in DDD so a lot of the talk spoke to me very clearly but I'm not sure how well it would have been received by a DDD novice or someone who had simply heard about DDD and wanted to know more. I imagine it would have been received well but it is hard for me to judge.
In any event, I thought the talk was well presented and I'd recommend it to anyone looking to find out a bit more about Domain-Driven Design. Well done, Andrew!
Hackathon
I'm a fan of TrueNorthPHP's hackathons because it usually gives me a great opportunity to socialize with people. This hackathon was no different. I stayed by the sponsor area most of the night but plenty of people were milling about which was nice.
One of the people looking to socialize during the hackathon was Bob Bloom. We had a chance to catch up a bit. He also has a review of TrueNorthPHP 2016 up on his blog!
In addition to what appeared to be a Magic the Gathering title match, Jeremy Mikola brought some additional entertainment in the form of a "weird flavor Pringles tasting" event. Which, of course, was recorded for all to enjoy.
The hackathon was finished around 10pm as expected and we were all rushed out quickly. It made for a great end for the first (and very long) day of conference talks.
Day Two
The first two thirds of the day were spent doing the sponsor thing. Ben Marks came by and was nice enough to take this picture. Thanks for the great photo, Ben!
I also took the opportunity to wear my Open Sourcing Mental Illness shirt as I was going to be giving a talk that day. Ed Finkler also dropped off a nice supply of OSMI stickers and magnets to add to the collection of schwag by my area of the sponsors table.
JeoPHPardy
The second day of the conference started out with two rounds of JeoPHPardy hosted by Jeremy Mikola. I love these events and was happy to join in the second round. I managed to get out after answering just two $100 questions correctly for a total of $200. Go me!
Learn to Stop Wiring and Love Laravel's Container
On the second day of the conference I delivered my first new talk in awhile, "Learn to Stop Wiring and Love Laravel's Container." This is a talk I've been excited to give ever since I realized how much more fun I was having programming in projects that used Laravel's container.
It is a talk that is a little hard to describe in the title or abstract without being too boring. In many ways the talk is more about auto wiring than Laravel's container, though Laravel's container has an amazing implementation of auto wiring.
My hope was that non-Laravel developers would come away with some new ideas for what life could be like if they used Laravel's container (or used auto wiring in their own ecosystem's container of choice).
Similarly, I had hoped that Laravel developers would come away with a new appreciation for how awesome their container is and maybe to realize that apart from auto wiring a lot of other containers are very similar. The trick, I think, is understanding the similarities and appreciating the differences.
This talk marks the first time I've had someone complain that the text was too big, so at least I'm not getting "text is too small" comments anymore. :) Thanks for that, Evert Pot! I'll have to considering towning down my usage of Deckset's [fit] with shorter words.
Before my tutorial I had asked if anyone objected to having their picture taken. Nobody did so I got a nice pano of the people who joined my tutorial. I asked the same question before my container talk and someone did raise their hand. It made me pretty happy to have asked the question and I hope that I remember to do so in the future. It might seem like a little thing but some people do have objections to being photographed so I need to try and be more cautious about this.
Closing Keynote
Chris closed out the conference with the aptly named talk titled, "Last One Out Please Shut Down the Conference." It was here that I first learned that there have only been five of these events. I've only ever been on the outside of the conference having process but I can only imagine how much time and energy is required to pull it off well, and the team behind TrueNorthPHP seems to have done just that. But all good things come to an end eventually, and sometimes it is nice to go out while things are still going strong.
Thanks for your hard work and dedication to making TrueNorthPHP into the conference that it was, Chris and Pete. I'm sure there were other people that contributed over the years but I'm not going to make assumptions there. To everyone involved in any of the events I attended, and those I did not, THANK YOU!
After the closing talk the conference was over. As promised, we were all ushered out and everyone was gone within ten to fifteen minutes.
Social
I needed a little break before the social so I showed up somewhat late. I sat down at the end of the bar and was approached by Chris Tickner and we got to geek out about Event Sourcing and CQRS. We'd been in touch via email so it was nice to put a face with an email address.
I didn't stick around long but ended up talking to a dozen or so people before I called it a night. This may or may not have coincided with the moment that Eric Hogue showed up with some card games. My first and only experience with one said card game was at my very first TrueNorthPHP. I was happy for that to remain a fond if not awkward memory of my very first conference in Canada. :)
Conclusion
TrueNorthPHP 2016 was a blast. I'm so happy I was able to attend. Thanks again to Chris and Pete and to everyone else I met who helped contribute to make this last TrueNorthPHP conference one to remember!