Hi, I'm Ivan 👋
Having worked as a developer for more than 22 years, I am passionate about exploring topics
such as Compilers, Data Science and Open Science. I have some knowledge in a variety of
programming languages such as Python, C++, JavaScript, PHP, VB, JAVA, Rust, ShellScript,
etc used for back-end, front-end, DevOps, and packaging. I had the chance to contribute to a
few scientific projects as a Research Software Engineer (RSE) for Transportation Engineering
and Public Health.
I’ve contributed to open source projects such as PyTorch, ibis-framework,
and the Jupyter ecosystem, and I’ve created and been maintained some tools that helps to
improve the development workflow such as MakIm, and Containers-Sugar.
Currently, I am also creating a compiler using LLVM (initially based on Kaleidoscope LLVM tutorial) that will support
Apache Arrow datatype as native types. Some of the libraries and tools I’ve used in the last years
are: LLVM, ibis-framework, pandas, PostgreSQL, Django, Django-rest framework, fastapi, flask,
GraphQL, Vue.js, JQuery, conda/conda-constructor/conda-build, Docker, mkdocs, and others.
As an Open Science enthusiast, I’ve also recently contributed to pyOpenSci as a package reviewer,
review editor, and advisor, and I am leading a community called Open Science Labs, that aims to
create an open and safe space for learning, teaching and sharing knowledge, besides generating
opoortunities among the community and projects affiliated.
How to reach me: twitter and linkedin
Some open source projects that I've been working recently:
ArtBox is a tool set for handling multimedia files with a bunch of useful
functions.
ArxLang Project is compounded mainly by three sub-projects: ASTx, IRx, and Arx.
ASTx is an agnostic expression structure for AST. It is agnostic because it is
not specific to any language, neither to the ArxLang project, although its main
focus is to provide all needed feature for ArxLang.
IRx aims to provide a translator to LLVM-IR from ASTx objects.
Arx is a new programming language that uses the power of LLVM to provide a
multi-architecture machine target code generation.
Envers is a command-line tool (CLI) designed to manage and version environment
variables for different deployment stages such as staging, development, and
production. It provides a secure and organized way to handle
environment-specific configurations.
Makim (or makim) is based on make and focus on improve the way to define targets
and dependencies. Instead of using the Makefile format, it uses yaml format.
SciCookie is a template developed by https://opensciencelabs.org/ that creates
projects from project templates.
Sugar aims to organize your stack of containers, gathering some useful scripts
and keeping this information centralized in a configuration file. So the command
line would be very simple.