Joseph Blomstedt
  Distributed Systems Enthusiast and Platform Engineer @ Basho
  Basho Technologies

Joseph Blomstedt lives in Seattle, WA and is a Software Engineer at 
Basho Technologies, as well as a PhD candidate at the University of 
Colorado at Boulder. At Basho, Joe works predominately on riak_core, the
 underlying clustering and distribution system powering Riak, as well as
 investigates new approaches to distributed consistency.    
  
    Joseph Blomstedt is Giving the Following Talks
  
  Test-First Construction of Distributed Systems
  
    With the power provided by Erlang/OTP, developing complex distributed 
systems is easier than ever.  However, verifying the correctness of 
these complex systems remains a challenge. This talk will present an 
approach to testing that I have used at Basho which leverage's QuviQ's 
QuickCheck. I will present how to build a system model in QuickCheck to 
test an early-stage idea against random orderings of client events and 
server state transitions. Then, how the model can be converted into the 
actual intended product code. And finally, how unit tests and system 
tests can be extracted from the original model, with the system tests 
leveraging a QuickCheck harness that deploys and runs command sequences 
against a cluster of multiple Erlang VMs.  I will also present 
preliminary details about integrating the Concuerror tool into this 
approach, as well as thoughts on generating Coq proof scripts from the 
original Erlang model. 
   
  
  
Talk objectives: This talk presents a practical approach to using property-based testing to gain confidence in a complex distributed system, from early stage prototyping to final implementation. A developer attending this talk will learn how to use property-based testing as a tool during early state prototyping, as well as understand how to extend the underlying test model into a final implementation along with integration tests that verify that the implementation matches the model used during prototyping/exploratory research.
Target audience: This talk is aimed at existing Erlang developers who understand first hand the challenges of verifying and trusting complex systems and are interested in new approaches to this problem. This talk also demonstrates how the abstractions used by Erlang/OTP simplify reasoning about complex systems, and may therefore serve as motivation
for those new to Erlang or who are still contemplating using Erlang in their organization.
