About
I studied Computer Science as an undergrad at the Dept. of Computing in Imperial,
then did my PhD in digital architectures in the same department. After 5 years as
a researcher associate and then research fellow, in 2010 I moved to the Dept. of Electrical
and Electronic Engineer at Imperial as a Lecturer, then Senior Lecturer. In 2021 I joined
the Electronics and Computer Science Dept. as a Professor. Both my research and teaching
interests are at the intersection of software and hardware, particularly in the interaction and
relationshops between programming languages, algorithms, computer achitecture and digital
implementation. A lot of my research involves the use of FPGAs (Field Programmable Gate
Arrays), as they provide a great playground for exploring and implementing new digital architectures,
such as custom CPUs, application-specific accelerators, or new programming paradigms such
as event-driven computing.
You can update this in Pure (opens in a new tab). Select ‘Edit profile’. Under the heading and then ‘Curriculum and research description’, select ‘Add profile information’. In the dropdown menu, select - ‘About’.
Write about yourself in the third person. Aim for 100 to 150 words covering the main points about who you are and what you currently do. Clear, simple language is best. You can include specialist or technical terms.
You’ll be able to add details about your research, publications, career and academic history to other sections of your staff profile.
Research
Research interests
- Event-driven Computing
- FPGAs
- Digital Architectures
- High-level Synthesis
- High-performance Computing
Current research
My research interests range up and down the hardware-software stack, from low-level implementation
of mathematical digital blocks, through to custom processors and on-chip networks, and up into high-level
languages for describing pipelined and distributed programs. A lot of my work involves FPGAs, which
are useful both as prototyping platforms and as target computational platforms. I'm particularly interested
in languages and architectural patterns which make it easier to program FPGAs (and other digital architectures),
such as High-Level Synthesis (HLS), meta-programming for logic design, and hardware co-ordination using
events. Some overall research themes include:
- Financial computing, such as credit-risk analysis and option pricing, using FPGAs and GPUs
- Highly optimised uniform and non-uniform random number generation for FPGAs, providing best-in-class area-efficiency-quality tradeoffs
- Meta-programming for high-level synthesis, in order to allow extension of the HLS language and primitives at compile-time
- Event-driven computing as a way of designing programmes for large multi-FPGA systems
You can update the information for this section in Pure (opens in a new tab).
Research groups
Any research groups you belong to will automatically appear on your profile. Speak to your line manager if these are incorrect. Please do not raise a ticket in Ask HR.
Research interests
Add up to 5 research interests. The first 3 will appear in your staff profile next to your name. The full list will appear on your research page. Keep these brief and focus on the keywords people may use when searching for your work. Use a different line for each one.
In Pure (opens in a new tab), select ‘Edit profile’. Under the heading 'Curriculum and research description', select 'Add profile information'. In the dropdown menu, select 'Research interests: use separate lines'.
Current research
Update this in Pure (opens in a new tab). Select ‘Edit profile’ and then ‘Curriculum and research description - Current research’.
Describe your current research in 100 to 200 words. Write in the third person. Include broad key terms to help people discover your work, for example, “sustainability” or “fashion textiles”.
Research projects
Research Council funded projects will automatically appear here. The active project name is taken from the finance system.
Publications
Pagination
Public outputs that list you as an author will appear here, once they’re validated by the ePrints Team. If you’re missing any outputs that you’ve added to Pure, they may be waiting for validation.
Supervision
Current PhD Students
Contact your Faculty Operating Service team to update PhD students you supervise and any you’ve previously supervised. Making this information available will help potential PhD applicants to find you.
Teaching
Previously I was the course director for the EIE (Electrical and Information Engineering) degree at Imperial College,
which covered both computer science and electrical engineering. I've previously taught and assessed the following subjects:
- Programming
- Computer Architecture
- Compilers
- Networks
- Databases
- High-performance Computing
You can update your teaching description in Pure (opens in a new tab). Select ‘Edit profile’. Under the heading and then ‘Curriculum and research description’ , select ‘Add profile information’. In the dropdown menu, select – ‘Teaching Interests’. Describe your teaching interests and your current responsibilities. Aim for 200 words maximum.
Courses and modules
Contact the Curriculum and Quality Assurance (CQA) team for your faculty to update this section.
External roles and responsibilities
These are the public-facing activities you’d like people to know about.
This section will only display on your public profile if you’ve added content.
You can update your external roles and responsibilities in Pure (opens in a new tab). Select ‘+ Add content’ and then ‘Activity’, your ‘Personal’ tab and then ‘Activities’. Choose which activities you want to show on your public profile.
You can hide activities from your public profile. Set the visibility as 'Backend' to only show this information within Pure, or 'Confidential' to make it visible only to you.
Biography
I studied Computer Science as an undergrad at the Dept. of Computing in Imperial,
then did my PhD in digital architectures in the same department. After 5 years as
a researcher associate and then research fellow, in 2010 I moved to the Dept. of Electrical
and Electronic Engineer at Imperial as a Lecturer, then Senior Lecturer. In 2021 I joined
the Electronics and Computer Science Dept. as a Professor. Both my research and teaching
interests are at the intersection of software and hardware, particularly in the interaction and
relationshops between programming languages, algorithms, computer achitecture and digital
implementation. A lot of my research involves the use of FPGAs (Field Programmable Gate
Arrays), as they provide a great playground for exploring and implementing new digital architectures,
such as custom CPUs, application-specific accelerators, or new programming paradigms such
as event-driven computing.
You can update your biography section in Pure (opens in a new tab). Select your ‘Personal’ tab then ‘Edit profile’. Under the heading, and ‘Curriculum and research description’, select ‘Add profile information’. In the dropdown menu, select - ‘Biography’. Aim for no more than 400 words.
This section will only appear if you enter the information into Pure (opens in a new tab).
Prizes
You can update this section in Pure (opens in a new tab). Select ‘+Add content’ and then ‘Prize’. using the ‘Prizes’ section.
You can choose to hide prizes from your public profile. Set the visibility as ‘Backend’ to only show this information within Pure, or ‘Confidential’ to make it visible only to you.