Naval Bhandari

Naval Bhandari

Software engineer in Newcastle. These are the things I've built, from a pygame tower defence in my first year at uni to whatever I shipped last month.

I like making small, useful things and the occasional silly one. When I'm not at a keyboard I'm usually on a bike, which is why this page is a stage profile.

2026 HC Personal Stage 19 of 19

Velo Lab

Film a pitch side-on on your phone and it measures your mechanics, then tells you the one change worth the most mph.

It tracks every frame with pose estimation and compares what your body did with 100 pitchers measured in a biomechanics lab. In the off-season it tests your jump, mobility and strength, builds a 12-week plan from your gaps and injury history, and Claude reviews each week with you.

Invite-only for now.

  • Node
  • MediaPipe Pose
  • Claude

2026 Cat 1 Personal Stage 18 of 19

Nudge

Chases unpaid invoices for small businesses, so you never have to send the awkward email yourself.

You add what you're owed and Nudge emails each client polite reminders on a schedule. It gets firmer the longer an invoice goes unpaid and stops the moment they pay. You can forward invoice emails to it and Claude reads them, PDFs included.

Plain Node with the built-in SQLite and no build step.

  • Node
  • SQLite
  • Claude
  • Stripe

2026 Cat 3 Personal Stage 17 of 19

CQL Search & Table Export

A Confluence Cloud app for searching with CQL, embedding live results in pages, and exporting results or page tables to Excel and CSV.

  • Atlassian Forge

2025 Cat 2 Personal Stage 16 of 19

OnceMore

Saves your Spotify Discover Weekly every Monday before it refreshes, so the good weeks don't disappear.

Link your Spotify account once, and every week it makes a private copy of your Discover Weekly playlist.

  • Spotify API

2023 Cat 2 Personal Stage 15 of 19

Free Mobile Lottery

Enter your number for a daily chance to win £5.

An experiment to see whether I could bankroll a lottery until the adverts made enough to fund it.

  • React
  • Prisma
  • Postgres

2023 Cat 3 Personal Stage 14 of 19

LinkedIn Comment Generator

A Chrome and Firefox extension that drafts comments and replies for posts on LinkedIn, Facebook, X and YouTube.

  • React
  • Browser extension
  • OpenAI

2022 Cat 4 Personal Stage 13 of 19

Wordle clone

I wanted to play more than once a day, so I spent a day making one that gives you a new word on every refresh.

  • JavaScript

2018 Cat 4 Personal Stage 11 of 19

Movie Showtimes UK

An Alexa skill. Ask "what's the next showing of a film near me?" and it tells you the time and the cinema.

It uses the FindAnyFilm API. I wanted it to use your location when you don't give one, but Amazon's developer platform couldn't emulate location at the time.

  • Node
  • Alexa

2018 Cat 3 Personal Stage 10 of 19

Crypto Price History

Compare a coin's price today with any past date, in any currency, and see exactly what you'd have gained or lost.

Mostly a way to learn more JavaScript. I couldn't find anything else that showed this simple number clearly.

  • JavaScript

2018 Cat 1 Personal Stage 9 of 19

Standalone Wear Maps

Turn-by-turn navigation that runs entirely on a Wear OS watch, from picking the destination to GPS tracking.

When I released it, Google Maps on a watch still did all the work on your phone. This was the first app I sold, and it made over £2,000.

  • Java
  • Wear OS

2015 Cat 1 University Stage 8 of 19

FreeD

A functional rendering engine in Haskell, built around a scene graph. My final-year project at Leeds.

  • Scene graph data structure
  • OpenGL 4.5
  • OBJ loading
  • Default shaders
  • Haskell
  • OpenGL

2014 Cat 3 Personal Stage 7 of 19

Space Fighter

An HTML5 side-scroller. Dodge asteroids, shoot them, grab power-ups and fight a boss every level.

Made for Adobe Generation's online games course, where it came second of about 50.

  • JavaScript
  • Canvas

2014 Cat 3 Personal Stage 6 of 19

Digi Invaders and Digi Tetris

Space Invaders and Tetris in C for the DigiPixel, an 8×8 LED shield for Arduino with a d-pad and two buttons.

The invaders come down in a zigzag, and when you die it shows your score and starts again. Tetris never quite learned how to stack.

  • C
  • Arduino

2014 Cat 2 Work Stage 5 of 19

Office dashboard

A WPF app that ran on TVs around the office, showing company stats with custom chart widgets.

Each chart could show anything from the database, and a drag-and-drop editor made it easy to rearrange.

  • C#
  • WPF

2014 Cat 4 Personal Stage 4 of 19

Idler

An Android game where you level up by leaving it open. Released on the Google Play Store.

  • Android

2014 Cat 2 University Stage 3 of 19

Little Prince

A miniature planet with a little man on it, for my computer graphics module.

Quaternions for every rotation (including an arcball camera), shadow maps, collision detection, and particle systems: two orbiting particles that bounce off the planet and each other, and snow that stacks.

  • OpenGL

2013 Cat 4 Personal Stage 2 of 19

eBay Assistant

An iOS app for aggregating eBay searches, sniping bids and notifying you when something matching your criteria turns up.

Built against the eBay sandbox API and never released.

  • Objective-C
  • iOS

2012 Cat 4 University Stage 1 of 19

Tower Defence

Hordes of men and birds attack your castle and you shoot them. My first-year Python project.

  • Python
  • pygame

Finish line

That's everything so far. If you'd like to talk about any of it, get in touch.