- Teaching Experience
- Work Experience
Incomplete PhD. Johns Hopkins University. Computer Science. 2014-09 – 2020-07.
- Ended without a degree due to a combination of life circumstances: end of funding, the pandemic, parental leave, moving abroad, and so forth.
- Part of the Programming Languages Laboratory.
- Advised by Dr. Scott Smith.
- Did research in the field of program analysis, developing new techniques for control-flow analysis of higher-order functions.
- Goal as a researcher: to communicate technical ideas clearly to software developers in industry, avoiding jargon, obscure notation, and unnecessary complexity.
- See publications.
- See partially completed dissertation.
- Did a qualifying project in the field of cryptography advised by Dr. Matthew D. Green and Dr. J. Ayo Akinyele.
- Was the system administrator for the laboratory for 5 years.
- Took courses on programming-language theory, logic, software engineering, cryptography, natural language processing, databases, and presentation skills. As extra-curricular activity, also took courses on music theory and meditation.
- Was supported during the first 4 years by a fellowship from the Brazilian Government (CAPES). Process number: 13477/13-7.
Master’s Degree. Johns Hopkins University. Computer Science. 2014-09 – 2016-10.
- Part of the PhD program.
Bachelor’s Degree. Universidade de São Paulo. Computer Science. 2008-02 – 2012-09.
- Did research in the field of robotics and autonomous vehicles, developing an algorithm for visual navigation. Funded by a scholarship of the Brazilian Government (INCT-SEC) as part of a Scientific Initiation program.
- Graduated ahead of time, completing a 5-year course in 4 1/2 years.
- As extra-curricular activity, played the drums in a group similar to a Escola de Samba.
Instructor. Johns Hopkins University. Object-Oriented Software Engineering. 2019-08 – 2019-12.
- Updated the curriculum and developed new material.
- Recorded a series of video lectures.
- Goal as an educator: to build students’ confidence.
- One of the biggest courses in the department, with 85 students.
- Project-based course, involving lectures, assignments, a quiz, laboratory sessions, and project presentations.
- Managed a team of 15 course assistants.
- Developed a robot to assist on administrative processes, including grading, collecting course feedback, and so forth.
- See course reviews. Students rated the course around the department average, and some said it was the best course they took.
- Students did several things for extra credit, from contributing to open-source projects to singing songs.
Teaching Assistant. Johns Hopkins University. Object-Oriented Software Engineering and Principles of Programming Languages. 2015-09 – 2020-05 (estimated).
- Received the Whiting School of Engineering’s Professor Joel Dean Excellence in Teaching Award.
- Prepared course material, lectured, prepared and graded exams and assignments, managed teams of course assistants, advised semester-long group projects, and held office hours.
- Example of assignment: Handout and live version.
- Example of course material: A to-do application that was used in several lectures: source code and live version.
Raise Sistemas. Software Developer. 2014-02 – 2014-08.
- Raise Sistemas is a product start-up.
- Worked on a medium-sized application in Ruby on Rails used by thousands of customers.
- Improved the performance of a subsystem for importing users by a factor of 30x.
- Was part of an agile team that did regular code-reviews, continuous integration, and continuous delivery.
- Worked remotely while traveling.
- Had to leave Raise Sistemas after only six months due to start of PhD program.
DasDad. Software Developer. 2013-02 – 2013-12.
- DasDad was a product start-up. Unfortunately the angel investor behind it folded and the product was never released.
- Contributed to a frontend application in Ruby on Rails and to backend services in Ruby and Java.
- The applications used natural language processing and artificial intelligence for recommendation, summarization, and sentiment analysis.
- Worked on infrastructure, implementing systems for continuous integration and continuous delivery.
- Helped to manage outreach activities for the local programming community including hackathons and coding dojos.
Universo Online (UOL). Software Developer. 2012-03 – 2013-02.
- UOL is the biggest internet publishing company in Brazil.
- Developed and maintained web products in Java EE used by millions of people.
- Improved the frontend development process by introducing new technologies and building internal tools.
Daitan Group. Software Developer Intern. 2011-07 – 2012-02.
- Daitan Group is an outsourcing company for telecom applications.
- Worked directly with customers from the Silicon Valley.
- Developed a web service in Java EE for a telecom platform, and a web administration tool in PHP for a video conferencing system.
- Taught a course about version control with Git.
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.
Whiting School of Engineering’s Professor Joel Dean Excellence in Teaching Award. 2019-05-06.
Kill the Newsletter! Convert email newsletters into Atom feeds. Featured on Lifehacker, Hacker News, Product Hunt, and several blogs around the world.
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 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.
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.
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.
ACM Computing Surveys (CSUR). Reviewer. 2016.
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.
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.
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.