Marshall Bowers

Conjurer of code. Devourer of art. Pursuer of æsthetics.

In Hindsight

Saturday, December 31, 2016
2762 words
14 minute read

This year has really been one hell of a ride. I know the fun thing to do these days is bash on 2016 and all of the bad that happened, but I find it hard to categorize the year as a whole as "good" or "bad". For me, this year has been a mixed bag. Lots of ups, downs, and everything in between. Regardless of anything else, I am happy with the progress I have made in all areas of my life, but I know it is still just a stepping stone towards the individual I am continually striving to become.

Year of React

The most exciting thing about this year was I finally started using React.

Learning and using React has been on the list of things to do for quite a long time. I had played around with it a bit previously, but it wasn't until I dived in head-first at work that I truly started to internalize and love it.

The funny thing about my love for React is that it is not the library itself that I love. While React is great, it still has its quirks and trade-offs, just like any other library or framework. However, the way React forces you to think about your user interfaces is incredibly powerful, and that knowledge will outlive any frontend library.

Graduation

2016 marks the completion of a major milestone for me: finishing my college degree. I finished my remaining classes in the spring while continuing to work full-time at Gravic. While not my most challenging semester course-wise, I still had a grueling time finishing this last leg of my college journey.

I am happy to say that I finally fulfilled my long-time goal of achieving a 4.0 GPA for the semester. This is something that I had yet to do, and I found it only fitting that it was achieved during my last semester of my undergraduate degree, and, perhaps, my last semester of higher education ever.

I also graduated cum laude, of which I am fairly proud. There were times where I thought that this would be unachievable, but I fought to get this one last achievement before my time as a college student was up.

My graduation ceremony itself felt rather perfunctory. It took place on a rainy Saturday, and was held outside despite the weather. The upside of this was that all the pomp and circumstance was skipped, and we went right from the guest speaker to the presentation of diplomas.

Honestly, I am just glad to be done.

Ambitions

One year ago I set out to do a lot of things in 2016. Looking back, I think it could be said that I bit off a bit more than I could chew. However, I do think that there is something to be said for not being afraid to try in the first place.

I put my best foot forward in 2016 and here's how I did:

Successes

Spend more meaningful time with my friends

This really came together in the later half of the year. I started attending game night with my friends on Wednesday evenings, where we get together and drink and play board games. I find that having it right in the center of my week is a good way to break the week up.

Some of our favorite games to play include Bohnanza and Zombicide. Bohnanza, in particular, is a great game to play with a bunch of people. The rules are fairly simple, and most people can pick it up within the first round. There are also a bunch of expansions for Bohnanza, so people who already know the base game can incorporate new systems to keep the game interesting.

Start weightlifting and tone my physique

I started my first round of P90X3 this year. This thread details how I did each day and how I felt post-workout.

I got about halfway through the program before my crazy work hours and seasonal affective disorder got the better of me. I plan on getting back into the habit moving forward. The weeks where I was working out were the best that I have ever felt.

Get my first big tattoo

In February of this year I decided it was time for me to get my first big tattoo. I already had three tattoos, but all of them were fairly small pieces. I fixed this by getting a lion's head done on my chest.

The sitting was three hours, broken up into three roughly fourty-five minute chunks, with short breaks in between. The pain was not unbearable, aside from the small part of the tattoo that goes up onto my clavicle.

Here's the picture right after we finished up.

My artist, Adam — who has done all of my pieces so far — did an amazing job on this one. I look forward to working with him more in the coming years.

Drink less alcohol

After last year, I decided it was time to drastically cut back on my alcohol intake.

This did not prove too difficult for me. I cut out hard liquor entirely, with the exception of during the holidays. My beer and wine intake was also toned down. These days I will have a couple of beers with my friends at game night each Wednesday or a beer with my meal when I go out to eat.

Graduate college with honors

I did it!

Push 10k Git commits

My Git commits for this year came in at 7,642, with 6,327 of those being at work. While this is short of my 10k goal, I would still consider this a success. My work commits are up by 3,133, and overall number of commits has almost doubled.

The interesting thing to note is that while my work commits rose by a decent amount, my commits done in my spare time remained about the same. I find this particularly heartening, as it appears that I am still as active with my personal projects as I was last year.

Automate more (especially at work)

This one gets a partial check mark next to it. At my behest, we have been working to automate more at work. We started using Octopus for managing our cloud deployments, and that has done a lot to cut down on manual processes. We are by no means fully automated yet, but I think we have taken a good first step in this direction.

Failures

I won't go into these in much detail, but these are the things I wanted to do, but failed at in one way or another:

  • Develop more personal friendships with those I admire
    • I still feel like my interactions with the people I know solely online are very surface-level, and I'm still trying to figure out how to take them deeper
  • Buy a bike and start riding
  • Ship one of my (numerous) personal projects
  • Read 12 books
    • This one gets a big, fat zero
  • Write 24 blog posts
    • Dropped the ball on this one too, given that this is my first post all year
  • Start using a solid backup solution
  • Make it to Platinum in League of Legends
  • Leave the country (for a little while)
    • A lack of time and insufficient funds kept me landlocked in the US of A in 2016
  • Minimize my possessions
    • My life still has far too much clutter in it
  • Relearn and practice my Mandarin

Inspirations

The list of people who have inspired me in some way this year is rather extensive. All of them have helped shape me into the person that I am. One of the common threads between all of these individuals is their passion for what they do and the cordiality with which they interact with others.

If any of you ever find yourself in the Philadelphia area, I would love to meet up and buy you a meal or a drink.

Dan Abramov

@dan_abramov

Writing

I started following Dan on Twitter when I began learning React and Redux. Unfortunately, this was a few months prior to "You Might Not Need Redux", so I went through the process of learning and implementing Redux before realizing that it was not needed for our team's use case. Thankfully, it was pretty simple to swap out for MobX later, but that's a subject for another time.

It became obvious fairly quickly that I had made the right choice in following Dan on Twitter. He always seems to have a unique perspective on everything, and always seems to be fighting dogma around every corner. Dan was really the first instance where I saw the author of a library actively discouraging people from using it, if it was not the right choice.

Dan cares a lot about empowering developers to choose the right tools to get the job done. I admire his commitment to developer experience and helping lower the barrier of entry for using great tools like React, Babel, and Webpack. Create React App stands as a testament to this, and I am looking forward to what Dan puts his hands to in 2017.

Guillermo Rauch

@rauchg

Writing

Something that you notice pretty quickly about Guillermo is his vision and passion. He is currently leading the team over at Zeit, and all the stuff they are building reflects that.

now, Hyper, and Next.js are all really cool projects, and I would highly recommend checking them out. Each of them has an elegance to its design, be it visual or programmatic. One of the things that I think Guillermo excels at is finding beauty in simplicity, and then presenting that beauty in such a way that others can see it easily.

I find Guillermo's essay on "Pure UI" particularly influential. It breaks out some of the incredibly powerful concepts present in React and distills them into ideas that are not tied to a particular technology.

In my interactions with Guillermo, I have always found him to be extremely friendly and personable. I hope that I get to meet him face-to-face sometime in the near future.

Tobias van Schneider

@vanschneider

Writing

Tobias has influenced me in more ways than I care to count. I look forward to his weekly emails which go out (usually) on Mondays. It's a great way to start off the week with some insight on a particular topic.

Some of my favorite articles by Tobias are "Perfectionism Ruined my Productivity", "Why I Write", and "Work/Life Balance Is Bullsh*t".

Interestingly enough, we both have tattoos of sacred geometry on our left forearms.

Ryan Florence

@ryanflorence

When we started using React at work, I had settled upon React Router as our routing solution, and started following Ryan on Twitter as a result.

Watching him and Michael Jackson work on React Router v4 has been pretty exciting. I think the emphasis on declarativity and composability is the way that routing in React was meant to be. And the idea that "if you know React, you know React Router" is great for those who are just diving into React.

I admire his commitment to keeping things simple and easy to learn, despite facing criticism from those who are afraid of library churn.

I also have Ryan to thank for this year's foray into personal fitness. His daily P90X3 tweets gave me the push I needed to start the program for myself.

Ken Wheeler

@ken_wheeler

Ken is a real character. I appreciate that, like mine, his Twitter is a mashup of seriousness and ridiculousness. This guy is not afraid to speak his mind, but I suppose that could have something to do with his tree trunks for arms. Ken serves as my reminder that I don't have to take myself so seriously all of the time. Sometimes it's good to just let loose and live a little.

Also, React Music is straight dope.

Adam Morse

@mrmrs_

Writing

I have learned a ton from Adam's writings on design and CSS. As someone who has learned these as somewhat ancillary knowledge to programming, his writings have provided an excellent jumping-off point for me as I go back to bolster my understanding of these topics.

Another essay of his, "Growing Up With Dogma", has given me a new perspective on dealing with the dogma that I face at work.

His emphasis on performance, responsiveness, and accessibility inspires me to do the same with my own work.

He is also the reason I am going to learn vim in 2017.

Brent Jackson

@jxnblk

Writing

I think of Brent as the yang to Adam Morse's yin. While still focused on design, Brent does a great job of tying it in with React.

He has created a bunch of UI libraries for React, including Rebass and CXS.

His essay on "Patterns for Style Composition in React" has been foundational to my understanding of styling React components.

Brian Lonsdorf

@drboolean

Writing

My first encounter with Brian was in his React Rally 2016 talk "Oh Composable World". I watched it, and hit that Twitter follow button immediately afterwards.

Functional programming and the raw, gritty internals of it excite me, and I think that Brian shares my excitement for these topics.

Brian has written a book called "Professor Frisby's Mostly Adequate Guide to Functional Programming". While I have yet to read it, it seems like it will further my knowledge of functional programming quite a bit.

He also has an excellent egghead.io course titled "Professor Frisby Introduces Composable Functional JavaScript", which is a great introduction to composable, functional JavaScript.

Pieter Levels

@levelsio

Writing

Pieter Levels has got to be the most productive person I know of. If anybody embodies the "done is better than perfect" mantra, it's him.

Pieter currently works on Nomad List, and a whole bunch of other side projects. He also launched 12 startups in 12 months.

While I don't always agree with Pieter's approach to development, I admire his ability to get things done, and build products that people want to use. He is not inhibited by perfectionism or "best practices"; he just gets things done.

Resolutions

Kill Perfection

I have a confession to make: I'm a perfectionist.

Another confession: it's murdering my productivity.

Tobias mentions this quote in his "Perfectionism Killed my Productivity":

If your fidelity to perfectionism is too high, you never do anything.

— David Foster Wallace

This really resonated with me. Sometimes I get so caught up with doing things "right", that it becomes paralyzing. I can't take action until I figure out what the "right" way is.

But what if there is no right way?

If there is anything I learned in 2016, it's that no one really knows what they are doing. Knowing is not the point. Doing is the point. If you succeed, great. If you fail, then you learn, and are one step closer to success.

In 2017 I will kill my perfection.

In 2017 I will slay my dogma.

In 2017 I will forgo my doubts.