Hey, I'm Ritvik!

I'm studying EE with potential minors in Engineering Entrepreneurship, Math, and South Asian Studies. I hope to build impactful, innovative, and equitable medical device technologies.

I like creating projects and doing work that have applications in my everyday life, use a little creativity, and teach me new skills.

If you're looking into embedded, robotics, medtech, or systems work, my projects are where I show what I can do. If you're just browsing, hope you enjoy some of the things I've created.

Let's connect: rellen26@seas.upenn.edu
Ritvik Ellendula

Ritvik Ellendula

Building stuff I find cool.

Move your cursor to play with the desk

Recent work

Projects I'm especially proud of

All projects
SystemsFeatured
F01
Systems·2026

C Compiler

OCaml · lexer → TACKY IR → x86-64

Built an OCaml-based C compiler lowering source programs through lexer → AST → semantic analysis → TACKY IR → x86-64 assembly, with support for lexical scoping, control flow, loops, and structured IR lowering.

  • Recursive descent parser + AST construction for nested unary ops
  • Semantic pass: symbol resolution, lexical scoping, break/continue loop labels
  • Custom TACKY IR + control-flow lowering (labels/jumps) before x86-64 codegen

Systems signal · Compiler pipeline · IR design · stack lowering · x86-64 emit

OCamlCompilersRecursive DescentTACKY IRx86-64Semantic Analysis
Machine LearningFeatured
F02
ML Systems·2026

MiniTorch-OCaml

Reverse-mode autodiff in OCaml

Built a PyTorch-inspired autodiff engine in OCaml, modeling computations as graph-based tensor operations and implementing reverse-mode differentiation through explicit graph traversal.

  • Computation graph construction with typed tensor nodes and ops
  • Reverse-mode backprop via explicit tape traversal (not magic .backward())
  • OCaml modules + gradcheck harness; roadmap toward vectorized tensor backend

Systems signal · Autodiff engine · computation graph · ML systems in OCaml

OCamlAutodiffBackpropagationComputation GraphsGradient Checking
EmbeddedFeatured
F03
Robotics·2026

BloomBot IoT

WiFi actuators · Blynk · embedded integration

IoT robotic flower on Arduino UNO R4 WiFi: Blynk remote control, multi-servo petal actuation, LCD + ultrasonic sensing, and Morse-code LED feedback in one embedded pipeline.

  • Blynk virtual pins → servo sequences over WiFiS3
  • I2C LCD status + ultrasonic proximity events alongside motion
  • Power/timing debug across concurrent actuators and wireless drops

Systems signal · Embedded IoT · actuators · sensors · wireless control loop

Arduino UNO R4 WiFiBlynkServosUltrasonicI2C LCDEmbedded C++
HardwareFeatured
F04
Hardware·2026

Lightsaber

Fusion 360 CAD · LED power · soldered integration

Handheld lightsaber build integrating Fusion 360 CAD, 3D-printed hilt/battery packaging, LED strip power routing, and switch wiring with solder joints rated for motion.

  • 3D-printed hilt, emitter, battery carrier with tolerance iteration
  • LED strip segmentation + switch path for even blade glow under load
  • Contact/solder reliability under flex — integration, not bench-only wiring

Systems signal · Hardware integration · CAD + circuits · power under motion

Fusion 3603D PrintLED StripSolderingCircuit DesignCAD

Also worth a look

More builds

Apps, tools, and experiments that still taught me a lot.

Full-Stack
S01
Full-Stack·2026

SnapFuel

Vision API → calorie JSON → user edit loop

Full-stack meal logging: photo upload → OpenAI vision JSON → user edit → Supabase persistence with log_method tracking.

Next.jsSupabaseOpenAI VisionTypeScript
Machine Learning
S02
ML + Tools·2026

LabReach AI

Lab scrape → local LLM draft → Gmail review

Python outreach pipeline: lab page scraping, Ollama local LLM drafts, SQLite history, Gmail API send-after-review.

PythonOllamaScrapingGmail APISQLite
Video
Full-Stack
S03
Signal + Web·2025–2026

Count Coach

Waveform UI · Librosa BPM · practice loops

Next.js audio tool: WaveSurfer range selection → server-side Librosa tempo inference → practice-focused UX.

Signal ProcessingNext.jsLibrosaWaveSurfer
Video
Embedded
S04
Embedded·2026

Arduino TFT Tetris

SPI TFT · bare-metal game loop · piezo SFX

Handheld Tetris on constrained MCU hardware: SPI framebuffer, tetromino engine, input debounce, and piezo tone() feedback.

ArduinoC++SPIST7735Embedded
Video
Machine Learning
S05
CV + ML·2026

Bhangra Coach

MediaPipe poses · FastAPI pipeline · Supabase

Full-stack dance feedback: Next.js upload flow, FastAPI + MediaPipe processing, Supabase storage for clips and references.

MediaPipeFastAPISupabaseComputer VisionNext.js
Video
Full-Stack
S06
Product·2026

Penn Plates

Campus dining social · Next.js + Supabase

Full-stack social dining app: Next.js frontend, Supabase auth/data, designed for Penn SPARK student usage.

Next.jsSupabaseReactPenn SPARK

What I'm usually thinking about

How can I create things that can provide utility to life? Whether its practical application or just fun usage.

Medical devicesEmbedded & roboticsSystems & compilersMachine learningDance & music