On March 7-9 in London I attended my first QCon. Organised by InfoQ, QCon is now in its tenth year and appears to be going from strength to strength.
QCon is a developer conference that aims to appeal to a broad range of developers; from enterprise Java developers to cutting-edge computer science
In this blog post I'll cover the talks that I attended and give my overall impressions of the conference.
Keynote: Unevenly Distributed
by Adrian Colyer
Adrian is the author of The Morning Paper, a daily digest of research paper summaries. Adrian spoke about what he has learned by reading and summarising a paper a day for over a year. He posited that papers A. make us think, B. raise our expectations of what's possible, C. share applied lessons with us, D. allow us to participate in the "Great Conversation" through the various references cited in the papers we read and E. give us a glimpse into the future (which is already here, but not evenly distributed).
This was one of the best talks I've seen in a long time. Adrian is a well-informed and a great speaker.
Love Failure & Embrace Fallout
by Gavin Stevenson
I'm interested in distributed systems and the complex problems around testing them, breaking them and making them robust in unreliable network scenarios. The title of this talk therefore appealed to me greatly. However, after extolling the virtues of designing for failure, the focus of this talk shifted to William Hill's R&D department.
The talk was well delivered but I didn't learn anything from it and feel it didn't deliver on the title. Perhaps it was only guilty of a misleading talk title.
Using Technology as a Blind Long Distance Runner
by Simon Wheatcroft
Simon taught himself to run, blind, using the RunKeeper running app for his phone. Starting on a football field, using the audio feedback, he moved to closed suburban roads and then open motorways. Astonishingly, he uses only the combination of route memorisation through under-foot feel, the pain of running into things, and the audio feedback of RunKeeper. He has since run marathons and is about to participate in a desert race using custom technology he has produced with the help of IBM.
Resilient Predictive Data Pipelines
by Sid Anand
Building back-end systems that scale well and don't lose messages is hard. Sid presented some AWS-based examples of how to do this using a combination of SNS and SQS. An informative and well-delivered talk.
Java 9 - The (G1) GC Awakens!
by Monica Beckwith
This was a deep dive into the internals and minutiae of the new garbage collector in Java 9. I was hoping for something a little lighter and maybe talking about some of the other new features of Java 9.
As a recovering ex-Java developer, the level of detail was not of interest to me. An impressive and uncompromising talk by an accomplished speaker, but just not for me.
Effortless Eventual Consistency with Weave Mesh
by Peter Bourgon & Matthias Radestock
The "Modern CS in the Real World" track was the place to go for mind-bending, cutting-edge computer science talks, and this talk was no exception. Peter and Matthias from Weaveworks talked about Weave Mesh, a library they abstracted from the internals of Weave itself that does eventual consistency over unreliable networks. They gave an applied example of building a Raft implementation on top of Mesh, which is pretty impressive, and the ease of building it shows the strength of their code and the interface and abstractions they chose.
Patterns in a Containerised World
by Matthias Luebken
Matthias, previously of Giantswarm, set out something of a manifesto for container best practices. Think of it as the "12 factor manifesto" for containers. We've been working with containers for long enough now to have ironed some things out and to have begun to agree on some best practices. Matthias took us through his version of those, which he is sharing as a starting point for community collaboration. A good start and I hope it bears fruit in the container community.
Observe, Enhance, & Control: VMs to Containers
by Mitchell Hashimoto
Mitchell delivered a broad and general talk, walking us through the history from VMs to containers and where we are today. Mitchell is a seasoned speaker and his talks are always enjoyable, but I found this to be old ground for me and perhaps directed at container newcomers.
Not Quite so Broken TLS Using Unikernels
by Anil Madhavapeddy
I returned to the CS track to feel overwhelmed all over again, yet Anil managed to make a very difficult subject enjoyable and more-or-less understandable. Anil showed us how much of a mess the C code for very important libraries such as SSL can be, and how remarkable it is that they work as well as they do, despite the constant stream of exploits being announced. He proposes unikernels as a technology to enable us to write minimal library operating systems for our apps, rewriting these low-level libraries in type-safe, memory-safe and testable high-level languages to make the internet more secure.
by John Willis
John Willis from Docker shared a moving story about the suicide of a friend who worked in DevOps, and went on to share some statistics and studies about burnout and some resources for those who need help.
The take-away is: talk, listen, ask if people are okay and, above all, care. Also check out the Maslach Burnout Inventory: take the test and see if you are at risk.
Build, Ship and Run Unikernels
by Justin Cormack
An entertaining and informative talk about unikernels as the logical extension of containers at Docker. Justin brings his dry humour and love of history to the subject and sheds some light on where Docker is heading with this.
QCon Architects Dinner
Evening social event
This year QCon ran an event called "Architects dinner", a new idea to get like-minded people together to talk about common interests. Each attendee gave their interests in advance and we were hand-matched into tables of six.
Unfortunately I was the only non enterprise Java developer at the table. Aside from this, I met some nice people and had an enjoyable meal, but I can't say it was the success I'd hoped for.
Meet the Node.js Anti-Patterns
by Igor Soarez & Pedro Teixeira
YLD's co-founder and CTO Pedro Teixeira was joined by fellow YLDer Igor Soarez in a Node.js double-act discussing anti-patterns and bad practices in Node.js development. Built around a narrative of Jane, a Java developer doing her first Node.js project, we learned about callback hell, code style, error handling and some architecture and scalability challenges. Packed full of lessons, this will be one of those videos you go back and watch many times to extract as much as possible from it.
Pedro gave away copies of his Node Patterns books, which disappeared quickly. If you missed out and would like the books, head to the website.
If you have any questions about anything in the talk, please get in touch.
Rust: Systems Programming for Everyone
by Felix Klock
Returning to the CS track for more confusion, I was again pleased that this talk was very clear and understandable. Felix is an energetic and enthusiastic speaker and very engaging. Not being familiar with Rust some of the details were over my head but I was able to get the gist of most of it. Enough to tell me that I need to go and learn some Rust, it looks great.
by Matteo Collina
Designing a Microservices Architecture with Node.js
by Pascal Laenen
Pascal allowed us a peek inside Thomas Cook's innovation over the past 12 months: introducing microservices and serverless architecture with AWS Lambda into Thomas Cook. YLD have been a partner in developing Pascal's vision for the future of software engineering at Thomas Cook, and it was great to see it so well articulated on stage at QCon.
QCon strives to appeal to a broad range of technologies and levels of developer expertise. Most of the talks reaffirmed some of my previous knowledge, but I was challenged and intrigued by the more advanced computer science talks. Overall I found it really valuable to get the "lay of the land", to see what technologies people are interested in today and using in production. It is also a good opportunity to meet like-minded people and "network".
The following content is the thoughts and reflections of Luke Bond. YLD does not hold these identical beliefs, and the expressed opinions are exclusively his own.