Zachary R. Madin
I’m a PhD researcher and electronic engineer based in Bristol, working at the intersection of robotics, collective intelligence, and embedded systems. My background spans the full stack from low-level hardware: bare-metal firmware, analogue & high speed digital circuit design, and hands-on component-level repair through to algorithm development and academic research in multi-robot systems. I take pride in the quality of my work and hold myself to a high standard across everything I do, whether that’s a well-structured codebase, a carefully traced fault diagnosis, or a rigorously evaluated experiment.
Research
My PhD (Engineering Mathematics, University of Bristol) focuses on collective dynamics in multi-robot systems, using Bayesian inference and graph-theoretic models to understand how groups of autonomous agents reach consensus and respond to their environment. In practice this means designing simulations, analysing emergent network behaviour, and publishing results at international venues including ACM/SIGAPP and MRS.
Key themes in my research:
- Multi-robot patrolling & anomaly detection — studying how communication topology shapes group-level perception accuracy under noisy sensing conditions
- Bayesian methods in swarm engineering — applying probabilistic reasoning to collective decision-making problems
Software
Alongside the research I maintain a practical software engineering skillset across the robotics and simulation stack.
On the robotics side I work extensively with ROS, 1 & 2. Writing nodes, services, and action servers; managing multi-robot communication topologies; and integrating sensors and actuators into larger systems, covering both Gazebo simulation and deployment on physical hardware.
For the modelling work underpinning my PhD I implement probabilistic graphical models in PyTorch, building custom message-passing architectures that capture the communication structure of robot teams. This includes training and evaluating models over dynamically changing graph topologies and connecting learned representations back to collective behaviour theory.
More broadly: Python for simulation, data analysis, and ML pipelines; C/C++ for embedded and real-time systems; and comfortable Linux systems administration from running both Docker development environments and robot hardware day to day.
Version control is central to how I work. I use Git extensively across all projects — maintaining clean commit histories, branching strategies, and collaborative workflows. Beyond basic version control I make active use of GitHub Actions for CI/CD automation (including the pipelines that build and deploy this site via GitHub Pages), and I’m comfortable designing workflows that lint, test, build, and publish automatically on push.
Hardware & Electronics
The research is grounded in a deep practical competency with electronics and embedded systems built over years of Electronic Engineering study and hands-on project work and placements. I’m equally comfortable reading oscilloscope traces, reverse-engineering undocumented schematics, or writing firmware for microcontrollers.
I volunteer regularly at Sparks Repair Café in Bristol, where I diagnose and repair consumer electronics brought in by the public. A few representative examples from the log:
GitHub Activity
As any techy person, I get a fair use out of Github! I’m a big fan of a lot of the integrations Github has enabled over the past few years, being able to set action systems going in Github to auto-generate images of board revisions depending on the release version I’ve committed.
I like to look back and keep track on my own activity over the year and remember particularly crunchy weeks where I was doing a lot of work. As well as the times where I was writing a paper, and my Github commits disappeared, or when I took a much needed break :)
This site documents my published research, hardware repair log, and broader engineering work. If you’d like to discuss any of it, feel free to reach out via the links on the left.





