I had the pleasure last week of attending and speaking at DevTeach. This year’s DevTeach was in downtown Montreal, and here are a few scattered, unstructured thoughts on the event:
- On day 1, Itzik Ben-Gan gave a talk on advanced SQL Server techniques, and I found one technique so interesting that I had to blog about it. About 70% of his presentation was typing, and that takes chutzpah.
- One of the overarching themes of this year’s DevTeach is DevOps. Dylan Smith gave a great talk on the concept, as did Julien Stroheker. There were a few other sessions scattered through the day which hit on the topic as well, and on Tuesday night, the DotNetRocks guys did a panel discussion on DevOps, what it means, and what the future holds.
- I was impressed at how interested many of the attendees were in security. Security and developers don’t typically go together very well, but there were several security-focused talks (including one of mine). I think part of this goes back to the DevOps theme: as developers get more intertwined into administrative affairs, they (hopefully) become more aware of the security ramifications of their decisions. But maybe that’s the optimism talking…
- Joel Hebert gave a couple of great enterprisey talks, one on logging and the other on transient fault handling. I loved the logging talk, as it hit many really important points. For example, Joel made mention of logging anything and everything; specifically, log incoming payloads, outgoing payloads, and any mappings (transformations) which occur during the process. This results in a lot of writes, but gives you enough information to debug without running a debugger or trying to step through code. If you log appropriately, you might even get the ability to pick up where you left off after you fix the underlying issue, which could save a huge amount of time when dealing with large processes. I’ve been hitting similar topics at work lately, so this talk resonated with me; I ended up taking about a page of notes. And right after that talk, he gave another one on transient fault handling, looking at retry logic. His main theme was that you have to be smart about retries: it doesn’t make sense to retry a persistent error, but it also doesn’t make sense to give up when there’s a blip, so catch specific exceptions (like timeouts), try again with a custom backoff strategy (e.g., 1 second, then 3 seconds, then 30 seconds, then 90 seconds), and implement the circuit breaker pattern.
- I’ll end on a lighter note. Because DevTeach is in Montreal, some of the sessions were in French and a lot of the speakers are native French speakers. I can pick out a word here and there, but make no pretense of understanding French. On days 2 and 3, both morning speakers started out in French even though their abstracts were in English and DevTeach had a specific code to show which sessions were to be in French. Fortunately, they both switched to English very early on, so I was able to follow along and learn a bit on a couple of interesting topics.
I’d love to hit DevTeach again next year, so I’ll have to keep an eye out for next year’s CFP.