Thursday, September 15, 2011

The Heroes of Java: Martijn Verburg

The third part in my recent interview series: "The Heroes of Java".

Martijn Verburg
herds Cats in the Java/open source communities and is constantly humbled by the creative power to be found there.He is the co-lead for London JUG (a JCP EC member), runs a couple of open source projects and you can find him online moderating at the Javaranch or discussing subjects on the Prgorammers Stack Exchange site. Most recently he's become a regular speaker at conferences on Java, open source and software development and has recently wrapped up his first Manning title - "The Well-Grounded Java Developer" with his co-author Ben Evans. And it already covers Java 7.

General
Who are you?
"I'm a Dutch born Kiwi living in London (pubs!) who loves travelling around the world with my wife to meet interesting people in strange places. On the technology front, I'm an open source and Java ecosystem advocate who believes strongly in the creative power of passionate technical communities. I speak at conferences, write books, consult/train and run several technical communities (such as the London JUG) and open source projects (such as PCGen - http://pcgen.sf.net). It's rumoured that I'm the Diabolical Developer, but you can't believe everything you hear.
Sorry, I used four sentences :("

Your offical job title at your company?
"It varies, but Director is a constant one I guess."

Do you care about it?
"Nope! I change my title to suit what the situation requires, I think that titles are like hats - but then again, I'm very much a generalist as opposed to a specialist."

Do you speak foreign languages? Which ones?
"Dutch - conversationally. I left the Netherlands when I was ~5 and so my Dutch is a curious mix of adult/child vocabulary"

How long is your daily "bootstrap" process? (Coffee, news, email)
"At least a good 2 hours - I think I spend longer than most because of the number of technical communities and open source projects that I'm involved with, there's always a lot to deal with first thing in the morning, but I _love_ the variety and the social nature of it all."

Twitter
You have a twitter handle? Why?
"I have 3! @karianna is my main one where I talk about Java, open source, software development and travel. @java7developer is for "The Well-Grounded Java Developer" title that I'm co-authoring with Ben Evans (@kittylyst) which focuses on OpenJDK and Java. @diabolicaldev is my disruptive account, where I challenge some of the accepted practices and ideas around software development."

Overall I have them because it's now the defacto way to keep up with my peers in the community."

Whom are you following in general?
"Mainly technologists in the Java and/or open source ecosystem - with a smattering of friends and of course Stephen Fry (doesn't everyone?)"

Do you have a personal "policy" for twitter?
"Not really - I'm occasionally careful with what I say, but I think that most people partly love twitter because they get genuine truthful insights. My @diabolicaldev account can be particularly brutal, deliberately so ;-)."

Does your company restricts or encourages you with your twitter ussage?
"I run my own company and so it's fully encouraged :-)."

Work
What's your daily development setup? (OS/IDE/VC/other Tools)
"It depends on what I'm working on! I use Mac OS X, MS Windows but also frequently ssh onto *nix boxes for development. My main two IDEs are Eclipse and more recently Netbeans, but I'll happily use Textpad or vi. I mainly use SVN but have recently started exploring Git in more detail. I'm a huge fan of Build and CI, so Maven and Jenkins are always there and I'm starting to explore Gradle."

Which is the tool providing most productivity to your work?
"Most recently Netbeans (7.0.1) - they got this one right. It handles Maven + Polyglot programming without freezing due to memory requirements every x seconds (sorry Eclipse)."

Your prefered way of interacting with co-workers?
"Face to Face with a whiteboard and/or pair programming"

What's your favorite way of managing your todo's?
"I funnel everything through Gmail and Google calendar. I'm still trying to find the best way to translate that to my Kanban board"

If you could make a wish for a job at your favorite company: What would that be?
"Developer outreach / community leader / development enabler at a place like Zero Turnaround, Atlassian or Google I guess. But I'd find it very difficult to be tied to one organisation. Liz Keogh made me realise some time ago about what I really wanted in my career, and that is to "make people happy and more productive". In my case that means helping creative, smart developers free themselves from their chains so they can get on and kick butt."

Java
You're programming in Java. Why?
"I started out with it because I had to teach it at university to the year below me. I was mainly doing C++ at the time and Java quickly convinced me that it was a more productive language due to its memory management. I've stuck with it because of the incredible ecosystem that's sprung up around it and the fact that it's easy to read (most developers spend more of their time reading code than writing it). I've recently picked up smatterings of Scala, Groovy and Clojure - I see some exciting trends in polyglot programming coming up."

What's least fun with Java?
"Some of its verbosity could be reduced whilst still maintaining readability and of course functional programming is difficult, but hey - it's an OO language :-). It's nice to see the language moving forwards again and hopefully Project Coin can bring about more reduced syntax and the lambda JSR can open up some limited but useful functional aspects to it.

Oh yeah, and XML processing is still pretty annoying."

If you could change one thing with Java, what would that be?
"Modularisation (which is actually going to happen in Java 8 in one shape or another) - the CLASSPATH is less than ideal and constantly trips up people trying to learn the language. It would also give developers more freedom and more choice and be a huge boost for 'Java everywhere' - the possibilities are endless!"

What's your personal favorite in dynamic languages?
"Groovy - I love it's implicit goal of making life easier for the developer and it's interop with Java combined with features like it's XML processing, make it a great instant productivity tool."

Which programming technique has moved you forwards most and why?
"KISS - having small, tested units/modules of code has saved me time and time again. Also naming things properly."

What was the biggest project you've ever worked on?
"In terms of architectural scope, the creation of an electronic case management system for the New Zealand department of courts + the other Ministry of Justice departments. At the time it was the largest J2EE/Java project in Australasia. In terms of LoC, it's still probably PCGen, I think we're ~750,000 lines of Java and counting :-), it's an incredibly complex piece of software."

Which was the worst programming mistake you did?
"It's rumoured that I took down all of the Comp Sci servers at my university when a networking/hard disk re-writing bot of mine went astray - I was _not_ a popular student that day.

I've made plenty of other mistakes, even self submitted to the dailywtf on one occasion! My motto is to have no fear when coding and to simply strive to improve every time you set down in front of your IDE."