Pr
a
ey
n
a
ey
v
Nutalapati
Home
⁄⁄
Projects
⁄⁄
Resume
⁄⁄
GitHub
⁄⁄
Software Engineer & Designer
Projects
Yarralytics
Detailed post-game performance analytics for Brawlhalla.
Website and native Rust client that automatically renders statistics as a post-game overlay. Games are processed by a distributed cluster of worker VMs coordinated through Service Bus.
Next.js
Rust
D3
Azure
CF Workers
Telestrator
Freehand illustration tool for sports/esports analysts.
A video feed is ingested through NDI, then compressed with NVENC and streamed over WebRTC to an iPad for low-latency telestration.
Rust
WebRTC
NVENC
NDI
H.264
HATEOAS but Client-Side and Offline
Fully client-side, no-build HTMX todo list.
All requests are intercepted and handled by a service worker, resulting in a fully offline HATEOAS application. Also includes a basic HTTP router implementation for the service worker.
JavaScript
HTMX
Service Workers
Stream Toolkit (Gjallarhorn)
⁄⁄
Brawlhalla Esports
Real-time system to ingest and tournament data for live production.
Consolidates data for downstream CG software (CharacterWorks, Aston, vMix). Architected to be resilient against dependent service (start.gg, internal APIs, game spectator clients) failure without downtime for the livestream.
React
Node.js
WebSockets
AWS
Brawlhalla.com Design Refresh
⁄⁄
Brawlhalla Esports
Design refresh for the Brawlhalla website.
Migrated from a Divi-powered WordPress theme to a headless WordPress CMS and a SvelteKit front-end.
Figma
SvelteKit
WordPress
AWS
Odin's Journal
⁄⁄
Brawlhalla Esports
Twitch Extension to esports viewership experience.
Displays interactive statistics, tournament bracket updates, and viewer votes in an overlay window.
React
Twitch PubSub
AWS
Figma
Code Dumper
Extracts the minimal subset of code for a given function to run, similar to Webpack’s tree shaking.
Parses Python AST and recursively builds a per-statement dependency tree.
Python
Skin Explorer
Splash art viewer for League of Legends champions.
Preserves historical splash art and tracks changes. Automatically refreshes with new content whenever a new game patch is released.
Next.js
Node.js
Redis
Reinforcement Learning Adventures
Exploration using Deep Q-Networks to play the Chrome Dinosaur Game, Connect 4, and Othello.
This was my first exposure to reinforcement learning, inspired by OpenAI's article on emergent tool use in RL agents.
Python
Keras
OpenAI Gym
Rubik's Cube RL Agents
⁄⁄
Georgia Tech
Machine Learning (CS 4641) end-of-semester project to solve a Rubik’s Cube using reinforcement learning.
Explored a variety of agents, network architectures, and hyperparameters.
Python
Keras
OpenAI Gym
Sona but it's played on a piano
Using a digital piano to play Sona (a musical champion in League of Legends).
Abilities are mapped to chords on the piano. Because both hands are preoccupied, mouse control is done using computer vision tracking a foot.
Python
OpenCV
MIDI
Reactive Stage Lighting
⁄⁄
Brawlhalla Esports
Synchronized stage lighting and animations with in-game events like KOs and player damage.
Node.js
UDP
DMX