In this talk from @Scale 2014, Adam Ernst and Ari Grant present some of the problems met during the development of the native Facebook mobile application, and the solutions developed.
The first part, starting at around 7’00, explains why the built-in data management library was ill-suited and how they designed a different system to better suit their needs. The second part, starting at around 24’30, shows how their implementation of MVC was becoming unmanageable and how they redesigned it. Interestingly enough, in both cases the solution was based on immutability.
Following on his previous talks on data visualization and programming interfaces, Bret Victor presents the idea of what he calls a “seeing space”, meant to improve understanding of problems in the context of collaborative engineering.