Hello, I'm Paul
I write software, raise a small human and go outside whenever Scotland allows.
I've been a software engineer since 1998, mostly in C, C++ and Python, and mostly on the kind of problems that arrive without documentation. I'm also a full-time single dad, a former dog rescue volunteer, and happiest on a boat, up a hill or in a tent.
- 1998
- the year someone first paid me to write software
- 40ร
- more capacity from one telecoms probe after a rethink
- 60s โ 2s
- a Post Office barcode lookup, after some stubbornness
- 4-bit
- the smallest processor I've reverse-engineered
The short version
Four things that keep me busy
Being a dad
Full-time, single-handed, and easily the most important job I have. Also the one with the toughest code reviewer.
The dad bit โEngineering
Telecoms monitoring, secure communications, payment terminals and medical devices. Hard problems, old code, tight memory.
What I do for a living โGetting outdoors
Sailing on the Firth of Forth, walking up Dumyat, camping in the Trossachs. If the forecast is half decent, I'm not at a desk.
Wind, hills and tents โCoding for fun
Yes, after a day of writing code I relax by writing different code. Frameworks, servers, websites and the odd game engine.
Personal projects โThe day job
I like the problems other people have given up on
Most of my career has been spent deep inside big, long-lived systems: a telecoms monitoring probe with code older than some of the engineers working on it, payment terminals with almost no free storage, and a blood-glucose meter whose only documentation was its own 4-bit assembly.
I enjoy working out what a system really does, finding the thing that is holding it back, and leaving it faster, safer and easier for the next person. I'm just as happy building something complete on my own as I am helping a team get unstuck.
- C, modern C++ and Python on Linux, every working day for a very long time
- Telecoms: 3G, 4G/LTE, Diameter, GTP, SIP and RTP
- Security: TLS 1.3 and DTLS 1.3 with OpenSSL, traffic decryption
- Embedded: 16 and 32-bit payment terminals, slow flash, tiny budgets
- Detective work: core dumps, disassembly and legacy code archaeology
- People: customers, support teams and mentoring new engineers
Evenings and weekends
A few things I've made
Phookit application framework
A modern C++ framework where an application is just plugins and a config file. No more writing main() for the hundredth time.
srvadmin
My self-hosted control room for a small fleet of Linux servers: domains, firewalls, VPN, containers, game servers and websites.
Bullmania
A community site for bull terrier people, first launched in the mid 2000s and brought back to life in 2026.
Say hello
Got an interesting problem, a role you think I'd suit, or strong opinions about anchoring? I'd love to hear from you.