Here you can find selected projects and external links.

Krarup Hansen & Co. Website
Data-driven architecture studio site with filtering, SEO, and Java backend.
This project is a custom website platform for Krarup Hansen & Co., built to present architectural work in a structured and accessible way. It combines static content and JSON-based project data with a Java/Javalin server, making the site easier to maintain while keeping performance and routing under control.
What the project includes#
- A Java 17 + Javalin backend that serves pages, handles custom routes, and maps image/static assets from bundled resources.
- A data-driven project system based on projects.json, including category filtering, search, sorting, project detail pages, and featured project sections.
- SEO-focused implementation across pages, including canonical links, Open Graph tags, structured data (JSON-LD), plus sitemap.xml and robots.txt.
Result#
The outcome is a maintainable production website with a clear content structure and improved discoverability, allowing the studio to present a large portfolio in a usable and search-friendly format.

Data vs. Narrative: WC 2022
BI and ML analysis of Messi vs. Mbappé at the 2022 World Cup.
This project investigates whether Lionel Messi’s 2022 World Cup Player of the Tournament award can be explained by offensive performance data alone. It compares Messi and Kylian Mbappé using per-90 normalization, engineered features, weighted scoring, clustering, and model validation.
There is no public deployment for this work; the full notebook, Streamlit app, pipeline, and data live in the GitHub repository.
What the project includes#
- A reproducible Python pipeline that filters players, merges World Cup CSV datasets, engineers V4 offensive features, and calculates weighted player scores.
- Analytical notebooks using EDA, KMeans clustering, Random Forest regression/classification, feature importance, and robustness checks with ARI and Monte Carlo weight perturbation.
- A Streamlit dashboard for exploring top players, score decomposition, cluster membership, and direct Messi vs. Mbappé comparisons.
Result#
The analysis produced a structured BI workflow showing how offensive data can support or challenge football narratives, with Mbappé ranking highly on the project’s offensive metrics while Messi and Mbappé remain comparable elite profiles in the clustering analysis.

Cook & Recipe Frontend
React frontend for browsing recipes with login and role-based admin tools.
Cook & Recipe is a Vite + React single-page frontend for a recipe domain backed by a REST API. It gives users a clean way to browse recipe data, open detailed ingredient views, and authenticate into protected areas. The app also includes role-aware navigation and an admin-only section for user management.
What the project includes#
- Recipe listing with category filters, detail modal views, and expandable nutrition info per ingredient.
- Authentication flow with login/registration, JWT handling, route guards, and role-based navigation.
- Admin page for user management, including role assignment/removal and user deletion with UI feedback.
Result#
The project delivers a structured, production-style frontend that combines API integration, protected routes, and modular UI components into a coherent recipe management experience.

Recipe Management API
Java REST API for recipes, ingredients, auth, and PostgreSQL persistence.
This project is a backend service built with Javalin, Hibernate, and PostgreSQL to support recipe and ingredient management. It separates read and write access with role-based authorization and includes structured error handling for common API failure cases. The codebase is organized with DTOs, DAOs, route groups, and security modules to keep responsibilities clear.
What the project includes#
- CRUD endpoints for recipes and ingredients, including filtering and recipe-ingredient relationship management.
- JWT authentication and role-based route protection, with public read endpoints and protected write operations.
- Automated test coverage for both API integration and DAO layers, using RestAssured and Testcontainers.
Result#
The project delivers a deployable, documented REST API with clear domain modeling, secure endpoint access, and CI/CD packaging via Maven and Docker for consistent delivery.