More About Me

I'm a second-year at UCLA majoring in computer science and minoring in philosophy. My research interests include functional programming, programming language design, formal verification, and compilers.

I also love software engineering—I enjoy developing with technologies such as modern TypeScript (React), modern C++, OCaml, Haskell, and Clojure.

Open Source

I am a big advocate of open-source software and the free software philosophy. To that end, I am an avid contributor to open-source projects I use (see my GitHub for contribution activity), and I am also an open-source maintainer, with my most notable open-source project being iswap.nvim, an interactive refactoring tool for the Neovim text editor.

In my second year at UCLA, I was also the maintainer of the UCLA ACM TeachLA Editor, an open-source, full-stack kid-friendly text editor used by ACM TeachLA to teach kids how to program!

Yeah. I'm just really into text editors, it seems :)

My Setup

I have been asked by multiple people to share my setup.


I use a 2021 MacBook Pro running Sonoma, a 4K Dell U2723QE monitor, a custom TKD Cycle7 (cream with gold accents) mechanical keyboard with Vertex V1s and GMK Olive. I use some random mouse I found somewhere; I am looking for mouse recommendations.


I use Neovim tracking HEAD, with the Neovide GUI. My window manager is Yabai and I use skhd. My top bar is SketchyBar and I use gradient borders with JankyBorders. My shell of choice is zsh and I use my own fork of Kitty as my terminal emulator. I use Firefox ESR as my main browser and Skim as my PDF viewer. Here are my dotfiles. My setup is in such a way that I can do my tasks without thinking; this includes usage of my custom tab switcher.

Reach Out!

I'd love to talk with you about anything! Reach me at michaellan AT ucla DOT edu. It might take a few days for me to respond.