I'm a Java developer student at IT-Högskolan, focused on building clean, well-structured backend systems. I enjoy working close to the data layer — designing entities, wiring up repositories, and making sure everything talks to the database the way it should. I'm also learning different frontend possibilites on my way to becoming a full-stack developer.
- 🎓 Currently studying Java development at IT-Högskolan
- 🔧 Interested in backend development, REST APIs, and data persistence
- 🌱 Growing my skills in Spring Boot, JPA/Hibernate, and system design
- 🤝 Comfortable working in teams and contributing to collaborative projects
Languages & Frameworks
Databases
Messaging & Infrastructure
Tools & Practices
Spring Boot · React 19 · TypeScript · PostgreSQL · Fly.io · GitHub Actions
A high-performance, full-stack gym class booking application built with a focus on clean architecture, developer experience, and cloud-native deployment. Features Google OAuth2, atomic reservations, and a personal bookings dashboard.
Deployed as a single Docker unit on Fly.io with a serverless Neon Postgres backend and automated CI/CD via GitHub Actions.
🔗 boka. GitHub repo · Live deployment
Spring Boot · React 19 · TypeScript · Vite · Fly.io · Vercel
A full-stack AI chat application with a terminal-inspired UI, built on a custom Spring Boot middleware layer that bridges clients with an LLM backend. Features switchable AI personalities, per-session conversation memory, and resilient retry logic with exponential backoff.
The backend is deployed on Fly.io and the React frontend on Vercel, communicating via a single POST /api/v1/chat endpoint backed by OpenRouter.
🔗 Backend · Frontend · Live deployment
Spring Boot · OAuth2/OIDC · PostgreSQL · RabbitMQ · gRPC · Docker · Kubernetes
A microservices chat application where users converse with an LLM-backed assistant, built to explore realistic distributed-system concerns. Features secure OAuth2/OIDC flows via a Spring Authorization Server, a BFF gateway holding the session cookie, and an event-driven bot reply path over RabbitMQ using a transactional outbox pattern.
Each service owns its own database (database-per-service), conversations are isolated per user by a stable user UUID, and the whole system runs identically under Docker Compose or on Kubernetes.
🔗 Triasent
JavaFX · JPA/Hibernate · MySQL · iTunes API
A retro-inspired desktop music player built as a group project. Features a custom Click Wheel navigation interface for browsing music fetched from the iTunes Search API, stored locally for offline access.
My contributions: iTunes API client, JPA entity design, repository layer, database initialization.
🔗 myPod
- REST API design & best practices
- Spring Security
- Clean architecture & design patterns
- Frontend environments



