64 technologies
Tech stack
Grouped by what it is for, not by how impressive it sounds. Each row names the project it was shipped in; the few that name none came from coursework or an internship instead, and are marked as such.
By purpose
Six areas. Most of what is here is backed by a shipped project rather than a course exercise, and the rest is labelled honestly.
Languages
What I actually write day to day.
- TypeScriptThe Block, Uni-Rate
- JavaScriptNeon Highway, Hasidic Tower
- C#The Block
- PythonTable Tennis Analyzer, Teaching a Robot to Walk
- JavaCoursework / work
- CCoursework / work
- SQLCoursework / work
- HTMLCoursework / work
- CSS / SCSSCoursework / work
- GLSLCoursework / work
Real-time 3D & games
Engines, renderers and physics used to ship playable builds.
- Unity 6The Block
- Three.jsThe Block, Neon Highway
- WebGLNeon Highway
- Rapier physicsThe Block
- Canvas 2DHasidic Tower
- glTF / GLBNeon Highway
- BlenderThe Block
- Web Audio APINeon Highway, Hasidic Tower
- WebAssemblyHasidic Tower
Web & full stack
Frameworks and services behind the production sites.
- Next.js 16Uni-Rate
- React 19Uni-Rate
- App RouterCoursework / work
- Tailwind CSSCoursework / work
- SCSS ModulesUni-Rate
- Node.jsCoursework / work
- .NETCoursework / work
- ViteThe Block
- REST APIsCoursework / work
- Server-Sent EventsCoursework / work
Data & backend
Persistence, auth and the services around them.
- PostgreSQLUni-Rate
- PrismaUni-Rate
- SupabaseThe Block
- SQLiteCoursework / work
- OAuth 2.0Coursework / work
- JWT / joseUni-Rate
- ResendUni-Rate
AI & computer vision
Models and pipelines I have trained, hosted or called in anger.
- YOLOv8Table Tennis Analyzer
- UltralyticsTable Tennis Analyzer
- OpenCVTable Tennis Analyzer
- EasyOCRTable Tennis Analyzer
- MediaPipeHasidic Tower
- RoboflowTable Tennis Analyzer
- PyTorchTeaching a Robot to Walk
- Stable-Baselines3Teaching a Robot to Walk
- GymnasiumTeaching a Robot to Walk
- MuJoCoTeaching a Robot to Walk
- Reinforcement learningCoursework / work
- Genetic algorithmsCoursework / work
- Neural networksCoursework / work
- NumPyTeaching a Robot to Walk
- MatplotlibTable Tennis Analyzer, Teaching a Robot to Walk
- Gemini APIUni-Rate
- MCPCoursework / work
Tooling & delivery
How the work gets built, checked and shipped.
- GitCoursework / work
- GitHubCoursework / work
- VercelThe Block, Uni-Rate, Neon Highway, Hasidic Tower
- ESLintCoursework / work
- PrettierCoursework / work
- VitestCoursework / work
- PlaywrightCoursework / work
- API testingCoursework / work
- LinuxCoursework / work
- BashCoursework / work
- Claude CodeCoursework / work
Everything, alphabetically
- .NET
- API testing
- App Router
- Bash
- Blender
- C
- C#
- CSS / SCSS
- Canvas 2D
- Claude Code
- ESLint
- EasyOCR
- GLSL
- Gemini API
- Genetic algorithms
- Git
- GitHub
- Gymnasium
- HTML
- JWT / jose
- Java
- JavaScript
- Linux
- MCP
- Matplotlib
- MediaPipe
- MuJoCo
- Neural networks
- Next.js 16
- Node.js
- NumPy
- OAuth 2.0
- OpenCV
- Playwright
- PostgreSQL
- Prettier
- Prisma
- PyTorch
- Python
- REST APIs
- Rapier physics
- React 19
- Reinforcement learning
- Resend
- Roboflow
- SCSS Modules
- SQL
- SQLite
- Server-Sent Events
- Stable-Baselines3
- Supabase
- Tailwind CSS
- Three.js
- TypeScript
- Ultralytics
- Unity 6
- Vercel
- Vite
- Vitest
- Web Audio API
- WebAssembly
- WebGL
- YOLOv8
- glTF / GLB