Working for ThoughtWorks is a very rewarding experience. After finishing my first project and delivering a Rails app in 1 month, last Friday I had the opportunity to attend QCon London. Overall it was a really nice day and my feeling at the end of the day was that I should have been there on Wednesday and Thursday :-)

I started the day attending the “Architectures You’ve Always Wondered About” track. The first talk was really good and Randy Shoup talked about the architectural principles behind eBay. I had already read about eBay’s transactionless style for achieving availability and scalability through data partitioning, but it was interesting to hear about the way they approach deployment for new code and features. There are no changes that cannot be undone. They have automated deployment tools that manage the dependencies between different components (a la package management systems such as apt) that allows rollout ant rollbacks (a la Rails’ migrations) of different pieces of code. Interesting stuff!

The second talk on that track was supposed to be about Twitter’s architecture, but for some reason it was cancelled and replaced by an interesting presentation about BBC’s new media publishing system. Nothing really ground breaking in terms of technology, but it was interesting to hear about their current process of migrating a huge physical media storage (with guys in motorbikes taking tapes from site to site) to digital format, and how it changes their editorial process… somehow the image of the guy in a motorbike reminded me of the Pigeon’s high bandwidth transfer protocol :-)

After lunch, I switched to the “Programming Languages of Tomorrow” track. I first listened to Joe Armstrong’s talk about Erlang (and the case for concurrent systems on a multi-core soon-to-arrive future). He is a very entertaining speaker and I think that he successfully delivered his message to the general audience.

Next came Ted Neward with an introduction to Scala for the lazy Java developer. Although I didn’t consider myself the audience for this talk based on the title, I was interested to see and learn a little more about Scala. He covered the basics of the language and I enjoyed watching real code instead of slides, but I was hoping to hear more about Scala’s concurrency features… maybe lazy programmers are still not worried enough about concurrency :-)

The track finished with an Open Space style session, where participants discussed about which factors are driving the increasing interest and resurgence of different languages. For me this was the most interesting discussion of the day and it strengthened the case for polyglot programmers. One of the topics was that it usually takes years for someone to become an expert at something and that it’s harder to leave that knowledge behind to learn something new. I think that it all comes down to whether you want to be a specialist or a generalist and I’ve already stated my position of trying to be both. Another interesting aspect of the discussion was Martin’s point that the evolution happens in cycles and that after a period of stabilization, it’s time (again) for broadening the options and looking for new ideas that will lead us to the next big thing. In these times it’s important to look for new learning opportunities instead of narrowing your knowledge. I think it’s time for me to use the generalist hat for a while… :-)

Finally, the closing panel gave me a good summary of the things I saw and the things I missed. Some of the highlights that I hope will be available at InfoQ soon were Kent Beck’s session and keynote, Martin’s and Jim Webber’s keynote, and Ola’s and Venkat’s sessions on blending dynamic languages and extending the Java platform.

I was really impressed with the quality of the conference, from tracks, to sessions, and speakers. QCon is one of the best technical conferences I’ve participated and I recommend it for anyone interested in enterprise software development. I’m looking forward to attending again next year.


Post to Twitter