</about>
Originally from Finland, grew up in Dubai for 16 years, moved to Melbourne in 2023. Studying Software Engineering and UX Design at the University of Melbourne. I build products from concept to launch, using a heavily AI-augmented workflow to ship polished user experiences faster than most teams. From iOS apps to agentic AI systems, my work spans the full stack. I also bring a 3D design background, creating animations and motion work for personal projects and an indie game studio, with a particular interest in data visualisation and 3D interaction on the web.
</skills>
</process>
I write code the way a real engineering team operates, just accelerated with AI. Claude Code is my primary dev environment: architecture planning, implementation, debugging, and refactoring all happen in a continuous loop. Every change gets a manual review. I read diffs, test on device, and verify behaviour before anything gets committed. I use a ticketing system to scope work into discrete tasks, track progress across sprints, and keep a clean commit history. The result is a solo developer shipping at the pace of a small team, with the discipline of one.
> typical loop
1. scope task in ticket system → define acceptance criteria
2. Claude Code → architect + implement in terminal
3. manual review → read every diff, verify logic, check edge cases
4. test on device / browser → confirm behaviour matches spec
5. commit with clean message → move ticket → next task
</hackathons>
> UNIHACK 2026 University hackathon · Melbourne · SpeechMAX (5th / 183 projects)
> DSCubed Data Science Club · multiple events · Melbourne
</experience>
> 2026 - present
FOUNDER · SENTINEL
An AI-powered news intelligence platform covering iOS, Android, and web. Built the entire product solo: architecture, backend, three frontends, and a custom scraper from scratch. Runs a full pipeline: web search, source scraping, AI analysis, claim verification, and live financial data.
→ SHA-256 cross-user cache cuts API costs 50–80% at scale
→ Self-chaining Deno edge functions bypass Supabase worker limits
→ Per-card state machine with live pipeline UX (searching → analyzing → loaded)
swift · swiftui · next.js · react-native · supabase · gemini-2.5 · custom scraper · deno
> 2026 - present
SOLO BUILD · UNISPACE
Real-time campus occupancy platform for University of Melbourne students. Live building heatmaps across 18 Parkville campus buildings, crowd reporting with noise levels, smart spot recommendations, and 24-hour predictive forecasting. Privacy-first: GPS never leaves the device.
→ Client-side geofencing via Turf.js — server never sees coordinates
→ Multi-source data fallback chain solves the cold start problem
→ 18 buildings, crowd reporting, favorites, push notifications
react 19 · typescript · vite · tailwind · mapbox · supabase · turf.js · zustand
> 2026 - present
SOLO BUILD · RIPPLE
Civic infrastructure reporting platform. Snap a photo of a pothole or broken light, on-device AI classifies it in 3 seconds, and communities vote to help councils prioritize repairs. Piloting across 5 Melbourne councils. No accounts, no personal data, all ML runs on-device.
→ TensorFlow.js + MobileNetV2 for on-device image classification
→ Community upvoting creates consensus signal for council prioritization
→ Offline-first with IndexedDB report queuing and auto-sync
react 19 · typescript · tensorflow.js · mapbox · supabase · elasticsearch
> 2026
COMPETITOR · UNIHACK + DSCUBED
Competed in UNIHACK, one of Australia's largest university hackathons, and multiple DSCubed data science events at the University of Melbourne. Built SpeechMAX (5th place out of 183 projects, 800 participants) and shipped projects under time pressure with cross-functional teams.
→ SpeechMAX: real-time AI speech coach — 5th / 183 at UNIHACK 2026
→ Rapid prototyping and scoped delivery under hackathon constraints
> 2025
FRONTEND LEAD · VOUCHR · University of Melbourne
Led frontend development for a group buying marketplace built for COMP30022 at the University of Melbourne. Designed and shipped 12 pages and 35+ components across 3 sprints, from initial scaffold to full backend integration and client handover.
→ Three.js 3D landing animation and real-time WebSocket notifications
→ Dual buyer/seller dashboard system with analytics and voucher flows
→ 15–20 base components composing into 35+ total, full Figma-to-code alignment
react · typescript · vite · tailwind · three.js · websockets
> 2024 - present
CHIEF DESIGN OFFICER · JJ MARINE · Dubai, UAE
Led a full digital overhaul for a yacht and boat dealership in Dubai. Redesigned the website with a smart database backend, built custom UI dashboards for internal operations, and integrated a chatbot and AI agent for customer support and lead qualification.
→ Expanded online presence and drove measurable revenue growth
→ Ran ad campaigns across digital channels, managing creative and targeting
→ Took the business from minimal online presence to fully operational digital storefront
ui/ux design · web design · ai agents · dashboards · digital marketing
> 2024 - present
3D ARTIST · INDIE GAME STUDIO + PERSONAL PROJECTS
Creating 3D animations and motion graphics in Blender, both for an indie game studio and personal creative work. Focused on stylised character animation, environment design, and motion work intended for web and game contexts.
→ Contributed assets and animations to active indie game project
→ Developing skills in real-time 3D and interactive experiences
→ Interested in bridging 3D design with web: Three.js, WebGL, R3F
blender · 3d modelling · animation · motion graphics
> 2022 - present
STUDENT · BSc SOFTWARE ENGINEERING & UX DESIGN
University of Melbourne
Studying at the intersection of software engineering and user interface design, with coursework spanning systems programming, UX research, interaction design, databases, and software engineering practice.
→ Completed projects in C, React, Python, and interaction design
→ UX coursework including user research, prototyping, and design systems
→ Built and delivered client-facing software as part of assessed group projects
</activity>
loading git activity...
</timeline>