|First Class BA Honours in Computer Science,
Churchill College, University of Cambridge
|ijc (AT) hellion (DOT) org (DOT) uk
I am an experienced software engineer specialising in Operating System development, particularly in embedded systems. My expertise lies in Linux and eCos porting, driver and application development.
Since December 2005 I have been working for XenSource UK Ltd on the Xen virtualization software.
At Arcom I am a key member of a small team with responsibility for the development and maintenance of our embedded Linux operating system. Within the team my personal responsibilities include a technical lead in both the design and implementation of the entire system.
This work has included porting the Linux kernel and user-space to several hardware platforms based around processors such as x86 and Intel XScale. This has often involved working closely with the engineer responsible for a new hardware design to bootstrap the device and assist in the verification and debug of the hardware design.
As well as working with the Linux kernel I have been responsible for the evolution of the userspace portion of the system into a complete embedded Linux distribution including a powerful cross compilation development environment. This development environment has enabled the company to provide a pool of commonly used applications and libraries already ported to each platform. This has allowed us the flexibility to provide custom solutions for specific applications as well as allowing the creation of a development kit for each hardware product, enabling customers to quickly get started and move on to writing their application.
I have also been involved in a number of projects for end customers comprising of the complete custom hardware, operating system and application to meet a specific need.
Working on the embedded Linux system has allowed me to build upon my knowledge in a wide variety of areas such as porting Linux to new platforms, device driver development (e.g. Ethernet, I2C, flat panel controllers, USB, RS232/422/485), TCP/IP networking and wireless networking technologies (including 802.11, Bluetooth and ZigBee), flash filing systems, problem solving (including debugging of hardware and software issues) and the construction of a complete Linux system.
I provide technical support to internal and external customers and the sales team both through the creation of technical documentation and via direct interaction in person, by telephone and via email at all stages of a customer's project.
As well as Linux development my responsibilities have involved porting the eCos operating system to a variety of the company's hardware platforms either as a standalone system or in order to facilitate the use of RedBoot as the bootstrap environment for all Arcom Embedded Linux systems.
I have supervised several groups of Computer Science undergraduates in subjects such as Computer Design and Digital Communications.
While working for Cadence Design I was involved with a project to develop a test harness for digital set-top boxes on behalf of a large UK Cable TV provider. I was involved at all stages from design to implementation and testing. During this period I became familiar with the use of the Unified Modelling Language (UML) in designing software systems. I also used Microsoft's Foundation Classes (MFC) for developing software for the Windows Operating System.
During the 8 weeks I spent with STMicroelectronics, I was responsible for general maintenance of the product build system, as well as the ClearCase version control system.
During my gap year at STMicroelectronics I worked in the Operating Systems department, working on several real-time operating systems for STMicroelectronics' own 32-bit embedded processor.
I gained experience in writing device drivers for pSOS, vxWorks and STMicroelectronics' own operating system, OS20. Development was done using STMicroelectronics' own toolset and Wind River's tornado system for vxWorks.
I was jointly responsible for supporting and debugging several device drivers under pSOS for a large multinational partner who were making use of STMicroelectronics' processor in their product. As well as support I was involved in the specification and testing of various device drivers.
For my Year in Industry project I designed and wrote an abstraction layer to allow STMicroelectronics' existing device driver base to be used on both pSOS and vxWorks with minimal source changes. I demonstrated this system at the Year in Industry open day by running a driver for the MPEG hardware under both vxWorks and STMicroelectronics' own operating system without modification to the source code.
I also became fluent in the use of Unix and Unix-like operating systems, as well as the ClearCase source management system.