Archive for the ‘myself’ Category

ThoughtWorks and Google

Saturday, January 26th, 2008

I’ve been working 5 years at ThoughtWorks. ThoughtWorks vision is to revolutionize the software development industry. A young industry full of problems and inefficiencies. ThoughtWorks started out with with consulting and services but lately also releasing products to back up this vision. For the last couple of years I was part of starting up this product division of ThoughtWorks and I oversaw it’s technical direction. I was part of an amazing team that built Mingle, a product I’m incredibly proud of (watch out for the next release, it’s gonna rock your socks off). I also oversaw the design of several other products that are in various stages of development (you’ll hear about one of them very soon, you might have trouble keeping your socks on for that one too).

I cannot overstate how good it is to work for ThoughtWorks. A flat structure, very open communication, high morale and standards, low on internal politics that otherwise plague growing organizations, a warm and caring culture, incredibly intelligent, friendly and passionate colleagues. It’s by no means perfect but it’s the best company I’ve worked at so far. If you want to be part of the avant guard of the lean revolution in the software industry, if you want to evangelize agile/lean, promote new technologies, processes and techniques, ThoughtWorks is probably the best company there is to work at.

But what if you’re tired of software development as a concept? What if you’ve had it with yet another programming language? What if you want to build apps that maybe even your grandmother would use (I have two very internet-savvy grandmothers)? What if you want to focus on what to build not on how to build it?

Yesterday was my last day at ThoughtWorks. In February I will be joining a company called Google. You might have heard of them. Google’s vision is to organize the worlds information and make it universally accessible (and show you ads while you do it). This last part isn’t officially part of the vision but it has nevertheless made Google a ridiculous amount of money. This money they spend on cool but, well okay, kinda crazy projects: scan and index all the worlds books, drive a truck around San Fransisco (and other cities) to photograph all the streets and put them together in a 3D like environment , use statistical analysis (rather than rules) for machine translation, extend the web browser so apps can be taken offline, try to force the corrupt mobile phone industry into opening up.

At Google I’ll work with C++ rather than (for example) Ruby but I do get to be part of changing the world.

Trade offs.

What programming language should I learn this year?

Friday, January 20th, 2006

I think it was in the Pragmatic Programmers that said you should learn one new programming language per year. Not because you would use it, but just to keep your brain exercised. Ever since I read that book (in 2004) I think I’ve kept up and almost beat that. Not deliberately, it’s just turned out that way.

  • 2004 Ruby As I joined ThoughtWorks everyone was raging about this “new” programming language. Martin Fowler had picked it up (from the Dave and Andy I suspect) and as the Fowlerbots we are everyone needs to fall in line. Wonderful language, reminds me of my Common Lisp days (I never was that much into Smalltalk).
  • 2005 C# I started off the year on a .NET project so needless to say I picked up a lot of C#. I never got very passionate about C# as it’s too close to Java to be seriously interesting. It’s got some very odd quirks: properties are actually even more wordy than getters and setters and I think delegates are grossly underpowered compared to anonymous classes. Attributes rock though and it’s good that we’ve adopted them in Java, although in my opinion the C# version of them is a lot cleaner as attributes are just normal classes that can even have behaviour. (I understand the reasoning behind why attributes are the way they are in Java, I just don’t agree with it.) The next version of C# could become very interesting though as it supposedly supports anonymous closures and some other quite neat innovations.
  • 2005 JavaScript Yeah, last year was really the year of JavaScript with the whole AJAX (aka “DHTML now works”) craze. As I’m a sucker for anything that is hot needlessly I dug right into JavaScript. To my defense my interest picked up slightly before the moniker as GMail just completely blew my mind. After the Prototype library I’ve reevaluated my previous standpoint on the language (that is “JavaScript sucks”) to “JavaScript is pretty neat but we really need a development environment that doesn’t suck”. (And if someone pulls that one off the step do support Ruby shouldn’t be too hard. I’ve heard Prague has some talent in this area. ;-) )
  • 2006 (kinda) COBOL Ayup, I’ve kinda sneak started a bit on this one as I’m working with mainframe systems at my current project. COBOL is just terrible though so I’m not going to count this one in.

So what about 2006? What should I learn for this year? Here’s some of my options:

  • OCaml Someone said it was going to be the language of the future so maybe I should check it out. I know very little of it except that it’s kinda functional.
  • Haskell Just seems wonderfully intellectual. I know Standard ML and I’ve done a lot of functional programming before so shouldn’t be too hard. But I still can’t get my head around monads so it’s going to be a serious exercise to grok all this stuff.
  • Objective-C/Cocoa I did a lot of MacOS development on pre-Mac OS X and I’d just love to get up to speed with producing Mac apps with all this sexy eye candy. Cocoa seems to be packed to the brim with interesting technologies like Core Data, Core Image and so on. I’m not sure I still have the discipline to handle manual memory allocation though.
  • Io I finally met Ward Cunningham last OOPSLA and although he doesn’t do much coding at the moment he had been playing around with Io. Io seems to be a little bit too similar to languages I already know for it to be a real mental challenge so if I go for Io I probably need to learn something else as well.

Any recommendations?

Australia is tasteless (and I love it!)

Wednesday, November 23rd, 2005

Seth Goding blogs about LifeArt, an Australian company specializing in art on coffins.

This is just so typically Australian.

It’s just like the prime minister that died from drowning and they decided he needed a memorial. You know what they built?

A swimming pool.

Or the local Manly collection for the tsunami disaster. You know what it was called?

“A wave of hope”.

Tasteless? I know! But it’s just the way many Australians react in the face of peril. Considering everything that moves down here can kill you more effectively than anything else in the world it probably makes sense to have a slightly more tounge-in-cheek attitude to life.

I love it!

Congratulations Socceros!

Wednesday, November 16th, 2005

Australia just made it into the World Cup finals! So now both of my countries are in the World Cup. It’s going to be so much fun. (Unfortunately I’m going to be in the wrong timezone.)

London blasts: I’m alive and well

Friday, July 8th, 2005

Readers of my blog might be interested in knowing I’m alive and well. I was in London a few days ago but I’m currently in the safety of Stockholm.

Back in London and then Sweden

Wednesday, June 29th, 2005

Tomorrow I’m leaving wintry Sydney (ok, it’s winter but it’s like a swedish summer) and heading to other side of the planet for a couple of weeks. I’m going to be in London from Friday the 1st of July to the Monday after. After that I’m going to Stockholm but will visit various places all over Scandinavia. Definitely Norway to hang out with Aslak and probably also Copenhagen (just because it’s such a nice city). I’m heading back to Sydney early August.

Send me an email if you want to meet up and have a beer and talk Java, open source, agile, Ruby on Rails or whatever…