Ian Spray

Principal Software Engineer | Software Architect | Technical Leader
📍 Cambridge, UK

Professional Summary

Multidisciplinary full-stack solutions architect and technical leader with 30+ years’ experience spanning embedded systems, data centre architecture, virtualisation, hardware automation, developer tooling, low-level programming and able to bridge communication gaps between specialisms, be it hardware/software, engineering/management, or technical/business. Adept at building cross-functional teams, delivering complex solutions, and mentoring engineers. Formerly hands-on with Forth, C, and assembler, now experienced in Go, REST API design, system architecture, custom PCB design and cloud-scale deployment. Most at home when innovating and crafting solutions to real-world problems that have little or no prior art.

Core Competencies

  • Languages & Tools: Go, C, Forth, Java, bash, SQL, JavaScript, REST, Swagger, RAML, python
  • Systems & Platforms: Linux (Debian, Alpine), NetBSD, Kubernetes, ARM, SPARC, MIPS, ZFS, Docker, Git/gerrit
  • Domains: Embedded Systems, PCB Design, Data Centre Architecture, Debug & Trace, CI/CD, API Design
  • Other Skills: Custom Solution full-stack Architect, Team Leadership, Hiring & Mentoring, Cross-functional Collaboration, Open Source Compliance

Professional Experience

Arm Ltd. – Principal Software Engineer

Cambridge, UK | Apr 2008 – Present

Led and contributed to a wide range of internal teams and projects, including:

  • Full stack solutions Architect, covering Custom PCB, 3D printed housing, bootloader & O/S customisation and secure customer facing API stack
  • Architected software for CoreSight Debug & Trace IP, including custom encodings and storage systems for large-scale debug trace data
  • Developed internal APIs (REST, Swagger/RAML), Eclipse-based tooling, and CI/CD platforms
  • Designed and deployed multi-data centre software development virtualisation platform
  • Managed hiring, performance reviews, and coaching of engineers and interns
  • Engaged in ISO9001 auditing, Open Source policy compliance, and vendor integration
  • Implemented server-side Go microservices and low-level hardware interfacing components

MIPS Technologies – Systems Software Engineer

Cambridge, UK | Aug 2007 – Mar 2008

  • Developed software for prototype CPU test boards, including YAMON bootloader enhancements
  • Collaborated with hardware engineers to bring up and validate new CPU designs
  • Conducted performance profiling using oprofile and lmbench
  • Used EJTAG probes for non-intrusive debugging of live systems

Tadpole Computer / General Dynamics – Senior Software Engineer (Low-level)

Cambridge, UK | Sep 1996 – Aug 2007

  • Maintained OpenBoot firmware for SPARC laptops/servers (Forth & SPARC assembler)
  • Led early hardware bring-up and diagnostics, collaborating directly with circuit designers
  • Handled Engineering IT, firewalls, ISDN communications, and facilities improvements
  • Contributed to NetBSD kernel and release processes across multiple architectures
  • Built a reproducible, appliance-like Linux-based thin client OS with robust update methods
  • Developed internal collaboration tools: Wiki/Bugzilla integration, VPN services, and protocol documentation

Image Technologies Developments plc – Software Engineer

London | Sep 1994 – Sep 1996

  • Wrote device drivers and GUI applications for PostScript RIPs on Windows and Mac
  • Gained experience with Windows NT kernel-mode programming, 80×86 assembler, and AppleTalk networking

British Rail Research – Technical Officer (Industrial Placement)

Derby | Jul 1992 – Sep 1993

  • Developed custom software for multi-channel real-time radio survey analysis
  • Designed and implemented a pen-plotting system replacement
  • Participated in BS5750 quality accreditation implementation

Freelance & Contract Work

2002 – Present (Various Projects)

Delivered bespoke web design, hosting, photography, and IT consulting for clients including:

  • Marble Hill Dance Studio, Deborah Jayne School of Dance, Dansicality, Feetbeats, Arthur Frederick Photography
  • Developed till systems, secure hosting environments, and e-commerce modules
  • Managed SEO, CMS integration, and branding for small businesses
  • Partnered in a Cambridge-based photography business
  • Translated legacy Forth control systems for the British Antarctic Survey

Education

BSc (Hons) Software Engineering – De Montfort University, Leicester
1989 – 1994
Focus areas: OOA/OOD, Systems Programming, Networks, Functional Programming, Microcomputer Design
Final project: Smalltalk interpreter in Gofer (Functional/OOP integration)

Technical Skills

  • Languages: Go, C, Forth, bash, JavaScript, SQL, perl, Assembly (ARM, SPARC, MIPS, Z80, 6502)
  • Systems: NetBSD, Linux, podman/Docker, Solaris, BSD, MacOS, Windows NT/95, Kubernetes
  • Technologies: REST APIs, ZFS, RAID, iSCSI, CI/CD, EJTAG, MQTT, Zigbee, RFID
  • Tooling: pkgsrc, Mercurial, Git, SVN/CVS/RCS, Bugzilla, Apache, MySQL/PgSQL/SQLite, Asterisk, Exim, ClamAV
  • Web & Media: HTML/CSS, PHP, SEO, ZenCart, Photography, DTP, Video Editing

Interests

  • Self-hosting infrastructure (home automation, email, web, RAID, backup systems)
  • 3D printing: model design & modifying various printers, and building a Voron2.4
  • IoT projects: ESP8266, MQTT, Zigbee, RFID automation
  • Digital photography (visible & infra-red) & event coverage (weddings, parties)
  • Electronics: schematic capture, PCB design and soldering
  • Amateur radio (licensed operator)
  • Open Source contributor and ebike conversions and home lab enthusiast

References

Available upon request.