Platforms: Linux and uClinux (kernel, device driver, embedded and desktop); Unix (Solaris, BSD); eCOS; VxWorks; pSOS; Windows; MacOS; Palm
Hardware: Embedded systems; ARM; ARC; PowerPC; 68k/Coldfire; x86, PIC
Languages: C/C++; Objective-C; various assembler
Network & Telecom: RF/wireless: 802.11 (Wi-Fi), 802.16 (WiMax); TCP/UDP/IP; layer 2/3/4 networking, VLAN, QoS; SONET/SDH; TL1; CDMA; UMTS; DVB/DVB-S
Development Environments: Unix/Linux/Windows/Mac OSX: make, GNU, Tornado, Visual Studio, CodeWarrior. Version control: ClearCase, Workbench, CVS, Subversion, Git.
Scientific-Atlanta/Cisco, Ottawa, Canada (July 2010 – July 2011)
Software Designer (Contract with Flextronics Design Services)
• Specification, design and implementation of new features for satellite video decoder at application and FPGA driver level. (STi5514 running ST-20 OS and C/C++ software)
• Redesigned software and wrote FPGA specification for test platform for up to four video transport streams (TS) with minimal additional processor load from the original single TS.
• Analysed and resolved release issues within tight time constraints.
Ciena, Ottawa, Canada (March 2007 – July 2010)
Software Designer (Contract with Flextronics Design Services)
• Optical Carrier software sustaining for Optical Multiservice product on MPC 826x/7x platform; VxWorks and pSOS. This included pager support for designers as well as customer support.
• Support, maintain, test and new feature work on Optical Carrier and Shelf Processor (Controller) cards (C/C++); interrupt handlers and fault diagnostics.
• Technology used including OTN, (OUT/ODU); 1,10Gigabit Ethernet; SONET/SDH; Fiber Channel; SNMP v2.
• Integrated new features and bug fixes into multiple software release streams.
Alcatel-Lucent/Nortel, Ottawa, Canada (April 2006 - March 2007)
UMTS Software Designer (Contract)
• Design and maintenance of Call Processing C++ software on RNC, including solutions for CallP problem reports. ClearCase used for software configuration management of various release streams.
• Design and development of UE measurement reports and controls to RNS relocation messages.
• Development of new (ATTOL) scripts to test new features and messages.
BelAir Networks, Ottawa, Canada (Feb 2003 – Mar 2006)
Senior Software Designer; Access and Backhaul Radio (802.11a/b/g, 802.16)
• Integrated 802.11b Access Radio reference design into multi-radio outdoor product. Improved reliability and efficiency of MAC and flash memory device drivers in uClinux on ARM940 target. Designed and wrote diagnostic software for factory test and field support (WinXP Driver Development Kit/Visual Studio and uClinux/C).
• Team lead for 802.11a point-to-point backhaul radio (PowerPC 405 Linux target). Optimised and enhanced Linux PCI device driver for 802.11b MAC – support for VLAN, QoS and 802.1X. Multi-radio product started customer trials within 6 months of initial software development. Used MKS Integrity and Subversion for software configuration management
• Prototyped WiMAX radio software on reference design (dual ARM940 cores running VxWorks and eCos) from BSP with JTAG debug. Developed combined Base Station and Subscriber Station load, which could change mode on the fly.
• Designed and developed new functionality, e.g. multiple BSSID, in lower MAC firmware (ARM940T PCI device; C and assembly) – as well as MAC layer improvements in efficiency and quality of radio links.
• Reverse engineered and coded portions of ARM bootloader. Debugged PPC405 bootloader (BDI2000 JTAG debugger).
• Improved reliability and efficiency of IP throughput in embedded Linux radio cards.
Nortel, Ottawa, Canada (Apr 2002 – Feb 2003)
CDMA Wireless Cellular Base Station Software Designer (Contract)
• Designed and maintained C++ software for new and existing Channel Element cards.
• Provided expertise and mentoring to designers for Channel Element and Radio software
• Appraised and evaluated problem reports relating to Base Station OAM.
Chrysalis-ITS Semiconductor Division, Ottawa, Canada (Mar 2001 – Oct 2001)
Senior Embedded Software Designer
• Designed and implemented memory management firmware, in C and assembler on ARC based Network Security Processor (NSP), which included time critical DMA transfer of RAM pages over PCI bus. Code development was on Visual C++ IDE using Metaware compiler and debugger. Target was on PCI card on Linux PC.
• Problem investigation and bug fixing on IPSec and SSL firmware on NSP. This involved quite a steep learning curve as, apart from the complexity of the algorithms, the firmware was written mainly in ARC assembler and, being on embedded processors, which were themselves embedded, could not be readily debugged or traced.
• Developed software/firmware to test functionality of NSP for hardware debugging and manufacturing. This involved interaction with hardware designers and production engineering staff. (Software portion developed on Linux and Windows NT in C++ and Perl)
• Initial design of IPv6 support on NSP, retaining existing IPv4 support and investigating differences for IPSec implementation.
Nortel, Ottawa, Canada (Aug 1997 – Mar 2001)
CDMA Wireless Cellular Base Station Software Designer
• Designed and coded application interface to control Radio hardware; RF Module performance monitoring OA&M, including CMIP interface to Base Station Transceiver; RF power management.
• Developed off-target environment to test software prior to arrival of hardware. Implemented most software, but with fewest bugs in design group. (Software written in C++ for VxWorks on PowerPC, MC68k and i960 targets.)
• Designed and developed a prototype Base Station which could be directly connected and controlled using IP network. This involved abstracting functionality from several parts of the system and consolidating them on the Base Station Transceiver platform, including an optimised implementation of IS-95 CDMA PCS standard. Achievement award for work on prototype IP Base Station.
• On site support of world’s first deployment of Extended Cell CDMA in Australia.
• Mentored and provided guidance to 4 junior designers regarding design and implementation of reliable and efficient embedded real-time software.
• Provided design estimates and technical lead for UMTS Base Station Transceiver control software. Some prototype software was developed in France, which had to be transformed into production quality within 6 months. I reviewed the hardware and liased with designers in France for transfer of design to Ottawa.
Nortel, Newtownabbey, UK and Ottawa, Canada (Sept 1990 – Aug 1997)
SONET Firmware Designer
• Diagnostics firmware design prime for high-speed Tx/Rx/Demux cards with sole responsibility for Alarm, Bootload, Firmware Download, and Path-Protection subsystems. (Software written in C and 68k assembler for pSOS O/S for MC68k target.)
• Technical advisor and troubleshooting for OC-48 rings and linear networks field issues.
• Primary point of contact between firmware designers and hardware designers. Provided assistance and feedback to hardware and ASIC designers throughout design, characterisation and testing.
• Optimised and improved reliability of firmware download and flash storage.
• Prototyped Drop and Continue on Protection (DCP) software to demonstrate proof of concept.
• 1996 (joint) winner Transport Networks Division Award Of Merit for design quality.
• 1997 (sole) winner divisional Outstanding Achievement Award for Innovation.
BIC Systems, Belfast, UK (Feb 1988 - Aug 1990)
Unix Software Team Leader, Designer and Consultant
B.Sc. Computer Science (Honours) University of Ulster, Newtownabbey, UK 1985
M.Sc. Information Technology University of Ulster, Newtownabbey, UK 1986