I am a researcher/educator interested in hardware-software codesign. I love building custom digital hardware, compilers/passes for targetting that hardware and thinking about how to make it accessible through better programming models and abstractions.

I have experience in both academica (Imperial/Cambridge/Swansea) and industry (Microsoft Research/AMD Research) building:

  • Frameworks that make it easier to interact with custom ML hardware in AMD devices Riallto (GitHub)
  • Frameworks for allowing users to easier interact with custom hardware in FPGA devices PYNQ (GitHub)
  • Courses for teaching embedded systems and custom hardware EmSys (GitHub)
  • Distributed FPGA-based SmartNIC key-value store accelerators Honeycomb (Paper)
  • Multi-FPGA-based event-triggered high-performance computing systems POETS (paper)
  • Compiler passes for generating protected circuits for Space Applications StitchUP (paper) StitchUP (GitHub)
  • Higher-order type systems for seamlessly linking hardware and software PushPush (paper)

I’m always happy to chat, so please reach out if you want to discuss things.