Leandro Facchinetti

About · Tutorial Videos · Articles · Songs · GitHub · YouTube · News · Curriculum Vitae · Email

Curriculum Vitae

Education

Incomplete PhD. Johns Hopkins University. Computer Science. 2014-09 – 2020-07.
Master’s Degree. Johns Hopkins University. Computer Science. 2014-09 – 2016-10.
Bachelor’s Degree. Universidade de São Paulo. Computer Science. 2008-02 – 2012-09.

Teaching Experience

Instructor. Johns Hopkins University. Object-Oriented Software Engineering. 2019-08 – 2019-12.
Teaching Assistant. Johns Hopkins University. Object-Oriented Software Engineering and Principles of Programming Languages. 2015-09 – 2020-05 (estimated).

Work Experience

Raise Sistemas. Software Developer. 2014-02 – 2014-08.
DasDad. Software Developer. 2013-02 – 2013-12.
Universo Online (UOL). Software Developer. 2012-03 – 2013-02.
Daitan Group. Software Developer Intern. 2011-07 – 2012-02.

Publications

Higher-Order Demand-Driven Program Analysis. Leandro Facchinetti, Zachary Palmer, and Scott Smith. ACM Transactions on Programming Languages and Systems (TOPLAS). 2019. [PDF][Publisher]

SDL: A DSL for Cryptographic Schemes. Leandro Facchinetti. Research project report to fulfill a qualifying requirement of the Ph.D. program. Johns Hopkins University. 2017. [PDF]

Relative Store Fragments for Singleton Abstraction. Leandro Facchinetti, Zachary Palmer, and Scott Smith. 24th Static Analysis Symposium. 2017. [PDF][Publisher]

Towards Practical Higher-Order Demand-Driven Program Analysis. Leandro Facchinetti. Preliminary research proposal for Graduate Board Oral (GBO) examination, a qualifying requirement for the Ph.D. program. Johns Hopkins University. 2017. [PDF][Slides]

Practical Demand-Driven Program Analysis with Recursion. Leandro Facchinetti. Research project report to fulfill a qualifying requirement of the Ph.D. program. Johns Hopkins University. 2016. [PDF]

Higher-Order Demand-Driven Program Analysis (Artifact). Leandro Facchinetti, Zachary Palmer, and Scott Smith. ECOOP 2016 Artifacts. Also appeared at the Dagstuhl Artifacts Series. 2016. [PDF][Code][Publisher]

What is Your Function? Static Pattern Matching on Function Behavior. Leandro Facchinetti, Pottayil Menon, Zachary Palmer, Alexander Rozenshteyn, and Scott Smith. The 17th Symposium on Trends in Functional Programming (TFP 2016). 2016. [PDF]

Pesquisa e Desenvolvimento de Robôs Táticos para Ambientes Internos (Research and Development of Tactical Robots for Indoor Environments). Fernando Osório, Denis Wolf, Kalinka Castelo Branco, Jó Ueyama, Gustavo Pessin, Leandro Fernandes, Maurício Dias, Leandro Couto, Daniel Sales, Diogo Correa, Matheus Nin, Leandro Lourenço Silva, Leonardo Bonetti, Leandro Facchinetti, and Fabiano Hessel. Internal Workshop of INCT-SEC. 2011. [PDF]

Sistema de Navegação Visual baseado em Correlação de Imagens Visando a Aplicação em Veículos Autônomos Inteligentes (Visual Navigation System Based on Image Correlation for Intelligent Autonomous Vehicles). Leandro Facchinetti and Fernando Santos Osório. 18º Simpósio Internacional de Iniciação Científica da Universidade de São Paulo (SIICUSP) (18th International Scientific Initiation Symposium from Universidade de São Paulo). 2010. [PDF]

Navegação Visual de Robôs Móveis Autônomos Baseada em Métodos de Correlação de Imagens (Visual Navigation of Autonomous Mobile Robots Based on Image Correlation Methods). Leandro Facchinetti and Fernando Santos Osório. III Workshop on Computational Intelligence—WCI. Joint Conference 2010—SBIA—SBRN—JRI. 2010. [PDF]

Pesquisa e Desenvolvimento de Robôs Móveis Autônomos com Navegação Baseada em Correlação de Imagens (Research and Development of Autonomous Mobile Robots with Image-Correlation-Based Navigation). Leandro Facchinetti and Fernando Santos Osório. IV Workshop de Iniciação Científica e Tecnológica de Computação (WICT) (IV Scientific and Technologic Initiation Workshop). 2010.

Awards

Whiting School of Engineering’s Professor Joel Dean Excellence in Teaching Award. 2019-05-06.

Software

Kill the Newsletter! Convert email newsletters into Atom feeds. Featured on Lifehacker, Hacker News, Product Hunt, and several blogs around the world.

Shiki LaTeX. JavaScript & TypeScript package with a Shiki renderer for LaTeX. Compatible with minted, replacing Pygments.

Collections Deep Equal. JavaScript & TypeScript package with collections like JavaScript’s native Maps and Sets, but using value equality (util.isDeepStrictEqual()) instead of reference equality.

LaTeX Dissertation Template for the Johns Hopkins University. LaTeX template that conforms to the Formatting Requirements of the Johns Hopkins University Library.

Roboose. A GitHub Probot that assists on managing a whole course using only GitHub: forum, assignments, grading, and so forth.

Pollen Component. Racket package for component-based development in Pollen.

CSS-expressions. Racket package for S-expression-based CSS.

Extensible Functions. Racket package with a solution to the expression problem in Typed Racket.

Org Password Manager. Password manager for Org Mode.

Programmable Foot Keyboard. Programmable foot keyboard using Adafruit’s Trinket.

Contributions to JavaScript & TypeScript projects. xmlbuilder2, DefinitelyTyped, Visual Studio Code LaTeX Workshop Extension , and Gatsby.

Contributions to Racket. Racket, PLT Redex, DrRacket, Profile, Pollen, and Nanopass.

Contributions to Papers and Articles. An Introduction to Redex with Abstracting Abstract Machines, NUPRL’s Website, Abstracting Definitional Interpreters, and Optimizing Abstract Abstract Machines.

Contributions to Web Frameworks. Ruby on Rails and Javalin.

Contributions to Homebrew. Homebrew Core, Homebrew Casks, and Homebrew Fonts.

Skills

Programming Language Design. Design and implementation of Domain-Specific Languages (DSLs) and general purpose programming languages. Semantics specification (for example, operational semantics), implementation of parsers, interpreters, analyzers, type systems, formatters, and so forth.

Programming Languages. JavaScript & TypeScript, Ruby, Java, Racket, and OCaml.

Web Development. React, Node.js, and Ruby on Rails.

System Administration. Linux, Docker, virtualization, cloud computing (AWS, DigitalOcean), and automated provisioning.

Writing. LaTeX, academic writing, and documentation writing.

Other. Production of videos, podcasts, and music.

Service

ACM Computing Surveys (CSUR). Reviewer. 2016.

Certifications

TOEFL. Reading: 28/30. Listening: 29/30. Speaking: 24/30. Writing: 27/30. Total: 108/120. 2013-03.

GRE. Verbal reasoning: 154/170. Quantitative reasoning: 166/170. Analytical writing: 3.5/6. 2013-09.

Oracle Certified Java Programmer. Score: 90%. 2012-06.

Events

Advanced Topics in Programming Languages. Presented several seminars about papers. 2014-09 – 2020-08 (estimated).

The Racket School 2018: Create your own language. 2018-07-09 – 2018-07-13.

24th Static Analysis Symposium. Co-author Zachary Palmer presented the paper Relative Store Fragments for Singleton Abstraction. 2017-08-30 – 2017-09-01.

The Racket School of Semantics and Languages 2017. 2017-07-10 – 2017-07-14.

The 17th Symposium on Trends in Functional Programming (TFP 2016). Co-author Alexander Rozenshteyn presented the paper What is Your Function? Static Pattern Matching on Function Behavior. 2016-06-08, 2016-06-10.

JHU ACM Meetings. Talked about Git and Racket. 2016.

IBM Programming Languages Day 2015. 2015-11-23.

The Developer’s Conference Florianópolis 2014. Talked about HTTP/2 and the future of web technologies. 2014-05.

iMasters InterCon 2013. 2013-11.

iMasters InterCon + Android 2013. 2013-09.

RubyConf Brazil 2013. 2013-08.

Coding Dojo at FAI. Co-hosted a day of activities for undergraduate Computer Science students, including a lecture about Git and a Coding Dojo. 2013-08.

7Masters. Talked about modern Java development techniques and tools. 2013-01.

Dev in Sampa 2012. 2012-05.

RubyConf Brazil 2012. 2012-08.

Coding Dojo@SP. Promoted, hosted, and participated in several Coding Dojos for the local developer community. 2012 – 2013.

GURU SP. 2012 – 2013.

Profissão Java (Java Career). 2012-08.

Conexão Java (Java Connection). 2012-05.

18º Simpósio Internacional de Iniciação Científica da Universidade de São Paulo (18th International Scientific Initiation Symposium from Universidade de São Paulo). Presented the paper Sistema de Navegação Visual Baseado em Correlação de Imagens Visando a Aplicação em Veículos Autônomos Inteligentes (Visual Navigation System Based on Image Correlation for Intelligent Autonomous Vehicles). 2010-11.

III Workshop on Computational Intelligence—WCI. Joint Conference 2010—SBIA—SBRN—JRI. Presented the paper Navegação Visual de Robôs Móveis Autônomos Baseada em Métodos de Correlação de Imagens (Visual Navigation of Autonomous Mobile Robots Based on Image Correlation Methods). 2010-10-24.

IV Workshop de Iniciação Científica e Tecnológica de Computação (WICT) (IV Scientific and Technologic Initiation Workshop). Presented the paper Pesquisa e Desenvolvimento de Robôs Móveis Autônomos com Navegação Baseada em Correlação de Imagens (Research and Development of Autonomous Mobile Robots with Image-Correlation-Based Navigation). 2010-09-22.

II Computer Science Bachelor’s Workshop from Universidade de São Paulo. Represented students in discussions with faculty about improving the structure of the Computer Science curriculum. 2009.

PHP Conference Brazil. 2006.

Courses

Improving Presentation Skills for Scientists and Engineers. Johns Hopkins University. 2018.

Writing in the Sciences. Stanford University via Coursera. 2018.

Rudiments of Music Theory and Musicianship. Johns Hopkins University. 2016.

Introduction to Ableton Live. Berklee College of Music via Coursera. 2016.

Introduction to Music Production. Berklee College of Music via Coursera. 2015.

Natural Language Processing. Columbia University via Coursera. 2013.

FJ-25—Java Advanced—Persistence with Hibernate and JPA. Caelum. 2012.

Software Engineering for Software as a Service (Part I). University of California, Berkley via Coursera. 2012.

Secure Development for Web Programmers. Universo Online (UOL). 2012.

Scrum and Agile Methodologies. Universo Online (UOL). 2012.

ITIL. Universo Online (UOL). 2012.

MC128—Introduction to Java EE. Globalcode in the open4education program. 2012.

Java Programming Intro Course. SENAI. 2006.

Tableless I. Visie. 2006.

Advanced English Course. CNA. 2004.