Below is a selection of projects I have worked on over the past few years. Most of these were for coursework in Edinburgh and Cambridge, and because of this, I can only share the code and reports upon request.

Semantic Code Search

For the course Machine Learning for Programming at Cambridge, I proposed a neural re-ranking model to improve results of a robust baseline for semantic code search, a retrieval task where a code snippet must be found given a particular natural language query.

Re-ranking for Machine Reading

For the Machine Learning for Language Processing course at Cambridge, I explored some extensions to our (then under-review) ACL 2020 paper “Machine Reading of Historical Events.” Apart from an empirical study of different attention mechanisms, I also explored how to cast this as a ranking problem. While improvements were modest in the setting we cared about, I found that this approach gave substantial improvements in a setting were we have a chronological ordering of events, but year annotations only for some of them.

Reinforcement Learning

For the Reinforcement Learning course at Edinburgh, I applied different RL techniques to a particular robot football scenario, spanning a range of settings (discrete vs continuous states, single vs multi-agent).

Compilers and Emulators

For the Compiling Techniques course at Edinburgh, I built a C to MIPS compiler using Java. Somewhat related, I also implemented a simplified MIPS emulator.