Hi! I am an incoming graduate student at Yale University, pursuing a M.S. in Computer Science.

My interest lies in leveraging natural language processing (NLP) to improve question answering systems and the analysis of textual data. I am particularly interested in exploring how large language models (LLMs) can enhance educational experiences and facilitate knowledge acquisition, as well as provide valuable insights from financial documents and legal reports.

I am also passionate about web development and have experience with various full-stack technologies. My applications have amassed 30k+ users.

Outside of CS, I love to play sports, watch movies, and listen to music.

🔥 News

  • 04/24: Interning at DUMAC (Duke Management Company) this summer
  • 03/24: Attending Yale in the fall
  • 12/24: Check out INTERACT on arXiv
  • 09/24: Nominated Phi Beta Kappa (ΦΒΚ)

💼 Experience

📝 Publications

👨‍💻 Projects

sym

Classmate

  • Schedule classes with friends
  • Helping over 30k students at over 10 schools
  • Built with React, Firebase, Mixpanel
sym

Waffle

  • Chat with YouTube videos
  • PennApps 2023 w/ Arvindh Manian, Billy Pan
  • Built with LangChain, Whisper (OpenAI), FastAPI
sym

Verdit

  • Use AI to evaluate your AITA stories.
  • Built with React, Together.ai
sym

uncGuessr

  • Guess where photos were taken at UNC
  • Built with Angular, MongoDB, Express.js
sym

Tunetones

  • Create album cover color palettes
  • Built with Vue
  • Spotifind: Generate ML music recommendations - Vectorize feature sets of playlists created using TF-IDF and OHE then find similar songs using the KNN algorithm - Built with Scikit-Learn
  • Twitiment: Analyze the sentiment of tweets using NLP - Analyze the sentiment of tweets using VADER and RoBERTa NLP models, as well a DistilBERT Hugging Face Pipeline - Built with NLTK, Hugging Face
  • Wikipath: Find (the shortest) paths between Wikipedia articles using bidirectional search - Built with Flask, PyVis
  • Digitect: Teach a computer to read handwriting - Use the MNIST dataset to train a homemade neural network to recognize digits - Built with NumPy
  • Fractastic: Create Markovian Lindenmayer systems - Combine L-systems and Markov chains to produce stochastic fractals - Built with p5.js
  • Flowscape: Simulate fluid movement with Perlin noise on vector fields - Built with p5.js
  • Enigma: A basic model of an Enigma machine with plugboard, starting position, and ring functionality
  • Vigenere: A Vigenere cipher with two decryption tools: a brute-force dictionary attack, and a kasiski examination which uses n-gram character repetitions in large text samples to conduct frequency analysis

📚 Education

  • Spring ‘26: Yale University
    • M.S. Computer Science
  • Spring ‘25: University of North Carolina at Chapel Hill
    • B.S. Computer Science
    • Highest Distinction, Phi Beta Kappa
    • GPA: 3.9
  • Summer ‘24: DIS Copenhagen
    • Study Abroad
    • Coursework: Computer Organization (and Architecture)
  • Spring ‘22: Providence High School
    • High School Diploma
    • Dual Enrolled at Central Piedmont Community College
    • GPA: 4.7