A collection of personal and academic projects showcasing my journey in software development, from web applications to mobile apps and games.
Completed:
Edge of Chaos (Cellular Automata Research Exhibit): August 2025 - March 2026
- • Technologies: Next.js (App Router), React, TypeScript, Tailwind CSS, Framer Motion
- • Description: An interactive research exhibit built for my senior oral presentation, exploring how complex, life-like behavior emerges from simple rules — and how the most interesting complexity occurs at the boundary between order and chaos
- • Process & Pitfalls: Built live interactive demos for 1D elementary cellular automata, Conway's Game of Life, and a lambda parameter explorer. Struggled with optimizing large grid rendering and synchronizing simulation state with user input controls. Learned to use canvas-based rendering and efficient state diffing for performance.
- • What I learned: Cellular automata algorithms, canvas rendering, complex systems theory, interactive simulation design, TypeScript, Framer Motion animations
- • Technologies: Next.js, React, TypeScript, AI/LLM integration, Tailwind CSS
- • Description: An AI-powered study planning web app built for students — upload a syllabus (PDF, Word doc, or plain text) and the AI extracts every assignment, exam, and deadline in under 60 seconds. Features a visual calendar, color-coded urgency tinting, grade-weight awareness, and zero manual data entry
- • Process & Pitfalls: Started with basic PDF parsing, struggled with unstructured syllabus formats and inconsistent date/deadline extraction. Had to fine-tune prompts to handle edge cases across different professor formatting styles. Also worked through authentication flow and keeping user data private.
- • What I learned: AI/LLM prompt engineering, document parsing, full-stack product development, user authentication, PWA setup for mobile home screen installation
- • Technologies: React, JavaScript, CSS, HTML
- • Description: A productivity app that helps users focus using the Pomodoro Technique with customizable work/break intervals
- • Process & Pitfalls: Started with basic timer logic, struggled with state management across components, learned to use useEffect for cleanup. Biggest challenge was preventing memory leaks when timers were cleared.
- • What I learned: State management, timer functionality, responsive design, component lifecycle management
- • Technologies: React, Vercel, JavaScript, CSS
- • Description: A modern, interactive portfolio website showcasing my projects and skills with smooth transitions and mobile-responsive design
- • Process & Pitfalls: Built with Next.js App Router, struggled with infinite carousel implementation, had issues with curtain animations covering content. Learned to conditionally render transition elements and implement seamless scrolling.
- • What I learned: Next.js framework, responsive design, smooth animations, infinite carousel implementation, performance optimization
- • Technologies: Ruby, Sinatra, HTML, CSS, JavaScript
- • Description: A web-based word guessing game similar to Wordle with customizable difficulty levels and real-time feedback
- • Process & Pitfalls: Started with basic Sinatra routing, struggled with game state management and word validation logic, had issues with session handling. Learned to implement proper game mechanics and user feedback systems with server-side validation.
- • What I learned: Web development with Ruby, game mechanics, session management, user interaction design, deployment on Heroku
To-Do App: April 2025 - May 2025
- • Technologies: React Native, JavaScript, Firebase
- • Description: A mobile task management app with real-time synchronization and user accounts
- • Process & Pitfalls: Started with Expo CLI, struggled with Firebase authentication setup, had issues with real-time data synchronization. Learned to handle async operations and implement proper error handling for network requests.
- • What I learned: Mobile development, database integration, user authentication, real-time data management, CRUD operations
Text Adventure Game: January 2024 - April 2024
- • Technologies: Java, JUnit
- • Description: An interactive text-based adventure game with branching storylines and character progression
- • Process & Pitfalls: Started with simple if-else statements, struggled with complex branching logic, learned to use JSON for story data. Biggest challenge was managing state across different story paths without creating spaghetti code.
- • What I learned: Game logic, file I/O, object-oriented programming, data structure design
GPA Calculator: June 2024 - July 2024
- • Technologies: Java, Swing
- • Description: A desktop application that calculates and tracks academic performance with grade point averages
- • Process & Pitfalls: Started with basic Swing components, struggled with layout management, had issues with decimal precision in calculations. Learned to use BigDecimal for accurate GPA calculations and proper form validation.
- • What I learned: GUI development, mathematical calculations, data validation, event handling
Guide Robot: January 2025 - March 2025
- • Technologies: C++, ROS 2, Python
- • Description: An autonomous robot that provides guided tours using computer vision and path planning
- • Process & Pitfalls: Started with basic ROS 2 nodes, struggled with sensor calibration and coordinate transformations, had issues with path planning algorithms. Learned to debug complex robotic systems and implement robust error handling.
- • What I learned: Robotics programming, sensor integration, navigation algorithms, system integration
Under Construction:
Snake Game
- • Technologies: Python, Pygame
- • Description: A classic Snake game implementation with modern graphics and smooth gameplay
- • Process & Pitfalls: Started with basic Pygame setup, struggling with collision detection and game loop optimization, having issues with score tracking and game state management. Learning to implement proper game architecture and performance optimization.
- • What I'm learning: Game development, collision detection, score systems, performance optimization
Pac-Man Game
- • Technologies: Java, JUnit
- • Description: A recreation of the classic Pac-Man arcade game with modern game mechanics
- • Process & Pitfalls: Started with basic sprite rendering, struggling with AI pathfinding for ghosts, having issues with collision detection and game physics. Learning to implement proper game loops and AI behavior patterns.
- • What I'm learning: Game physics, AI pathfinding, sprite animation, game loop optimization