Patterns of Service-Oriented Architecture

May 09, 2017

Fresh on the Stitch Fix Engineering blog, the first in a several-part series on the patterns we use in our service-oriented architecture. From the intro:

Over the last four years, we’ve gone from a team of two developers and one Rails app, to almost 80 developers managing 40+ applications. These applications are a mixture of user-facing and headless services. While our technical architecture isn’t perfect, we’ve had relatively few major problems. Part of the reason for that is that we’ve done a decent job of identifying and re-applying patterns to solve similar technical challenges.

The first pattern is also up: Asynchronous Transaction

Articulating a Vision

January 17, 2017

In my book, I talk about making technical decisions and, in particular, understanding the priorities of everyone involved in the decision-making. A more powerful way to lead teams to execution is to clearly articulate a vision of what you are trying to achieve. It’s also much more difficult.

What Westworld Can Teach Us About Devops

January 10, 2017

Westworld is a show on HBO about a theme park where human Guests interact with lifelike robotic Hosts. The Guests can basically do whatever they want to the Hosts. The show is deep, and some of the best sci-fi television you can find. But, it also contains many important lessons we can apply to DevOps.

Spoilers Ahead

On Being On Call

December 07, 2016

There was a conversation on Twitter about developers being on call, started (I think) from this tweet (in reaction to a series of tweets that, thusfar, starts with this great blog post by Alice Goldfuss):

Put your developers on-call. You’ll be surprised what stops breaking.— Aaron אהרן (@as_w)

I 100% agree with this (for a particular interpretation of “put”—see below).

Configuration Design is User Experience Design…and it's hard

December 06, 2016

In exploring the modern front-end ecosystem for my new book, I’ve gotten to experience some truly difficult configuration formats (Webpack) and to work around aspects of Rails that aren’t configurable (Sprockets). Configuration is hard, and it’s an overlooked part of the user experience often designed to make the software library author’s job easier at the expense of ease-of-use.

It doesn’t have to be this way.

Rails, Angular, Postgres, Bootrap Second Edition in Beta!

October 19, 2016

The second edition of Rails, Angular, Postgres, Bootstrap is in beta.

There’s a lot of new content, mostly around Angular 2.

Of particular interest is that we aren’t using the Asset Pipeline, but are using Webpack. I tried hard to get Angular 2 working with Sprockets, but as Giles Bowkett points out in a recent post, Sprockets is not a modern tool for modern JavaScript.

The current beta is about 75% complete and includes:

  • Rails
    • End-to-end unit testing with PhantomJS
    • Making your end-to-end tests work with Webpack
  • Angular 2
    • Setting up Webpack to serve CSS and JS
    • Intro to Angular 2, including routing and unit testing.
  • Postgres
    • Using and testing Postgres check constraints
    • Content-specific indexed (e.g. index on a lower-cased version of a field)
    • Materialized Views
  • Bootstrap
    • Simple styling with Bootstrap
    • Grid-based design with Bootstrap

Angular 2’s setup was painful, but it’s a much nicer framework than Angular 1, and requires a lot less plumbing and decision-making than React (based on my limited experience with React).

The skills you learn in this book will let you solve a wide variety of problems quickly, cleanly, and efficiently, using modern and powerful tools.

Buy the beta now!

Note: if you bought the first edition, stay tuned—I’m not sure what accomodations will be made