REST has dominated the web API landscape for years now. It is simple to design and develop these APIs but not without a major cost. REST APIs are 100% opinionated and follow very loose conventions. Data served to clients can differ in structure for any reason. This may not be an issue for some but for those people struggling to create consistency within their API(s), I would encourage you to look at GraphQL.

GraphQL has been growing at a rapid pace over the past few years and many businesses are utilizing the GraphQL standard as the de-facto standard for their…

Get Active On Github!

I have done my fair share of evaluating code-school grads for junior developer positions. When doing this, Github is often one of my go-to resources. When evaluating a candidate’s Github, my team and I are trying to answer 3 questions:

  1. Did the candidate continue to code and learn after Code School?
  2. Did the candidate tinker and play with technologies and tools outside of Code School?
  3. Did the candidate ever contribute to Open Source by participating in Issue discussion or submitting Pull Requests?

When reviewing a candidate’s Github we were not evaluating technical skill. Instead, my team and I focused on…


The other day I was watching a web-cast from Hubspot. The web-cast centered around a simple question “Can I use SASS on your blog theming platform.” The answer to me seemed obvious. Yes you can use SASS or LESS or any language to style your blog so long as it compiles down to css. But I was surprised when the Hubspot team answered “No.”

I understand the answer. NO you cannot upload SASS to Hubspot’s servers and have it work like a CSS file. …

I love coding in coffee shops. It brings a few of my favorite things in the world together into one place: code, coffee, community, and music. So, when I took a solo trip up to Brooklyn I decided I would tour a handful of the local favorite coffee shops and do a code kata at each stop. I only managed to get to 3 before the caffeine got to me but experience was great fun. I’d like to share it with you!

What is a code kata? It’s a concept taken directly from martial arts where you build a simple…

(originally published 09 May 2016)

I’ve been having tons of fun lately learning Elixir and, being a Rails developer, it was only a matter of time before I tried out Phoenix. Phoenix is a MVC style web framework for Elixir that follows the convention over configuration style of Rails. In this article, I will demonstrate a simple example of how to handle image upload, storage, and association in Phoenix.


For the actual multipart file upload portion of this example, we are going to take advantage of the file upload functionality built into Phoenx, but that will get us only so…

(originally published 27 Jan 2016)

Every Friday we at Smashing Boxes take 4 hours out of the day to play explore our own personal interests and, for the past few months, I’ve been interested in Clojure. For the uninitiated, Clojure is a JVM based dialect of LISP. Clojure has a strong presence in the web development community via ClojurScript. But, I’m not here to talk about ClojurScript. I’m here to talk about Clojure and how it’s re-introduced me to crazy but beautify world of LISP and functional programming.

For the past few years, I’ve been very “anti functional” for no…

(originally published 05 Oct 2015)

I want to take a minute to talk about something that happens all too often in the engineering world but is rarely talked about, overcoming seemingly insurmountable challenges. There are many things that people consider hallmark traits of “good developer”

However, in my opinion, there is a far more important character trait that every skilled developer must have. It was Sandi Metz that originally turned me on to this character trait that I now feel is one of the defining hallmarks of an amazing developer


Perseverance and passion for a long term goal

12 years…

(originally published 12 Aug 2015)

We often speak of “Quality Software” and “Quality Code” but what does that mean? What identifies a quality piece of software and why should anyone care? What makes a product “high quality?” A co-worker recently asked me these questions so I decided to write this blog post to answer them.

Quality is a Journey, not a destination

You cannot just build quality software. Quality is achieved through quality-focused development practices and discipline. Things like code-review, high attention to detail, and a desire to craft elegant code leads to high quality software. Because of this, a high desire to ship fast can result…

(originally published 01 Aug 2015)

Okay Rails developers, we need to have an intervention. Who has heard this mantra before?

Skinny models, fat controllers

This concept has always baffled me. Typically, what you end up with is a model littered with a multitude of before_save, after_create, and on-validation-time callbacks with all these crazy side-effects that you may only want performed within the context of a single controller action. The business logic of your application slowing seeps into and infects the models of your Rails application, which are supposed to only be concerned with persistence and querying.

Keep your dirty business logic out of my models!

What do I mean…

⚡ Brandon Mathis ⚡

Freelance Full Stack Developer

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store