2016 In Review

A look back.
Published on Monday, January 2, 2017

This whole "Year in Review" blog post thing has gotten quite popular. At the risk of being cliché, here is my own entry. Even if no one else finds this to be a fascinating and important historical record, I find it personally insightful.

Open Source

I tried hard in 2015 to ramp up my open source involvement and am pleased that I was able to continue the momentum through 2016. I even managed to increase my yearly commit count by about ten percent. I don't find GitHub commit counts to be particularly indicative of anything on a comparative basis given that people have vastly different commit patterns (for example, small changes vs. large features), GitHub counts private and other work-related repositories, and not all projects are even on GitHub. However, as a personal yardstick for year-over-year open source involvement I think it serves pretty well. With that said, here is my 2016 commit chart:

I'm particularly happy to have gotten in so much open source work given my hectic family life (I have 3 young children and have always had a family-first mentality).

I also found myself much more interested in the philosophy of open source and evangelizing it's benefits to others. Specifically, I've given some talks of the subject and tried hard to use my own projects as a safe and welcoming environment for others to become involved for the first time. I'm thrilled to have helped several folks get their first PR created and accepted.


By far, most of my open source attention in 2016 was focused on my static generator project Wyam. I found that I could get much more accomplished by focusing most of my energy on a single purpose. There are a limited number of "free" hours in a given day or week, especially since mine are usually found at odd times like lunch breaks, early mornings, and in-between other things. I wish I had large amounts of uninterrupted open source time, but the reality is I don't.

That said, it's amazing what can be accomplished with sustained, focused effort. I managed to take Wyam from the germ of an idea to a robust production-ready tool (more on what's coming in 2017 further down). Near the end of the year I was even able to do some major work with it that proves in my mind (and hopefully in everyone else's) that it truly is one of the most flexible static generators available. When this work is announced (hopefully very, very soon) I think it will turn a number of heads.

And speaking of turning heads, I received a wonderful December surprise when Scott Hanselman wrote a detailed and positive review. As with any public endeavor, success is only half about the merits of the thing on their own (if that). It is just as much about eyeballs, luck, and word of mouth. When Scott blogs about something, it gets a lot of attention (to explain to my wife how significant this was, I told her to simply Google "Scott" and look at the top results). As a result of the post interest has greatly increased. Now it's up to me to sustain that interest.

I also want to thank all the contributors to the project. I've been fortunate to have a large long-tail of support and there were 18 distinct contributors as of the end of the year. And beyond the contributors, many of the ideas and directions the project has taken have been suggested or inspired by feedback from the larger community.


I also managed to release a new open source project last year called Scripty. This tool allows you to use Roslyn scripts for code generation. It's like T4 but with C# code.

This project has also managed to garner quite a bit of interest, though it hasn't gotten as much development attention as I would like to give it. I'm hoping to find a little more time to continue working on it in the next year.


I continue to maintain the @dotnetissues Twitter bot. This bot Tweets for every issue in various Microsoft open source repositories and has been a great way for me to keep up with what's going on. I even have it hooked up to an IFTTT recipe to email me for every issue Tweet.


Unfortunately, something had to give in order to sustain so much focus on Wyam and Scripty. FluentBootstrap was one of my main projects in the past, but with the release of ASP.NET Core and it's TagHelper convention, FluentBootstrap seems like an idea that has run to a natural conclusion. While I've been continuing to patch bugs and accept pull requests, I'm looking for a new maintainer who's interested in evolving the project.

Other Activity

I haven't been quite as involved in other open source projects in 2016 given my strong focus on maturing Wyam. I'm not totally happy with that and have a goal to engage with more community projects in 2017. That said, I did submit non-trivial work to several other projects like Cake, AngleSharp, Nancy, and Roslyn.


One of my goals from last year was to become more active within the community, both locally and more generally. As both shy and introverted, this can be a challenge for me. It's also rewarding though, and I'm pleased to report I had a great year in this respect.


I gave 5 talks last year, mostly at user groups and code camps. I also had a good number of rejections for larger conferences, suggesting I need to work on my pitch skills. One challenge here is that I don't have the schedule freedom to just blanket every open call with a proposal. Due to other obligations I am forced to be selective and can only submit to those conferences that fit my schedule. A goal for 2017 is to get accepted to a larger conference for a full session.


This has been a banner year for me locally. I made an effort to attend even more user groups and other local events and am thrilled to have found a wonderful group of local like-minded friends. Specifically I'd like to call out my Nerd Dinner crew, who I have come to value greatly. We'll be loosing two of them to bigger and better things very soon and I wish them the very best on their new adventure.


I wasn't quite as active on my blog last year, but still managed to write 13 posts not counting last year's review. Most notable was a three-part series on the NuGet APIs that has served as one of the only resources on the topic. It's even linked from the NuGet documentation as the primary source of information until more exhaustive documentation can be written.

Microsoft MVP

One of the best surprises at the beginning of last year was a notice that I had been selected for my first Microsoft MVP award. By far the highlight of that experience was attending the MVP Summit near the end of the year. It was amazing and I especially enjoyed meeting many of the community members and Microsoft staff that I had been interacting with only virtually until then.

I am thrilled to have been awarded a second year as MVP for 2017 and will continue to work hard supporting the community and open source.


Despite all the great things above, it was a difficult year personally. Everyone is always dealing with some sort of crisis and I am no exception. My family has had several setbacks, some small and some major. I am fortunate to have a wonderful wife and kids and we weathered the year together. These events are behind us now and I am happy for a new year to start.

I tend not to talk politics much, but I was also quite upset about the US election results. Perhaps more for the broader social and economic realities it exposed than for any specific outcome. I haven't "gotten over it" and don't expect I will.

What I can do on the personal front is hope for the best in 2017 and do what I can to make hoping a reality.

Up Next

I have several big goals for 2017:

  • Continue working heavily on Wyam including a 1.0 release and a port to .NET Core (more on where Wyam is going in a future blog post).
  • Continue speaking and get accepted to a larger conference.
  • Increase my blogging output by at least a little.
  • Submit more community OSS PRs and become more involved in some other community projects.

None of these should be too difficult and I'm hopeful I'll be able to report success around this time next year.

Happy 2017 to you all and I can't wait to see what the year brings for everyone!