QCon London 2014

Wow. My 4th QCon London. That’s not bad. And every time, it’s a different experience (if you must, see my blogs for 2013, 2012, and even 2007 (part 1 & part 2 - how cute was I? "agile seems like a jolly good idea; automated testing appears to be important")).

I can’t even tell you what I did on the first day, I was mostly panicking about my presentation - I was inspired after my trip to New York last month to change my talk at the last (responsible?) minute and do a live coding session, something much more technical than my recent talks. I’ll leave the details for a separate blog post though, when the video comes out.

The thing that stands out for me from Wednesday though was Damian Conway programming Conway's Game of Life in Klingon. Yeah. Just find the video and watch it, the man is a genius.

Damian Conway, Life, The Universe, and Everything

The Thursday keynote was inspiring too from a totally different point of view - Tim Lister of Peopleware fame shared stories from his career, and I came away from that really happy I work as a technologist, but with an increased desire to learn off other amazing people.

Tim Lister @QCon London 2014

Not Only Java track - I’m on the programme committee for QCon, and this year we wanted to cover leading edge technologies (as always) but we didn’t want to slice things into strict technology silos (interruption: argh! the person in front of me nearly destroyed my laptop by suddenly moving their chair back! Why do people bother in economy on a morning flight?). So I wanted the Java track to be more representative of what today’s Java programmers care about - for the programmers of course, but also because I know there are architects and team leads at QCon who might not realise how things have moved on with the language, and how much polyglot programming we do these days.

Martin kicked it off with a great history lesson on the progress (or occasionally, lack of it) in Java. He begged us to study and understand Set Theory, to use async design, to think of the users of our APIs, and, most of all, to design nice, clean code.

Next up, Eva took us through the fundamentals of Garbage Collection - this might not seem like a cutting edge subject these days, but it’s one of the most misunderstood subjects for Java programmers. Eva gave us a really great, understandable view of the different types of garbage collectors, how they work, and their pros and cons. She left us with a call to arms to not simply let other people try and solve this problem, but to get stuck in and contribute ourselves, via the OpenJDK.

Trisha Gee @QCon London 2014

After lunch was my nerve-wracking live coding session, putting together a full stack end-to-end web app using AngularJS, HTML5, Java and MongoDB. It only went wrong twice, and people seemed to like it. I’ll post the video in another blog post as soon as it's publicly available. Code is available on github.

We’ve been playing with the open spaces idea at QCon. The Java one only had a few people in it, but that gave everyone a chance to speak at least. We covered Java 8 (the Good and the Bad); other JVM languages; and UIs for Java (Javascript or GWT?). And I plugged the work the LJC does in London, of course.

After this Bodil blew me away creating a My Little Pony game using RX in the browser. ‘Nuff said.

Finally, Simon Ritter gave us a view of the Java 8 features most likely to impact the way Java developers think about software design - lambdas and streams. I thought this was a really great introduction to the concepts if you haven’t seen them before, and with concrete examples that showed how we should be using them. If you're not already looking at lambdas and streams, you should be - even if you're not going to be using Java 8 yet, it's worth getting a heads up on how it's going to impact our programming style.

I’m very pleased with the way the Java track turned out on the day - every speaker was first class, a wide range of topics was covered, and I, for one, learnt something in every presentation.

To finish off the day, Emma Langman gave an awesome keynote about how people are the messy bit of your system, and how they’re never rational and you shouldn’t expect them to be. I also highly recommend this talk, especially if you’re a techy and you’ve found yourself in some sort of management or team lead position.

Sadly I couldn't stay for day three of the conference, I had to fly off to the Joy of Coding to re-give the live coding presentation there. Because, if you’re going to do something terrifying and doomed to failure, you might as well do it twice.

QCon is an expensive conference, especially compared to the developer-friendly prices of something like DevoxxUK, but for getting a big picture of where the industry is, of things you might be missing, for learning hard core technical skills and understanding the important of the fluffy-people-stuff, and finally for meeting a wide range of people from developers to CTOs, I think you'd be hard pushed to find something better in London. IMHO (and remember, I did disclose I'm on the programme committee).

And although it's really hard work putting together the programme for a track like this, and although both times I've said I'm Never Doing It Again, when it goes this well it makes you want to do it all over again. After a break. A looong break.

Life on both sides of the interview table

InfoQ has posted the video of Dan North and I opining on the subject of hiring.  Most of the talk is spent on how to be a good interviewer, and touches on how to market your company to prospective hires.  We spend less time on how to do well as an interviewee, but in theory if you know what’s going through the interviewer’s mind, you should be in a much better position to take control of the interview and shine.

It’s kind of funny because we talk a lot about hiring at ThoughtWorks (where we both worked, and which has one of the toughest interview processes in the industry) and LMAX, which learnt a lot off ThoughtWorks and shaped its own process for a smaller company that has different goals.  Yet neither of us work at those places now.  Still, we share stories from many of the places we’ve worked (or chose not to work), and if there’s one take-home point, it’s that hiring (and being hired) is not a simple thing to do well.

QCon Day One

I like QCon London, I really do.  Not only is it on home turf, but, as I’ve said before, it doesn’t just focus on technology, or a set of technologies.

Full disclosure: I’ve been involved in planning QCon this year.  So this time I know all the thinking, hard work, planning and last-minute changes that go into a conference like this.  And it’s a joy to be able to sit in the audience and see the conference that you’ve helped build.

There are things I took out of today that I want to get down on “paper” now, because I think the next few days will have different themes.

Let’s Not Forget About Computer Science
I’m so pleased to see this in a conference!  After documenting and talking about the Disruptor so much last year, I felt it was important for us to go back to our roots a bit, and have some Mechanical Sympathy.  Some of the sessions today brought us back to the school room and had us thinking about the tools we’re using.

In my new role I’m doing something I’ve never had to do before, and that’s writing a library that will be used by other developers.  Barbara Liskov’s keynote had me thinking hard about “readability over writability” and “design for the case that is used most often”.  I also came out slightly depressed that some things hadn’t changed in 40 years.  Martin Thompson’s talk made me wish I had written my driver performance tests up front, and poked me to continue thinking about our users’ performance needs.  I’d like to say Damian Conway’s keynote made me want to code in Latin, but in fact it motivated me to get back to learning Spanish.  But it also (unintentionally) backed up a point I’ve heard before, which is that programming is at least twice as hard to learn if you don’t speak English.  Probably worse if you don’t speak a European language.

Overall, the message I took from the combination of these sessions is that it’s almost more important than ever to get back to basics.  Stop obsessing about frameworks and tools and different flavoured JVM languages.  Start remembering all these things are tools, that they run on machines that work with ones and zeros.  Whatever abstractions we’re using, we will write better, cleaner, more performant, fit-for-purpose code if we understand our tools, and their strengths and weaknesses.  One of these tools is even our own brain - understand how it shapes the information and presents us with solutions.

Art Is Awesome (and Useful)
I went a bit off topic to go to two sessions on visual information.  My excuse is that this blog needs more pictures, and I want more visual ways of representing what’s going on with MongoDB/the driver.

Heather Willem’s session encouraged us to doodle throughout.  In fact, forced us to.  Right up front she adresses the fact that doodling is seen as a lack of attention, as a waste of time.  And I realised, sitting there in the audience with my iPad and stylus, that I did feel guilty drawing away while someone talked at me.  But it was a brilliant exercise in unblocking some of those creative juices, and letting us see the power in visual information.  Perfect is not important, pictures are powerful.

Fernando Orellana is an artist fascinated by building machines to create art.  It was awesome to see an artist who also builds robots and codes stuff to do what he wants.  He said “code is like paint, I use it to create”.  See? I knew coding was a creative activity.  He’s done some stuff that I probably would have been tempted to say “is that art?", like aiming to create 40 000 play doh cars.  Or making creepy rodents that live in “dumb little suburban homes” out of singing hamster toys.  Go to his website and watch the videos, nothing else can describe it.  I was blown away, it was inspiring.  And useful too for sparking creativity in all of us.

Here’s my “subconscious drawing” from the start of the session.  We need more child-like art in our lives.

These two sessions really rekindled my desire to do arty, drawing-y creative stuff.  And helped me see how fear blocks many of us from using this medium.

And…
Sitting in the audience as an attendee, different things jump out at you.  I was shocked, as someone who’s been involved in suggesting and selecting speakers, at how few women there were again on this first day.  My thought was, how could this happen with me on the committee??  So I have more sympathy for conference organisers than I did, when facing this tough problem, but more conviction than ever that we need to do something different to showcase different types of role models.

On the other hand, it might be my imagination or wishful thinking, but the overall diversity of the attendees seemed much greater than recent years, which is a Good Thing.

I’m sorry for bringing up this subject again, but you might consider it blind of me not to notice something in a conference I’ve actually worked on.

But overall
I’ve been really impressed with the first day of the conference.  Not only was it, of course, a great opportunity to meet new people, catch up with old friends, and generally network, the sessions that I went to were excellent, and have me excited to be working in this industry, at this time.  And to be in a position to hear about it all.  And maybe, just maybe, contribute something of my own.

QCon: TODO list inspired by the conference

QCon: Initial thoughts

Things I took out of QCon:

  • I want to play with Ajax.  Maybe I've "grown out" of front end development but that doesn't prevent it from being (potentially) extremely cool
  • Selenium looks like a good place to start for automated website testing
  • It can take up to 7 years to move away from a legacy architecture.  Depressing, but at least it shows it can be done and it's worth the effort
  • I'm going to become a certified Scrum Master Mistress.  I believe Agile in some form or other is the most efficient way to run software development, but there are a LOT of lessons to learn in order to get it right.  And number one lesson is you need the right team.

QCon London

Last week saw the first QCon London conference, an event “designed with the technical depth and enterprise focus of interest to technical team leads, architects, and project managers”.

The conference consisted of two days of tutorials followed by three days of talks covering technologies, vendor products, and processes. In addition there were numerous “networking” opportunities with plenty of break times to both absorb information and meet other people, plus evening events.

The conference was both comprehensive and absorbing, and I’m hoping to take the next few days to filter through the notes I have taken and present a more succinct version here. Whether it will be of use to anyone other than myself remains to be seen…