about me past work curriculum vitae

What is this?


It's a home page. I'm a software developer specialising in low level systems software (operating systems, embedded software, assembly/C/C++). I currently work for Google on Earth/Maps in the operator/SRE team. As part of that I fix problems, do capacity planning, manage the datacenters and take part in the on-call rotation. It sounds slightly less thrilling than it is.

or chat to me on MSN messenger (only_one_mikey_h@hotmail.com), or on Freenode IRC where I go by the nickname "TD".

I have a blog, which I use to talk about techie stuff as it's mostly for Planet Autopackage readers.

Personal blurb

Every personal homepage needs trivia! I like after eight mints, lava lamps and Hollywood action movies. Favourite artists/DJs include: Zero 7, Jakatta, Mesh, Keane, Jamiroquai, Coldplay, Royksopp, Starseeds, Robert Miles and many many more. My brother, David Hearn, writes music - his stuff is good too.

I used to sail (Lasers and GP14s), do rock climbing, table-tennis and once upon a time I used to play a couple of musical instruments. Those days are long gone now though. Recently I took up Capoeria (of course I'm not as good as in that video yet ...)

The CV bit

For several years I worked on the Wine Project, an effort to reverse engineer and clone the Windows API (the reason people are tied to Windows and therefore the source of Microsofts dominance). I started as a volunteer and was eventually hired by CodeWeavers. You can see the improvements I made to Wine over the years here.

I am also the lead designer and maintainer of autopackage, a distribution neutral mechanism for packaging Linux software. As part of that I wrote an article on writing shared libraries. It's targetted towards Linux developers but much of the advice there is useful to anybody thinking of developing an API.

For my final year project at university, I designed and implemented FastRPC, an RPC engine designed to increase application security through kernel level confinement of software subcomponents.

I came up with the original idea for the CIA commit tracking network and some of the initial code with Micah. I maintained it for a time, though I have since passed on maintainership to Micah.

For QinetiQ UK, I have implemented software for the military and also developed J2ME mobile phone software.

I used to work on a 3D multiplayer game, written using Delphi. This was several years ago now, but as part of that I wrote an OpenGL based widget toolkit, a character conversation player and editor, and several AI prototypes showing techniques like the A* pathfinding algorithm, neural networks and goal driven characters.

One day a friend came to me with a problem: she had deleted all her photos from her digital camera. That was 430 pictures from China, gone from the cameras memory card. Data recovery is expensive, so when she mentioned this I said I'd take a look. Unfortunately this camera optimizes FAT directory cluster scans by using lots of directories with only a few files in, and automatic undelete tools could do nothing. So I wrote extract-jpeg [Linux/x86 binary] to dump them from the disk image by brute force. Maybe if you (or your friend) suffers the same fate this program can help you too! It was able to recover 397 of the photos correctly, which isn't bad. Unfortunately if your cameras storage is heavily fragmented this program won't do much for you, it needs to understand how to read the file allocation tables for that. It doesn't run on Windows either, but if you pay me or if your sob story is good enough I'll port it across for you.

I wrote the website for BP Schulz, a company run by a friend that specialises in relaxation, hypnosis, wellness for the soul and other stuff too.

I've also written patches for GNOME, Sound Juicer, GNU Arch, Jakarta Lucene, the Boehm garbage collector, the Linux audio subsystem, various emacs modes and a bunch of other programs.

I've been interviewed a few times. I'd love to say it's because I'm such an interesting person, but actually it's always been about my work ;)

  • By WineHQ, on Windows emulation and autopackage
  • By NewsForge, on autopackage
  • By "Linmagau", unfortunately this magazine has since closed down and I no longer have a copy of it
  • By internetnews.com, and again.
  • By LugRadio, this was an audio interview

And I've also had several other jobs or contracts in the software industry.


That's it! What kind of person am I? Well, there's only one way to find out isn't there - and that's to find me and say hi. Have fun!

(c) 2005 Usual disclaimers apply.