About Andrew McRae
I have a wife, two adult children, and live
in a leafy harbourside suburb in Sydney.
In my copious spare time, I sail, go bushwalking (hiking), enjoy snowboarding, and
What I Do
I am a software engineer with over 40 years experience, specialising
in networking, telemetry, embedded systems, and large scale computing.
I am currently enjoying a year off, having previously worked for over 16 years at Google's
Sydney Engineering office.
One of my main hobbies is photography.
I use a Canon 6D II digital SLR, the latest in a long line of Canon DSLRs
(a 450D, a 20D, and a 300D) and other digital cameras
(Canon S110, Kodak DC-290, various others) I have owned, even going back
to 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.
all photos on this site are © Copyright by Andrew McRae.
Tasmania, April/May 2021
Perito Moreno Glacier, South America, February 2020
Los Glaciers National Park, South America, February 2020
Torres Del Paine, South America, February 2020
Iguazu Falls, South America, February 2020
The Laugavegur Trek, Iceland, July 2019
The Kungsleden Trail, Sweden, July 2019
Malta, July 2019
Russia, June 2019
Scotland, Ireland and Wales, July 2018
Dublin and Wicklow, October 2016
California Sierras, September 2016
Tararua Range Traverse, March 2016
Adelaide to Coffin Bay and return, February 2016
Austria, Croatia, Prague, September 2015
Dolomites Alta Via 2, July 2015
Circumnavigation of Kangaroo Island, February 2015
NZ Hike, Arthurs Pass, February 2015
Spain and France, June 2014
Haba Snow Mountain, China, May 2014
I hold fourteen patents:
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.
US Patent 7,646,771 - Compilation of Access Control Lists.
US Patent 7,904,546 - Managing processes on a network device.
US Patent 8,990,365 - Processing management packets.
US Patent 9,172,629 - Classifying packets.
World Patent 2010/013098 A1 - Data path debugging.
US Patent Appl 2023/0196836 A1 - Human Presence Sensor
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.
From September 2006 till February 2023 I was working at Google Inc. as part of their
Sydney Engineering team, where I worked in a number of different teams, such as Google Maps,
Networking, Data Centre Platforms, SRE, Chrome Operations, and ChromeOS Platforms.
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
product, as a technical leader. I was the lead engineer on the
, the next generation processing engine for the C7200 series. I also
was the inventor 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 an early developer of PC-Card technology for
the FreeBSD project (though I doubt any of my code has
actually survived), and actively promote
the use and development of Open Source Software.
I was 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 past director of the
Australian Chapter of the
Here is a list of papers that I have published, some of which
are online, and others which can be obtained from the
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
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
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
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.
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.