My Portfolio of Programming Projects


May 20, 2024

Current job

I’m currently employed as a Mechanical/Research Engineer in a research group in southern Brazil, and my main responsibility is developing applications and libraries for use of one of Brazil’s largest oil & gas software. Our main products is a wellbore simulator and a thermophysical properties library. Both are used by end users in a web app (that is developed by a third-party).

My main working language in this position is Python, mainly for faciliting collaborating with other engineers, researchers, and especially students. I’ve been using Python since 2011 and I consider myself very profficient in it, in particular with the scientific stack: NumPy, SciPy, and Matplotlib. I’m also very familiar developing command line applications with Typer and Rich, managing projects with tox and hatch, and testing with pytest.

My main projects are private, but some work-related open-source projects include:

  • scientific-python2.7-docker: a Docker image with Python 2.7 and scientific libraries installed on top of it (our properties library is implemented in Python 2.7 for use in a legacy server)

  • tissues: a helper utility that runs a linter of your choice, and then fails not if there is an issue, but if the number of issues has not decreased from the previous run. This is useful for forcing yourself to incrementally improve a legacy codebase, where eliminating all linter issues in one take is not viable

Side Projects

I love learning new languages and I’ve been making a point of creating some projects to showcase what I’ve learned. Since my expertise is in scientific- and text-oriented command-line applications, my latest interests are Rust and Go.

Some of my non-Python projects:

  • bln - a simplified version of the Unix ln command, written in Go, and that uses flags instead of arguments (I can never remember the order of arguments in ln).

  • engsymbols - a LaTeX package to facilitate writing complex engineering symbols

See also my dotfiles and my neovim configuration.

Open-source contributions

I’m learning how to better contribute to open-source projects. Some projects that I’ve contributed in the past are:

  • prm -a Bash project manager

  • DrWatson - a Julia scientific project manager