Torben Norling
Senior systemutvecklare · Arkitekt · Tech Lead
Java · Agentisk AI · MCP · Distribuerade system
Sollentuna, Stockholm · gnilron.com/contact · linkedin.com/in/torbennorling · gnilron.com · github.com/gnilron
Profil
Praktiskt arbetande arkitekt och senior utvecklare med över 30 år av leveranser, varav 28 år med Java. Jag började som utvecklare på Ericsson och har sedan varit teknisk lead i stora leveranser på Skatteverket och Unibet, där jag sitter i arkitekturteamet sedan 2011. De senaste åren har jag gått djupt in i AI engineering: agentiska arbetsflöden, MCP-servrar med OAuth 2.1 och AI-drivna migreringar som körs i produktion, inte bara i demos. Jag tar helst ett problem hela vägen, från designbeslut till sista prestandafixen.
Styrkor
- Leverans och ledarskap. Lång erfarenhet av att leverera stora system i tid som teknisk lead: vägleda team i hur, hjälpa produktägare att prioritera arbetet och sätta arkitekturen tillsammans med nyckelpersoner. Från Internetdeklarationen på Skatteverket till Unibets expansion till nya reglerade marknader.
- Agentisk AI och MCP. Bygger MCP-servrar i Java och Spring AI med OAuth 2.1, som ger LLM-klienter som Claude och ChatGPT kontrollerad åtkomst till användarens egen privata data. Använder Claude Code-skills och spec-drivna arbetsflöden för att genomföra migreringar över hela tjänsteflottor.
- Java på djupet. 28 år med Java, från slutet av 90-talet till Java 25 och Spring Boot 4 i dag, inklusive Spring Security, Spring Authorization Server och Spring AI.
- Kunskapsdelning. Genom åren har jag hållit geek-sessions för hela techorganisationen om de tekniska satsningar jag drivit, från messaging och säkerhet till Backstage och AI-accelererade migreringar.
- Arkitektur som håller. Messaging- och eventplattformar (Solace, NATS), säkerhet och identitet (BankID och andra e-legitimationer), prestanda, observerbarhet och kostnadseffektiv molndrift.
Erfarenhet
Arkitekt, Enterprise Architecture-teamet·Unibet (Kindred Group / FDJ United)
2011 – nu · Stockholm · Konsult via Gnilron AB
- Leder som enterprise architect utvecklingsteamen på Unibet genom plattformens expansion till nya reglerade marknader och återkommande tekniska moderniseringar.
- Ledde införandet av Backstage som utvecklarportal, från uppsättning, integrationer och utrullning till att få teamen ombord och göra portalen till något de faktiskt vill använda. Byggde egna tillägg ovanpå, bland annat en MCP-server i Spring AI som serverar katalogen med en hel del custom extras för vidare AI-insikter, så att AI-assistenter kan svara på frågor om hela landskapet.
- Byggde eventplattformen som driver det interna tillståndet i microservice-plattformen, med gemensamma bibliotek och Solace som ryggrad. Migrerade messaging från ActiveMQ till Solace (appliance- och mjukvarubrokers) och har gjort många års prestandaarbete på den.
- Refaktorerade säkerhetsplattformen och lagren för autentisering och auktorisering, mot både slutanvändare och interna system, inklusive e-legitimationer som BankID och DanID.
- Driver migreringar av Java, Spring Boot och beroenden över hela tjänsteflottan. Migreringen Spring Boot 3 → 4 drevs med återanvändbara AI-skills, och jag har presenterat arbetssättet för hela techorganisationen.
Utvecklare och arkitekt·Skatteverket
2001 – 2011 · Stockholm · Konsult via Bluefish, från 2005 via Gnilron AB
- Med och byggde Internetdeklarationen, e-tjänsten som svenskar fortfarande deklarerar i varje år.
- Utvecklare och arkitekt för webbapplikationen och mobilwebben, med stort fokus på prestanda och toppbelastning.
- Introducerade de första apparna för att deklarera och deklaration via SMS.
Systemutvecklare·Ericsson Telecom / Ericsson Data
1993 – 2000 · Stockholm
- Utvecklade och levererade administrativa system för internt bruk inom Ericsson.
- Cobol, C, C++ och Pascal, sedan Java från slutet av 90-talet.
Tidigare uppdrag
- Mind (2000 – 2001) · Java- och webbutveckling på ett portalbolag, "Vi gör portaler".
- IBM och KTH · Kortare konsultuppdrag via Gnilron AB mellan uppdragen på Skatteverket.
Utvalt projekt
Liztor·Egen produkt, byggd och driftad hela vägen
Flutter (iOS, Android, webb) · Spring Boot-microservices · Java 25 · PostgreSQL · NATS · OpenTelemetry
- Realtidssynkade delade listor över ett eget WebSocket-baserat synkprotokoll, i produktion med riktiga användare.
- Remote MCP-server (Java 25, Spring Boot 4, Spring AI) som låter Claude, ChatGPT och andra MCP-klienter läsa och ändra användarens egna privata listor. Komplett OAuth 2.1 med PKCE, dynamisk klientregistrering (RFC 7591), protected resource metadata (RFC 9728) och inbäddad Spring Authorization Server. Användaren godkänner åtkomst genom att skanna en QR-kod i appen. Ett token exchange ger sedan agenten en avgränsad session, och ändringarna syns direkt på användarens enheter. 27 annoterade verktyg, bland annat ett long-poll-verktyg som låter agenten reagera på ändringar gjorda i appen.
- AI-funktioner: genererade recept med AI-genererade bilder på rätten (Spring AI, OpenAI) och LLM-stödd berikning av katalogen.
- Flyttade från AWS till Hetzner och Cloudflare (Terraform), och från MongoDB till PostgreSQL i en spec-driven, AI-assisterad migrering. Driftkostnaden sjönk med cirka 87 %, och jobbet tog ungefär en veckas kvällar med Claude Code.
- Arbetsflöde över flera repon i egna Claude Code-skills som delar upp specar per repo och lämnar över till agenter.
Rust
Har byggt ett antal verktyg som används i integrationsarbete kring Backstage, och ett experimentellt verktyg för att visualisera Backstage och Kubernetes med Bevy, en Rust-baserad spelmotor. Rust är i dag ett självklart verktyg i min verktygslåda som jag använder allt oftare.
Kompetens
- Java och Spring: Java 25, Spring Boot, Spring Security, Spring Authorization Server, Spring Cloud, Spring AI, Spring Data JDBC, Flyway, Testcontainers, Gradle, Maven
- AI: MCP-servrar och klienter, Claude Code (skills, agenter, spec-drivna arbetsflöden), Anthropic och OpenAI API, RAG och embeddings, Ollama
- Arkitektur och integration: microservices, eventdriven design, Solace, NATS JetStream, Kafka, Hazelcast, WebSocket, OAuth 2.1 / OIDC, Keycloak, Curity, BankID
- Molntjänster: AWS, Hetzner, DigitalOcean, Cloudflare m.m.
- Drift och plattform: Kubernetes, Terraform, Docker, Jenkins, GitHub, GitLab, OpenTelemetry, Grafana, Backstage
- Databaser: PostgreSQL, Oracle, MongoDB m.fl.
- Övriga språk och klienter: Rust, TypeScript, Dart och Flutter, Swift, Vue, React
Certifieringar och språk
- AWS Certified Solutions Architect – Associate (2018, utgånget)
- Svenska (modersmål), engelska (flytande, mitt dagliga arbetsspråk på Unibet sedan 2011)
Där det började
Självlärd. Jag började programmera i demoscenen på C-64 och Amiga i slutet av 80-talet och skrev demos i assembler för 6510 och 68000 (en gammal intervju på c64.com).