About Me
About Me
Some information about me, what I do and have done.
Hello! I’m Blake Rain, a UK-based software engineer with a passion for Rust, C++, and Haskell, though you’ll often find me dabbling in Python and JavaScript. I’m a seasoned user of neovim and a Linux and Unix enthusiast, recently transitioning to the Apple M1 as my everyday compute. As the current Technical Director at Neo Technologies, I work to bring innovative compliance solutions to life.
Over the years, I have been privileged to work across diverse sectors, from film processing and industrial automation to property management. My projects range from developing accelerated post-processing software for the emerging digital film industry, prototyping control boards for industrial automation, to creating tools to boost commercial property investment and contact centre automation. Currently, I am working on a set of compliance tools related to PCI-DSS de-scoping.
These experiences have lead me to develop skills in system design, low-level system development, Unix and Linux kernel development, electronic design, network development, firmware development for embedded systems, functional programming, and user interface development.
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.