My background is in computational fluid dynamics and, during my career, I transitioned from being a domain scientist to my current role as an HPC software engineer at ETHZ and as a freelancer.
I enjoy understanding the interaction among different layers of the software stack and the hardware and how it affects performance.
Lately I started to get interested in code generation and domain specific languages in the context of optimizing kernels programmatically for different hardware.
I obtained my M.Sc. and PhD degrees in aerospace engineering from the University of Southern California, USA, in 2011 and 2015 respectively, while my B.Sc. in mechanical engineering was obtained at the Polytechnic University of Milan, Italy, in 2009.
My PhD thesis was related to high-fidelity turbulence modeling for separated and transitional flows, and the quantification of numerical errors.
After my doctoral appointment, I worked at Tesla Motors as a computational fluid dynamics analyst in both the thermal and external aerodynamics groups.
While at Tesla I submitted a patent for a novel vent design.
In 2016, I was a postdoctoral scholar at the California Institute of Technology (USA) working on high-fidelity simulations of multi-species supercritical flows.
When I moved to Imperial College (UK) in 2018, I worked on high-order unstructured methods for shock-wave boundary layer interactions.
Here I started my transition from domain scientist to software developer working on the open-source spectral finite element solver Nektar++.
Among other topics, I ported a few kernels that utilize the single instruction multiple data (SIMD) paradigm for which I wrote a simple,
header-only SIMD library.
HPC Software Engineer for QuICC, a software for dynamo (magnetohydrodynamics) simulations.
Refactoring for hybrid parallelization (mpi+GPU/threads).
Refactored building (CMake) and testing infrastructure (CI/CD).
Freelance Software Engineer working on the C++ based, open-source, spectral finite element framework Nektar++.
Implementing a DSL using MLIR framework for generating performance critical kernels for different back-ends.
Implemented Arm SVE back-end for in-house SIMD library.
HPC Software Performance Engineer in the HPC team at the Blue Brain Project.
Developer for HBP (Human Brain Project) STEPS (STochastic Engine for Pathway Simulation).
Investigated explicit SIMD libraries as a possible alternative to auto-vectorization in CoreNEURON.
Senior developer of the C++ based, open-source, spectral finite elementframework Nektar++.
High fidelity simulations (LES/DNS) to predict shock wave unsteadiness in turbofan intake cowls at off-design conditions.
Implementation and validation of shock capturing schemes in an open-source high-order finite element CFD software.
DNS simulations of multi-species, high-pressure flows relevant to fuel injection.
Implemented a thermodynamic model to predict phases of fuel-air mixtures.
Responsible for researching alternative CFD methodologies.
Responsible for HVAC aerodynamics of Model 3.
US patent for novel air vent design (US010464397B2)
.
Prediction of laminar separation bubbles over wing/blade geometries.
Large Eddy Simulations.
Quantification of numerical dissipation.
Immersed Boundary, Finite Volume code.
Parallel computing.
Summer internship, simulations run on a cluster with STAR-CCM+ software.
AME 499 Turbine Design and Analysis.
AME 408 Computer-Aided Design of Mechanical Systems (SolidWorks/CosmosWorks).
AME 301 Dynamics.
AME 150 Introduction to Computational Methods (MATLAB).
Computational Fluid and Solid Mechanics track.
Exchange student, Erasmus program.