So Long, 2016

Also known as Officially The Worst, 2016 proved one of the more tumultuous years in recent memory for me. Something I’m looking to do in the coming year is improve my writing skills, and a look back on the ups and downs from last year seemed like a therapeutic place to start.


First, the lows: My wife and I both lost our last living grandfathers this year. My sister and I spent a lot of time with my grandparents during the summers when we were young. My dad ran a small farm with them during that time, and since I was almost always following them around the shop like a shadow, Grandpa and I became pretty close.

When I was in college, I had the privilege of serving as Grandpa’s escort on a WWII Honor Flight to Washington D.C.. He shared stories on that trip that I’d never heard, and those one-on-one moments from the later years of his life are something I’ll forever cherish. Saying goodbye to loved ones is one of the hardest things we have to do, but people from the community that came and talked about the ways he’d impcated their lives lent a bright light to an otherwise dark time. Something important that I took away from the days following the funeral: you really never know what small thing you do today that will stick with people for the rest of their life. Be selfless. Offer help and kindness to people whenever you’re able because you never know when you’ll need a hand yourself

The highs: A few hours after we returned home from the funeral, my wife burst out of the bedroom, pregnancy test in hand, to tell me I was going to be a father. I’d be lying if I said that news didn’t leave me uncharacteristically apprehensive. I’m normally pretty unflappable, but when you’re married to someone for 6 years and only compete with a golden retriever for attention, it’s easy to worry how adding a tiny human will upset the balance of things. To my relief, we coasted through the pregnancy and welcomed a healthy baby girl on December 17th. Adjusting has been so much easier than I thought, and it’s more fun every day.

We were fortunate to do some traveling as well. In early January, we flew to L.A. to hang out with my wife’s cousin for a few days before hopping a flight to Kauai. The trip was timed just right to escape the kind of bitter cold snap Fargo is known for. We did some scuba diving, a bunch of hiking, and enjoyed the kind of downtime that we only seem to get when we travel somewhere tropical.

Kauai Hiking

We also spent a week in Colorado in August for the third year running. The prior two years, we did some backcountry camping and hiking in the Wild Basin area near Long’s Peak. This year was less about the adventure and more about enjoying one last vacation with each other on account of the pregnancy, but we lucked out with good weather and had a great time with day hikes and finding offbeat restaurants.


2016 also brought the biggest changes to my professional life since January 2012, when I originally joined the Spark Api team at FBS. User interface development was never a strong suit for me. Moving to the API team gave me a opportunity to work with some wonderful people where I learned a great deal about building sustainable software without also needing to learn a new frontend tool every 2 months.

Toward the end of that five year stint, I started gravitating toward a lot of low-level infrastructure work (ruby and rails upgrades, building internal tools, etc). I saw an opportunity to take that experience to the frontend teams when we rearranged the development staff in March, and I feel like I’ve been able to make steady progress on improving speed and stability of the application tier we’re running.

Here’s how GitHub saw my year:

Git Contributions Graph

One thing I know I need to focus on this year is smaller, more frequent commits. I have a bad habit of perfecting things before I push. Instead, I need to be mindful of pushing in-progress work and getting a Pull Request in front of people early on.

I also shipped a small side project called Flightdeck that I started for a couple reasons. One, it gave me an opportunity to work with our Hosting team to pilot a new production version of ruby on our infrastructure in a safe, non-committal way. We were able to use that as a basis for upgrading out background job cluster to Ruby 2.2 later in the year. Second, it let me address some processes with our internal gems that had become a bit unwieldy.

The project itself is very similar to janky. It’s little more than a middleman between GitHub webhook events and our Jenkins CI server with a couple of our common workflows baked in. We’d accumulated a number of similar-yet-different Jenkins scripts for publishing gems to our internal gem repository, and I wanted a way to push all those differences into the gems themselves while keeping everything at the Jenkins level identical.

Doing that meant Flightdeck could handle all the Jenkins job configurations as long as the projects themselves implemented a standard script for CI and publishing releases. I later expanded the scope and have it running tests against pull requests for a handful of arbitrary projects. It’s far from fancy, and you can buy services that accomplish the same thing for a modest monthly fee, but this kept everything internal and gave me something to tinker with in my free time that had other benefits at work.

Up and to the Right

With that, some closing thoughts on things I’ll be focusing on in 2017: