Music City Code 2017 In Review


This was my second year speaking at Music City Code and I was already looking forward to it. So many great speakers on so many great topics, there were many times that I had to make a tough choice of which session to go to. The big thing I appreciate about Music City is that it’s such a low pressure environment to present. Everyone is super friendly, asks great questions, and overall are just awesome to be around.

As Music City enters its third year, Gaines and Mary Kergosien have made some changes that drastically improved the experience.

First off, a change in venue. Up to this point, the conference was held at Lipscomb University, but this year it was held at Vanderbilt University. I’m totally in favor in the change of venue if for no other reason, the campus is gorgeous (so much greenery so close to downtown).

Second, due to the change in venue, they were able to have speakers stay at the dorms in lieu of a hotel room (if they wanted). I didn’t know what to think of the idea at first, but after the first day, I was totally sold. Not only were we hanging out during the day, but we had a convenient place to hang out in the evening so it really provided an immersive experience.

Last, but not least, Music City introduced a feedback system for their speakers. As attendees came into the room, they were handed three cards (red, yellow, and green) where they could leave their feedback and turn the cards in at the end of the session (for more information, take a look at a similar system I used for CodeStock this year)

Day 1

F# Type Providers by Chris Gardener

In this session, Chris demonstrated how to use three different type providers by live coding an application. For those unfamiliar with type providers, a type provider typically analyzes a data source (at compile time) so an object can be created at design time for use.

As part of the demo, he worked with the AppSettings type provider (which analyzes your App Settings file), the JSON type provider (great for working with Web APIs), and the SqlDataConnection type provider (similar to LINQ-to-SQL). Throughout the demo, Chris demonstrated how the various type providers worked, the ease of use, and how they’ll behave under certain conditions (for example, when fields may/may not have a value)

Overall, this was my first time seeing Chris speak and he definitely had an aura of energy about him. What I really enjoyed about this session is that since he was live coding it, he could really demonstrate how quickly he could go from nothing to something.

Slides and code can be found here

Functional Programming Panel

In this panel, four members of the functional community (Reid Evans, Jeremy Fairbank, Tim Pote, and Chris Keathley) answered questions related to functional programming like what is immutability, why should I care, and what are some of the benefits. One of the big takeaways I had from this session is that functional programming is still just a tool and it can’t save you from yourself. You can still write bad code in functional.

FSGD and The Art Of Delivering Value by David Neal

In this session, David tells the story of a time where LeanKit (his employer) shipped a feature, but it took an insanely long time to get it out the door. From there, his company iterated on fixing the problem and came up with FSGD (pronounced Fizz Good). FSGD is an mnemonic for Frequent Small Good Decoupled and by following these principals, LeanKit is able to deliver more value to their customers in a shorter time frame.

This was hands down my favorite session of day one for sure. Between David’s speaking style, his custom illustrations, and the natural flow of the story, this session was real a winner for me.

Slides can be found here

Day 2

How To Have Code Reviews Your Developers Actually Want

This is the second time I’ve presented this session and based on some feedback I got from CodeStock 2017, I made some changes. First, I emphasized that the reason I don’t cover tools is because a lot of the pain points from doing code reviews come from the process used for reviews, not the tooling. Your developers are smart and can find the right tools for themselves, but no tool can fix a bad process.


Overall, the reviews were pretty positive with 20/21 responding with 17 “great”, 3 “ok”, 0 “awful” with a 95% participation rate. From the comments, it looked like I did a great job, but some felt that content was too entry level and that my presentation itself was heavy on slides.

Slides can be found here

I’ll Get Back to You: Task, Await, and Asynchronous Methods in C# by Jeremy Clark

In this session, Jeremy walked through the evolution of asynchronous programming, first with the  Asynchronous Programming Model, then the Event Asynchronous Pattern, and then the Task Asynchronous Pattern.

After giving a brief history, Jeremy dove deep into asynchronous programming by demonstrating the differences using Tasks vs async/await by using a utility application. What was really useful about this presentation was all of the common “gotchas” that can happen when working with Tasks and how to solve the problem. As someone who’s starting to get more into Tasks, this was a great intro to the concept.

Slides and code can be found here

Software Quality Panel

In this panel, Phil Japikse, Jesse Phelps, Peter Ritchie, and David Neal fielded questions about how to maintain quality in your software, do standards matter, what can I do when no one at my job wants to write tests, follow standards, or perform code reviews.

Something that Phil said that really resonated with me was “What are the goals for your standards?”. There’s a lot of wisdom here because developers in general want to do the right thing, but it’s hard to sell them on standards if there’s not a clear reason why they should be followed.

How Functional Programming Made Me A Better Developer

This is the third time I’ve presented this session and based on some feedback I got from CodeStock 2017, I made more of a conscious effort to slow down and work on my pacing. One thing I did that I thought helped was that I introduced more pauses and checked in with the audience a bit more.


Overall, the reviews were pretty positive with 32/33 responding with 31 “great”, 1 “ok”, 0 “awful” with a 97% participation rate. From the comments, it sounds like the audience resonated with my experiences learning functional programming, how it changed my programming style and inspired others to look into functional programming. Sweet!

Slides can be found here

Wrapping Up

Overall, I had a blast at Music City Code this year and I’m already looking forward to next year. Gaines and Mary, keep doing what you’re doing, you’ve got something special going on in Nashville.

Leave a Reply

%d bloggers like this: