About Geoffrey Rayback

Geoff Rayback has been writing software for more than 13 years. He spent much of that time working as a consultant, so he has pretty much seen one of everything (good and bad) over the course of his career. His focus recently has been on services, service oriented architecture, testability, continuous delivery, and devops. Outside of work he loves playing bass, recording music, drawing, and reading history books.

Past Articles

Building an Operationally Successful Component – Part 3: Robustness

Posted on July 23, 2014 in DevOps, Uncategorized

Building an Operationally Successful Component – Part 3: Robustness My previous two posts discussed building components that are “operationally successful.”  To me, a component cannot be considered successful unless it actually operates as expected when released into the wild.  Something that, “works on my machine,” cannot be considered a success unless it also works on… Read more

Building an Operationally Successful Component – Part 2: Self Correction

Posted on June 10, 2014 in DevOps

Building an Operationally Successful Component – Part 2: Self-correction In my last post I talked about building components that are “operationally successful,” by which I mean that the software functions correctly when it is deployed into production.  I suggested that there are three things that a software component must have, to some degree, in order… Read more

Building an Operationally Successful Component – Part 1: Transparency

Posted on April 14, 2014 in DevOps

On our team at Ancestry.com, we spend much of our time focusing on the operational success of the code that we write.  An amazing feature that no one can use because the servers are constantly down is of little use to anyone and can be deemed a failure, even if the code worked from a… Read more

Creating a Dynamic NAnt Fileset

Posted on July 3, 2013 in Continuous Delivery, DevOps

Every once in a while when building NAnt targets you will come across the desire to create a <fileset> which is defined at runtime.  Maybe you’d like to define the <fileset> as a property in a previous target or a calling target and have it be used in a subsequent task.  For example we have a… Read more

How Not to Handle an Overloaded Server – A Cautionary Tale

Posted on March 25, 2013 in Continuous Delivery

We have been working hard at Ancestry to build automated server health monitoring into our service infrastructure.  One of the most recent efforts was the addition of some simple health tests that our load balancers could run by themselves to check on the health of our servers.  We added three types of tests for each… Read more