I have been programming professionally for 20 years now, the majority of which has been development of embedded systems in C and C++. I have worked extensively with the Linux kernel and have numerous upstream contributions. Obviously, I am no stranger to assembly language and being in the embedded world I have picked up a fair amount of rudimentary electronics skills and consider myself quite handy with a soldering iron or an oscilloscope. Much of the work I have done has involved fairly intensive signal processing, from designing complex digital filters through to full control system design, although these days I am mostly focused on Linux audio drivers.
I enjoy working at the boundry of hardware and software and especially value the opportunity to make upstream contributions as part of my job.
Cirrus Logic acquired Wolfson in August 2014. My role continues to be the development and maintenance of Linux kernel drivers for their mixed signal electronics.
My work at Wolfson Microelectronics is primarily focused on the development of Linux kernel drivers to support Wolfson's market leading audio CODECs and DSPs, as well as supporting the integration engineers. Naturally, I have accumulated numerous upstream kernel contributions as part of this work. Additionally, I have had some exposure to the Android end of the audio stack.
Wolfson has an excellent focus on research and development, taking maintaining its position as a major innovator in the audio space very seriously.
As a result of our consultancy work Reactec envisioned a new product, the HAVmeter. The HAVmeter is a health and safety focused small vibration exposure monitor and has since become the main focus of the company's activities. I produced all the firmware and DSP algorithms for the system, assisted on the electronics design and managed the outsourced development of the PC software that accompanies the product. It has been especially rewarding to see an idea all the way through from the back of a napkin to a market leading product.
I joined Reactec as the programmer on the Intelligent Control Unit project. The ICU was a small, low cost, low power, adaptive controller for the magnetorheological damper Reactec had developed. In addition to writing the firmware and some PC based configuration software, I was heavily involved in the design and simulation of the control algorithms. I thoroughly enjoyed learning about control theory and attempting to model the non-linearity of the magnetorheological fluid.
For a short while after the completion of the ICU I worked primarily on engineering consultancy projects at Reactec, putting the vibration and control theory I had learned into practice. This involved solving complex vibration problems for numerous blue-chip clients.
My work at the university continued on from my final year dissertation, which centred on an analysis of the Micronet-based Asynchronous Processor architecture. I made some additional improvements to the COMPASS design environment myself and the other researchers had been using; COMPASS was a compiler and simulator for the Micronet, written in C++. Then, in cooperation with my supervisor, published a paper based on a subset of the results of my dissertation.
My responsibilities during my summer job at Kvaerner were to analyse functions from specific SMACKS5 (an oil-field control system) projects and create a standard library based on commonality between the user interface components. The library I created eliminated the need for a lot of bespoke code that was being created on a project by project basis.
Having programmed exclusively in imperative programming languages until Kvaerner I particularly enjoyed learning the unusal, heavily dataflow based language they used. I recently happened upon ANI, which is incredibily similar, albeit with rather different syntax.
Patent, Taylor, Rand, Keepax
Patent, Buckingham, Marmo, Keepax et al.
Patent, Buckingham, Keepax et al.
Patent, Buckingham, Keepax et al.
Proceedings of 14th Asynchronous Forum, D.K. Arvind and C. Keepax
Available on request.