I have been involved in technology and computer systems for all my working life and have amassed considerable knowledge of designing and implementing systems that are both performant and correct. My role normally encompasses the entire project life cycle, from specification to maintenance phase. Most systems I have worked on have required high speed and deterministic performance, often within a highly constrained platform. I am experienced in designing and adapting algorithms to solutions that are both space and time efficient, avoiding the normal overheads of standard solutions. Acting as a mentor for colleagues has often been a significant, though unofficial, part of my role.
Most of the work I’ve been involved in during my career has come under the umbrella of ‘Embedded’. From custom hardware with no OS (bare metal) or standard PC platforms, the code would normally interface with internal and external hardware and have many hard-real-time aspects. Early work saw me involved CCTV transmission over PSTN modems (when 0.0096 Mbps was considered fast!) on hardware driven by 8MHz 68000 processors. Later, I found myself working with high-speed conveyor-based systems such as postal sorting (x86) and banknote sorting (TI DSP) machines, with image capture, analysis, and reporting. ROM/RAM space and/or time constraints often required me to find alternative ways of implementing features. I found that templates could usually provide fast and efficient solutions.
I am the author and maintainer of the open-source Embedded Template Library.
When I’m not coding, I like to go rock climbing, in the UK, and Spain and ride my Yamaha XV950 in the sunshine.
I live in the United Kingdom near the rolling green hills of the South Downs.