Richard Clayton

"Third-Time Principle" of Defining Abstractions

In general, only on the third time of encountering a common behavior should you refactor components to share a common abstraction of that behavior.

Clarification: The abstraction could be an abstract class or interface depending on the use case and language.

I've generally used this principle when I'm . . .

Read More

October 16, 2014

MEAN's great, but then you grow up.

Develop a prototype, then reflect on your choice.

The MEAN stack (MongoDB, Express.js, Angular.js, Node.js) is now being heralded as the new LAMP (Linux, Apache, MySQL, PHP), the preferred technology stack for startups.

MEAN is certainly a great technology choice for organizations (particularly startups) seeking to rapidly prototype a capability. However, like all technology . . .

Read More

August 22, 2014

Software Estimation is a Losing Game

Should we even bother?

This is an argument, and like all arguments, it's supports a specific position. I don't try to defend software estimation; I leave it to my colleagues to present that case. I write about this issue because I believe the software community needs to have an internal debate about whether software estimation in its current form is . . .

Read More

August 19, 2014

Software Engineering is not a Job.

It's a Profession.

Warning - this is a rant about those 10-20% of software professionals that give the rest of our community a bad name.

One of my biggest annoyances in technical management is the 9-to-5 Software Engineer. A 9-to-5 Software Engineer (or developer) is someone who views their position simply as a way to pay bills. For them, . . .

Read More

July 28, 2014

Revel, GORP, and MySQL

Building a classic 3-tier web application controller in Golang.

This is a compilation of things I've had to piece together from blog posts, example projects, and experimentation. I hope it saves you a bunch of time.


Build a simple Revel controller that performs CRUD operations against a MySQL database.


  • Use RESTful Paths.
  • Use JSON request . . .

Read More

July 18, 2014

Quick MySQL Box Using Vagrant and Ansible

Update July 19, 2014:

The default MySQL Server package in the CentOS repo is ridiculously old (5.1 - MyIASM is the default storage engine). If you need the newest version of MySQL, there is an RPM for the Oracle YUM Repo which will provide you the latest packages. I can't provide you that here because you have to accept Oracles . . .

Read More

July 17, 2014

Failing at Microservices.

Please avoid our mistakes!

Microservices are the new fad in software architecture, and while I think they are generally the correct philosophy to take with service design and composition, the pattern can certainly lead you quickly into trouble. If you don't know what Microservices are, I recommend reading the article written by Jame Lewis and Martin Fowler on the . . .

Read More

July 15, 2014


This update link alerts you to new Silvrback admin blog posts. A green bubble beside the link indicates a new post. Click the link to the admin blog and the bubble disappears.

Got It!