I'm a software engineer. I've written DOS instrumentation code in Microsoft C, telemetry software that flew on a NASA unmanned aircraft at 50,000 ft, Windows re-platforms in C++ Builder, and bare-metal firmware for prototype optical instruments. I'm currently freelancing and open to the right full-time role, with a soft spot for the projects nobody else wants to finish.
The 300 to 2200 nm range of the Monolight instruments I worked on, drawn to scale; the eye sees only the first fifth. The dashed line at 1050 nm marks where the two gratings and detectors changed over. The instrument swept the whole range in under a second.
Instrumentation and configuration software built with Microsoft's C toolchain: segmented memory, serial ports driven at register level, CodeView for a debugger and printed manuals for documentation. It teaches you exactly what your code does, because nothing is hidden.
Software engineer for a maker of light-measurement instruments. I maintained and customised the application software for the Monolight optical spectrum analysers, one of the first high-speed scanning monochromators (a full spectrum, ultraviolet to shortwave infrared, in under a second), adapting it to new customers' requirements.
Loaned to NASA's Atmospheric Science Branch to write DOS-based telemetry software for a custom Monolight system flying in the ARM-UAV programme. The whole job was done by email from Edinburgh; the story is below.
Migrated legacy DOS instrument software to Windows using Borland C++ Builder: procedural, polling-loop code restructured for an event-driven world, with responsive UIs and Win32 serial comms, while keeping a scientific instrument's behaviour and data integrity intact.
Inherited an abandoned, non-working firmware project for a prototype double-monochromator photometric instrument on a PIC24, and brought it up subsystem by subsystem to a working product. The boring part that ships beats the exciting part that restarts the project.
Available for contract work and open to full-time roles: legacy code rescue, instrument software, embedded firmware, and anything where hardware meets software.
In the late 1990s NASA Ames needed fast, full-range solar spectra from aircraft for the Department of Energy's ARM-UAV programme: a General Atomics Altus II (a civilian Predator derivative) flying above cloud in formation with a manned Twin Otter below, measuring how clouds transmit and absorb sunlight. Compact diode-array spectrometers of the day stopped at silicon's 1000 nm limit, so Macam supplied a unique dual-grating Monolight system: two gratings on one rotating shaft, a silicon photodiode to 1050 nm and a cooled InGaAs detector to 2200 nm, with new PC/104 electronics.
My job was the software: customising the Monolight application for the instrument, and writing DOS-based telemetry code that decided which spectral data earned its place in a 9600 baud slice of the shared S-band downlink, so scientists on the ground saw meaningful spectra in real time. All of it was written and supported from Edinburgh by email; UK evenings overlapped California mornings, so replies came back in near real time. The instrument made its first science flights in the Kauai '99 campaign, April to May 1999, flying above sub-tropical cirrus while a lidar fired down through the cloud to the aircraft below.
Programme record: Stephens et al., Bull. Amer. Meteor. Soc., 81, 2915–2938 (2000).