For anyone who is interested in what LMAX is up to, and is still following my blog, have a look at this post about the latest tool they’ve open sourced: the Coalescing Ring Buffer.
If you see anything about LMAX - the Disruptor, Continuous Delivery, or even the selection criteria for hiring developers, you’ll see that LMAX is pretty keen on Agile. However, no-one’s documented the Agile process there, as far as I know. Although I personally had it on my todo list, I never had the motivation, the hook to do it. And I realised eventually that’s because I’m not sure it’s a process that would work very well for another team, in another company, working in another business.
The agile process followed at LMAX is one that works for the individuals and the organisation there. And that’s because they do one thing very well - they regularly examine the issues faced and adapt the process to try and combat them. It’s an agile process that’s, well, very agile - it’s constantly changing. Documenting it would only represent a single snapshot in time that would be out of date almost as soon as the next retrospective comes along.
Any process can inspire Cargo Cultism, and the last thing I want to do is give people a process to without the tools to know whether it’s the right thing for them or not. It’s more important to understand your goals, check progress and improve.
I was talking this through with a colleague, Israel, and he rightly pointed out the tool that LMAX can share with everyone else - thinking. Examining the problems, visualising them, and trying out different ways to fix them.
So at Devoxx Israel and I presented a session on “Agile++”, using LMAX as a use case of when agile methods work. The session examines four specific issues encountered at LMAX and the steps taken to solve them, and it’s available on Parleys. Enjoy.
Devoxx topped off a crazy two months of conferences. I've heard people talk about the conference season in the past, and been slightly (OK, very) jealous of all that jet-setting. I'll admit, however, to a slight feeling of relief that my focus until Christmas is pretty much going to be coding. I hope.
|Neal Ford's When Geek Leaks|
So, how was Devoxx? Well for starters, the calibre of the speakers and talks was excellent. I learnt things in every one I went to - either something I could put into practice at work, or something I could do to improve my own presentations. My favourite was Neal Ford's When Geek Leaks - Neal is a great speaker, and this talk was entertaining and informative. I'm also currently reading his Presentation Patterns book, which is extremely useful. Although obviously I give a bunch of presentations and have found some very handy tips in here, it's dead handy for everyone, even if you're just presenting to your boss or team at work.
The great thing about Devoxx is being able to meet all the European-based people in the Java space. People fight to get to JavaOne, but Devoxx is a lot easier if you're based over this side of the pond. It's also easy to run into people in either the exhibition area (where lunch is served, so everyone ends up there at some point), or the central corridor between the rooms (which everyone has to go through at some point). It was really awesome to have so many people grab me either at the MongoDB booth or when I was sat at the desks in the corridor. I really like that venue for a conference, the only downside is the seats are so comfortable, people fall asleep in the talks. Even in our presentation (how rude).
I have a lot of personal highlights from Devoxx now I'm finally free to think about it:
- It was fun making a couple of guest appearances in the keynote, firstly as one of Stephen Chin's Nighthacking crew and then to celebrate the London Java Community being re-elected to the Java Community Process Executive Committee (with a massive 33% of the vote!).
- Another re-run of The Problem With Women. If anything, this went even better than when I ran it at JavaOne. What I really loved about the session is the sheer number of men who turned up. it's tempting to assume they're there to heckle, but in fact their active participation in the subject proves to me that the men in this industry are very much on board with trying to address the gender balance. As always, I have so much more to say on this subject, so I'll make a note to write a separate blog post. In summary, although there are differences in the contributions from the audience in these sessions, there are common themes and a willingness to get involved and Do Something.
|Agile++ with Israel Boza Rodriguez|
- The exclusive premier of the new Agile++ talk, co-presented with a colleague of mine from LMAX. The aim of this presentation was to talk about where you go when your organisation starts with a great agile grounding - what problems might you face and how do you tackle them. Bit confusing for me giving this talk since I was still in LMAX-mode, and I'm very grateful to 10gen for not only allowing me to present this, but actually promoting it for us as well. I'd love to do this session again, I'd like to work out how to without having a split personality as an LMAX person and a MongoDB person.
- I'm glad I had a week of intensive MongoDB training the week before, I could actually answer all the technical questions thrown at me - yay me! It's true that educating people is a really good way to learn stuff.
- People are really interested in MongoDB. Many are using it already, but even more are wanting to learn about NoSQL in general, and Mongo specifically. It was really awesome that Stephan gave a massive boost to Mongo's reputation, describing how the central data store for the conference technology was MongoDB running on a Raspberry Pi. You don't get cooler than that. Numerous other speakers gave very positive stories of using MongoDB too, so we had a lot of people stop by the stand to ask us what it was all about.
- Although I was nervous of being on the stand after Ceri's experiences, I didn't notice anyone doubting my ability as a technical person despite being of the female persuasion I only had one conversation where the (male) developer I was speaking to kept addressing his questions to the (non-technical) (male) sales person instead of me. But that's fine, I just kept answering the questions, and maybe I've made a slight dent on his (clearly subconscious) assumption that women aren't techies. I still think the best way to address problems like this is to keep persevering, keep being visible, and to not let your assumptions about what other people are thinking override your own confidence in your abilities.
I’m late with my write-up of QCon, and what’s worse, it will be partial - “sadly” I was in Lanzarote on a training week with the running club from the Thursday (8th) so I missed most of it. A sacrifice I had to make for 7 days in the sunshine….
- In the past, it was easy (and possibly even correct) to model the whole application based on the data you were collecting or manipulating (and probably storing in a relational database). These days it’s not just the data from your app you need to worry about (and that can get big enough), but also all the news, blogs, twitter, and Facebook stuff generated by you and about you. In addition, your data might not even be located with your app - the cloud has made the physical question of location redundant. All of this pushes you towards an architecture which has to separate data from the application, and forces you to ponder your design. I heard good arguments for Domain Driven Design here, which is nice because we like that at LMAX.
I’ve come a long way since then, and of course, Dan isn’t talking about the same things either. I’ve been to a lot of conferences this year, and I heard nothing really preaching to the “meta-agile” LMAX (still have a post pending about our agile practices…). When it comes to agile, there seem to be very few people who we can learn off - don’t get me wrong, there are lots of things we want to improve on, which is why we’re looking for people to learn off. But most people are still preaching TDD and we want to know “what next?".
In my notes I have “People come to conferences for answers, when they should be remembering to use their brains”. I assume that’s a quote from him, and not a comment I thought of at the time, but I wholeheartedly agree with it - if a shiny new technology solved your problems, you’d be out of a job. Your job is to take the problem and figure out how to solve it. Not to drag and drop an answer into place.
Another talk that I can’t do justice to, watch the video when it comes online.
Maybe it’s wishful thinking, but the messages I took from QCon were:
- If you want to solve the problem your business has, you might want to model your system around their world. Funny, that sounds suspiciously like Domain Driven Design.
- Synchronous is bad, mmmkay?
- Hardcore understanding of what the computer is really doing seems to be coming back into fashion. Hmmm, I wonder who started that…? (tongue firmly in cheek, we can’t have been the only ones)
- "You can’t tune something you don’t understand” - testing and monitoring is kinda important.
- Our business is all about trade offs. There is no perfect solution, they pay us because it’s very very hard to work out something that’s Good Enough.
- Ultimately it feels like back to basics: understand the problem; model the domain, and have sympathy for the hardware that’s running your solution.
When you’re applying for a job at LMAX, your CV (or résumé, for our American readers) usually comes through me and I decide whether to call you for a technical phone screen.
I’m going to let you into a secret.
I’m going to tell you the criteria I use when judging your CV.
Now, you could say this is a foolish thing for me to do, because now when you apply you’ll be “cheating” and writing your CV to pass these guidelines.
LMAX isn’t the only company that’s going to judge your CV based on these criteria. I firmly believe that an increase in quality of the CVs in our industry can only be A Good Thing. An increase in the quality of your CV is definitely A Good Thing for you.
Even more importantly, if I get CVs that do not pass these basic criteria, now I know you either don’t read the LMAX blogs (shame on you), or you’re not able to follow simple instructions (bodes poorly for your ability to learn within the company).
The thing that you have to keep in mind when you’re writing your CV is that the reader really does spend less than a minute reading it. It’s not fair, true. But it’s the way humans are. I’m not in HR or recruitment, I have a proper job as a software developer, and I need to get back to that as soon as I can. When I get CVs in batches of up to 12, as I regularly do, I’m not free to spend more than 10 minutes going through all of them.
The Easy Stuff
You must be able to spell
You really must. There are things called Spell Checkers and they are amazing. Some of these new-fangled pieces of software even show you your errors in this cool squiggly red underline in your document.
I’m reading your CV in Open Office, and if I see red squigglies under words that aren’t technologies or acronyms I’m going to wonder how good your attention to detail is.
You must use capital letters in the appropriate places###
It’s traditional to start a sentence with a capital. It’s also traditional to use a capital “I” not “i” when referring to oneself. We’re not 14 years old, we’re not writing an SMS to our mates. We’re applying for a proper job paying proper money.
Correct grammar is appreciated
Whether you’re a native English-speaker or not, you need to get someone else who is a native English-speaker to check the prose in your CV to see if it scans correctly. For me, it’s not about being prejudiced against you because you’re not a natural author, it’s a) attention to detail again and b) your ability to make yourself understood. If your sentence construction, choice of words or simple comma placement is off, I’ll have to read that sentence a couple of times to parse it and it’s going to trip me up and ruin my flow. I want to get a good feel for you from reading your CV, so if I stumble a few times I’m not going to feel like I connected with you.
Harder and fluffier
I don’t care which versions of Spring you’ve worked with
I know you need a checklist of technologies on your CV so it gets past the non-technical recruitment agents and get picked up via automated searches. This is a bigger problem with our industry than one I want to tackle right now. So I’ll let you off having buzzword bingo on your CV. However, your CV needs to be more than just a list of technologies you have used vaguely, or perhaps once read about.
It’s useful to me if a) you put the technology check list in a single place on your CV, b) you give an indication of your level of proficiency in that technology (novice/competent/master) or length of time you’ve used it in a commercial environment, and c) you organise them in some useful fashion - preferably the ones that are appropriate to the job you’re applying for near the top, or at least those you’re happiest with at the top. Alternatively put the checklist of technologies next to the role you used them in.
Often I will completely ignore this section because I’m more interested in your ability to learn and your passion for what you do.
I want to know about your passions
In the old days I used to fast forward to your hobbies and interests, but these days we’re encouraged not to put those on the CV in case you’re judged against them. Which seems like political correctness gone crazy, but then when you think about it you can infer a lot about a person from their hobbies and interests, and therefore you could be pre-judging them based on some criteria that is not at all associated with their ability to do the job. For example, if they have hobbies that take them all over England I might infer they have a car and can drive - OK, it’s a dumb example, but you get the idea.
These days, given that I’m trying to find great team members to work with me at LMAX, I’m looking for things like: your blog; any contributions to open source software; your involvement in a Java User Group (or other extra-curricular activity). I’m not going to discard you if you don’t have any of these things, but if you do it’s definitely extra brownie points for you.
I want to know if you worship at the altar of technology, or if you’re business-value driven
Either of these things is fine - we need people who are very business-focussed and people who are rabid about technology, as well as all those in between, to build a good team. Another axis of interest is people/process - are you passionate about people, about building a good team, about helping them to deliver?
Getting a feel for where you sit on these axes is not for me to discard you, but if you look like you’re strongly in one of these camps and I feel like we need a team member to really push that area, then you stand a much better chance of getting a phone interview.
I’ll get an indication of where you are by the way you talk about your roles and your achievements. This does not help me:
This is much more useful:
I was part of a team of four developers implementing a web based administration application, commissioned to enable internal users to update the settings of our reporting tool. This saved the support staff approximately 4 hours every week, as they no longer needed to manually update the database. We used agile techniques such as daily standups and weekly iterations in order to provide quick feedback to the business.
(I made both of those up, by the way, before anyone starts trying to sue me for stealing something off their CV).
Here I can see:
- The size of the team, and your ability to work in a team
- You understood the business need you were trying to fulfill
- You have worked in an agile environment and at least pay lip service to why you were working that way.
I don’t really care about the specific technologies you used, the fact that you mentioned web-based and database gives me enough of a feel.
Sometimes prospective employers really do stalk you
Personally I think claims that prospective employers will check every facet of your web presence are somewhat over-exaggerated. If I barely have 60 seconds to read your CV, I’m not going to check you out on Facebook, my life is too short.
However, if you claim to have written a book I will look it up on Amazon. If you have a publication or example code, I will glance at those. If you’ve worked for a company I’ve worked for in the past, I’ll look you up on LinkedIn to see if we have any common connections (or worse, to see if I should remember you and simply don’t). I’ll also use LinkedIn if your CV is not screaming yes or no, to see if there’s an extra dimension in your profile which will tip me one way or the other.
So be aware of your web presence, particularly something that is aimed at your professional image like LinkedIn, and make sure it represents you the way you want it to.
This post might be simply a good way to increase my own workload - every CV I get from now on may be an automatic pass, and then I have to call all of you before I can start weeding you out.
But I don’t mind too much about that. I get concerned sometimes that good people are not getting the interviews they deserve, not just at LMAX but across the industry, because they get almost no good CV advice. Frequently the people who are the first to read CVs are agencies who are not technologists. By all means, have words on there that will make your CV appear on their search results.
But you need to put something on there for me, a real developer, because strings of keywords tell me nothing about you.
If I can improve the quality of just one person’s CV with this post, I’m happy. If I have given you that first step towards that job you really want, then that’s even better.
“What… exactly… were you guys looking to get out of today’s event? Because…“
"Because we’re girls?“
Kim impetuously opts for The Truth: “We’re here to meet men.“
Our interrogator looks round dubiously.
"No, really, why are you here?“
Phew. My reputation is intact1
Kim eloquently describes what her situation is as Product Manager and the criteria she’s measuring third party products against. I explain how LMAX aims to be the fastest retail exchange in the world, and therefore low latency is a tiny bit important to us. I talk about how we created The Disruptor on our path to achieve that goal. The guys gathered around us look a little… shell-shocked.
I’m exaggerating for Dramatic Effect. Before anyone starts getting upset about the only two girls at the event who weren’t staff or hospitality being singled out, you have to give the guys credit. They approached us, engaged us in conversation, and had a very serious question about what we were after, and was there anything the vendor could do to either improve their offering or to make their sales pitch more appealing.
And don’t get me wrong - it’s brilliant being different in a situation like that, if people are brave / foolish / drunk enough to talk to you. It beats the hell out of sitting in a corner trying to get up the nerve to speak to Strangers (been there, done that).
But it is quite a contrast, even from the Java events (JAX London, Java One). There, I was in a select group of people of the female persuasion. But I was also part of a community, and treated as A Developer. At very specialised events (low latency, high performance in particular) diversity is almost non-existent. You can count the number of women on one hand (if you can see any at all) and even the developers wear suits (poor bastards). However it would probably be better if you could hide your surprise at hearing technical terminology coming out of a woman’s mouth.
But… I kinda like it. Yes, I’m an alien. Yes, I’m special. But if it means you make the extra effort to speak to me, I can live with that.
1 “Extra extra, read all about it! Blogger And International Conference Speaker Only Does It To Meet Boys!” Not quite Jordan Stalks Rugby Ace For Sperm Donor. Which I really did see this morning.
EDIT: oh yes, and of course I forgot to plug my panel at Devoxx next week: "Why we shouldn’t target women"
So I’ve been at JavaOne for the better part of three days, it’s time to record some of my observations so far:
- The wireless access is rubbish.
- <Gross generalisation> technical people are not natural public speakers. Makes me feel better about the presentations I’m going to be giving (see A Beginner’s Guide to Hardcore Concurrency).
- The sessions are less useful than getting out and chatting. I’ve had a really excellent time, I’ve met: people from other Java User Groups; the Duchess girls; other Duke Award winners; the Azul guys; guys (well, girls) from O’Reilly books; JCP members and many random and awesome people.
- Everyone thinks that Large is an acceptable default t-shirt size (it’s not). Vendors - if you’re really serious about appealing to The Other Gender you need to stock XS, if not actual skinny tees.
- If you’re running a conference, you should probably have your projection screens above the height of the audience members’ heads
- People at JavaOne are dead friendly. I’ve ended up in a lot of conversations just by virtue of standing alone for longer than 30 seconds. It is noticeably easier to talk to people here than at the conferences I’ve been attending in London. Not sure if that’s a location thing or a domain thing.
- Socialising in London is great practice for this sort of event. I am capable of taking advantage of free drink and still maintaining a conversation and staying upright in 6 inch heels.
- I miss American breakfasts. I’ve been gorging myself on pancakes, biscuits and gravy, and eggs benedict. I’ll be calling my personal trainer as soon as I return.
- Haven’t seen anything to contradict my view that San Francisco is not the Brit’s typical view of California - the weather is rubbish. London has been hotter and sunnier this week.
- Sharing an apartment with your CTO is not as weird as you might think. Especially if you relegate him to the closet (no, that’s not a euphemism).
- It’s difficult to remember to Tweet or blog when you’re totally engrossed in conversations with people.
<div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/-z4fj8X89gh8/TouHpDgIy4I/AAAAAAAAIKs/v_3k_WC8rCU/s1600/duke.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;">