About
Joined two companies with no automation and started from scratch both times. At Icomera nobody could work with the old framework so I replaced it. Now it's used by testing teams in other countries across the company. At Plejd I took testing from a weekly manual process to mandatory pipelines on every merge. Release testing went from a full week to start it before lunch, done after. Still running after I left.
I had a long commute so I made a Slack bot to check on devices from my phone. That grew into an agentic AI system that monitors pipelines via webhooks, SSHes into failing devices, traces regressions, and readies merge requests on its own. RAG memory so it learns from past failures. A coworker saw my MCP memory server and the team adopted it before I even offered.
Outside work I've built three more AI systems from scratch: an agentic platform on Claude Agent SDK with model fallback and tool use, an LLM content summarizer, and the MCP server. Python and TypeScript. Gothenburg, Sweden.
Projects
Ocean Agent
Agentic AI platform running on a Raspberry Pi. Full agent loop on Claude Agent SDK with model fallback across Opus, Sonnet, and Haiku. RAG memory with hybrid vector and keyword search. Tool use, sub-agent delegation, persistent sessions with branching conversation trees. Web UI with SSE streaming via Fastify. Scheduling with cron, circuit breakers for fault tolerance.
DailyBrief
You give it URLs and a question, it fetches the pages through a headless browser, extracts the content, and summarizes it with an LLM via OpenRouter. Runs on a schedule so you get a daily briefing without doing anything. Next.js app with a streaming chat interface. The agent figures out what to fetch from a natural language description and generates the extraction config on its own.
Memory MCP Server
MCP server that gives AI tools persistent memory across sessions. Stores memories in SQLite with hybrid search (FTS5 keyword + sqlite-vec cosine similarity). Started as a personal project, a coworker saw it and wanted in, so I made it shared. Now the team at Icomera uses it for shared context across their AI workflows.
AI-Powered Test Lab Assistant
The Slack bot I made for my commute turned into a full agentic AI system. Hooks into GitLab via webhooks, monitors pipelines in real time, SSHes into failing devices before teardown. Traces root causes across system layers and posts analysis to Slack. RAG memory so it learns from past failures, learnable skills the team extends without code, and a scheduler for recurring automations.
Proprietary, built at Icomera
Hardware Test Automation Platform
162 test modules across 6 product lines. Networking, security, firmware upgrades, hotspot, GPS. Config-driven, adding a new product is a config change, not code. Now used by testing teams in other countries across the company.
Proprietary, built at Icomera
Hardware-in-the-Loop Test Rigs
Physical test infrastructure built at both Plejd and Icomera. Local GitLab runners hooked up to embedded devices, running BLE sniffers, serial connections, and GPIO to simulate real user interactions. At Plejd I also built a sandboxed OTA cloud environment ported to ARM in Docker so firmware updates could be tested in CI without touching production.
Proprietary, built at Plejd and Icomera
Work Experience
Icomera AB
Gothenburg, SwedenSenior Test Automation Developer
I own the automation platform and the AI tooling around it at Icomera.
Plejd AB
Mölndal, SwedenQA Automation Engineer
When I joined, QA was the whole team sitting down weekly to manually test firmware from their phones. Within a year, nothing shipped without passing the full pipeline. By the time I left, release testing went from a full week to start it before lunch, done after. Still running today.
Japyo Social App
RemoteBackend QA Lead (Volunteer)
Building their first API test suite and CI pipeline from scratch. TypeScript, Jest, Pactum. 40+ contract tests, PRs blocked on failure.
Contact
Based in Gothenburg, Sweden. Open to remote and hybrid roles across Europe.