Facundo Javier Gelatti

About me
I am a software developer and computer science educator based in Buenos Aires, Argentina. Welcome to my website.
I’m passionate about creating tools that make programming more accessible, enjoyable, and humane. With over 7 years of professional experience, I combine rigorous software engineering practices with thoughtful reflection on how developers interact with their programming environments. I’m particularly interested in creating interactive systems that augment rather than replace human capabilities, helping developers think through problems while preserving their autonomy and creativity.
I’m also a computer science professor at Universidad Nacional de Quilmes (UNQ) in Buenos Aires, where I teach an advanced object-oriented programming course with an emphasis on hands-on learning and critical thinking. My teaching approach explores the intersection of practical software development skills with broader perspectives from social sciences, including computer science history, programming as theory-building, and the evolution of the development tools and computing environments we use.
Through my open source projects, I investigate ways to make programming more expressive and delightful. They range from experimental programming environments and educational systems for exploring theoretical concepts, to practical development tools: my research interests span from industrial software engineering to theoretical computer science, with a particular focus on how different programming paradigms and interactive environments can enhance our ability to understand and modify the systems we build and use. I hope my work reflects my commitment to both the craft of software development and the art of teaching it to others.
You can find me on:
There’s more information about my recent projects and talks below 👇
Projects & explorations
Combinatory logic interactive proofs
A dynamic JavaScript environment
- Engelbart’s chorded keyset
- Lambda calculus expressions editor
- Ruby live typing
- Mini Alto computer
- Godot refactorings (WIP)
- UML object collaboration diagrams
- Mandelbrot/Julia set fractal visualizer
- …
Talks
Static Typing: TypeScript, Java, and other mysteries — DevSummit AR, July 2024
Original title: “Tipado estático: Typescript, Java y otros misterios”
An exploration of static typing fundamentals through TypeScript and Java, discussing type systems and their different approaches (nominal and structural typing), with concrete examples. Watch it on YouTube
The History of JavaScript — 10Pines Technical Talks, 2024
Original title: “Comentarios sobre la Historia de Javascript”
A journey through JavaScript’s history, focusing on its creation and early years, exploring the socio-historical aspects of technology development. Available on YouTube
Values and Objects: Welcome to the Tower of Babel — Smalltalks 2023
Original title: “Valores y Objetos: bienvenidos a la Torre de Babel”
With Máximo Prieto. A critical analysis of programming terms such as Value Object, exploring their conceptual foundations and usage. Watch it on YouTube
Adding TCR to Smalltalk — Smalltalks 2022
An exploration of implementing the “Test && Commit || Revert” (TCR) workflow in Smalltalk, discussing challenges and implications. Available on YouTube
Understanding React Constructively — 10PinesConf, September 2022
Original title: “Entendiendo React constructivamente”
A deep dive into React’s internals by building a subset of its functionality using TypeScript with Test-Driven development, focusing on precise definitions and common questions.
wollokVM = run . compile . parse
— 10PinesConf, September 2021
An exploration of implementing a virtual machine for an object-oriented language (Wollok) using functional programming in Haskell. Watch it on YouTube
Prolog, Metacircular Interpreters and this Talk itself — 10PinesConf, September 2021
Original title: “Prolog, intérpretes metacirculares y esta charla”
We discuss what it means for an interpreter to be meta-circular, and implement one in/for the Prolog language.
Implementing a Debugger in Ruby — 10PinesConf, September 2020
Original title: “Implementando un debugger en Ruby”
We build a Ruby debugger from scratch, using Test-Driven Development.
Demystifying Code Manipulation Tools — Smalltalks 2019
Original title: “Desmitificando la creación de herramientas para manipular código”
An exploration of building tools for code manipulation in Smalltalk, covering abstract syntax trees and practical metaprogramming examples. Available on YouTube
Ruby Live Typing — 10PinesConf, September 2019
Discussing implications and implementation details of Live Typing in Ruby, the system described here.
The Y Combinator in Smalltalk — Smalltalks 2018
A practical approach to understanding and implementing the Y combinator using Smalltalk, based on applying a sequence of automated refactorings to a recursive block. Watch it on YouTube
Compiler Hacking: Revisiting “Reflections on Trusting Trust” — Tucumán Hack Weekend, 2018
Original title: Hacking en compiladores: Revisitando “Reflections on Trusting Trust”
We revisit Ken Thompson “Reflections on Trusting Trust” paper, hacking a C compiler live. GitHub Repository
Object-Oriented Programming Insights Through Booleans — St. John’s University, 2018
Talk about implementing boolean values and operations using only objects, as part of the Friends of Fulbright scholarship in New York.
Reflecting on the Object Paradigm — IEEE Tucumán Student Branch, 2018
Original title: “Reflexionando sobre el paradigma de objetos”
Implementing Booleans with objects and Test-Driven Development.
Introduction to Lambda Calculus using Smalltalk — Smalltalks 2017
An exploration of Lambda Calculus concepts implemented in Smalltalk, exploring its basic principles while live programming the encoding of different structures and operations. Watch it on YouTube
Introduction to Code Refactoring — IEEE Tucumán Student Branch, 2017
Original title: “Introducción a la refactorización de código”
An introduction to the agile practice for improving design, with practical examples using IntelliJ IDEA.
C-Test Simulator with Pharo and Amber Smalltalk — Smalltalks 2016
An implementation of a C-Test simulator —a tool to simulate exams for the german language— in Smalltalk, using Amber and Pharo. Available on YouTube
Introduction to Git — IEEE Tucumán Student Branch, 2016
Original title: “Curso introductorio de Git”
A mini-course on the version control system for software development.