YOW! Sydney 2015 got off to a great start yesterday. The timing of Australia's leading Software Development conference could not have been more apt given our Government's recent focus on technology and innovation. Likewise the setting of the Australian Technology Park evoked the sense of possiblity inherent in Engineering disciplines, Software comfortably juxtaposed against real Hardware...
Below are references to my notes from specific talks. You can check them out collectively in a github repo here.
It was great to be able to chat with likeminded hackers and listen as some masters of their craft shared their knowledge, experiences and more than a few of their secrets. Opening the day was keynote speaker Adrian Cockroft who touched upon the complicated nature of software and how best to organise (or not) the engineers who build it. Of course things are often only complicated to us right up until they're not and often they don't have to be - anybody who's seen a 2-yr-old use an iPhone inherently understands this.
Adrian also touched upon Microservices - a hot topic at YOW! 2014 and once again this year. His sentiments that the architecture must follow the organisation (he wouldn't be the last speaker to mention Conway's Law) and the importance of service ownership would be elaborated upon in Randy Shoup's Pragmatic Microservices. Randy covered just about every question one might have regarding How, Why and When to move to a Microservice architecture and reminded us the importance of using the Right Tool at the Right Time.
Sam Newman's excellent Deploying and Scaling Microservices delved deeper into how best to package software in a microservice architecture and came to the pleasing conclusion that the answer is Docker Containers. Pleasing because I've just spent the past couple of weeks finally getting to grips with containerisation myself. He noted that Docker is only really feasible as a production system when containers may be managed across a fleet of hosts and then discussed the relative merits of the various platforms for doing so: Docker Swarm, Mesos and Kubernetes. It certainly saved me a lot of reading.
Another tennant of Cockroft's keynote was the importance of imposing Purpose rather than Process ("Teach them to yearn for the vast and endless sea") and this was the central theme of A Day in the Life of a Netflix Engineer by Dave Hahn. This engaging and entertaining talk gave insight into how Netflix builds and maintains the systems that account for up to 37%(!) of Internet traffic in the US. The engineer-focussed culture that they have created sounds truly inspirational.
Adan Wolff's Facebook Product Infrastructure provided a peek inside the sausage factory that services over 1 billion(!) users daily. Particularly interesting was the way in which developers are able to deploy new or updated features to specific customers by way of Feature Gating. Adan also discussed the importance of questioning established paradigms as Facebook did when developing platforms such as React and GraphQL
Kathleen Fisher's talk on Formal Methods highlighted the insecurity still inherent in modern software. Unfortunately this isn't an easy problem to solve and while formal methods offer a means of mitigating security issues they still require a prohibitive amount of time and knowledge to implement. However the SMACCMCopter project demonstrated that this is no excuse to ignore security in a rush to market, particularly in the fast-moving world of the Internet of Things.
Finally Reid Draper disucssed his experience with Production Haskell. Reid demonstrated recent improvements in the build process courtesy of Stack and the possibility of running interpreted for developing in Haskell's REPL. He also showed how to simply test and deploy Haskell applications as well as a few advantages of the Haskell/functional approach.
A wonderful day during which I learned a great deal. Looking forward to day two!