CV
Curriculum Vitae (pdf)
Main Areas of Interest
Computational electromagnetics, Numerical linear algebra, High-performance computing, Linux/Unix
Skills Profile
- Specialist in developing and implementing computational electromagnetics techniques (Finite-Difference Method, frequency dependence, subgridding and Fast Multipole Method).
- High-performance computing engineer with focus on shared-, distributed- and GPU-memory development.
- Technical leader on cross-functional projects guiding junior developers.
- Expert in numerical approximation methods and parallel programming runtimes obtained during industrial and academic projects.
- Professional in designing, profiling and optimising computational workflows aimed at solution of specific challenges.
- Numerical linear algebra advocate.
Research and Development Work Experience
04/2022–present Senior High Performance Software Engineer, STFC, Didcot, UK
- Extending Integrated Flood Modelling for distributed-memory and GPU-enabled operation
(C, StarPU, OpenMP, MPI, Perl). - Designing and implementing an energy saving xApp for a practical OpenRAN deployment in Liverpool
(Python, Perl, Docker). - Profiled and optimised Markov Chain Monte Carlo method for shared-, distributed- and GPU-memory execution
(C++, OpenMP, MPI, CUDA, Intel {Advisor, VTune Profiler}). - Planned and delivered a hands-on one-day course on Rust for experienced developers
(Rust).
09/2019–03/2022 Research Software Engineer, STFC, Warrington, UK
- Applied custom arbitrary float number formats for QR decomposition on CPU and FPGA architectures
(C, C++, Perl, GNU Octave). - Integrated parallel data format support for a computational chemistry suite. This work produced a sixfold reduction in output file size and twofold reduction in average memory utilisation
(Fortran, MPI, NetCDF, HDF5). - Trained machine learning algorithm to detect earthworm casts
(Python, TensorFlow 2). - Created a novel method for validation and verification of an industrial artificial intelligence system
(Python, Docker). - Conducted performance tests of implicit-factorisation preconditioners on a range of system matrices
(BOUT++, Nektar++, C++, PETSc). - Prototyped graph-based algorithm to model power, sewage and mobile network outage due to flooding
(Python, Podman, Docker). - Containerised molecular dynamics and neutron reflectometry workflow
(Perl, C++, MATLAB, Apptainer, Nextflow).
05/2015–10/2018 Research Associate, The University of Manchester, Manchester, UK
- Parallelised iterative refinement algorithms for linear systems solution in mixed precision. Please see PLASMA 24.8.7 distribution.
- Developed
Rightsizer—an open-source
software package to detect an optimal tile size and a number of
OpenMP threads for parallel matrix
factorisations
(C, OpenMP, PLASMA). - Expanded 2DRMP package to apply PLASMA routines for matrix multiplication, eigenvalue decomposition, LU-factorisation and linear systems solution
(Fortran, PLASMA). - Derived a generic algorithm for calculation of finite-difference expressions of any order \( n \). Developing X-Stencil—an open-source package to validate theoretical results in an FDTD-based method up to the 10th order
(Fortran, MATLAB). - Developed a matrix casting approach to re-formulate the update equations of stencil-based methods in {1, 2, 3}D and speed-up the computation
(Fortran).
03/2013–05/2015 Research Engineer, Télécom Bretagne, Brest, France
- Prototyped the Fast Multipole Method with Fast Fourier Transform software to speed-up solution of the forward problem in Electroencephalography applications. This project included the study of efficient convolution of circulant and block Toeplitz
tensors
(Fortran, C++, FFTW, MATLAB, GNU Octave). - Provided computational expertise to a team developing an automotive radar
simulation platform in collaboration with Renault. Major contributions to the project included development and application of beamforming and Multiple Signal Classification algorithms for Angle-of-Arrival estimation in realistic scenarios
(MATLAB).
Education
09/2007–12/2011 PhD in Electrical and Electronic Engineering, The University of Manchester, UK
Huygens Subgridding for the Frequency-Dependent Finite-Difference Time-Domain Method (pdf)
- Developed various Frequency-Dependent Finite-Difference Time-Domain algorithms with the Huygens Subgridding technique
(Fortran, OpenMP, MPI, MATLAB). - New solver allowed efficient simulation of electromagnetic wave propagation in multilayered media, e.g. human body.
- Proposed the solver application to optimise defibrillators by simulating defibrillation current in a human torso.
09/2006–09/2007 MSc in Advanced Computer Science, The University of Manchester, UK
Large-Scale Finite-Difference Time-Domain Data Processing Using High Performance Systems (pdf)
- Adapted the HDF5 library for a parallel in-house Finite-Difference Time-Domain solver. The HDF5 enabled logical data storage and efficient data processing
(Fortran, HDF5).
10/2004–09/2006 BSc in Computer Science with minor in Physics, Heinrich-Heine-Universität Düsseldorf, Germany
Extraction and Storage of Web Structures (pdf)
Programming Skills
C
OpenMP
MATLAB
Extra Positions of Responsibility
08/2013–present Scientific Journal Reviewer
Active reviewer for the IEEE Transactions on Antennas and Propagation, and Antennas and Wireless Propagation Letters journals.
Professional Affiliations
Member of
- The Institute of Electrical and Electronics Engineers (IEEE) [since 2010],
- The Society for Industrial and Applied Mathematics (SIAM) [since 2010] and
- The Applied Computational Electromagnetics Society (ACES) [since 2013].
Languages
Speak four European languages fluently: 🇬🇧 English, 🇩🇪 German, 🇷🇺 Russian, 🇱🇻 Latvian and know 🇫🇷 French at an intermediate level.