Functional programming and minimal software

Selected Projects



Platform Software Engineer – Replit (April 2022 - Present)

Replit is an online collaborative development platform that aims to bring the next billion software creators online.

Software Engineering Intern – Datarisk (November 2021 - April 2022)

Datarisk develops custom data processing solutions and technologies. As part of the technology team, I am helping develop the company’s model API platform. We use F# and the .NET environment for development, along with Azure for online hosting.

The codebase at Datarisk is based on solid functional programming principles while the database organizations aims to be conformant to relational principles (as described by C.J. Date).

Software Engineering Intern – Axur (May 2021 - November 2021)

Axur is a cybersecurity company aiming to make the web a safer place.

I worked on the company’s threat tracking platform. Mainly Javascript/Typescript stuff using React and a plethora of other JS frameworks.

Teaching Assistant – Functional Programming in Haskell (January 2022 - May 2022)

I am currently a teaching assistant in an introductory Haskell course for Computer Science and Engineering Students. The course introduces functional programming in Haskell, going from basic functions to applicative parsers and monads. As part of the course, I am developing a CI/CD pipeline on Github for automatically grading student assignments.

Teaching Assistant – Programming Languages (2020-2021)

I was a teaching assistant for the Programming Languages course for two semesters. During this period, I worked on developing front-ends and interpreters for programming languages of multiple paradigms in Haskell.

Undergraduate researcher – Analysis of Software Product Lines (November 2019 - May 2022)

Under Prof. Vander Ramos, since late 2019 I am working on enhancing and developing software for the analysis of Software Product Lines. My team is currently implementing new techniques in the literature, as well as developing a solution for reusing previous results in order to speed up the analysis.

So far the work has included contributing to the ReAna-SPL tool, written in Java. as well as writing small tools in Haskell to interpret and analyze code and results. We’ve implemented the first instance of a Feature-Family-Product-based analysis as described in Castro et al in ReAna-SPL.

We are working on implementing reuse of previous results when running an analysis. This aims at reducing the time needed to run an analysis where an existing model has been altered in some way, and also invites us to think deeply about the evolution of the same model over time.