Writing quality Git commits has been written about to death, but it is so important that I could not help myself from sharing my thoughts on the subject. Mostly, I will be rehashing what Tim Pope has shared, but I will also include a few of the things that I have used to improve my source histories.

Limit the subject of your commit to 50 characters

Many people live life as I do: at the command line. Limiting to 50 characters allows room for us to use an 80 character width for commands such as git rebase --interactive without width concerns. …


One of my primary motivations for working with Docker was creating a single artifact that I could toss into any environment. It has been fantastic at this. I can throw together a simple Dockerfile that will build my Rails application as an image for production in about five minutes.

Except now that when I need to run the application’s test suite, I do not have the dependencies I need. That Dockerfile might look something like this.

Many people decide to include both of these Dockerfiles in their repository as Dockerfile and Dockerfile.dev. This works perfectly fine. But now…


Sometimes when building your API with Rails, following best practices may seem difficult. I recently came across one of these cases and was tempted to take a shortcut. However, I held strong and eventually came to a quality RESTful solution — but not without issue.

I wanted to allow users of my API to quickly access their own user profile. Our application had already implemented a route to allow this via GET /profiles/:id and simply implemented with resources :profiles, only: [:show] in our routes configuration.

Unfortunately, our API users wanted to be able to access their profile without providing their…


I have been using GitLab for over four years. My first commit to the project came nearly three years ago. And although I was pretty disappointed when they began releasing an enterprise edition, the community edition of the project remains impressive. More recently, GitLab has included a continuous integration software along with their code collaboration solution.

Recently, I have been using this to produce Docker images for my production environment. Although I had been using Docker for all of my build stages, I was never using the image I was producing for validation. …

Andrew Tomaka

Software Developer and systems administrator at Michigan State University.

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