Updates Instagram Photography Projects About Contact

Velocity vs. Quality

11 November 2012

At some point in every software development project the question of velocity vs. quality inevitably comes up. The idea being that cutting some corners will allow you to move faster and get to your goal sooner.

This is a topic I have wrestled with over the years and have come to believe that the argument itself is a dangerous false dichotomy, and that reframing the discussion can lead to both a better product and a faster moving team.

Continue reading on Medium »

Complexity

25 May 2012

For the last couple of years I’ve had a lot of thoughts bouncing around my head on the topic of complexity, primarily in the context of software. I’m still trying to formalize my thoughts better, but I thought it was time to start keeping a list of related quotes.

Complexity has nothing to do with intelligence, simplicity does.
Larry Bossidy

Simplicity is hard to build, easy to use, and hard to charge for. Complexity is easy to build, hard to use, and easy to charge for.
Chris Sacca

Controlling complexity is the essence of computer programming.
Brian Kernighan

More »

Almost Obvious

14 March 2012

After six and a half years I’ve decided to leave Google. I’ve had a great time, met a tonne of amazing people, and learned a lot. But I have decided it’s time to move on, try something a bit different, and expose myself to different challenges.

Over the years I worked on features such as Gmail Chat, helped start the massive undertaking that was the Gmail frontend rewrite, and integrated gadgets into Gmail. Most of my work, though, could be classed as “infrastructural”; helping to keep Gmail development ticking and making the battle-hardened components available to other teams at Google.

In parallel, I co-founded The Closure Library with Erik and saw it grow from a small 20% project to become the de facto JS library at Google, receiving contributions from hundreds of engineers across dozens of projects. It was eventually open sourced in 2009 and now has an awesome team working on it fulltime.

My work on infrastructure meant moving onto Google+ was a logical progression, where I have worked for the last 18-months as tech-lead of the excellent group of guys who make up the Frontend Infrastructure Team.

But, what’s next?

I’m still interested in what can be achieved by throwing together some computer-codez and by the possibilities afforded by the web. I think we’re living in really interesting times and there are many companies doing amazing things.

Ultimately I was most excited at the opportunity to work somewhere that was still small, has a great team, and has lofty goals. The choice then was Obvious.

What did your commute look like today?

13 May 2010

This is one of the views we had:

Today is Bike To Work Day in the SF Bay Area. A few hundred people turned out at the 24th and Mission BART station at 6:30am this morning to make their way to the South Bay for work. There were three different routes heading to Google, I joined a group of about a dozen people taking the 46-mile, very picturesque route down Skyline.

A few more photos and a couple of videos here.

Fire Extinguisher Training

23 February 2009

I’m on the Emergency Response Team at work, here’s a minute and half of video I shot at the fire extinguisher training.

httpvh://www.youtube.com/watch?v=gHVRzURcjo4

Day Job

30 October 2007

You can read about what I’ve been working on here.

My favourite feature: visible history means shareable searches.

McCain

8 May 2007

Last week US Presidential candidate John McCain appeared at Google. It was quite an interesting talk and being a bleeding-heart-European-liberal I was actually pleasantly surprised by some of his answers. What didn’t sit quite right with me was the religious rhetoric and his seemingly black-and-white distinction of good vs. evil. The race is already getting interesting, shame I don’t get a vote. Anyway, checkout the video on YouTube, I was sitting just behind the left mic.

9 to 5

1 May 2007

I work in a crazy place. Today every one in the Mountain View office got given an Earthquake Preparedness Kit, complete with water and food supplies, tent, gloves, first-aid kit, ducttape, solar powered torch (yes, really), and a bunch of other stuff that would help us survive in an earthquake.

Garbage Collection in IE6

7 March 2007

I’m not an avid blogger, and when I do post it’s rarely tech related. But recently I have had cause to do some investigation into the effects of Internet Explorer’s garbage collection routines on performance, and I thought it would be useful to summarize some findings.

Eric Lippert posted about the internals of IE’s garbage collector back in September 2003, though he skimmed over the important bits, which were later noted in the comments. The crux of the problem is that IE’s script engine uses allocations to determine when to run the GC; that is after 256 variable allocations, 4096 array slot allocations, or 64kb of strings have been allocated. Not only are allocations a bad indicator of garbage, but these limits are such that any decent sized application is going to make the GC run pretty regularly.

To compound this problem, the running time of the garbage collection routine is dependent on the size of the working set (O(N^2) as described in Lippert?s article, though the results below show a linear relationship). So as your application gets bigger the garbage collection runs slower.

Back in the day this didn?t really matter, but as web applications are getting more complex there is the potential to hit a performance wall. More code being executed means the garbage collector will be run more frequently; and because the applications contain more state on the client; and have larger code bases, the object graph that the garbage collector has to traverse gets bigger.

To demonstrate the effects of this on performance I?ve used a simple benchmarking function which creates 5000 object literals with random properties, and then sorts them. The function is then run on a simple HTML page, pre-populated with a further O-objects, each with P-properties, which will always remain in scope.

The following results show the mean execution time of the create-and-sort test as O increases for constant P=50 on Firefox 2.0 (red) and IE6 (blue) on the same computer.

http://www.endoflow.com/gcbench/gc_graph.png

Try the test for yourself.

Now, the test environment is quite contrived in that it creates the literals as homogeneous global variables in a simple scope, but the effects are the same if you create objects dynamically, with scope chains exposed via event handlers and closures.

I doubt there are many web applications that are big enough to be seriously impacted by these problems, though it is worth bearing in mind, since performance is proven to be strongly linked to adoption of web apps.

Microsoft issued a hot fix that allows you to increase the allocations, this gives a significant performance boost, but you don?t want to force all your users to patch IE so this isn’t a viable solution. IE7 seems to have solved this problem by having dynamic allocation thresholds that scale to the size of your application, but rollout of IE7, particularly to corporate users, is likely to be slow for the rest of 2007. The other options can be painful and basically involve optimizing your application by reducing code size and finding the balancing point between improved performance from keeping state local and keeping your working set to a manageable size. Always explicitly dispose objects when they are no longer needed by removing event handlers and dereferencing properties.

References:

Eric Lippert’s 2003 post: “How Do The Script Garbage Collectors Work”
http://blogs.msdn.com/ericlippert/archive/2003/09/17/53038.aspx

Micrsoft Support Article: “You may experience slow performance when you view a web page that uses Jscript in Internet Explorer 6”
http://support.microsoft.com/kb/919237

Bike2Work

18 May 2006

http://www.dribbleglass.com/subpages/strange/bike_path.jpg

It is bike-to-work day today, so I decided to join a group of cyclists riding down to Google from San Francisco.

The ride is 40+ miles and takes you down the edge of the bay, past the airports and industrial estates to Palo Alto and then over to Mountain View. Everyone else was on road bikes, so it was tough for me to keep up. Pretty much the whole way I felt like I was flat out in top gear, and if they’d gone any faster I just wouldn’t have been able to maintain the speed.

But I made it and the only things that are really hurting are my arse (I need cycling shorts) and my back (to make it even harder for myself I had a back pack).

Right, off to get a much needed shower.

6-months

1 May 2006

I’ve been working in the states for 6-months now. Which is crazy. This is the longest I’ve been outside the UK in one go. Things are still good, though it seems I suffer from hay fever in California too :(

Things I’ve done in the last few weeks:

– Visited JJ in Whistler, British Columbia, for 4 days snowboarding

– Seen Blackalicious play

– Seen Yeah Yeah Yeahs at The Warfield in San Francisco

– Jumped out of a plane for the third time (Category C1 sky dive)

– Read The United States of Europe

– Worked a lot

I helped Gmail learn to talk

6 February 2006

So I started work at Google just over three months ago and today the project I have been working on is launching: chat in Gmail!

I met my team for the first time on Halloween; it was a surreal day, with one colleague painted red and dressed as the devil, and another two peering in through a TV screen from a remote office. When I joined, the project had already been going for quite a while so I can take only a little credit for what is a truly kick-ass feature. My input has been limited to a few small features, dealing with a myriad of browser issues, and code refactoring.

Over the next couple of weeks you should see the features turned on in your own Gmail accounts. But for the time being here’s some more reports about what we’ve been doing.

There is also a lot more cool stuff on the way :)

Six weeks in

4 December 2005

It is crazy to think I’ve been here 6 weeks already! Time is flying. It doesn’t seem long ago that it was summer and I was diving in the Caribbean.

Last Friday night was the Google Holiday Party. It was pretty nuts. Hosted in a huge warehouse on a pier in downtown SF, the theme was Google Air. When we arrived we passed through a pseudo-check-in system, guided by "stewardesses", then once inside we had access to a number of huge rooms. Each room represented a different location; there was Bombay’s Bazaar, Google McDougal’s Irish Pub, Tokyo’s Bento Box, Plaza do Brazil, and (my favourite of course) London’s Underground. Each room had its own food, music, activities and decorations pertaining to the theme. So Ireland had ham sandwiches and real chips (not fries), pool and darts. Japan had sushi and karaoke. London Underground was a dance club in "Baker Station", etc. etc. It was pretty damn cool. It finished at 12 then we went to an after party. I got back around 3 in morning, but then was woken at 7 by pneumatic drills outside my window — headache!

This is my first proper weekend in my apartment, it’s a hell of a relief to have found somewhere to live and to be settling in properly. The next month proves to be very busy in and out of work. I’m not going to mention the work reasons, but outside there are a whole host of parties (my roommate Amy and I are having "Cocktails at Sunset" on our roof) and my family are coming over for Christmas. We have a condo booked on the banks of Lake Tahoe, which should be amazing.

Right, I’m off to climb Twin Peaks and watch the sun set.

San Francisco

7 November 2005

/dump/b41.jpg

I’ve wanted to write something for a while now but have been waiting until I got a better handle on the various policies at work. But now I’ve been here a week I think I know what’s going on.

So I said goodbye to the UK 10-days ago and started work last Monday. It’s been pretty intense, but things are looking good. Work-wise I can’t say much, but there are some crazy things going down here and it’s exciting to be part of it. The learning curve is steep, but everyone’s really friendly and helpful. I’m really liking San Francisco and am looking forward to moving up there; I am currently in temporary housing in Mountain View, which is convenient for getting to work but it’s a pain to drive back to from the city at 2am in the morning :)

One of the coolest things I’ve noticed here is that the sky is nearly always blue, maybe it’s the time of year, but it’s a welcome change from the grey autumns of the UK.

I have uploaded some photos of San Francisco if you’re interested.

I Quit

10 June 2004

So I handed in my resignation today. It’s amazing how free I feel now.

Friends I’ve talked to recently, and previous readers of this site, will know that on 23rd June I am flying to Honduras to work for 3-months on a scientific project in the rainforest. My official title is Computer Systems Manager for Operation Wallacea, where my role is to simply set up computer networks at the two Honduran sites, then maintain them for the duration of the project. When I originally volunteered to work for Op Wall I asked to be a jungle-assistant-type-person, but alas they saw my CV and decided I was more valuable working with the computers. Oh well. It is still going to be incredibly fun and interesting, and there will be a lot more to do out there as general logistics staff.

Anyway, back to the point of this post. Originally I had intended to return after the summer to work at Act e-learning, but following the recent acquisition of the "product division" by Vantage Technologies I have been unhappy with the work.

As luck would have it I was recently offered a job in London. I can’t say much about it at the moment, but as of 1st October I will be based in Windsor working on a very interesting, and big project, that will actually involve some elements from my Artificial Intelligence degree. If — sorry, when — we pull it off it will be a hell of an achievement!!