I currently work at Neo Technologies as the Technical Director.
Projects I've worked on
I have had the fortune of working on a wide range of projects in different industries: from film processing to industry automation to property management.
- We built some accelerated post-processing software during the emergence of digital footage in the film industry, where we produced a suite of effects tools that delivered high-fidelity at real-time speeds.
- Industrial automation: design and prototyping of control boards and embedded software development. This projected was concerned with fluid control in chemical and waste processing, and included both user interfaces and custom controllers.
- A tool to assist in the sale of commercial properties. The dominant element of this project was a calculator for commercial property investment which could perform goal-seeking of multiple variables.
- Automated investment opportunity set optimization for commercial property investors. This involved searching a large set of opportunities, constrained by various parameters such as capital, preferred yields, LTV preferences, rent cover and so on.
- Contact centre automation, driving two contact centres in the UK. We built an adaptive dialler and campaign solution for the full automation of the contact centres at Inchora Home.
- A PCI-DSS de-scoping solution.
These projects have led to a fairly wide ranging experience:
- Lead system design: both small, resource bound embedded systems and medium-scale information systems.
- Low-level system development, including graphics pipeline optimization, JIT and assembly.
- I've built a few custom Unix (and later Linux) kernels for custom and proprietary hardware.
- Electronic design including schematic capture and PCB layout for prototype devices.
- Network development, mainly with Ethernet networks spanning the physical and link-layer to transport and protocol design.
- Firmware development for embedded systems: working with microcontrollers and FPGAs.
- Working with higher-order functional programming languages (mainly Haskell) and some work with automated deduction tools.
- User interface development in terminal applications and GTK; later moving to web-application development for my sins.