Problem: Streetwear shoppers have to hop between dozens of separate e-shops to find drops worth buying — there's no single, curated, swipeable feed of the best streetwear across stores.
Solution: A mobile app (React Native / Expo) with a curated, swipeable product feed, search, saves, and an outfit builder, backed by Supabase (Postgres, Auth, Storage). A product-feed ingestion pipeline normalises heterogeneous shop feeds (Heureka / Google Shopping XML) into a single product schema. A plain HTML/CSS/JS landing on Cloudflare Pages captures early signups, auto-synced to Trello via a Postgres trigger, with Cloudflare Email Routing for the team. Revenue model is affiliate. Built solo, end-to-end — frontend, backend, and infra.
Stack: Expo SDK 54 · React Native 0.81 · TypeScript · Zustand · React Navigation · Reanimated · Supabase (Postgres / Auth / Storage) · PL/pgSQL · Cloudflare Pages · Cloudflare Email Routing
Lessons learned: As a solo founder-dev, picking managed, "boring" infra (Supabase + Cloudflare) is what makes shipping end-to-end realistic. Ingesting product feeds from different providers means the real work is a normalisation layer, not the fetch. And a feed UI only feels native once you sweat the small things — image aspect ratios, gesture-driven navigation, and auto-hiding chrome.
Problem: Build a proof-of-concept platform to manage and remotely control up to 20 EV charging stations across 5 locations, with real-time charging telemetry on a mobile client.
Solution: Spring Boot 3.5 / Java 17 REST API with JWT auth (Spring Security 6), JPA on PostgreSQL (H2 in dev), and a charging simulator service that streams live session data. React Native (Expo SDK 54) mobile client with dashboard, station detail, live charging screen (animated SVG progress, kW/kWh/% updated every 2s), history and profile. Real-time station status pushed via WebSocket / STOMP, charging telemetry via 2s HTTP polling. Whole stack runs locally via Docker Compose.
Stack: Java 17 · Spring Boot 3.5 · Spring Security · JJWT · JPA · PostgreSQL · H2 · WebSocket/STOMP · React Native · Expo · TypeScript · React Navigation · Axios · Docker Compose
Lessons learned: Splitting transport per concern works well — STOMP for sparse station-status events, plain polling for high-frequency live charging telemetry, instead of forcing everything through one channel. A dedicated simulator service is the cleanest way to develop and demo a hardware-bound system without hardware. Environment-aware API base URLs (LAN IP vs. 10.0.2.2 vs. Docker host) save hours of "why doesn't my phone reach the backend".
Problem: Large European energy company needed a complex ServiceNow rollout covering ITSM, HR modules, CMDB, and OT-area operational monitoring.
Solution: Designed and implemented custom workflows, catalog items, and business rules. Built REST integrations via IntegrationHub. Maintained three environments (dev/test/prod) across the full delivery lifecycle. Collaborated with international stakeholders in an Agile setup.
Impact: Reduced manual ticket routing, improved cross-team visibility, and delivered iterative improvements across multiple sprint cycles.
Lessons learned: Enterprise ServiceNow is deceptively deep — environment hygiene across dev/test/prod is non-negotiable. Flow Designer is surprisingly powerful once you understand its governor limits. International Agile means async-first communication is as important as the code itself.
Problem: Daimler Group needed a custom internal web tool with a modern UI and reliable backend APIs, delivered by a cross-functional Agile team.
Solution: Built frontend in Angular/TypeScript with responsive UI components, consumed and extended RESTful APIs backed by Java Spring Boot. Participated in code reviews, sprint planning, and system design discussions.
Stack: Angular · TypeScript · Java · Spring Boot · REST API · Git
Lessons learned: First exposure to large-scale Angular architecture — the component/service/module pattern scales well when enforced consistently. Good code reviews matter more than code style guides.