Feb 2009

Objective-C Internals

Just before I left Sydney, I gave one last talk at the revived Sydney Cocoaheads user group about Objective-C Internals. It’s similar to the presentation that I gave at fp-syd a few months ago about Objective-C and Mac OS X programming, but was tailored for a Mac audience rather than a functional programming audience. As a result, the Cocoaheads talk has a lot more detail on the object model, memory layout, and how message-sending works, and less info on higher-order messaging and language features (e.g. I didn’t talk about categories at all.)

If you’re a Mac coder, hopefully you’ll find something new in there. As always, drop me an email if you have any questions!

P.S. For all the voyeurs out there, the San Francisco move & Pixar are both going great! More news on that soon, too.



I think my current plan of being self-employed is arguably working out pretty well. I get to work on RapidWeaver and LittleSnapper, two kick-ass products with a ton of users who love it. I’m friends with the lovely baristas and staff at my local café, where I normally work during the day. However, nothing beats taking a weekday off to chill out at my favourite café in Sydney, perhaps catching some waves at Bondi Beach and then playing some tennis afterwards, only to put my head down and code at night when the distractions are minimal. Life, as they say, is pretty peachy.

So, just before my 30th birthday, it was with both great apprehension and excitement that I made the decision to give up my current lifestyle and my current job. In five days, I move from the comfort of Sydney to magnificent San Francisco, to start work for a company that I’ve loved so much ever since I was a kid: Pixar.

To say that this was not where I expected to be in my life is quite an understatement. I was always the guy who thought that things would fall into place if he found the right girl, and that career would work itself out later. I fell in love hard when I was 21, was about this close to deciding to get married when I was 26, and when things went south, it took countless numbers of D&M talks with my close friends (thank you thank you thank you), another wonderful relationship with one of the most amazing people I know, and over three years to truly recover. I spent weeks in self-reflection pondering what life was about, what the day-to-day drudgery meant, and what I had accomplished during my second decade on Earth while so many of my friends were growing by leaps and bounds in their own relationships.

Meanwhile, my career was working out just fine. I worked on one project that will hopefully have the success it deserves with the release of Firefox 3.1 and perhaps take the lead in the important area of open-standards video on the Web. I’ve worked on other projects that are all tremendous successes in their respective markets, and along the way, I made a ton of genuine friends in the demoscene, Haskell, Linux and Mac OS X communities. Nonetheless, I still felt that I failed to meet my own expectations, since I’d never considered my career to be a measure of success. Despite the fantastic lifestyle that working remotely for Realmac afforded me, I was still restless, and still felt incomplete in my personal life.

Last year, I travelled a lot, not as a means of escapism, but because I had a ton of conferences to hit, and also wanted to visit some of my best friends who were now overseas. As I hopped from the UK to the USA to Singapore, I spent a lot of time alone, as travel does to you, and reflected on life. One day, I spent eight hours by myself in my favourite tea lounge in San Francisco, mixing feelings about the past decade and all its ups and downs: perhaps my expectations were too high, or perhaps I concentrated too much on things that would simply work themselves out. By the time I returned to Australia’s beautiful shores in December, I was exhausted from too much reflection, too much living out of a duffel bag on the road for months, and too much melancholy from thinking about the past and too much searching without answers.

However, something else happened in those months of travel: all of those worries slowly felt more and more like experience. I figured that, hey, my third decade was looming; either I start my thirties by continuing to be subtly haunted by those worries of the past decade, or I could treat those worries as learning experiences and forge a new outlook that relished any challenges the future could bring. As Steve Jobs says, “sometimes life hits you in the head with a brick. Don’t lose faith.” And so, just as I started to feel happy when I finally returned home, Pixar came knocking. I flew to San Francisco just a few days after arriving back in Sydney from months of travel; it would be my last trip for 2008. I did the interview thing, and a week later when I was back again in Sydney to wind down for Christmas, I got The Phone Call. When would I be able to move to San Francisco to start work there?

I thought hard about my current lifestyle of cafés and working remotely, and how I loved working at a small company like Realmac where I was directly responsible for the welfare of a much-loved application. I anguished over all the friends I had made in Australia and how much I’d miss them, and how much I’d miss my family. I thought about how I made my life here: how I went to school here, University here, met all my lovers here, and how this was, well, home. In the end, though, how could I turn down the opportunity of a lifetime, working at a company that married art and science so perfectly, and inspires so much love & passion in everyone? (Also, I hear there’s a lot of hot Asian-American girls in San Francisco.)

There’s no moral to this story: it just is, and I thought it needed telling while I still had the guts to tell it. So, as of next Wednesday, I leave my wonderful memories here to explore life in a new city. I’ve traditionally used this blog to communicate my thoughts on computing and technology, but I’ve always admired and enjoyed reading other people’s blogs that were much more personal (without being totally emo). Hopefully I’ll transform this blog a little to have a far more personal feel, so I can keep in touch with all the people I know & love around the world; thank you all for being a part of my life and enriching and defining me. See you on the other side of the Pacific!