CV

Work Address


151 Maxwell Dworkin Hall
33 Oxford Street
Cambridge, MA 02138
namin@seas.harvard.edu

Nada Amin

Personal Address


namin@alum.mit.edu

Harvard John A. Paulson School of Engineering and Applied Sciences (SEAS)

Cambridge, MA, USA 2019 - Present
Assistant Professor of Computer Science

Internal Service

  • (2019 — 2020) Compuer Science Curriculum Committee
  • 2020 Hoopes Prize Natural Sciences Subcommittee

Conference and Journal Papers

Talks and Meetings

  • IFIP WG2.8 (Working Group on Functional Programming), Bordeaux, France, May 20 — 24, 2019
  • ‘‘Generating C from Scala’’, invited seminar at University of Leicester, Uk, October 26, 2018
  • ‘‘Generating C from Scala’’, invited seminar at University City London (UCL), Uk, October 5, 2018
  • Heidelberg Laureate Forum, per invitation of Sir Tony Hoare, Germany, September 23 — 29, 2018
  • ‘‘CLP(SMT)’’, Invited Talk at ClojuTRE, Helsinki, Finland, September 14, 2018
  • IFIP WG2.8 (Working Group on Functional Programming), Asilomar, Ca, Usa, June 10 — 15, 2018
  • NII Shonan Meeting Seminar on Meta-Programming for Statistical Machine Learning, Japan, May 21 — 25, 2018
  • IFIP WG2.16 (Working Group on Language Design), Antwerp, Belgium, May 14-18, 2018
  • ‘‘Hands-on Generative Programming: Write an Interpreter, Build a Compiler’’, Invited Talk at PLAS seminar, University of Kent, Canterbury, Uk, November 20, 2017
  • ‘‘Collapsing Towers of Interpreters’’, codemesh.io, London, Uk, November 8, 2017
  • ‘‘Collapsing Towers of Interpreters’’, Invited Talk at Meta (Workshop on Meta-Programming Techniques and Reflection), SPLASH, Vancouver, bc, Canada, October 22, 2017
  • ‘‘DOT: Scala Types in Theory and Practice’’, Scala.World, Penrith, Uk, September 18, 2017
  • ‘‘Scala: Types in Theory and Practice’’, Programming Language Mentoring Workshop (PLMW), ICFP, Oxford, Uk, September 3, 2017
  • IFIP WG2.16 (Working Group on Language Design), Park City, Ut, Usa, August 28 — September 1, 2017
  • ‘‘Generative Programming & Verification’’, Keynote at EuroClojure, Berlin, Germany, July 21, 2017
  • ‘‘Collapsing Towers of Interpreters’’, IFIP WG2.11 (Working Group on Program Generation), Koblenz, Germany, July 18, 2017
  • ‘‘Types: Safety Net & Springboard’’, Invited Talk
    • Aarhus University, Denmark, April 10, 2017
    • Microsoft Research, Cambridge, Uk, March 30, 2017
    • USI, Lugano, Switzerland, March 27, 2017
    • Microsoft Research, Redmond, Wa, Usa, March 21, 2017
    • University of Cambridge, Uk, March 16, 2017
    • Harvard University, Cambridge, Ma, Usa, March 9, 2017
    • ETH Zürich, Switzerland, March 7, 2017
    • UCLA, Los Angeles, Ca, Usa, February 28, 2017
  • ‘‘The cake and eating it: writing expressive high-level programs that generate fast low-level code at runtime’’, Kats Conf 2, Dublin, Ireland, February 18, 2017
  • ‘‘Thinking About Recursion’’ (with William Byrd), Kats Conf 2, Dublin, Ireland, February 17, 2017
  • Theory and Applications of Behavioural Types, Dagstuhl Seminar 17051, Germany, January 29 — February 3, 2017
  • ‘‘LMS-Verify: Abstraction Without Regret for Verified Systems Programming’’, POPL, Paris, France, January 20, 2017
  • Panel of Young Researchers, Programming Language Mentoring Workshop (PLMW), POPL, Paris, France, January 17, 2017
  • ‘‘Type Soundness for Dependent Object Types (DOT)’’, OOPSLA, Amsterdam, Netherlands, November 3, 2016
  • Panel of Young Researchers, Programming Language Mentoring Workshop (PLMW), SPLASH, Amsterdam, Netherlands, November 1, 2016
  • ‘‘Generative Programming: from High-Performance to Safety-Critical Applications’’, Invited Talk at Mobile!, Amsterdam, Netherlands, October 31, 2016
  • ‘‘LMS: Generative Programming in Scala’’, EPFL - Novi Sad SCOPES meeting, Lausanne, Switzerland, June 29, 2016
  • ‘‘The DOT Calculus’’, ECOOP PC Workshop, Brown University, Providence, Ri, Usa, February 28, 2016
  • IFIP WG2.16 (Working Group on Language Design), UCLA, Los Angeles, Ca, Usa, January 25 — 29, 2016
  • ‘‘LMS: a Perspective on Generative Programming’’, Invited Talk at PEPM, St Petersburg, Fl, Usa, January 18, 2016
  • ‘‘Programming should eat itself’’, Keynote at Strange Loop, St Louis, Mo, Usa, September 19, 2014 (code)
  • ‘‘Batteries Included: Generative Programming with Scala and LMS’’ (with Tiark Rompf), Tutorial at CUFP, Gothenburg, Sweden, September 5, 2014
  • ‘‘Implicits in Practice’’ (with Tiark Rompf), Demo at ML Family Workshop, Gothenburg, Sweden, September 4, 2014
  • ‘‘The DOT Calculus’’, Scala Days, Berlin, Germany, June 18, 2014
  • ‘‘Patterns for Generative Programming’’, EcoCloud Annual Event, Lausanne, Switzerland, June 6, 2014
  • NII Shonan Meeting Seminar on Staging and High-Performance Computing, Japan, May 26 — 30, 2014
  • ‘‘The DOT Calculus’’, flatMap(Oslo), Norway, May 12, 2014
  • ‘‘Mind the Gap’’ (with Tiark Rompf), OBT'14, San Diego, Ca, Usa, January 25, 2014
  • ‘‘Meta-Programming in Logic Programming’’ (with William Byrd), codemesh.io, London, Uk, December 5, 2013 (code)
  • ‘‘From Greek to Clojure!’’ (with William Byrd), Clojure/conj, Alexandria, Va, Usa, November 14, 2013 (code)
  • ‘‘Program Transformations’’ (with William Byrd), Hacker School (Recurse Center), New York, Ny, Usa, July 22, 2013
  • ‘‘Staging: Runtime code generation for ‘abstraction without regret’’’, Hacker School (Recurse Center), New York, Ny, Usa, July 15, 2013
  • ‘‘Program Transformations’’ (with William Byrd), LambdaJam, Chicago, Il, Usa, July 9, 2013 (code)
  • ‘‘How to write your next POPL paper in Dafny’’, Microsoft Research, Redmond, Wa, Usa, July 2, 2013 (code)
  • ‘‘Lightweight Modular Staging’’ (with Tiark Rompf et al.), Tutorial at PLDI, Seattle, Wa, Usa, June 16, 2013
  • ‘‘core.logic.nominal’’, miniKanren Confo (associated with Clojure/West), Portland, Or, Usa, March 19, 2013 (code)
  • ‘‘Dependent Object Types’’, FOOL, Tucson, Az, USA, October 22, 2012
  • Participant at the Oregon Programming Languages Summer School (OPLSS), Eugene, Or, Usa, July 16-28, 2012
  • ‘‘JavaScript as an Embedded DSL’’, ECOOP, Beijing, China, June 15, 2012
  • ‘‘JavaScript as an Embedded DSL’’, Scala Days, London, Uk, April 17, 2012

Professional Service

Program Committee Member

  • POPL 2021 • <Programming> 2021 • John C. Reynolds Doctoral Dissertation Award 2020 (Selection Committee) • <Programming> Student Research Competition 2020 • CPP 2020 • PEPM 2020 • Meta 2019 • OOPSLA Student Research Competition 2019 • miniKanren 2019 (co-chair) • OOPSLA 2019 • ESOP 2019 • OBT 2019 • Scala 2018 • Onward! 2018 Papers • ASE 2018 PLDI Student Research Competition 2018 • ICOOOLPS 2018 • ECOOP 2018 • PEPM 2018 • POPL 2018 • GPCE 2017 (guest editor on special issue) • DSLDI 2017 • PPDP 2017 • DBPL 2017 • TyDe 2017 • Scheme 2017 (general chair) • SPLASH Workshops 2017 • FTfJP 2017 • Scala 2016 • ML 2016 • TFP 2016 • ECOOP 2016 • OBT 2016 • WGP 2014 • Scheme 2013

Reviewer

  • OOPSLA 2021 (ERC) • ICFP 2018 (ERC) • PLDI 2018 (ERC) • PLDI 2017 (ERC) • POPL 2017 (ERC) • ICFP 2015 • GPCE 2014 • ICFP 2014 • PPDP 2014 • GPCE 2013 • TFP 2013

Education

Ecole Polytechnique Fédérale de Lausanne (l'EPFL)

Lausanne, VD, Switzerland, 2011 - 2016

  • Doctoral Program in Computer, Communication and Information Sciences
    Thesis: Dependent Object Types
  • Coursework includes
    • Foundations of Software [Scala]
    • Synthesis, Analysis, Verification [Scala]
  • Teaching assistant for Functional Programming Principles in Scala (2012, 2013, 2014)Principles of Reactive Programming (2013)
  • Teaching assistant for Programming I in Environmental Sciences & Engineering (2013), in Microengineering and in Electrical & Electronics Engineering (2015)
  • ‘‘Teaching Assistant Team Award’’ for Programming I (2015)

Massachusetts Institute of Technology (MIT)

Cambridge, MA, USA, Fall 2001 - Fall 2008

  • Master of Engineering in Electrical Engineering & Computer Science, December '08
    Thesis: Computer-Aided Design for Multilayer Microfluidic Chips
  • Bachelor of Science in Computer Science & Engineering with Music Minor, May '08 — advised by Prof. M. Frans Kaashoek
  • Coursework included
    • Computer System Architecture [AssemblyC++] (G)
    • Large-scale Symbolic Systems [SchemeCommon Lisp] (G+)
    • Advanced Algorithms (G)
    • Multithreaded Parallelism: Languages and Compilers [Haskell] (G~)
    • Computational Biology [Python] (G~)
    • Classical Mechanics: A Computational Approach [Scheme] (G)
    • Audio Processing by People and Machines [Csound] (G)
    • Fundamentals of Probability (G)
    • Laboratory in Software Engineering [Java]
    • Computer Systems Engineering
    • Microcomputer Project Laboratory [Assembly]
    • Signals & Systems [Matlab]
    • Introduction to Algorithms
    • Mathematics for Computer Science
    • Circuits & Electronics
    • Structure & Interpretation of Computer Programs [Scheme]
    • Information & Entropy
    • Introduction to Western Music
    • Harmony & Counterpoint I & II
    • MIT Concert Choir
    • American Music (~)
    • Film Music
    • Modern Fiction
    • Introduction to Linguistics (+)
  • Lab assistant & tutor for 6.001 Structure & Interpretation of Computer Programs (2004, 2005, 2006)
  • Tutor for 6.046 Introduction to Algorithms (2005)
  • 6.170 Letter of Commendation awarded by Prof. Michael Ernst for outstanding performance in the ‘‘Laboratory in Software Engineering’’ class (2005)

Ecole Polytechnique Fédérale de Lausanne (l'EPFL)

Lausanne, VD, Switzerland, Spring 2004 & Spring 2007

  • Teaching assistant for Prof. Wulfram Gerstner's master-level machine learning course
  • Independent studies as a free-moving students
  • Coursework included
    • Artificial Intelligence [Common Lisp]
    • Natural Language Processing [C++]
    • Artificial Neural Networks [CPython]
    • Bio-Inspired Adaptive Machines [CPython]
    • Bioinformatics
    • Modern Abstract Algebra
    • Linear Algebra
    • Economics

Ecole Polytechnique (l'X)

Palaiseau, France, Fall 2003

  • Foreign exchange student
  • Coursework included
    • Computer Architecture
    • Automata, Computability, and Complexity
    • Programming Languages [OCaml]
    • Computer Graphics [C++]
  • Part of the school's all-girls basketball team

Collège Rousseau

Geneva, GE, Switzerland, August 1997 - June 2001

  • Maturité cantonale et fédérale mention ‘‘bien’’

Experience (Academia)

Department of Computer Science & Technology, University of Cambridge

Cambridge, Uk, 2017 - 2019

  • University Lecturer in Programming Languages
  • Fellow of Jesus College
  • Research interests include metaprogramming, neuro-symbolic reasoning, verification and applications to machine learning, biology and performing arts
  • Teaching includes metaprogramming, advanced functional programming, semantics of programming languages
  • Recipient with Baris Kasikci of the first Michigan Cambridge Research Initiative Grant (May 2018).

Software Technology Group, TU Darmstadt

Darmstadt, Germany, 2017

  • Research with Prof. Mira Mezini as a Post-Doctoral Researcher

Programming Methods Laboratory, LAMP, EPFL

Lausanne, VD, Switzerland, 2011 - 2017

  • Research in Programming Languages with Prof. Martin Odersky
  • Doctoral Assistant, then Post-Doctoral Researcher
  • Team projects include:
  • Side projects include:
    • inc — a study of the paper, an incremental approach to compiler construction
    • CLP(Set) in miniKanren — a study of the paper, sets and constraint logic programming
    • logically — exploration in relational programming and Prolog
    • io.livecode.ch — turning Github repositories into live web pages
  • Proof assistants and verifiers:
    • Extensive use of CoqDafnyFrama-C and Twelf
    • Found and fixed a soundness hole in Twelf +

RiSE, Microsoft Research

Redmond, WA, USA, June 24, 2013 - July 5, 2013

  • Visiting Research Scholar, invited by Dr. K. Rustan M. Leino
  • Tweaked Dafny as a proof assistant for meta-theory of programming languages

Computer Architecture Group, Computer Science & Artificial Intelligence Laboratory

Cambridge, MA, USA, Fall 2006 - Fall 2008

  • Research in Design Automation for Programmable Microfluidic Chips with Prof. Saman Amarasinghe
  • Developed a plug-in to AutoCAD mainly in F#

Computational Molecular Biology, Max-Planck Institute for Molecular Genetics

Berlin, Germany, Summer 2003 & January 2004

  • Research in Computational Biology with Prof. Martin Vingron
  • Developed a 3D viewer for phylogenetic trees in Python, starting with VPython, to visualize duplications & speciations in time

Supercomputing Technologies Group, Laboratory for Computer Science

Cambridge, MA, USA, Summer 2002 & Fall 2002

  • Research in Computer Systems with Prof. Charles E. Leiserson
  • Improved a high-resolution virtual timer for Linux, modifying the kernel in C

Ideker Lab, Whitehead Institute for Biomedical Research

Cambridge, MA, USA, Fall 2001 & Spring 2002

  • Research in Computational Biology with Dr. Trey Ideker
  • Investigated the relationship between physical & genetic interactions
  • Developed software in C++ & Java to filter biological networks

Experience (Industry)

Google

Zürich, Switzerland, 2009 - 2011

  • Gmail Software Engineer
  • Projects included
    • Compiler infrastructure supporting Gmail and Google Apps
    • Tools to diagnose Gmail's latency
    • Reducing server-side latency of sending emails
    • Reducing client-side latency of initial loading
    • Reducing lockouts of legitimate Gmail users
    • Prototyping a Wave / Gmail integration lab, launched internally
  • Code in JavaJavaScriptPythonSawzallDremelAwk & shell scripts
  • Awarded a Peer Bonus for enabling usage of Gmail's CSS compiler for Android projects
  • Part of the performance team that reduced stylesheet compilation from 5% of total cluster CPU time of Gmail to negligible
  • Trained on the Gmail release cycle, finding a bug initially classified as a cosmic ray

Google

Zürich, Switzerland, Summer 2008

  • Intern Software Engineer
  • Improved type inference and checking in a JavaScript-to-JavaScript compiler performing static analysis, code optimization and code compression
  • Awarded a Peer Bonus for "benefiting numerous projects including all of Google Apps"
  • See the Closure Compiler, opensourced in November 2009

Microsoft

Redmond, WA, USA, Summer 2006

  • Intern Software Development Engineer
  • Extended Visual Studio in C# to enable a RAD (Rapid-Application Development) experience for data-driven WCF (Windows Communication Foundation) clients

Lombard Odier Darier Hentsch (Private Bankers)

Geneva, Switzerland, Summer 2004

  • Intern in IT Architecture
  • Developed a solution to authenticate network devices with disconnected smartcard readers in C++ according to the RADIUS standard

ArsDigita Foundation

Cambridge, MA, USA, Summer 2000

  • Built & maintained database-backed websites using Oracle's RDBMS with Philip Greenspun
  • Instructed software engineers on web services
  • Toured California as part of a non-profit organization to match pet lovers with abandoned pets
  • First runner-up in ArsDigita Prize 1999 for Metis Service