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 (5 years), Fortran (5y), Python (2y), C++ (2y), Java (2y), Perl (1y), Rust (6 months), Julia (6m),
OpenMP (5y), MPI (2y), StarPU (1y), CUDA (6m), oneAPI SYCL (6m),
MATLAB (2y), GNU Octave (2y).

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

Languages

Speak four European languages fluently: 🇬🇧 English, 🇩🇪 German, 🇷🇺 Russian, 🇱🇻 Latvian and know 🇫🇷 French at an intermediate level.