John K. Feser

Profile picture
Email: feser at csail.mit.edu
Office: 32-G716
Github
LinkedIn
Google Scholar

I am a PhD student at MIT CSAIL, working with Armando Solar Lezama. I received my Undergraduate and Master's degrees from Rice University, where I worked with Swarat Chaudhuri.

My research interests are in automated program synthesis and performance engineering, with a focus on synthesizing high performance software that is specialized to a workload.

New Course: Programming Language Design

Check out the (still WIP!) course website!

Publications

[1] Feser, J. K., Dillig, I., and Solar-Lezama, A. Metric program synthesis for inverse CSG. CoRR abs/2206.06164 (2022). [ bib | DOI | arXiv | http ]
[2] Feser, J. K., Madden, S., Tang, N., and Solar-Lezama, A. Deductive optimization of relational data storage. Proc. ACM Program. Lang. 4, OOPSLA (2020), 170:1--170:30. [ bib | DOI | http ]
[3] Feser, J. K., Madden, S., Tang, N., and Solar-Lezama, A. Deductive optimization of relational data storage. CoRR abs/1903.03229 (2019). [ bib | arXiv | http ]
[4] Feser, J. K., Brockschmidt, M., Gaunt, A. L., and Tarlow, D. Neural functional programming. In 5th International Conference on Learning Representations, ICLR 2017, Toulon, France, April 24-26, 2017, Workshop Track Proceedings (2017), OpenReview.net. [ bib | http ]
[5] Cambronero, J., Feser, J. K., Smith, M. J., and Madden, S. Query optimization for dynamic imputation. Proc. VLDB Endow. 10, 11 (2017), 1310--1321. [ bib | DOI | .pdf ]
[6] Feser, J. K., Brockschmidt, M., Gaunt, A. L., and Tarlow, D. Neural functional programming. CoRR abs/1611.01988 (2016). [ bib | arXiv | http ]
[7] Feser, J. K., Chaudhuri, S., and Dillig, I. Synthesizing data structure transformations from input-output examples. In Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation, Portland, OR, USA, June 15-17, 2015 (2015), D. Grove and S. M. Blackburn, Eds., ACM, pp. 229--239. [ bib | DOI | http ]

Teaching

Recitation Instructor, MIT 6.033. Spring 2021, 2022. Responsible for teaching two twice-weekly sections. In each class, students discuss an influential paper from the field of computer systems. These classes make extensive use of active learning techniques to augment traditional lecture based instruction.

Kaufman Teaching Certificate Program. Spring 2022. Completed a semester-long workshop program on teaching techniques, including course design and evidence-based methods of instruction.

Course Development, MIT 6.820. Fall 2021. Developed two new problem sets for Fundamentals of Program Analysis; one problem set on verification and loop invariants and one on abstract interpretation. 6.820 is an upper level programming languages course that gives students a practical introduction to program analysis. Grading is based entirely on six problem sets that students complete during the course.

Professional Experience

Internship at Aarno Labs (Cambridge, MA). June 2018. Worked on a distributed system for neutralizing botnets in hostile networks.

Internship at Microsoft Research (Cambridge, UK). Summer 2016. Worked with Marc Brockschmidt and Daniel Tarlow on synthesizing functional programs using machine learning.

Internship at Microsoft Research (Redmond). Summer 2015. Worked with Sumit Gulwani and Rishabh Singh on a program synthesis tool for filtering log files.

Teaching assistant for Comp 382 (Fall 2015), Comp 421 (Spring 2015, Spring 2016) at Rice University.

Software

Castor: A tool for deductively synthesizing custom physical layouts for read-only databases. [repository]

ImputeDB: A database with automatic dynamic imputation of missing values. [repository]

λ2: A tool for synthesizing functional programs from input-output examples. [repository]

combinat: Fast iterators over combinatorial objects for OCaml. [repository]

ocaml-cmph: OCaml bindings for the CMPH minimal perfect hashing library. [repository]

odoc2docset: Tool for generating Dash docsets from Odoc generated documentation. [repository]