Education

  • Indiana University (IU), Bloomington, Indiana. Advisor: Ryan Newton. 2015–2020. M.S. in Computer Science with Logic minor.
    • Teaching assistant, CSCI-P 523: Programming Language Implementation, compilers course at Indiana University, Fall 2016.
  • University of Kansas (KU), Lawrence, Kansas. Advisor: Andy Gill. Class of 2015. B.S. in Computer Science with Mathematics minor. GPA 3.9/4.0.
    • Co-chair of KU Competitive Programming Group, 2013–2015.

Work experience

  • Galois, Inc., Arlington, VA. August 2020–present. Software engineer and researcher.
    • Intern, Portland, OR. Summer 2017. Worked on a symbolic simulation engine written in Haskell.
  • Intel Labs, Hillsboro, OR. Winter 2015. Worked on preparing the Intel Haskell Research Compiler (HRC) for an open source release.

Publications

Professional activities

Talks

2023

2019

  • Generic and Flexible Defaults for Verified, Law-Abiding Type-Class Instances. Haskell’19, Berlin, Germany. August 22, 2019. [ pdf ] [ youtube ]
    • The verified-classes Library: Big Proofs, Little Tedium. Midwest PL Summit, West Lafayette, IN. September 23, 2019. [ pdf ] [ youtube ]
  • Visible Dependent Quantification (VDQ). Haskell Implementors Workshop 2019, Berlin, Germany, August 23, 2019. [ pdf ] [ youtube ]

2018

  • The Curious case of Pattern-Match Coverage Checking. MuniHac 2018, Unterföhring, Germany. November 16, 2018. [ pdf ] [ youtube ]
  • DerivingVia; or, How to Turn Hand-Written Instances into an Anti-Pattern. Haskell’18, St. Louis, MO. September 28, 2018. [ pdf ] [ youtube ]
    • Haskell’18 practice talk. PL Wonks, Bloomington, IN. September 7, 2018. [ pdf ]
    • PLClub, Philadelphia, PA. June 8, 2018. [ pdf ]
  • Generalized Abstract GHC.Generics. Haskell Implementors Workshop 2018, St. Louis, MO. September 23, 2018. [ pdf ] [ code ] [ youtube ]
  • Liquid Haskell: Refined, reflective, and classy. PL Wonks, Bloomington, IN. September 1, 2018. [ pdf ] [ youtube ]

2017

  • Livin’ la via loca: Coercing Types with Class. Midwest PL Summit, Bloomington, IN. December 1, 2017. [ pdf ]
  • Monadic Composition for Deterministic, Parallel Batch Processing. OOPSLA’17, Vancouver, BC, Canada. October 26, 2017. [ pdf ] [ youtube ]
    • OOPSLA’17 practice talk. PL Wonks, Bloomington, IN. October 13, 2017. [ pdf ]
  • Type Theorists HATE Him! Learn this ONE WEIRD TRICK to fake dependent types in a language that doesn’t support them. PL Wonks, Bloomington, IN. September 1, 2017. [ pdf ] [ youtube ]
  • Detflow: towards deterministic workflows on your favorite OS. PL Wonks, Bloomington, IN. March 24, 2017. [ pdf ]

2016

2015

Blog posts

Portfolio

  • Glasgow Haskell Compiler (GHC) (contributor). The flagship compiler for the Haskell programming language. Contributed to GHC’s support for metaprogramming, including deriving and Template Haskell.
  • blank-canvas (co-maintainer). A Haskell binding to the HTML5 <canvas> API, which allows for graphical web applications to be written in Haskell.
  • HERMIT (contributor and tester). An interactive Haskell compiler plugin that allows a user to apply code rewrites to make the process of high-assurance software development easier. HERMIT applies several semi-formal modeling techniques such as the worker/wrapper transformation.

Software skills

  • Proficient in Haskell, C, and Java. Familiar with Android, C++, JavaScript, Liquid Haskell, Standard ML, and Scala.