Hi! I am an undergraduate student at the University of North Carolina at Chapel Hill, pursuing a B.S. in Computer Science.

My research interests lie in the field of natural language processing (NLP), particularly in the use of large language models (LLMs) and their pedagogical applications. Currently, I am working as a research assistant in UNC NLP’s Learning from Language Lab, where I am advised by Shashank Srivastava. I am passionate about exploring how LLMs can enhance educational experiences and improve teaching methodologies.

In addition to my research, I have a strong background in web development and entrepreneurship. I co-founded and developed Classmate, a social course scheduling platform used by more than 10,000 students at over 10 schools. I have also created other web applications that reflect my love for my community, such as uncGuessr, and my research interests, such as Waffle. I am comfortable working with various full-stack technologies, including React, Angular, Vue, Node.js, Flask, PostgreSQL, MongoDB, Firebase, and Supabase.

Outside of research and web development, I love to play sports, watch movies, and listen to music.

🔥 News

💼 Experience

📝 Publications

👨‍💻 Projects



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


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


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


  • 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

  • Winter ‘24: University of North Carolina at Chapel Hill
    • B.S. Computer Science
    • Coursework (In Progress): Data Structures and Analysis, Systems Fundamentals, Foundations of (Object-Oriented) Programming, Discrete Mathematics, Models of Languages and Computation, Algorithms and Analysis, Multivariable Calculus, Linear Algebra, Probability, Foundations of Software Engineering, Compilers, Cryptography, Computer Vision in 3D World, Introduction to Machine Learning, Practical Web Design and Development
    • GPA: 3.9
  • Summer ‘24: University of 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