I'll talk about composing complex systems from simple parts. Simple things are easy to make, but complex things made by composing simple things are very difficult to build. It talk about why this is so, and what we can do about it.
Joe Armstrong is the principle inventor of the Erlang programming Language and coined the term "Concurrency Oriented Programming". He has worked for Ericsson where he developed Erlang and was chief architect of the Erlang/OTP system. In 1998 he left Ericsson to form Bluetail, a company which developed all its products in Erlang. In 2003 he obtained his PhD from the Royal Institute of Technology, Stockholm. The title of his thesis was "Making reliable distributed systems in the presence of software errors." Today he is semi-retired but works part time as Adjunct Professor of Computer Science at the Royal Institute of Technology in Stockholm.