About Andrew McRae

Andrew McRae
I have a wife, two children (19 & 17), and live
in a
town
on Sydney's northern edge, next to the
bush.
And yes,
I do get kangaroos in my back yard. As well as snakes, blue-tongue
lizards, goannas, kookaburras and lots of possums.
I am a senior software engineer for Google Inc.
My other job is to avoid being a full time system
adminstrator to my childrens' computers. As a result of this,
I am developing a deep and lasting respect for all the
administrators of Windows PCs.
In my copious spare time, I play squash, go bushwalking (hiking), and
take photographs.
What I Do
I work as a software engineer for
Google Inc.,
as part of their Sydney Engineering office.
One of my main hobbies is photography.
I use a Canon 450D digital SLR.
I have just traded down to this lighter camera from a Canon 20D so that I
don't have to carry as much weight on hikes.
Previously I have owned a Canon 300D Digital Rebel,
a Kodak DC-290, and a venerable Sony Mavica (the one with
the floppy disk drive, 0.25 megapixels).
You can see the results of my
amateur photographic efforts in
my photo gallery. My main
interest is in panoramic landscape photography.
One of my photos was selected for
Earth Science Picture of the Day.
Please note
all photos on this site are © Copyright by Andrew McRae.
Latest photos
Cowan to Brooklyn, September 2009
Kokoda Track, PNG, April 2009
Mt Aspiring and Bonar Glacier, February 2009
Wollemi Creek and Colo River, February 2009
Blue Mountains, January 2009
Northholm Debutante Ball, October 2008
Barrington Tops, October 2008
Desolation Wilderness, Lake Tahoe
Ireland/London/Scotland
Tongariro Circuit, New Zealand
Patents
I have filed (or in the process of filing) eleven patents.
These patents have been granted:
US Patent 6,785,843 - Data plane restart without state change in a control plane of an intermediate network node.
US Patent 6,970,462 - Method for High Speed Packet Classification.
US Patent 7,154,888 - Method for classifying packets using multi-class structures.
US Patent 7,236,493 - Incremental compilation for classification and filtering rules.
US Patent 7,325,074 - Incremental compilation of Packet classification using Fragmented Tables.
US Patent 7,415,023 - Method for classifying packets using multi-class structures.
US Patent 7,525,973 - Flexible software-based packet switching path.
US Patent 7,571,216 - Network device/CPU Interface Scheme.
In September 2006 I took a trip to Mt Hagen, Papua New Guinea,
to do some volunteer work (Linux training).
I wrote a blog of the trip, along
with some photos.
Some Background
In September 2006 I joined Google Inc.
Previously, for 3 years I was a Senior Principal Engineer
in a Silicon Valley startup
called NetDevices Inc.,
working on a new branch office router.
Prior to October 2003, I was at Cisco Systems, where I had been a
Distinguished Engineer in the Routing Technology Group, working
on next generation router architectures.
I joined cisco in October 1995 as part of the ELC group in Core Engineering.
I have worked on a number of port adaptors, mostly serial and
channelised. I spent 18 months on the
AS5800
product, as a technical leader. I was the lead engineer on the
NSE-1
, the next generation processing engine for the C7200 series. I also
was the designer and implementor of
TurboACL, a new patented high speed packet classification algorithm.
Before cisco, I was a Principal Engineer at Mits Ltd. (Australia), where
for 11 years I worked on real time supervisory and control systems.
My responsibilities included communications
and embedded systems, and a range of other areas
such as Unix applications and drivers.
In the dim past I co-founded a company
specialising in motion control special effects and
computer graphics for film and television.
In extra-curricular activities, I was the developer of PC-Card technology for
the FreeBSD project, and actively promote
the use and development of Open Source Software.
I am also involved in the Australia Unix Users Group
(AUUG), where I regularly
deliver papers, hang out with the local Unix folks and
generally have a good time. I was programme
chair of AUUG'98.
I am a founding member and a current director of the
Australian Chapter of the
Internet Society.
Bibliography
Here is a list of papers that I have published, some of which
are online, and others which can be obtained from the
author.
-
A Status Report on the X11 Windowing System, presented
at the Australian Unix Users Group (AUUG) conference, September 1989.
-
Unix in the Real Time World, presented at the AUUG
Summer conference, Sydney, February 1990.
-
A Unix Task Broker, published in the AUUG newsletter
March/April 1992.
-
Porting TCP/IP to 802.4 Token Bus, presented
at the September 1991 national AUUG conference (Sydney).
-
Open LANs Span All Boundaries, Article in
Computing Australia, September 1991.
-
Hardware Profiling Of Kernel Network Code, presented at the AUUG
Summer conference, Sydney, April 1992, and also presented
at the AUUG national conference September 1992.
-
C++ in an Embedded Environment, presented
at AUUG national conference September 1992.
-
The Architecture of a Distributed Substation Management
System, presented at Distribution Automation/Demand Side
Management conference, Palm Springs, California, January 1993.
-
Hardware Profiling of Kernels, presented
at USENIX Winter conference, San Diego, California, January 1993.
-
386BSD: A Look Under The Hood, presented
at AUUG Canberra and Sydney summer conferences February 1993.
-
Intelligent Substations: Costs and Benefits, presented
at Electricity Supply Engineers' Association conference, September
1993.
-
A New Communications Paradigm For UNIX, presented
at AUUG national conference September 1993.
-
Substation Management for Distribution Utilities, presented
at Distribution 2000, Melbourne, November 1993.
-
IP Firewalls using a Tunnel Driver, presented at CSIRO
System Security seminar September 1994.
-
Unix: Live Free or Die!, article for Open Systems
Review, March 1995; reprinted in AUUGN April 1995.
-
Plug and Play Unix, presented
at AUUG Canberra summer conference February 1995.
-
FreeBSD and PCMCIA, half day seminar for
NSW AUUG Summer technical workshops March 1995
-
The World Wide Web and Online Documentation, paper for
MITS Users Group meeting, June 1995.
-
Plug'n'Play Unix, invited talk presented
at AUUG national conference September 1995.
-
The Internet in the 21st Century, presented
at AUUG national conference September 1996.
-
Globally Distributed Software Development Challenges,
presented at SEA'99 (Software Engineering Australia), Canberra, April 1999.
-
High Speed Packet Classification,
presented at AUUG national conference September 1999. The
slides
for this talk are also available.
-
Toaster: A High Speed Packet Processing Engine, presented
at the AUUG national conference June 2000.
-
A User Level
Networking Infrastructure for Linux, presented
at AUUG National Conference, September 2004.
-
Building a
Router on Linux, presented
at AUUG National Conference, October 2005.
-
A Linux Task Manager,
presented at AUUG National Conference, October 2006.
-
An Open Network Platform,
presented at AUUG National Conference, October 2006.