← Utvalda projekt

Projekt & Case Studies

Ett urval av mina arbeten – från kommersiella IoT-plattformar till avancerade CI/CD-pipelines.

🚢
FullstackDevOpsQA

EngineInsights – diagnostik för fartygsmotorer (LIA)

Del av teamet bakom en SaaS-plattform för tillståndsövervakning av tvåtakts fartygsmotorer, där cylindermätningar, bildanalys och AI-baserad diagnostik vägs samman. Jag äger modulen för cylindertryck (ECI): inläsning av instrumentets råfiler, beräkning av topptryck, medelindikerat tryck, effekt och cylinderbalans i webbläsaren, automatisk TDC-korrigering, ISO-korrigering och en egen Peak Pressure-rapport. Eftersom ingen i huset hade kunskap inom området byggde jag upp domänkunskapen från grunden tillsammans med instrumentets tillverkare och erfarna serviceingenjörer. Parallellt har jag drivit säkerhets- och kodkvalitetsarbete: åtgärder efter en säkerhetsgranskning, funktionsflaggor som styrs från servern och håller ofärdiga funktioner borta från produktion, striktare typning och CI-spärrar mot regressioner.

ReactTypeScriptC# .NETPostgreSQL (Supabase)TanStack QueryVitestPlaywrightGitHub ActionsRailway
Drift: Railway, Supabase, Modal för bildmodeller, CI med enhets- och E2E-tester
⚡
Machine LearningMLOpsTime Series Forecasting +7

Full-Stack ML Platform for Electricity Price Forecasting & Demand Flexibility

A production-ready full-stack machine learning platform engineered to forecast day-ahead electricity prices and provide actionable decision support for consumption flexibility across Sweden's bidding zones (SE1–SE4). The system continuously ingests and aggregates day-ahead spot prices from ENTSO-E along with historical weather data via an automated background scheduler. The pipeline orchestrates three interconnected models: a hyperparameter-tuned Random Forest regressor for 24-hour ahead price predictions (MAE 20.99 EUR/MWh), K-Means clustering for identifying market states and price tiers, and a Support Vector Machine (SVM) classifier for optimal charging recommendations. The backend is built with FastAPI, supports dynamic proxy routing (root_path), and is tested with pytest, while the responsive React/Vite frontend delivers interactive bidding zone map visualizations and rolling 7-day forecasts verified via Playwright E2E testing.

PythonFastAPIScikit-learnPandasJoblibGit LFSReactTypeScriptViteDockerDocker ComposeTraefikPrometheusGrafanaPytestPlaywright
Drift: Docker Compose, Traefik Reverse Proxy, Dedicated Container Networks (internal-net/proxy-net), Background Scheduler Container for Data Ingestion, Structured JSON Logging with Log Rotation, Prometheus, Grafana.
🔖
bookmarksautomationweb-extension +4

Smart Bookmark Sync & Auto-Categorizer

An automated system designed to sync, structure, and organize web browser bookmarks from Google Chrome to a self-hosted platform. The solution captures saved links using a custom browser extension and forwards them through an integration pipeline. The content from each page is analyzed to automatically categorize bookmarks into relevant folders, dynamically generate new collections based on context, and prevent unorganized link clutter. All records are stored relationally with metadata, tags, and folder hierarchies accessible via a central dashboard.

JavaScriptChrome Extensions APIn8nPostgreSQLDockerTraefikREST API
Drift: Self-hosted Docker Compose environment with Traefik reverse proxy, PostgreSQL for persistent data storage, and n8n for webhook ingestion and workflow orchestration.
🎤
DevOpsAI

Public speaker @ Cloud Native Malmö

Held the lecture “Owning the Stack” on building a private automation engine with n8n, Docker, and Traefik. Discussed the paradigm shift from rule‑based automation to autonomous agents powered by local AI (Ollama), and its impact on edge security. Concluded with an in‑depth Q&A on self‑hosted infrastructure.

Public SpeakingDockerTraefikn8nOllama (AI)
Drift: Tech Community & Mentorship
📡
FullstackIoT

IoT Sense Platform

A comprehensive IoT platform for real‑time monitoring. Manages the entire chain from data acquisition via ChirpStack to sensor data visualization.

Node.jsAngular.jsChirpStackInfluxDBMQTTDocker
Drift: Docker Swarm & LoRaWAN
⚡ / 🛡️
AutomationDevOpsBackend +3

Autonomous Daily Routines & Security Orchestrator

This project is a centralized automation hub that consolidates multiple standalone, event‑driven background services into a single orchestrated system to minimize maintenance costs and maximize resource efficiency. The system currently manages two critical daily workflows:Vault Checker (Security Monitoring): An automated scheduler that proactively verifies status, integrity, or specific metrics against secure data vaults/endpoints and immediately issues alerts if anomalies are detected.Word of the Day (Micro‑learning): A scheduled data collection service that retrieves, structures, and distributes daily content for continuous skill development.

n8nDockerTraefikUbuntu VPSREST APIsJSONWebhooks
Drift: Self‑hosted n8n instance running in a Docker container on an Ubuntu VPS, secured behind Traefik as a reverse proxy.
☸️
DevOpsCI/CD

DevOps & K8s Infrastructure

Designed and implemented advanced GitHub Actions pipelines for automated Docker image builds. Included automated security testing prior to deployment on Kubernetes.

KubernetesDockerGitHub ActionsCI/CDSecurity Testing
Drift: K8s Cluster & Container Registry
🔐
DevOpsCI/CD

Vault Secrets Management

Set up a self‑hosted HashiCorp Vault behind a Traefik reverse proxy in a Docker environment. Enabled secure integration with GitHub Actions via AppRole for automated CI/CD deployments (SSH & Docker) without exposing sensitive keys in the source code.

HashiCorp VaultTraefikDockerGitHub ActionsCI/CDSecurity
Drift: Docker Compose, VPS, Traefik Proxy
🧠
AIFullstack

AI‑driven Newsletter Analysis & Knowledge Base

An autonomous pipeline acting as a smart inbox for technical newsletters and updates. The workflow retrieves data via Gmail, processes the text in a loop through local language models to extract key insights, and stores the results in PostgreSQL in a structured format. The architecture is prepared for future integration of pgvector to enable semantic RAG search and advanced filtering of recruitment ads.

n8nOllama (Llama 3.2)PostgreSQLDockerGmail API
Drift: Own VPS infrastructure with containerized n8n, database, and local AI inference
📡
DevOpsIoT

Telegraf Manager for Telemetry & IoT Data

A robust infrastructure setup for collecting, transforming, and storing sensor data and system metrics. Telegraf was configured as an efficient data collector to process incoming telemetry and reliably write this time‑series data to InfluxDB, ensuring high performance for real‑time monitoring.

TelegrafInfluxDBDocker (VPS)Linux
Drift: Containerized collection stack (Telegraf, InfluxDB) deployed on VPS
📅
AIFullstack

Automated Gmail‑to‑Calendar Pipeline

A smart automation workflow that retrieves event emails from Gmail, extracts date, time, title, and location with a custom parser, and automatically creates calendar events. Built to be modular, extensible, and ready for future RAG integration.

n8nJavaScript (Expressions)Google Calendar APIGmail APIDocker (VPS)Ollama (future RAG)PostgreSQL (future storage)
Drift: n8n on VPS with Google integration and local LLM infrastructure
🎬
FullstackSchool

ShowTime Biografsystem

Developed a complete cinema booking system using React and C# Minimal API. The backend is powered by a self‑driving SQL engine for dynamic scheduling and real‑time updates via SignalR. The frontend experience includes interactive seating maps and a voice‑controlled AI assistant (Web Speech API). CI/CD and security are managed through GitHub Actions and HashiCorp Vault.

ReactC# .NETMySQLSignalRDockerGitHub ActionsHashiCorp Vault
Drift: Docker, MySQL Server & HashiCorp Vault
💸
FullstackAIDevOps

Smart AI Budget & Expense Manager

A modern full‑stack application for personal finance with a focus on privacy. Integrates local AI inference (Ollama/Llama 3.2) for automatic transaction analysis. Deployed in a professional environment with Traefik as reverse proxy, automated CI/CD via GitHub Actions, and secure secret management with HashiCorp Vault.

React (Vite)TypeScript.NET CorePostgreSQLOllama (AI)TraefikHashiCorp Vault
Drift: Docker Compose, Traefik Reverse Proxy & Vault Secrets
⚔️
FullstackQAschool

Word Slayer

Developed a turn‑based multiplayer game (1v1) where words are used as weapons and damage is dynamically calculated based on word length. The backend synchronizes game state, turns, and HP in real time via SignalR. The frontend is built with React and TypeScript, featuring a dual‑language system where the UI and game dictionary are fully decoupled. The project is quality‑assured by a robust, comprehensive E2E testing framework built with Playwright and BDD (Cucumber/Gherkin).

ReactTypeScriptTailwind CSSC# .NETSignalRPlaywrightCucumber/BDD
Drift: SignalR WebSockets & Playwright E2E
🎭
QAschool

Automated Testing Suite

A comprehensive test library built with Python and Playwright. Includes end‑to‑end tests for web applications with a focus on robustness and performance.

PythonPlaywrightPytestAutomation
Drift: GitHub Actions & Playwright Reporter
💍
Fullstack

Wedding Site

An interactive wedding website created to manage guest information, wish lists, and RSVPs. Focused on user‑friendliness and visual design.

Node.jsExpressEJSTailwind CSSMongoDB
Drift: Docker & VPS
📊
Fullstack

DSA Visualizer

An interactive platform for visualizing data structures and algorithms. Includes sorting models and tree structures.

PythonFlaskHTML/CSSDockerAlgorithms
Drift: Linux VPS & Traefik
🎨
FullstackDevOps

My Portfolio

A modern, high-performance SPA engineered with an emphasis on clean code structure, scalability, and automated operations. Deployed across containerized Linux environments using Docker and reverse proxies with end-to-end CI/CD. Upgraded with an automated backend powered by self-hosted n8n and PostgreSQL, real-time data synchronization, and a custom administrative dashboard featuring passwordless, push-based Telegram authentication.

SvelteViteDockerNginxTraefik Proxy
Drift: GitHub Actions & Docker Hub