Paul Hunt
Senior / Principal Software Engineer · Hands-on Software Architect
Scotland, United Kingdom · [email protected] · mrphunt.net · linkedin.com/in/paul-hunt-459692199
Profile
Software engineer with nearly 30 years' professional experience (since 1998), working hands-on in C, modern C++ (to C++17) and Python. My career covers telecoms network monitoring and lawful interception, secure communications (TLS/DTLS, OpenSSL, traffic decryption), embedded payment terminals, medical-device software, hardware test automation and engineering tooling.
I'm strongest where problems are hard and poorly documented: understanding unfamiliar legacy codebases, reverse-engineering undocumented algorithms, diagnosing crashes that have defeated other teams, working within severe memory and storage limits, and removing architectural performance ceilings. I work autonomously and often deliver complete systems as the sole engineer, while collaborating closely with customers, engineers and support teams. I also mentor other engineers.
Key achievements
- 40× telecoms monitoring capacity: re-architected a C++ monitoring probe by separating signalling from media and multithreading media processing, taking capacity from about 200 to 8,000 monitored subscribers per server. The prototype was ready to demonstrate within two days.
- UK Post Office barcode scanning: designed and built barcode scanner support and the product lookup database for Ingenico i5100 terminals, in 8 MB of slow flash memory. The first, straightforward implementation took up to 60 s per lookup across thousands of records; I then optimised it to 1–2 s.
- Independent TLS/DTLS proxy: solely designed, developed and tested a bidirectional C++/OpenSSL proxy supporting TLS 1.3 and DTLS 1.3, tested with up to 2,000 concurrent clients.
- Cx key extraction and traffic decryption: built Cx decoders, key extraction, cross-network event correlation and the associated traffic decryption.
- Undocumented 4-bit medical algorithm: reverse-engineered a blood-glucose calculation from 4-bit assembly and reimplemented it in C on a 32-bit platform, with timing logic and automated verification.
- Target Mediator: sole designer and developer of a Python subscriber-location application combining telecoms signalling with external GPS and location data.
- Safe, efficient protocol parsing: replaced fragile duplicated C++ decoders with a reusable bounds-checked template library, verifying the generated instructions by disassembly.
- Legacy modernisation: replaced a decades-old monolithic Bash configuration system with modular, reusable and testable Python components.
- AI meeting automation: independently built a containerised Python system for Signal group meetings with transcription, speaker separation, AI summaries, action extraction and secure storage.
Technical skills
- Primary languages
- C, C++ (modern C++ up to C++17, template programming), Python
- Also
- Bash, C#, Lua, Delphi; assembly-language analysis and reverse engineering
- C++ and systems
- Performance and memory optimisation, multithreading, event-driven architecture, network programming, binary protocol decoding, reusable library design, compiler output and disassembly analysis, core-dump debugging, legacy modernisation
- Telecoms
- 3G, 4G/LTE; 3GPP TS 24.007 and TS 24.008; GTP/GTPv2-C; Diameter (S6a, Cx); SIP/SDP; RTP; TCP/UDP/IP; proprietary Ericsson and Huawei formats; subscriber and session correlation; protocol test simulation
- Security
- OpenSSL, TLS 1.3, DTLS 1.3, encrypting and decrypting proxies, key-material extraction from signalling, traffic decryption
- Embedded
- 16 and 32-bit platforms, Ingenico and Thales payment terminals, constrained flash and EEPROM storage, barcode scanner integration, remote software updates, timing-sensitive code
- Testing and tooling
- Automated test harnesses, hardware-in-the-loop test systems, telecoms traffic simulators, Python automation and code generators
- Platforms and tools
- Linux, Windows, Docker, Git, ClearCase, CMake, OpenSSL, MinIO
Professional experience
Illuminate / CipherForge Systems Senior Software Developer
2020 – 2026
Telecoms network monitoring, lawful interception, network analysis and specialised customer software, in C++ and Python on Linux. Joined directly after about eleven years on the same Agilent / Keysight / Illuminate product family as a Bitwise consultant. The main product was a large C++ monitoring probe with code going back around 30 years, progressively modernised to C++17.
- 40× capacity improvement: identified the architectural limit in the probe, separated signalling from media processing and introduced multithreaded media handling. One server went from about 200 to 8,000 monitored subscribers; a working prototype took around two days.
- TLS/DTLS proxy (sole developer): designed, implemented and tested a C++/OpenSSL proxy for TLS 1.3 and DTLS 1.3 with decryption and reverse-proxy encryption modes, tested with up to 2,000 concurrent clients.
- Cx decoding, key extraction and traffic decryption: parsed binary Cx signalling to extract key material, added the events and correlation needed to use it at other observation points, and implemented the decryption.
- Target Mediator (sole developer): a Python application for 3G and 4G networks that correlates probe events with external location data, actively queries location servers, and supports selective subscriber filtering and extensive configuration.
- Reusable 3GPP IE decoding library: replaced duplicated, unchecked decoders that had caused production crashes with a C++ template library for TS 24.007 Type 1–6 formats, confirming by disassembly that only the required bounds checks were added.
- Protocol development: decoders, correlation, filtering and fixes across 3G and 4G/LTE signalling, GTP/GTPv2-C, Diameter, SIP/SDP and RTP; S6a support covering UK SIMs roaming abroad; proprietary Ericsson and Huawei formats.
- Traffic simulator: built a simulator that injects traffic into the probe, converting standard telecoms data into proprietary formats for testing.
- Configuration modernisation: re-architected a large monolithic Bash configuration script as modular, testable Python components, some reused by other applications.
- Source escrow and Git groundwork: packaged the whole product estate for escrow, mapping dependencies across old and new build systems and laying the groundwork for the move from ClearCase to Git.
- AI-assisted meeting system: a containerised Python application that joins Signal group calls, transcribes with speaker separation, summarises, extracts actions and stores records securely in MinIO.
- Support and mentoring: senior escalation point for problems support teams could not resolve, usually via core-dump analysis; wrote productivity tooling; mentored new engineers.
Bitwise Ltd Software Developer, later Senior Software Developer
2000 – 2020
Software engineering consultancy delivering projects for external clients across several industries.
- Telecoms consultancy (c. 2009 – 2020): subcontracted engineer on the Agilent / Keysight / Illuminate telecoms product family for about eleven years: C++ and Python work on network monitoring and protocol analysis, including the Agilent J7830A Signaling Analyzer Real-Time.
- Ingenico payment terminals: embedded C on TT41 and TT42 (16-bit) and i5100 (32-bit) terminals: Chip and PIN, gift cards, remote software updates and customer-specific features within very restricted memory and storage.
- UK Post Office barcode scanning: wrote the scanner integration and a remotely updated product database for the i5100 from scratch. The initial implementation took up to 60 seconds to find a product, so I reworked the storage layout and search for slow flash and brought lookups down to 1–2 seconds.
- Legacy terminal updates: planned update sequences for terminals with too little contiguous free storage to install packages directly.
- Thales payment terminals: one of a team of about six engineers carrying out substantial corrective development, rewriting problem components and verifying against customer acceptance criteria.
- Blood-glucose monitoring devices: reverse-engineered an undocumented calculation from 4-bit assembly, documented it and reimplemented it in C on a 32-bit platform, with timing functionality and tests in a C# framework.
- Geophysical device test system: a Python system testing up to 32 devices simultaneously, controlling ovens, freezers and other machinery and validating telemetry across environmental conditions.
Level Four Software Software Developer
1998 – 1999
Developed customer demonstration software in Delphi.
Hamilton & Inches Apprentice Horologist
1990 – 1995
Professional apprenticeship in precision work on mechanical watches and clocks, before moving into software engineering.
Independent projects
- CoreCairn, 4G/5G network monitoring and fault diagnosis (working prototype): discovers network topology, identifies faults, raises alerts and suggests where to look for the cause, with a companion network simulator. Tested against simulator-generated data.
- Phookit C++ application framework (in development): a modular, plugin-oriented framework built with CMake, with synchronous and asynchronous event processing, networking and memory-management facilities.
- srvadmin: a self-hosted fleet manager for Linux servers and domains, with a C++23 backend and agent, a React front end and PostgreSQL.
- Phookit website framework: a Django-based framework with a static site generator and one-command server installation, used for this site and several others.
Education
HND Software Engineering, Napier University (now Edinburgh Napier University), 1995 – 1998.
Away from work
Full-time single dad. Sailing on the Firth of Forth, camping and hill walking. Former volunteer with an English Bull Terrier rescue. Writes code for fun, which explains the section above.