Software
A showcase of all the projects which I have co-developed, have contributed to, or maintain myself:
Research Software
snek5000
On my postdoc role, I started using Nek5000, is a really popular Fortran 77 HPC code. Using it is bittersweet experience:
- loads of features
- good performance 🚀
- monolithic, uses in-house build tools
- utilizes several legacy Fortran anti-features
On the bright side, as a user there is a separation of the user code and parameters from the Nek5000 core. This fact was exploited to create snek5000 to create a pythonic API to effortlessly launch simulations with varying parameters.
pymech
A collection of I/O utilities to operate on files produced by Nek5000. Along with other friends, I maintain and improve the package.
FluidDyn project
An ecosystem of packages for research and teaching in fluid dynamics.
Some key features include:
FluidDyn: Classes to manage parameters, large sets of files, named numpy arrays, scripting job submissions in clusters, MPI wrappers to easily implement sequential and parallel programming.
FluidFFT: Unified Python and C++ API for various sequential and MPI & GPU accelerated FFT implementations.
FluidSim: Arguably one of fastest CFD framework specializing in pseudospectral solvers, with on-the-fly post processing. Example of a research done using FluidSim (click to play on Invidious or Youtube):
- FluidImage: Calibrate, pre-process and perform PIV on large sets of images asynchronously and with open-source software.
- FluidDevOps: Nifty CLI tools to help ease the development workflow.
Caeroc
A toy desktop GUI calculator for compressible aerodynamics built on top of scikit-aero. Demo recorded on PeerTube:

Open-Source contributions
I have also contributed some serious projects such as:
- CPython: the reference Python interpreter. I helped in fixing:
- fzf-bibtex: a BibTeX source for
fzf. I added:
- Biblatex support. (link)
- IPython: IPython provides a rich toolkit to help you make the most of using Python interactively. I contributed to:
- JupyterLab: Next generation UI for Jupyter notebooks. I have:
- pyenv: Python installer for POSIX
operating systems. I have:
- fixed links to download PyPy from (blog post)
- PyMC3: Probabilistic
programming in Python. I have:
- improved the overall structure of documentation (link)
- Pythran: An ahead-of-time compiler for creating blazing fast Python extensions from Pure python or NumPy code. I contributed to:
- vim-instant-markdown & Instant markdown server: Write markdown with instant preview. I added MathJax support and much more. I am currently the main maintainer.
- We-Care analysis scripts: Processing data collected from covidmap.se. I have:
- performed some basic maintenance, and implemented database logic (pull-requests)
- xarray: Python package that makes working
with labelled multi-dimensional arrays simple, efficient, and fun. I have:
- specified optional runtime dependencies required to run xarray (link)
Humble projects
Some repositories that I maintain for my personal use and possible reuse.
- Awesome scientific writing: A curated list of resources for writing scientific documents with markup languages.
- awkupy: AWK meets Python: API, CLI and IPython / Jupyter magics for data wrangling with awk.
- Backdrop theme: A responsive pelican theme compiled node, grunt, sass technologies.
- dotfiles: My Linux configuration files a.k.a. dotfiles.
- domain-name-search: Search for cheap and available domain names on Porkbun
- jupyter-wordcloud: Generate wordclouds from Jupyter notebooks.
- pelican-planet: Pelican plugin which asynchronously aggregates feeds into the planet page in this website.
- xrandr-extend: CLI tool to calculate and use non-HIDPI external displays along with HIDPI monitors.