JAX London & MongoDB Tutorial

In previous years, JAX London would have been an easy, local conference to go to. This time it took me most of Sunday to get there, and not because of the Super Storm. Still, that gave me the day to finish off the tutorial I was running there on Monday morning. Not that I would be so unprofessional as to leave preparing things until the last minute, oh no….

But as in previous years, the main benefit of this conference for me was meeting most of the usual suspects from the London Java Community. For example, presenting were: Andy PiperBarry CranfordJim GoughPeter LawreySandro MancusoSimon MapleMartijn VerburgJohn Oliver: John StevensonRichard Warburton. The Community Night in particular also drew a lot of LJC members (including some first-timers) to JAX, and it was a really good “networking opportunity” (i.e. chance to have free drinks, catch up with friends and make new ones). I really enjoyed hanging out with everyone at JAX this year, I was tempted to write the names of everyone I spoke to and had fun with because it really made my conference, but I think that would make a very boring blog post. But if I spoke to you at JAX, you made my journey from Spain worthwhile, thank you.

As well as the LJC-types, there were some other really big name speakers too, including MongoDB’s Chairman Dwight Merriman. Highlights for me were:

  • Ken Sipe’s Spock talk. I saw this at GeeCON and that’s why I started using Spock to test the MongoDB Java driver, but it was great to see it again and pick up some extra tips
  • Ted Neward’s talk at the community night about being a CTO at a startup. It was really interesting, and nice to see a realistic view of the difficulties of that role.
  • James Governor’s keynote on how Java got its Mojo back. I like seeing facts and figures to back up a viewpoint, and as you’d expect from the founder of an analyst firm, this talk was full of them.

As James mentioned during his talk, the audience at JAX was, as in previous years, somewhat passive. I’m not really sure why, as around 50% of the audience came from outside the UK so we can’t even blame English reticence. And in a conference full of outspoken LJC-types, it seems an odd thing to have an unresponsive audience. Maybe it’s the venue, the main hall in particular seems to lend itself to sitting quietly in the audience and expecting to be entertained.

I presented four times at JAX, because, well, on home turf one ends up doing more than one expects.

  • Firstly, a tutorial on the new Java driver for MongoDB (more on this later);
  • Secondly, a clinic for novice speakers. This was a lot of fun, and I think it was useful for everyone. I’d love to run this again (I probably will at the LJC Open Conference). The aim is to give new speakers confidence, not focus on details like building a slide deck.
  • Thirdly, the third time out for my “Design is a Process, not a Document” presentation. It’s a relatively interactive presentation, which I don’t think worked so well at JAX, but it’s a fun presentation to give.
  • Finally, not only did I get roped into being on the panel for “How to start a community” at the community night, I ended up, somehow, moderating it. That was fun, it was the first time I’ve been a moderator, it’s a role I usually avoid as moderators ought to limit the amount of talking they do, which doesn’t sound fun to me.

The tutorial materials are available on GitHub. I haven’t provided a lot of guidance on how to get started online, but the exercises are there, and the slides which present the concepts and suggest the order to tackle the tests in. If people use these materials, please feel free to give me feedback on them, but be nice - they were designed for an in-person tutorial, not an online one. But it is a good way to get a feel for the new MongoDB Java API (in its current, unfinished, state).

So, JAX London - great speakers, and a good conference to meet not only Londoners, but a lot of international people too.

LJC Open Conference 2012

Saturday I had the pleasure of being part of the 5th London Java Community Open Conference. This is a great event to end the conference season on - it made me feel good about being part of the LJC, and got me excited about the prospects for 2013.

The fantastic thing about an open conference is that a) you don't have to prepare like mad for it and b) the short sessions and wide variety of subjects mean that you learn stuff you didn't expect to.

Given how much I've been presenting lately, and with the conferences piling on top of each other back-to-back leaving little time for preparation, I had decided not to speak at the open conference, but to sit and learn for a change - it's a great opportunity for new speakers to present for a start. But that resolution lasted all of 3.54 milliseconds. After all, if people don't like the sessions I propose, they won't come, so I lose nothing by suggesting some.

First up, it was a very great honour to be giving my very first Keynote. Ben Evans and I presented on the State of Java - a summary of this last year from the point of view of our community and globally, and a view to next year. I know we've had an incredible year as the LJC, it was really satisfying to be able to summarise this for everyone there, to present what we've achieved locally and globally. And looking forward to the future, there's so much more we can do as individuals trying to improve our skills (especially with Java 8 due), as a London-focussed community (with our own events, our sister communities, and with Devoxx UK), and globally (with the JCP and OpenJDK).

Next, I was roped into a Java Performance panel, with the JClarity guys (Ben, Richard and John). I was surprised to see that not many in the audience were working on low latency systems - in London you'll frequently find a room full of Java developers who are all working in finance on things that have specific performance requirements. It was good that we had a this variety of developers, because it meant we covered a much broader range of subjects, and could discuss what to think about and where to get started when you're considering your non-functional requirements.

Immediately after that I was on another panel, with some of the same suspects, talking about the LJC's involvement in the Java Community Process and the Open JDK. I really like these sessions because it's easy for us, who are dealing with these things at least on a weekly basis, to forget that most of our members aren't familiar with either of these two things. What's encouraging though is that after just a short introduction to what they are and how we can impact them, most people want to be involved in some way. The hack days are particularly appealing to developers (not surprising). Although we've had a number of very successful hack days, we still need to work out a way to scale them - how do we attract more people? How do we make the best use of their time? In particular, we need to work out how to cater for people with different timetables (weekends vs evenings vs week days), and how to handle the split between beginners and those who have already been to at least one hack day. I'm excited about what we've achieved so far with the hack days, but I think there's so much more that can be done.

You can't tell from this photo, but there were girls this year

Over lunch there was a series of lightning talks. I really like the way the lightning talks are presented to everyone in the conference. I like the variety of topics, and I like that it's fairly easy for a new speaker to give a 5 minute talk, with as little or as much preparation as they want. The one I remember most was on software for elections from Alex Florescu - I thought that looked like an interesting (and difficult!) business domain, which needs novel solutions in order to get acceptance.

Next up, I gave an intro to NoSQL From Devoxx, it was clear that while a lot of developers have heard of the NoSQL movement, and of databases like MongoDB, it's not clear to them why you'd chose these over traditional databases. Which is a relief to me, because that's exactly where I was three months ago. So this was a really quick (30 minute) overview of the different flavours of NoSQL, what they're good for and why you might pick one over another. Obviously there was a focus on MongoDB, since this is the one I know most about, but I also covered the strengths of some of the others. I really enjoyed giving this session - the audience was perfect for the topic, the questions were intelligent and drove the direction of the discussion, and I had a number of positive comments from people who felt like they had learnt something.

I gave another session which was a recap of the JavaOne and Devoxx Problem with Women talk, but even shorter. The fantastic thing about this was the energy from the people in the room - these guys like what they do and they're keen to tell other people how great it is to work as a developer.

Finally, I managed to actually attend a couple of talks too. Barry led "Why is technical recruitment so broken?", and we had some interesting discussions around the problems employers and developers face, in trying to get the right people into the right roles. Clearly there is no easy solution, and there's definitely a role for recruitment agents of all kinds in this space, but it would be awesome if we stop floundering around in the dark and actually be able to match the right people to the right jobs more easily. In seems to me that there is a huge educational piece here: developers can find resources around how to write their CVs, how to stand out from the crowd, how to network to increase their chances of finding a good job, but they need to know to start looking for these resources. Worse, though, is the problem of the employers - if you're a big company you have a non-technical HR department standing between the team needing a developer and the candidates themselves, and smaller companies don't have the time to invest in the hiring process, or going out and networking to meet people at things like LJC events. It's a tough problem, and one I'm extremely interested in. I'm hoping that the "Attracting Great People" track I'm running at QCon London will look at some of these issues, and give some advice from those who are doing a good job.

The last session was an exploration of all that is wrong with Agile, led by Ged Byrne. It was an interesting discussion, the only disappointing thing about it was that everyone agreed with each other! Certifications Are Meaningless; external Agile coaches and consultants aren't necessarily invested in improving your business; a formal Agile process is really defeating the point; and, most importantly, let's try to remember the original agile manifesto.

In summary, it was a really great day! I enjoyed it as much as I enjoyed last year's, for many of the same reasons - we have a fantastic community, it's a great event for meeting people, it's brilliant for encouraging new speakers, and if you are speaking you get much better feedback than you do at the large events, because you can involve your audience directly and give them what they really want. I can't believe how much I personally have achieved since my first solo talk at the LJC Open Conference last year, and I can't wait to see what the next year holds.

(More photos from Andrew Black)

JAX London 2012

Seemed like a quiet conference this year.  Not really sure why, maybe it was the layout of the massive (and extremely dark) main room; maybe it was the awkward L-shape of the communal space; or maybe this year people were more interested in listening to the (really very good) sessions rather than participating or meeting other people.  Whatever the reason, it felt quiet and almost low-key.

Performance seemed pretty high on the agenda, as you’d expect from a London conference, with a number of things on offer:

  • A great keynote from Kirk Pepperdine and Martijn Verburg, covering a massive range of things to care about when thinking about performance on the first night
  • A high-level talk about Java Performance from yours truly (which I may run again for the LJC if there’s interest, but it’s more likely to be a one-off)
  • A deep dive into writing lock-free coding by Mike Barker
  • And a talk from Kirk exploring your GC logs.
It was great to see a number of LJC regulars presenting, especially as my own schedule has been so crazy I haven’t seen many of them for a long time.  So I missed sessions from Bruce, John, Sandro, Russell, James & Richard, but I heard good things about the sessions and was really pleased to chat to all of them.
The highlight of the conference for me though was Brian Goetz's keynote and subsequent session on lambdas.  I’ve been looking into lambdas because I think it’s a really interesting addition to the language and I’ve heard a lot of noise about them.  What I thought was most interesting about Brian’s talks though was less the information on what they were and how to use them, and more the challenges that face language designers when they have a language which is used by 10 million developers and has been going for nearly 20 years.  Ouch.  It’s amazing they get anything done, let alone something like lambdas which the language was never designed to support.
In keeping with the new job, I went to a few sessions on the Big Data Con - frankly an unfortunate name I feel.  Brendan's Mongo & JVM talk was useful, especially given that I might actually be presenting that at some point.  What I’d love to see though is a more interesting story around the Java driver.  It seems people believe the Java driver needs a little love.
The other interesting NoSql talk was from Tim Berglund's NoSql Smackdown, which was a really great way of highlighting that the NoSql databases are not all solving the same types of problems.  The room was packed and the questions were intelligent, so it seems there’s still a lot of interest in this kind of introduction to the technology.
Lessons learned:
  1. Commuting through Victoria Station sucks.  I knew this last year but it’s just got worse.
  2. The iPad + stylus combo is not as precise as the graphics tablet, so I’m probably going back to that for illustrations.  But I’d still love to do free-drawing with the iPad on the projector at some point.
  3. Not everyone can follow the deep-dive tech talks, but they still prefer them to introductory talks, maybe because they feel like they’re learning something (well, that’s my opinion).
I took practically no photos because I kept forgetting I had my camera.  I think it’s the weird subterranean effect of the hotel basement.  Either that or I’ve turned into a conference zombie - not an unlikely suggestion.  And I’ve still got Devoxx round the corner…

JavaOne: User Group Sunday

Well this is exciting! JavaOne 2011 is the first conference I spoke at, so this the first time I've covered the same conference two years running. I think.

It's very nice to be back at JavaOne. Last year it was my first opportunity to meet so many people - the guys at Oracle who work really hard to make sure Java has its own identity; the JUG Leaders and Duchess folk; the JCP EC committee members; and loads of people who live and work in the area who I wouldn't normally get a chance to speak to in person.

This year I'm here with several other London Java Community people, and it's great to be a member of the Alumni, to have the privilege of showing other guys around and introducing people to each other. It's nice to run into people I met here for the first time last year, some of whom I've had a chance to see at other events this year.

Today, Sunday, is an interesting day. The focus is on community, so I get to hear what other JUGs are doing, some of their pain points, and learn some of the things they're doing that maybe we should think about.

The day started well, with Jim and Richard de-mystifying the business and technology terminology we're bound to come across at this conference. 8:15am is a really harsh time to have to do your first presentation, but it had a good turnout and was a great way to kick off the conference.

I followed this with a talk about why you would open source your secrets, a short presentation detailing the benefits to your business of opening up parts of your codebase. It went better than expected, given my voice has all but disappeared due to a stupid cold and plane travel and jet lag (and noisy bars). I had contingency plans on how to present via typing or drawing on my iPad, but in the end I managed even despite the microphone not being turned on. Doh.

There were a series of presentations on how to make your JUG successful and how to run Adopt a JSR/OpenJDK programmes in your user group, before Ben and I had to dash off to the public EC meeting. This was not as well-attended as last year, but it meant that I had a chance to talk to all the EC members, and to drink more free champagne than one really ought to in the afternoon.

Next on the packed schedule was a trip to yet another location (seriously, that's 4 different locations just on Sunday) for the keynotes. Note: next time I say "it's not far, let's walk" in San Francisco, hit me with sticks. That's the second time in as many days I've been hit with a vertical distance that was further than the horizontal. At least this time I wasn't wheeling my luggage up the hill like I was on Friday.

The keynotes were definitely better than last year. I really enjoyed how the technical keynote put the shiny new stuff into an everyday context - seeing JavaFX running on all the platforms, including embedded, and seeing lambdas used in anger, was really engaging. In my mind, it's much more likely to get "real" developers using these things. I particularly enjoyed the interplay between Mark Reinhold and Brian Goetz, it's great to see people like that so passionate about what they're doing, it really humanizes them and their projects.

The last trip of the day was back down the hill to one of the many parties scheduled this week. Of course, it's not in every party that you get given an award, so this was particularly sweet - the London Java Community has been honoured with a Duke's Choice Award. This is the first year a community has won a "Dukey", and it's amazing to be part of a group of people who are actively contributing to the language I work with daily, and to be recognised for this. So yes, I was on stage getting an award again. It's addictive.

So, a really great kick off to this year's JavaOne, and I'm back at the apartment well before my coach (well, Uber) turns into a pumpkin and resting my voice in time for my Disruptor presentation tomorrow.

Interviewed at GOTO Copenhagen

I was interviewed at GOTO Copenhagen, about Java, the Disruptor, the Graduate Developer Community & London Java Community, and a whole host of other things.  So to make up for the lack of blogging this month, here it is:

The birth of a new community

Topping off my mini-tour at the end of May, I was invited to Rotterdam to present to a brand new community of developers.  I was really interested in attending because my experience with user groups is pretty much limited to the London Java Community, and I knew this would be different due to being a) across a wider range of technologies and b) shiny and new.

It was hosted (rather awesomely) in a brewery, and until then I’d never given a presentation in a pub.  Frankly it’s something I’m keen to do more of.  Due to a total technology fail on the part of all of us, we couldn’t get the projector working with any of the various laptops.  However, with 30-odd techies, free wireless and slides available on Slideshare, we managed a novel and collaborative presentation approach, with people clustered around the laptops with the largest screens, and someone at each one valiantly keeping up with my quick pace through over 100 slides of stick-men drawings (a review of the evening is available).

I really enjoyed it, it was quite a change of pace from the conferences - my first attempt at presenting after imbibing probably a little toooo much wine, and a much more intimate venue which encouraged a lot of questions and discussion.  It’s actually a format that worked, and maybe there’s a way to get it to work even more smoothly, if the slides on all the laptops were synchronised, and there was some way for me to gesture wildly at the appropriate parts of the slides like I do when I’m on stage.  Hmmm, maybe that’s actually a webcast now I think about it.

So I had an excellent time, thanks to the hospitality of the rather awesome Rotterdam-ians.  What I found fascinating  - as well as the venue and the novel presenting style - is the formation of a group of people with broadly similar interests.  One of the great strengths of a place like London is its size - you will find a number of people here with interests like yours, and sites like Meetup make it ridiculously easy to find them.  One of the weaknesses of London, however, is its size - there are so many people you could attract that you end up narrowing your search field.  You pick a very specific technology, a tiny geographical area, a single interest, to build a community around.

I’ve been thinking for a while it would be nice to have a community of people who aren’t all the same, who share overlapping but different passions.  But how do you create something like that?  You need a single thing to draw those people together, otherwise they’ll never find each other.

In smaller cities the geography limits the numbers, so you can have a broader range of interests represented.  In London, I can see something as (relatively) specific as a Java User Group becoming even more specific.  With nearly 2500 members, you could easily spin off Java-for-banking, Java-for-gaming, Java-in-west-London-zone-2 etc etc.  In fact, we’ve already spawned off a number of groups like the Graduate Developer Community, the London Scala Users’ Group and so forth.  With nearly 2500 members, you cannot possibly meet them all, you can’t even get a feel for what everyone’s into.  How do you get the intimacy from a smaller user group without narrowing the scope so much that all of you might as well be clones?  The awesome thing about user groups is coming across new ideas, seeing solutions to problems you didn’t even know existed, hearing about things people are working on that never occurred to you.  For that, you need diversity.

And one of the nice things about a city as large as London is you get plenty of diversity.  But how do you pull together that diversity?  How do you create a group that is diverse, when by necessity you need something central for those people to gravitate towards?  And if the diversity creates a large group, how do you create intimacy and feel personally involved, the stuff that comes for free if you belong to a smaller group where you know everyone?

In Rotterdam, at the Girl Geek meetup, I saw the advantage of using something other than a specific technology to gather together a group of interesting people - you get a wider range of experiences and passions.  How you can achieve this without using geography or genetics to select your participants?

Is it even possible to build a community when your goal is diversity?

Devoxx: The story so far

Stephan wearing the Brazilian flag at the opening keynote

  • European conferences are different (and cool) because you get to hear even more languages spoken than you usually do in London (apparently the most diverse city in the world for spoken languages). I think the idea of a Paris Devoxx with 75% of the talks in French is brilliant - I'm always banging on about diversity, we shouldn't expect developers to learn in English only.
  • Really great to meet up with some of the people I met at Java One and am starting to feel more a part of the global community.
  • Seems to me there are slightly more women here than at the other conferences I've been to, and not just because Regina and I pulled together four women for a panel on women technologists. And once again, a lot of guys asking why this is, because they want things to change.
  • A highlight was seeing my namesake, AutoTrish, up on a cinema-sized screen in front of hundreds of people at Dave Farley's Continuous Delivery presentation.
  • Building on from my twitter revelation at JAX London, I've found twitter very useful here for messaging people I want to meet up with, but also for chatting to new people and making new friends. It's not quite as intimate as JAX London though because there are billions more people here, so the chances of actually bumping into the twitter friends is much lower.
  • Have had lots of interesting conversations with people about the Open JDK, which I guess is the logical extension of the interesting conversations I had about the JCP In San Francisco.
  • A community event like this is different to an event like Java One, because a single organisation isn't calling the shots. It's interesting (and great) that Oracle and Google can both be here talking about the cool stuff they're up to.

The Diabolical Developer

Conferences are clearly something that appeal to me - I love meeting people and chatting about interesting and (sometimes) intelligent things; I love learning stuff and indexing it away, possibly for future references; I love hanging out with people like the LJC guys (Ben, Martijn and John); I love kicking around ideas of what more we can do at LMAX with our lot (Mike, Dave, Dali).

Dave's Continuous Delivery

I'm really looking forward to my panel this afternoon, I'm going to be ranting about how we target women for tech jobs. Should be fun.

Nice 'tash!

Shameless plug: Mike and Dali are raising money for men's health with their rather awesome 'tashes. It took guts to stand up on stage and present with that handlebar, please give a penny or two