Arnþór Guðmundsson · .NET / Payments

Kópavogur, Iceland

Arnþór
Guðmundsson

.NET Developer · Payments

Five years on payment systems, where being nearly right is the same as being wrong. I work on LS Pay, the engine behind every card transaction in LS Central: 40+ provider integrations, the certification that gets them live, and increasingly the tooling and observability that make my whole team faster at it.

Arnþór Guðmundsson
weeks for a provider integration, after the tooling I built
6 → 2
payment providers running on LS Pay
40+
years working on payment systems
5
integrations certified end to end
3

Profile

Who you'd be hiring.

Payments is an unglamorous specialty and I've grown to like it: certification cycles, correctness under partial failure, and code that has to survive an audit.

Nearly five years on LS Pay. I maintain and extend the engine and the 40+ provider connections running on it, build and certify new integrations end to end, and own most of the Android work on the team. When a payment fails in production at a customer in another country, I'm one of the people who gets called.

The work I'm proudest of is the work that made everyone else faster. A set of Claude Code skills now reads a provider's specification and drives the integration through to reviewed code, which cut a typical delivery from six weeks to two — measured across real integrations, at the same quality bar. Cloud log ingestion I designed for LS Pay V3 replaced "ask the customer to email us their logs" with production telemetry we can query from anywhere.

Outside work I build Skorva, a real-time distributed darts scoring platform on ASP.NET Core and Flutter. Every architectural decision on it is written down and argued through, because that's the habit I want to have.

Experience

Payments, production systems, and the tooling around them.

Developer — LS Pay
LS Retail

Dec 2021 — Present

LS Pay is the payments engine inside LS Central, LS Retail's unified commerce platform on Microsoft Dynamics 365 Business Central. My team owns the engine, every provider that plugs into it, and where the product goes next.

Show moreShow less
  • Own and extend the LS Pay engine and the 40+ provider connections running on it, including the plugin model every new integration is built inside the .NET codebase behind every transaction the product handles.
  • Cut a typical provider integration from six weeks to two by building Claude Code skills that read a provider's specification and drive it through to reviewed code, alongside PR authoring and review skills that encode the team's quality standards. Measured across real integrations, at the same quality bar.
  • Designed and shipped cloud log ingestion on Azure Monitor for LS Pay V3, on my own initiative. Support previously depended on customers manually uploading local log files; production telemetry is now queryable from anywhere for every V3 customer.
  • Drive architecture and feature work for the separation of LS Pay into a standalone Microsoft Dynamics 365 Business Central product, while it stays integrated in LS Central.
  • Build and certify provider integrations end to end — Verifone Global, Network International, and Softpay, an Android tap-to-pay solution carrying each from first specification read through provider test suites to certified production release.
  • Stay on call for live payment issues. When a customer hits a problem I'm ready to get on the machine and work it through with them, wherever they are and whatever the hour. I also onboard new developers into the payments domain.
C#.NETAndroid MAUIAL / Business Central SQLAzure Monitor EMV / card present CertificationAzure DevOps

Computer Science Intern
Hafrannsóknastofnun

Jun — Sep 2020

Summer placement at Iceland's Marine & Freshwater Research Institute. Worked with Oracle database systems and configured Fortinet network security appliances.

OracleSQLFortinet Network security

Production
Mjólkursamsalan, Selfoss

Oct 2015 — Feb 2018

Shift work in dairy production. I worked for a few years before starting a computer science degree, which I've never regarded as lost time.

    Projects

    Where I get to make the architectural calls.

    Skorva
    Real-time darts scoring platform

    2025 — Present · solo

    Commercial auto-scoring systems cost more than I wanted to pay, and none of them let me build the game modes I actually wanted. So I built my own. An automated dartboard streams throws to an authoritative ASP.NET Core relay that owns all game state and pushes it to phone and desktop clients over SignalR. I designed and built every layer: hardware integration, server, both clients, and CI.

    Skorva phone app mid-game: a 501 scorecard for two test teams at 321 and 501, showing a visit of three treble 20s, averages, the Undo and Manual controls and a dart entry keypad. Skorva TV view of a live 501 match: two test players on 321 and 494 with large scores, their last darts and averages, a race-to-zero bar and a dartboard hit map.
    Show moreShow less
    • The server is the only thing that scores. Clients never compute state — they reflect what the relay sends. Every change is a versioned event in an append-only SQLite log, with optimistic concurrency on every command and undo implemented as a log rewind rather than compensating events.
    • Stats can't break a game. Career statistics are projections drained off a channel on their own pump, so a projection failure can never block or bust a live throw.
    • Multi-board supervision. Each dartboard runs as an independently respawnable session behind its own crash boundary, with clients grouped per board.
    • Flutter client with a real design system — Riverpod, go_router, Freezed, sliced providers so a single throw rebuilds one card instead of the screen. Ported from an earlier .NET MAUI client that still runs alongside it.
    • A parity suite that fails CI when contracts drift. Every wire DTO is round-tripped between the C# server and the Dart client against a shared corpus, so a server-side change can't silently break the client.
    ASP.NET CoreSignalRSQLite Event log + rewindFlutter / Dart Riverpod.NET MAUIxUnit GitHub Actions

    AI-assisted integration tooling
    Internal, LS Retail

    2025 — Present

    A set of Claude Code skills built for my own team, aimed at the slowest and least interesting part of the job: turning a new provider's documentation into working, reviewed, standards-compliant code.

    Show moreShow less
    • Integration skills that analyse provider documentation and drive the implementation, so each new provider starts from our established patterns rather than a blank file.
    • PR authoring and review skills that encode the team's code-quality standards, moving review time away from formatting and toward design.
    • Roughly six weeks down to two for a typical integration, with quality held at the same bar.
    Claude CodeAgent skills Developer experienceCode review

    Breakfast club hub
    Team site for my darts league side

    2026 — Present · solo

    My team used to run match nights from a shared spreadsheet and a group chat. This replaced both: who plays which night, answers in a tap or two, live scores from the board, and league and player stats. It's in use every week, and most of it is read on a phone next to the oche. The site is private to the team; I'm happy to show it on request.

    Breakfast club hub on a phone: the planner showing the next match night, the five-player lineup and the reserves, each with their starts and whether they're in, out or yet to answer. Breakfast club hub on a phone: season stats with the team's three-dart average, legs won and top performers, above a bar chart comparing the team's average with the opponent's, night by night.
    Show moreShow less
    • Live scores through our own relay. Cloudflare Functions cache league data by how fast it changes and relay a live board's event stream, so browsers never touch the source directly.
    • Built to survive a source with no contract. All parsing sits in one module tested against saved responses, so a change upstream fails a test instead of a page.
    • Accounts without passwords to chase. Captains create each player's account, sign-in is a PIN, and captains drag the lineup into place.
    • Designed as well as built. A token-based design system and a small motion kit, with the big decisions kept in architecture records.
    ReactTypeScript Cloudflare PagesCloudflare D1 Server-sent eventsVitest

    Axel
    Figure skating coach's app

    2026 — Present · solo

    A Flutter app for Android and iOS that gives a coach one record of their skaters and their own week: program music and content, basic tests, competitions, schedule and working hours. It's built around the rules of the Icelandic federation, ÍSS, and the ISU, and a working coach is beta testing it now.

    Axel phone app: weekly schedule with a day selected, listing on-ice groups and private lessons with times, rinks and planned hours. Axel phone app: home screen with sessions to confirm and upcoming competition and test day deadlines.
    Show moreShow less
    • Offline first, because rinks have bad signal. Every record lives in SQLite on the device, a save never waits for the network, and PowerSync syncs it to Supabase when it can.
    • The rule book is data. Each season's rules ship as their own set, and a skater's category and eligibility come from those rules, their age on 1 July and the tests they've passed.
    • Paperwork included. The app fills the federation's program content form and sends deadline reminders.
    Flutter / DartPowerSync SQLiteSupabase Offline firstCodemagic

      Skills

      Grouped by what I'd actually be doing on day one.

      Core

      C#.NETASP.NET Core SQLREST APIsPython

      Clients & mobile

      Android.NET MAUI Flutter / DartReact TypeScriptJavaScript HTML / CSSNode.js

      Platform & data

      AzureAzure Monitor CloudflareSupabase SignalRSQLite AL / Business CentralGit Azure DevOpsGitHub Actions

      Practice

      Payment integrationScheme certification Architectural designEvent-sourced design ObservabilityIncident response Unit & integration testing AI-assisted developmentCode review Mentoring

      Languages

      Icelandic — nativeEnglish — fluent

        Education

        And the odd thing worth mentioning.

        BS Computer Science
        Háskóli Íslands, Reykjavík

        Aug 2018 — May 2021

        Stúdentspróf, Social Studies
        Menntaskólinn að Laugarvatni

        2008 — 2012

        Visual Studio Live!
        Seattle

        Aug 2024

        A week on .NET, Copilot, and cloud engineering practice.

          About me

          The part that isn't a job title.

          I took the long way here. I finished framhaldsskóli in 2012, worked a few years — including shift work at the dairy plant in Selfoss — and didn't start a computer science degree until 2018. I don't think of that as a detour. It's why I'm patient with slow, unglamorous problems.

          I've competed in MPO, the professional division, in disc golf since 2022 — three years after picking up a disc for the first time. That's the pattern with me: I get good at things by grinding at them, not by arriving gifted. If you're interested in the playing side, my PDGA number is #160095.

          I also play in a darts team league, which is where Skorva came from. Football came before any of it — I'm past playing it competitively now, but Liverpool still owns my weekends. And travel, whenever there's a window.

          I live in Kópavogur with my partner and our two sons, ten and one. The ten-year-old is entirely unimpressed by all of this, which I find useful.

          Arnþór with his family

          Kópavogur, Iceland.

          Get in touch

          Let's talk.

          The fastest way to reach me is email.

          Location
          Blásalir 1, 201 Kópavogur
          Iceland

          © 2026 Arnþór Guðmundsson

          Built from scratch — no framework, no build step.

          Arnþór Guðmundsson

          .NET Developer · Payments

          Kópavogur, Iceland

          Address
          Blásalir 1, 201 Kópavogur, Iceland
          Download CV

          Single page · PDF · 317 KB