About Me

Some information about me, what I do and have done.

22 Oct 2018
2 min read

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.