Hi I'm Lily
- UBC '23 Combined major in CPSC and Mathematics
- 4.0 GPA. Various awards/scholarships totalling ~$11000, including the Academic Award of Excellence for the highest graduating GPA in the program
- Former exec and cryptography mentor for the UBC CTF team Maple Bacon
- Ranked 1st in Canada 2019-2022, peaking at 7th worldwide
- 1st place at DEFCON CTF as Maple Mallard Magistrates, together with PPP and Theori
- Previously
- Cybersecurity engineer @ Jane Street (log infrastructure, detection, network security monitoring, lots of OCaml)
- Swift standard library @ Apple
- Software dev @ Canadian Centre for Cybersecurity
Feel free to contact me about opportunities to work on interesting problems at the intersection of programming languages, security, compilers, or cryptography
- Issue triaging and the bug fixing PR: swiftlang/swift-experimental-string-processing#558 swiftlang/swift-experimental-string-processing#560
- A feature PR: swiftlang/swift-experimental-string-processing#577
- CTF challenge writeups, writeups for some of the CTF challenges I've solved
- Cryptography resources, a resource for helping beginners get into cryptography
- Personal blog
I have many many silly projects
- hyperspeed (private repo for now), a computing stack built entirely from scratch: an explicitly parallel ISA with no interlocks, caches, or interrupts, a pure ML-typed dataflow language, a compiler that emits each program's exact cycle cost as a compile-time artifact, and a unikernel whose task topology is fixed at build time. The most ambitious thing I've attempted to make. Work in progress
- infernal-fpga, FPGA acceleration of Infernal's RNA covariance model search, written in
Hardcaml (OCaml)for AWS F1. A systolic array design that generates synthesizable SystemVerilog. Incomplete - rlox, a
rustbytecode compiler and VM for theLoxlanguage, optimized to roughly 2x faster across almost all benchmarks and fuzzed with cargo-fuzz - A Racket to x86 compiler (CPSC 411), a full nanopass compiler written in a team of three. Macro expansion, register allocation, closure conversion, tagged data, and heap objects
- tal-inference, type inference on an assembly subset. It kinda works.
- rop-fk, using return oriented programming to make a bf interpreter
- queens, a whole bunch of really really dumb AI players for the Amazons board game, based on this tom7 video https://www.youtube.com/watch?v=DpXy041BIlA
- rust-fractran, did you know that fractions are Turing complete? Watch me compute prime numbers using them
- blake3, an implementation of the blake3 hash function in pure java, published to Maven Central and used by Jacksum, keri-java, and riv-benchmark
- py_hash_sigs, while on a flight I implemented some hash based signature schemes, which are very cool (see SPHINCS+, now standardized from the post quantum NIST competition!)
- cryptopals, solutions for the original Matasano Cryptopals sets. Lots of fun attacks on real cryptography
- letter_boxed, a solver for https://www.nytimes.com/puzzles/letter-boxed
- sidewords, a solver for https://sidewords.ca/
- woodpecker, a compiler that lowers bitwise operations and addition onto the four instruction bit tape machine from Radical Semiconductor's woodpecker challenge
- skipper, a constant-time assembly language and compiler, written at 39c3. Work in progress
- gossip-glomers, solutions to the Fly.io distributed systems challenges in
rust. Incomplete - jlox: A
javatree walk interpreter forLox - minecraft_api, we wanted an api to connect our minecraft server messages to a discord bot, so I wrote this little
rustproject - advent, some Advent of Code solutions, a few of these got in the daily top 100 placings!
- sudoku, a little
haskellproject, just a simple backtracking sudoku solver - py_spec. You know those circular audio waveform things? I wanted a script that could generate those for me so I wrote one. It works ok
- python-bees, a
pythonimplementation of theArtificial Bee Colonyalgoirthm, which is this weird meta-heuristic algorithm based on bee foraging patterns





