Previously, I worked with Sam Tobin-Hochstadt, creating a partial evaluator for Racket's linklets.
I also participated in the Software Engineering REU program at Carnegie Mellon University in the summer of 2018. I worked on Obsidian, a domain-specific language for blockchain programs, which is designed in a user-centered way and incorporates typestate and linear types to catch certain common errors at compile time. I worked on a case study evaluation, and submitted a two-page abstract which received second place at the 2018 SPLASH Student Research Competition. One thing to note is that my work resulted in adding assets to the state level, which couldn't be included in this submission, but is included on the poster.
Additionally, I worked with Ryan Newton on adding higher order functions and polymorphism to Gibbon, a highly-optimized compiler that generates code which operates directly on serialized data.
Programming languages papers are notoriously hard to read. But that doesn't stop us from trying! Often it can be even more overwhelming when around PhD students and professors who have been studying these topics for years. I started this group because I wanted to create an environment where undergraduates interested in programming languages could learn and ask questions without pressure or fear of judgment. The group meets weekly (over pizza of course) and has a fun time figuring out these tough papers together. If you're at IU, email me and I can make sure you get added to the mailing list.
We had lots of fun.