This year I was lucky enough to attend NDC London for the first time. I was sponsored by my employers and they opted to send me for the 2 days of pre conference workshops too. I had 2 colleagues along with me, Jamie was here for the full week (the same Jamie who won NDC tickets at DDD North), while Paul would be arriving on Tuesday evening for the conference proper.
Workshop day 1
Modern Web Applications with Aurelia - Ashley Grant
This workshop was the only reason I agreed to attend the workshops, although it faced strong competition from the ASP.NET Core workshop and Troy Hunt’s “Hack yourself first” workshop. It’s testament to how much I wanted to get started with Aurelia that this workshop won out, even though it was a single day workshop. Ashley is the community lead for the Aurelia team and he really knows his stuff. In addition to the structured workshop content we also got to hear a fair bit about the latest changes in Aurelia, including server side rendering (which was being worked on at the time). I was surprised to see there were only 3 attendees at this workshop, but that was more attention for thos of us who did attend. I enjoyed the content of the workshop greatly and left with renewed enthusiasm for the framework - I just need the right project for it now!
Workshop day 2
Property-based testing with F# - Mark Seeman
If I’d had my preference, the Aurelia workshop would’ve been a 2 day workshop. I chose this workshop as the best of those available, but I am pleased I did. I don’t have much experience with F#, in fact I have no experience other than some tutorials a few years ago. I brushed up on F# syntax the night before and managed to keep up well enough to follow the content. The workshop was very interesting and certainly gave me something to think about, even for an object oriented developer like myself. Mark certainly knows his stuff, and this workshop gave me a fascinating insight into functional programming.
Conference day 1
Saving the World One App at a Time – The Humanitarian Toolbox - Richard Campbell
Richard gave us all an interesting talk about the Humanitarian Toolbox, which had been the subject of his 2 day workshop on the previous days. Richards talk was full of interesting tidbits and was a great start to the conference. The Humanitarian Toolbox is a fascinating idea, and is something I really must get involved in at some point.
Patterns for application development with ASP.NET Core - Damian Edwards, David Fowler
This was a fantastic talk, from the guys behind ASP.NET Core itself. I don’t know that there was a lot of new information for me personally, but it was nice to see it all presented together. Damian and David are great presenters, and it was nice to hear their take on things.
An Opinionated Approach to Using ASP.NET Core - Scott Allen
Scott is a very popular speaker, and it’s easy to see why - the guy is a real pro. He presented his material in a relatable manner and certainly gave me some food for thought. Scott’s ideas were presented not as “Thou Shalt” directives - they were more examples of his own personal pragmatic approach. I’m not entirely sure that every approach he presented fit with me personally, but most of them made great sense and many matched my own take precisely.
IdentityServer4: New & Improved for ASP.NET Core - Brock Allen, Dominic Baier
Identity Server 4 is the new, improved and dotnet core ready release of Identity Server. It is likely to feature strongly in the future of my companies products, so it made sense for me to attend this session. Brock and Dominic are the guys behind Identity Server, so are very well placed to talk about it. I had been pleased to see that this fantastic identity solution was an early supporter of dotnet core; although it turns out this was no accident, as Microsoft made a special request to Brock and Dominic to get them on board.
Getting the best out of ASP.NET Core in Azure - Jon Galloway
Although my company already uses Azure, we currently only use it as a host for virtual machines. We’d very much like for the next generation of our products be hosted in the cloud as web apps, so this session was one I was very much looking forward to. Jon did not disappoint, and presented an informative session that covered all of the important parts.
Introducing ASP.NET Core Sockets - Damian Edwards, David Fowler
Rounding off a day that was already heavy on ASP.NET Core, is a final session presenting the successor to SignalR - ASP.NET Core Sockets. The content presented in this session was bleeding edge - there was content from commits from that very morning! A lot of the content was “where the project is going” rather than “where it is now”, but it was no less interesting for this.
Conference day 2
Aurelia: Next Generation Web Apps - Ashley Grant
This session was a hard slot to choose for, as it clashed with both Jon Skeet’s “Working with time is easy!” and Kathleen Dollard’s “C# 7” talks, which I wanted to see. It may seem counter productive, given that most of this session was covered in the workshop, but I knew Ashley would (hopefully) be demonstrating Aurelia server-side rendering, so I wanted a first look at this. Another reason for going was I was dragging Paul along to give him an introduction to Aurelia.
An independent look at the arc of .NET - Kathleen Dollard
If there is one word I would use to describe Kathleen Dollard, it is enthusiastic; and it’s infectious! This session covered the history of .NET and C# from the very beginning up until the present day and was full of fascinating tidbits of information.
Abusing C# More - Jon Skeet
This session presented the worst kind of bad code - evil code that looks attractive and/or functional. Jon presented several examples, from his favourite unicode character (the Mongolian vowel separator) to abusing newer language features like string interpolation and tuple deconstruction. Jon has to keep reminding us throught that this is evil code, as his examples occasionally start looking attractive, until you give your head a shake and think about it properly!
Never RESTing – RESTful API Best Practices using ASP.NET Web API - Spencer Schneidenbach
Spencer delivers his take on several best practices when implementing a RESTful API using ASP.NET Web API. It’s hard to find major fault with any of the idea’s Spencer presented as I find myself agreeing with most of it.
Holographic Programming – Exploring the HoloLens - Lars Klint
This was one of those few sessions that offer me nothing professionally - I’m very unlikely to find a practical application for the HoloLens in my line of business (but I’ll keep trying!), so this session was just for my inner child. The HoloLens is a fascinating product and it was interesting to hear from a developer who works with them, rather than the folks who manufacture and sell them. Lars is a funny guy and had prepared an interesting demonstration into HoloLens development.
.NET Rocks Live Panel on Machine Learning - Carl Franklin, Richard Campbell, Jennifer Marsman, Barbara Fusinska, Evelina Gabasova
This live recording of .NET Rocks (listen to this episode here) tackled the subject of Machine Learning. This isn’t an area I have any familiarity with, so I found it extremely eye-opening. Carl and Richard are always great hosts and their guests today each brought a great insight into a subject I don’t know enough about.
Make Cyber Great Again - Troy Hunt
This session took place in the evening, during the drinks reception. Troy Hunt gave an hilarious look at the state of information security in modern times. It wasn’t all jokes though, it does raise the important issue about the politicians making the rules that govern our lives not understanding technical issues. What can we do to help them?
Conference day 3
Focus on the User: Making the World a Better Place - Jeremy Clark
I didn’t have a particular pick for this session - I had been thinking about attending Jennifer Marsman’s “Using EEG and Azure Machine Learning to Perform Lie Detection” talk, but Paul persuaded me of the important of user focus, and I’m glad he did. Jeremy encouraged us to think of the end user not as an obstacle to overcome, but as the reason for the software itself. It’s something we probably all understand deep inside, but is easily forgotten at times.
The how-dare-you-call-me-an-idiot’s guide to the .NET Standard - Matt Ellis
I thought I understood the .NET standard fairly well going into this session, although it was Paul’s first introduction to it. Matt presented what could be quite a dry subject very well, so I was very glad I attended.
Exploring Pattern Matching in C# - Bill Wagner
I haven’t used pattern matching yet, but I thought I understood it - it turns out I had barely scratched the surface! Bill is another great presenter, and had a series of examples showing the various aspects to pattern matching.
Lightning talks - Michael Franc, Andy Davies, Peter Ibbotson, Tugberk Ugurlu, Barry Stahl
Lightning talks are quick (10 - 15 minute) sessions that cover the basics of a subject without getting too deep into it. Depending on your interests, they may be a mixed bag, but there can be hidden gems. The Heroes of programming - 10x developer myth Michael Franc The myth of the 10x developer is still quite prevalent, and Michael gives his take on it. Strong Type All The Things! Andy Davies Strong typing has many, many benefits, but Andy shines a light on the few minor drawbacks. PowerShell the good, the bad and the weird… Peter Ibbotson Peter gives us a brief run through some of the tips and tricks he has found using PowerShell for continuous delivery. I Hated React too Soon, Reconciled with It Quickly Afterwards Tugberk Ugurlu This one gave me something to think about. I don’t like the way React mixes views and models, but I have to agree with Tugberk - there is no denying that it is effective! What makes a good unit test? _Barry Stahl__ This was a very interesting talk, and Barry had some great points to make.
Something Something Cyber - Troy Hunt
Troy Hunt is one of the most polished tech speakers I have ever seen. He knows his subject and clearly puts a lot of effort, not just into the content of his talks, but the delivery too. Security is such an important subject, but it’s nice to see it tackled with humour. I have seen Troy’s talks before, but it was Paul’s first time. Even though I have waxed lyrical to him about application security many times before, there was something fundamentally eye-opening for him to see Troy guide someone with almost no “hacking” experience through compromising sites with poor security.
That was the end of our trip. I had wanted to see Dylan Beattie and Mark Rendle talk about “Software Engineering : Greatest Hits 1947 - 2047”, but we had trains to catch and know there is a world of difference between commuting across London at 4pm than at 5pm, so we left early. Our company had bought the hotel package directly from NDC and it is a real shame that it didn’t include accommodation on the Friday night too. We were unable to attend PubConf after the event, so if we return next year we will have to find a way to stay for that extra night.
All told, NDC was a valuable few days, and is certainly money well spent. I don’t I would bother with the workshops myself next time, but I wouldn’t hesitate to attend the conference itself, given the chance in the future.