New Beginnings

Posted January 9th, 2016

Out with the Old

I usually don’t do these sorts of posts, you know, ones where you reflect on the year behind you. That’s probably because for many years, simply getting through them was a slog and left me feeling exhausted, unaccomplished, and dreading the road ahead.

However, 2015 was so utterly fantastic in ways I hadn’t experienced before, that I hope 2016 continues on this track.

A Promotion

Firstly, my new career is going great. A few months ago, I was officially given the title “Drupal Practice Lead”, up from the senior developer position when I was hired. I’ve been given complete freedom and control to develop guidelines, tools, and best practices for Drupal projects. At the same time, I have been efforting contributed projects to elevate Velir’s position in the Drupal space as experts who produce high quality, thoughtful work.

I’ve had the privilege of working beside and getting to know over 140 coworkers over the course of the year. Constantly being surrounded by people smarter than you allows such room for growth and opportunity, as well as an awareness for being able to realize what you don’t know; whether it be code, management, sales, communication or process related.

This experience has helped me better define my worth in regards to what I bring to the table, and what I am capable of doing.

Drupal Contributions

Working on a number of internal initiatives and a few projects allowed me to continue to contribute code to the Drupal community on a regular basis.

The new Velir site uses two of them, CodeSnippet and Neato.

WYSIWYG CodeSnippet allows content editors to insert code in just about any major language into CKEditor and be highlighted in a color theme of their choosing. It seemed that there was a lacking of integration for injecting code samples into CKEditor for Drupal. While there were many that supplied text format options or other means of syntax highlighting, none of them took place in the editor. CKEditor.com actually offers a plugin that does it, so that’s what was integrated, as it also supplied the highlighting library highlight.js with it. A version of it exists for Drupal 8 but was renamed to CodeSnippet. It also allows you to add on to the supported language list with a form alter, and we are working on a way to make it easier to change the minified highlight.js file without it being overridden later.

Neato is a theme framework based on Neat/Bourbon that our design and front end team use daily. It allowed us to facilitate designs without getting in the way of getting what we wanted, which is usually an obstacle in Drupal theming. It is unopinionated and does not force markup structures on you. My line of thought here was if you’re going to be theming up a custom design anyway, you should start with nothing but a grid and styling system. From there you can add in your own javascript plugins for UI/UX, create all the templates you need. Build your own component library and reuse them project to project. Custom, consistent, predictable styling and markup.

For example, Neato was also used on the Primary Health Care Performance Initiative website. Since the front end team built a prototype using HTML/Neat/Bourbon, transposing that to Drupal was dead simple. The site, which uses statistical data housed in our own .NET application we call Datacenter, contains visualized graphs in Angular.js and d3.js, right inside of the Drupal theming process.

I am really excited about Neato because it provides us with a great ‘blank slate’ starting point from which to mix and match components with to build websites. It’s been downloaded over 7500 times and generated much interest. It’s used for all of our Drupal projects, internal or client.

I wrote a couple of blog posts about it:

We were also able to put out quite a few updates and Drupal 8 versions of modules as well, which proved to be a great learning experience.

Along with that, I have been doing a great deal learning about Drupal 8. I’ve began a series of blog posts about doing practical development in Drupal 8, the first post is already available:

I have a few more drafted, waiting to be published.

I also built a Yeoman generator for generating a DrupalVM configuration. It is built for two reasons. One, you can generate VM configurations very quickly with it. Two, it helps those who are less familiar with VM configuration to be able to configure what they need to get up and running. It is very simple, and has proven to be useful.

Goals

I have quite a few goals to accomplish in 2016. On the technical side of things, they are quite varied, and proved to me that I am maturing as a developer. Other goals show I’m maturing as a person, undoubtedly a result from exposure to new places, people and experiences here.

One of those goals I already accomplished. I’ve made a concerted effort to reduce the white noise and useless bullshit. I was inspired by posts like these:

Distractions and white noise. There is too much of that shit going around. I started by posting a notice to everyone on Facebook, and a week later, closed my account and deleted the app from my phone. I also deleted other apps I don’t need to have.

Following that, I’ve simply stopped trying to stay on top of every bit of news that comes out (the Javascript community will drive you nuts, for example). I don’t need to process all of that information, not to mention comments, in so many articles. I’ve found that I just don’t care what most people think. Installing things like Ghostery and uBlock Origin in Chrome was great - I can freely visit sites and not have to be deluged with useless comments somewhere on the page. As a sidenote, it is appalling the kinds of vile baseless comments people make on websites from their Facebook account. Think before you speak. It will come back on you someday.

This has allowed me to free my mind of crap and actually pursue and read the things I am interested in.

I am also making an effort to learn a few new paradigms and languages to broaden my horizons. Functional programming is really hot right now and something I have been meaning to get into. At the same time, I have chosen to learn Clojure to see things from a different perspective in a new language.

I also want to learn about a few other languages, Swift, Python, and possibly Erlang, as time permits. The truth is, there is so much exciting things happening in languages and frameworks right now (especially PHP 7) that a good programmer owes it to him/herself to explore and continue learning. I may even build a SlackBot in the interim for us internally.

I also hope to post at least once a month on here as well. I have a lot of ideas stored up from all the things I have been working on.