01.13
Summary
I am a Software Design Engineer with more than 12 years experience, and have a passionate interest in software and contemporary technology.
My areas of expertise include Linux system software development (both kernel and user space), embedded/real-time software, digital video, audio, & MPEG systems, some networking and virtualization technologies, and digital hardware. Most recently I have gained experience with Web Application Frameworks such as Django, and earlier in my career I also developed applications for Microsoft Windows, using Visual C++ and Visual Basic.
My work has given me experience with many CPU architectures including IBM RISC PowerPC, Motoroa DSPs, and Broadcom 7xxx MPEG SoCs. I have a deep knowledge of C and C++, with significant experience in assembly. I also have experience with Perl, Python, expect, and bash shell scripting.
I have gained a thorough understanding of OS fundamentals (Linux and VxWorks in particular), compilers, linkers, makefiles and source control systems, particularly Perforce, git, and Subversion.
As part of my professional experience I have given customer presentations and assisted with field trials. I enjoy meeting customers, and found it provides excellent insight to future trends.
Work Experience
Riverbed Technology
San Francisco, CA
Member of the Technical Staff
2007 – Present
Riverbed creates WAN optimization equipment known as Steelheads. These are networking appliances that allow enterprises to greatly increase the effective speed of their WAN links.
Initially at Riverbed I was a member of the Riverbed Services Platform (RSP) team. The RSP allows Riverbed’s customers to run up to five virtual machines on their Steelhead appliances. This work involved significant C code, Python, and bash scripting to integrate VMware Server 2.0 with the Steelhead’s existing software, as well as integration with the source-control and build process. I gained much experience in virtualization technologies through my work on RSP and the solution first shipped in 2008.
I am now part of the team which is developing Riverbed solutions for Cloud Computing infrastructures.
TiVo
Alviso, CA
Member of the Technical Staff
2004 – 2007
I was a key member of the system software team that developed TiVo’s flagship Linux-based Series3 High-Definition Digital Video Recorders (DVRs). As part of this team I developed API definitions, implemented drivers and coded kernel & user space code (in C and C++) for tuners, demodulators, related MPEG input subsystems and the media pipeline.
I also performed board bring-up of multiple tuner/demodulator & encoder boards and provided software support for hardware evaluation of both analog (NTSC) and digital (ATSC/QAM) components. My work also involved implementing and debugging other areas of system code including copy protection policies, output display controllers, MPEG stream processing, audio output and video encoder performance.
Successful CableLabs certification was a critical requirement for these DVRs and I provided software support for this testing. The DVRs shipped in September 2006 and July 2007.
Since TiVo supports a diverse user base of more than 3 million units, I was heavily involved with performance improvement, bug triage and risk evaluation across multiple product lines.
During development I also acted as main liaison for an off-site development contracting firm. This involved assisting with development environment setup, driving bug resolution and inter-company communications.
At TiVo I gained extensive experience ramping up and working on a large and mature code base which had complex branching, source control and build strategies.
TiVo also relies heavily on code developed by semiconductor vendors, and this requires careful integration of large code drops into TiVo’s source control system and facilitating reverse drops. I performed many of these merges and sent patches back to these vendors.
Skystream Networks
Sunnyvale, CA
Embedded Software Engineer
2000 – 2004
At Skystream Networks I gained a lot of experience with MPEG systems and digital broadcast technologies, as well as embedded software and digital hardware.
The majority of my time at Skystream was spent designing, developing and debugging high performance embedded software and BootROM firmware for Skystream Networks’ flagship Mediaplex product, an x86 VxWorks-based MPEG video/audio and IP router. I performed board bring-up with the hardware engineers and personally wrote 30,000+ lines of C and assembler on a multiprocessor PPC4xxGP RISC platform. The router was released June 2002.
I also designed and coded a Linux device driver for the same digital video hardware. (Loadable kernel module on kernel 2.14-20, Pentium III platform, written in C). The driver was completed in Q4, 2003 and meant the board could be supported on any host system running a suitable Linux kernel.
Skystream also wanted to release an encoding solution for the Mediaplex so I ported Dolby Digital audio encoding software to a multiprocessor Motorola DSP 563xx platform, with the MPEG video encoding performed by a separate SoC. I performed board bring-up with Skystream hardware engineers and then went on to design and write the I/O software for the entire board. This work was carried out in C and assembler. During the final stages of this project I coordinated successful product certification with Dolby engineers. The encoder was released in Q3 2003.
During encoder evaluation I created a custom MPEG2 & MPEG4 encoder test-bed suite using MS Visual Studio and DirectX SDK. The test suite was released for internal use during Q4 2003. It allowed us to gather PSNR measurements for various encoder settings, which allowed us to make trade-offs between encoder quality and bandwidth requirements.
During my initial days at Skystream I also created a test bed suite for Skystream’s Edge Media Router, using Microsoft Visual C++ and MFC. The test bed was released to the manufacturing department in November 2000.
Nortel Networks
Galway, Ireland
Software Engineer
1997 – 2000
At Nortel I developed and debugged real-time embedded software (written in C) for a pSOS-based DECT wireless telephone system. I also assisted with in-house trials of various handsets. The DECT solution released Q3 1998.
I also designed and implemented MS Windows applications for value-add to the DECT project. This software was written in Visual C++ and Visual Basic. I authored numerous system test plans and technical trials during product roll out and co-ordinated the in-house trials.
I submitted one patent related to telephone user interfaces on behalf of Nortel Networks. This is currently filed as Patent Pending # 09/557,107; filed: April 24th 2000. “Improvement of dialed strings.”
Education
National University of Ireland, Galway, Ireland
B.Sc. in Applied Physics and Electronics
1993 – 1997
Graduated summa cum laude (1st class Honours).
Subjects included Computer Science, Mathematics, Mathematical Physics, Classical Mechanics, Electromagnetism, Electronics, Optics, Solid States Physics, and Quantum Physics.
I was awarded the Nortel Networks prize for my final year project – An Experiment in Virtual Reality. The project involved the construction of a data glove, which I connected to a PC system, and the development of software on the PC. This allowed the user to manipulate a virtual world, which existed only inside the computer, through the glove alone. The software was written in C using the Borland compiler.
I was subsequently offered, and accepted, a design position at Nortel Networks.







