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.