Browser-based eye-tracking application with a React frontend and Django backend that helps sports coaches analyze how athletes visually process game footage. The platform combines AI-driven gaze detection with video playback to determine which elements players focus on at specific moments. Coaches can define high-priority areas of interest (such as key players, ball movement zones, or tactical regions on the field) and evaluate athletes based on the visual attention dedicated to those areas over time. I focused primarily on the frontend, implementing video playback overlays, gaze visualizations, and data-driven dashboards, and I wrote unit tests to ensure core UI components and visualizations integrated reliably with backend analytics. This project provided hands-on experience in AI-powered sports analytics, frontend development, and quality assurance while delivering a tool that bridges cutting-edge technology with real-world athletic performance analysis.
Mobile application inspired by the classic Snake game, where players control their snake by physically walking around in the real world using their phone. Built with React Native (Expo) for Android/iOS, with a TypeScript and Express backend to track player locations, manage points, and synchronize game state via WebSockets. Integrated Google OAuth2 for secure player authentication and session management. My primary responsibilities included implementing the mobile frontend and Google OAuth integration, as well as creating and implementing game logic. Collaborated closely with a three-person team, participating in weekly meetings for discussion and peer programming.
A background service that monitors the MangaDex API for new chapters of Berserk. Every hour it fetches the most recent chapter (title and link), compares it to the previously recorded chapter, and posts a notification to a specified Discord channel when a new chapter is detected. The bot is configurable for the target channel and polling interval and sends a concise message containing the chapter title and a direct link.