Skip to main content

Two Zero One Nine

Published on

2018 was a weird year. It felt like it just zoomed by and nothing eventful happened. In fact, I feel like most people I have talked to this year felt the same exact way. But, then I sat down to my end of year write up and realized that this year was way more packed than I thought. Work was fun and full of travel. Our sons turned 7 and 3. We spent many Tuesday summer nights at the Kenosha Velodrome and our weekends at the Kenosha HarborMarket (and the accompanying Winter HarborMarket!)

2018 kicked off by learning about modern JavaScript development using ECMAScript 6 features, transpile with Babel and learned how to work with ReactJS and Redux. was converted into a progressively decoupled Drupal application. That was a fun adventure and gave the application some more configurability. Essentially boards contain lists and enough metadata to be a query builder against's API. Each list is its own API call to contain a list of issues, an inherits "defaults" from the board. 

My head dive into ReactJS was inspired by the initial work of Matthew Grill and Daniel Wehner, which would be the beginnings of the Admin UI / JavaScript Modernisation Initiative. In a coincidence of events, Sally Young and Daniel were at Florida Drupal Camp early in the year. That's when I learned all about the JavaScript Modernization Initiative in full and got motivated to see what we at Commerce Guys could do to bring some fancy features to Drupal Commerce.

I spent a lot of 2018 going over Drupal core's RESTful Web Services module and the fledging JSON API module. The result was a Cart API to allow for pure API driven interaction with Drupal Commerce and cart management. The next step was to build our Cart Flyout module which adds a progressively decoupled replacement for the add to cart form and cart block. Originally, I had built the flyout experience using ReactJS. But in discussion with Bojan, we needed to prevent our users from having to inject yet another dependencies (and a frontend one, at that.) So, I dove backward into JavaScript of yore - Backbone.js and Underscore.js the frontend libraries shipped with Drupal core. It made me appreciate the JavaScript and frameworks we have now but was also an interesting experience in working with different design patterns.

I still love watching this recording.

Florida Drupal Camp also introduced me to DDEV. Back then, Feb 2018, the project was still in its infancy but I really liked where it was going. It matched parts of my existing local development stack, which I was failing to maintain. Now I could just contribute to someone else's project and not have to maintain my own! DDEV is written in Go. I have attempted to poke at Go before, but nothing serious. When I got home from Florida, I setup GoLand IDE and got hacking away, pushing a few pull requests and input on issues.

DDEV has become my default local development environment stack, and for projects at Commerce Guys. I wrote some articles throughout the year for using DDEV and they can be found with the "ddev" tag:

"For 2018 I resolve to explore more coffee roasts and more whisky - but over books and not code!"

One of my resolutions was to read more books. And enjoy more whiskey. I sure did well on the latter but not as much on the former. I think I read about 10 books. My goal was twelve. However, I did get a lot of Audible time in and made my way through quite a few audiobooks and daily New York Time briefings. 

I also wanted to blog more. I think I pulled that one off. I also wanted to follow Dries in his POSSE movement. Posts will auto-queue to Buffer and automatically publish on Medium. I wrote more. And I tried to focus on specific technologies and write multiple blogs about them (beyond Drupal tidbits.) This was mostly around DDEV and PhpStorm.

What's in store for 2019?

Here are a few goals for 2019. 

Keep reading and writing more.

I want to keep reading and writing more. I started and ended strong in 2018, but fell apart in the middle. I track my reading with GoodReads and have managed to use its API to generate my Christmas book wishlist easily. I am thinking about integrating my GoodReads data onto my website, as I found out it's pretty hard to share books you want to read and do not own.

A cleaner computer.

I have no idea. But I do have some hopes and "resolutions". Like, I need to buy a stupid amount of electric wipes and keep them with me so my Macbook screen doesn't always look sloppy. I feel like a hot mess when I'm around others and I bring out my laptop. Electric wipes. Or microfibers. Something. Ditto for the keyboard. contributions.

According to a blog post by Dries, I made it to #8 in the top individual contributors on (disclaimer: this is based on issue credits and generally code contributions, it does not account for the immense efforts for documentation contributors and event organizers.) What's interesting is this the rank and issue counts.

  • 2018 #8, 414 issues
  • 2017 #6, 334 issues
  • 2016 #9, 292 issues

Each year the number of issues grew, but the rank jumped around. I'm hoping to see in 2019 I drop to below #15 or more. Not that I am going to stop working on Drupal and Drupal Commerce less. But that the contribution space becomes more competitive. Drupal core initiatives and Drupal Camps have started using the issue queues to attribute users who attend meetings or make an impact. It's a way to "hijack" the issue credit system and give notice to non-code contributions.

Gettin' decoupled with it.

I would like to keep pushing forward with the decoupled items. Some of my experiments in 2018 included using GatsbyJS to consume a Drupal Commerce product catalog and add eCommerce components to allow add to cart and perform check out over an API. At the beginning of this year, I tried out Flutter for mobile apps. I would love to try and make a sample native app that allows shopping a Drupal Commerce store. I definitely prefer Flutter over React Native and I am excited to hack on it during my spare time.

Cut out the noise.

Pennoyer Park in Kenosha, looking out to Lake Michigan.

Sometime in October, I removed the Drupal Slack from my Slack application. A few times in the year I had added it on my phone, which is a mistake. But, it is useful when at a conference. But having it always open when trying to do work was a huge distraction. Especially with some of the comments.

I also took a month or so off of social media, which was awesome. I need to do that again. Too much consumption and overloading. Too much noise. Reading and the audiobooks helped cut this out, and morning runs outside versus "morning indoor media indulgence."

Integrate fully

I have basics setup. I need to check out the IndieWeb module next. However, as of this writing, I somehow broke my IndieWeb authentication capabilities. Maybe I broke something when I changed my theme.


I'm available for one-on-one consulting calls – click here to book a meeting with me 🗓️