{
  "version": "2026-09-17",
  "person": {
    "name": "Albin Brattlöf",
    "alternateName": "Albin Brattlof",
    "jobTitle": {
      "en": "Software Engineer",
      "sv": "Systemutvecklare"
    },
    "email": "mail@albin.fyi",
    "url": "https://albin.fyi",
    "location": {
      "city": "Borlänge",
      "region": "Dalarna",
      "country": "SE",
      "timeZone": "Europe/Stockholm"
    },
    "profiles": [
      {
        "label": "GitHub",
        "href": "https://github.com/Brattlof"
      },
      {
        "label": "LinkedIn",
        "href": "https://www.linkedin.com/in/brattlof"
      }
    ]
  },
  "headline": {
    "en": "I take systems from architecture to production.",
    "sv": "Jag tar system från arkitektur till produktion."
  },
  "summary": {
    "en": "I take systems from architecture to production. That covers the backend, the frontend, the infrastructure they run on, and the client conversations that shape them. Comfortable owning a system alone, and used to shared codebases and review. Mostly C#, TypeScript, Go and Rust, deployed on Kubernetes. I work AI-native, with Claude Code in my daily loop and self-hosted inference where client data cannot leave the building. My low-level background is C++ engines and Windows internals, which I have been writing since 2019.",
    "sv": "Jag tar system från arkitektur till produktion. Det omfattar backend, frontend, infrastrukturen de kör på och kunddialogen som formar dem. Van att äga ett system själv, och lika van vid delade kodbaser och kodgranskning. Mestadels C#, TypeScript, Go och Rust, driftsatt på Kubernetes. Jag jobbar AI-nativt, med Claude Code i det dagliga arbetet och självhostad inferens där kunddata inte får lämna huset. Min lågnivåbakgrund är spelmotorer i C++ och Windows-interna system, som jag skrivit sedan 2019."
  },
  "suitedTo": {
    "en": [
      "Backend engineering",
      "Platform and infrastructure",
      "Security engineering",
      "AI and developer tooling",
      "Systems, engine and graphics programming"
    ],
    "sv": [
      "Backendutveckling",
      "Plattform och infrastruktur",
      "Säkerhetsarbete",
      "AI- och utvecklarverktyg",
      "System-, motor- och grafikprogrammering"
    ]
  },
  "projects": [
    {
      "id": "ai-assistant",
      "kind": "client",
      "stack": [
        ".NET 10",
        "React",
        "Ollama",
        "llama.cpp",
        "PostgreSQL"
      ],
      "name": {
        "en": "Self-hosted AI assistant",
        "sv": "Självhostad AI-assistent"
      },
      "summary": {
        "en": "A document assistant that runs entirely inside a client network, for data that cannot leave the building.",
        "sv": "En dokumentassistent som körs helt inne i ett kundnätverk, för data som inte får lämna huset."
      },
      "details": {
        "en": [
          "Inference runs on a local Ollama and llama.cpp stack, so nothing goes to a third-party model API.",
          "Embeddings for retrieval are stored in Postgres, next to the application data."
        ],
        "sv": [
          "Inferensen körs på en lokal stack med Ollama och llama.cpp, så inget går till ett externt modell-API.",
          "Embeddings för sökning ligger i Postgres, bredvid applikationsdatan."
        ]
      }
    },
    {
      "id": "pos",
      "kind": "client",
      "stack": [
        ".NET 10",
        "React",
        "PostgreSQL"
      ],
      "name": {
        "en": "Point-of-sale system",
        "sv": "Kassasystem"
      },
      "summary": {
        "en": "A production point-of-sale system, rebuilt on a security-first architecture.",
        "sv": "Ett kassasystem i produktion, ombyggt på en säkerhetsfokuserad arkitektur."
      },
      "details": {
        "en": [],
        "sv": []
      }
    },
    {
      "id": "customer-service",
      "kind": "client",
      "stack": [
        "C#"
      ],
      "name": {
        "en": "Customer-service platform",
        "sv": "Kundtjänstplattform"
      },
      "summary": {
        "en": "Built in C# from the first commit through to production.",
        "sv": "Byggd i C# från första commit hela vägen till produktion."
      },
      "details": {
        "en": [],
        "sv": []
      }
    },
    {
      "id": "infrastructure",
      "kind": "client",
      "stack": [
        "Kubernetes (RKE2)",
        "Helm",
        "GHCR",
        "Cloudflare",
        "mTLS"
      ],
      "name": {
        "en": "Infrastructure and security",
        "sv": "Infrastruktur och säkerhet"
      },
      "summary": {
        "en": "The Kubernetes platform all of it ships on, plus pentesting and hardening across the same systems.",
        "sv": "Kubernetes-plattformen som allt driftsätts på, plus penetrationstester och härdning i samma system."
      },
      "details": {
        "en": [
          "RKE2 with Helm, images in GHCR and Cloudflare at the edge.",
          "mTLS backed by an internal PKI.",
          "Pentesting, assessments and secure build practice."
        ],
        "sv": [
          "RKE2 med Helm, images i GHCR och Cloudflare längst ut.",
          "mTLS med en intern PKI i botten.",
          "Penetrationstester, säkerhetsgranskningar och säker byggkedja."
        ]
      }
    },
    {
      "id": "skillet",
      "kind": "independent",
      "stack": [
        "Go"
      ],
      "repository": "https://github.com/Brattlof/skillet",
      "name": {
        "en": "skillet",
        "sv": "skillet"
      },
      "summary": {
        "en": "A package manager for MCP servers and agent skills. Installs from a curated 290+ entry registry into six AI coding tools, and is listed in the official MCP resources.",
        "sv": "En pakethanterare för MCP-servrar och agentfärdigheter. Installerar från ett kurerat register med 290+ poster till sex AI-kodverktyg, och finns med i MCP:s officiella resurslista."
      },
      "details": {
        "en": [
          "Installs from a curated registry of 290+ entries into Claude Code, Cursor, Codex, Gemini CLI, Copilot and Cline.",
          "Ships as one static binary with no runtime dependencies."
        ],
        "sv": [
          "Installerar från ett kurerat register med 290+ poster till Claude Code, Cursor, Codex, Gemini CLI, Copilot och Cline.",
          "Levereras som en statisk binär utan beroenden i körtid."
        ]
      }
    },
    {
      "id": "engines",
      "kind": "independent",
      "stack": [
        "C++",
        "Direct3D 12",
        "Vulkan",
        "Lua"
      ],
      "name": {
        "en": "Game engines in C++",
        "sv": "Spelmotorer i C++"
      },
      "summary": {
        "en": "From scratch since 2022. The current one has a D3D12 render graph, an archetype ECS and its own Lua compiler and VM.",
        "sv": "Från grunden sedan 2022. Den nuvarande har en render graph i D3D12, en arketypbaserad ECS och en egen Lua-kompilator med VM."
      },
      "details": {
        "en": [
          "An ImGui editor, and hot reload for scripts running on the Lua VM.",
          "An earlier engine carried both DirectX and Vulkan backends."
        ],
        "sv": [
          "En ImGui-editor, och hot reload för skript som körs på Lua-VM:en.",
          "En tidigare motor hade både DirectX- och Vulkan-backend."
        ]
      }
    },
    {
      "id": "company-data",
      "kind": "independent",
      "stack": [
        "Rust",
        "TypeScript",
        "PostgreSQL"
      ],
      "name": {
        "en": "Company-data platform",
        "sv": "Plattform för företagsdata"
      },
      "summary": {
        "en": "Ingests the Swedish public company registry and national statistics feeds, and parses iXBRL financial filings.",
        "sv": "Läser in det svenska företagsregistret och nationell statistik, och tolkar årsredovisningar i iXBRL."
      },
      "details": {
        "en": [],
        "sv": []
      }
    },
    {
      "id": "blixt",
      "kind": "independent",
      "stack": [
        "Rust",
        "Axum",
        "SQLx"
      ],
      "repository": "https://github.com/ripkitten-co/blixt",
      "name": {
        "en": "blixt",
        "sv": "blixt"
      },
      "summary": {
        "en": "A Rust web framework on Axum, Askama and SQLx, with compile-time-checked SQL and no JavaScript build step.",
        "sv": "Ett webbramverk i Rust på Axum, Askama och SQLx, med SQL som kontrolleras vid kompilering och utan byggsteg för JavaScript."
      },
      "details": {
        "en": [],
        "sv": []
      }
    },
    {
      "id": "whisker",
      "kind": "independent",
      "stack": [
        "Go",
        "PostgreSQL"
      ],
      "repository": "https://github.com/ripkitten-co/whisker",
      "name": {
        "en": "whisker",
        "sv": "whisker"
      },
      "summary": {
        "en": "A Postgres document and event store for Go. Collections create their own tables, so there are no migrations.",
        "sv": "Ett dokument- och händelselager i Postgres för Go. Samlingarna skapar sina egna tabeller, så inga migrationer behövs."
      },
      "details": {
        "en": [],
        "sv": []
      }
    },
    {
      "id": "windows",
      "kind": "independent",
      "stack": [
        "C++",
        "Win32",
        "Direct3D"
      ],
      "name": {
        "en": "Windows internals and reverse engineering",
        "sv": "Windows-interna system och reverse engineering"
      },
      "summary": {
        "en": "Low-level Windows work since 2019, which is where the habits came from.",
        "sv": "Lågnivåarbete i Windows sedan 2019, och det är därifrån vanorna kommer."
      },
      "details": {
        "en": [
          "Kernel driver manual mapping across several Windows builds.",
          "Direct3D overlay rendering through process hooking.",
          "C++ libraries for memory, networking and math."
        ],
        "sv": [
          "Manuell mappning av kerneldrivrutiner, över flera Windows-versioner.",
          "Direct3D-overlays via process hooking.",
          "C++-bibliotek för minne, nätverk och matematik."
        ]
      }
    },
    {
      "id": "accessibility",
      "kind": "independent",
      "stack": [
        "C#",
        ".NET"
      ],
      "name": {
        "en": "Accessibility-focused game assistant",
        "sv": "Spelassistent med fokus på tillgänglighet"
      },
      "summary": {
        "en": "Helps players with limited hand mobility with the mechanical side of a game.",
        "sv": "Hjälper spelare med begränsad handmotorik med det mekaniska i ett spel."
      },
      "details": {
        "en": [],
        "sv": []
      }
    }
  ],
  "experience": [
    {
      "id": "ayaa",
      "organisation": "Ayaa International AB",
      "organisationUrl": "https://ayaa.se",
      "start": "2024-11",
      "title": {
        "en": "Software Engineer",
        "sv": "Systemutvecklare"
      },
      "detail": {
        "en": "Ayaa International AB. IT consultancy and product studio.",
        "sv": "Ayaa International AB. IT-konsultbolag och produktstudio."
      }
    },
    {
      "id": "amberwing",
      "organisation": "AmberWing",
      "organisationUrl": "https://amberwing.se",
      "start": "2023-11",
      "end": "2024-06",
      "title": {
        "en": "Game Programmer, internship",
        "sv": "Spelprogrammerare, praktik"
      },
      "detail": {
        "en": "AmberWing. Gameplay and systems in Unreal Engine 5 and C++, inside a shipping studio codebase under review.",
        "sv": "AmberWing. Gameplay- och systemprogrammering i Unreal Engine 5 och C++, i en studios kodbas under granskning."
      }
    },
    {
      "id": "earlier",
      "start": "2020",
      "end": "2022",
      "title": {
        "en": "Frontend Developer and internships",
        "sv": "Frontendutvecklare och praktikplatser"
      },
      "detail": {
        "en": "Frontend Developer at Multi X Sweden, plus full-stack internships at ShowDevote and Perchcamp. PHP, JavaScript, TypeScript and SQL.",
        "sv": "Frontendutvecklare på Multi X Sweden, plus praktik som fullstackutvecklare på ShowDevote och Perchcamp. PHP, JavaScript, TypeScript och SQL."
      }
    }
  ],
  "education": [
    {
      "school": "PlaygroundSquad",
      "field": "Game Development",
      "city": "Falun",
      "start": "2022-08",
      "end": "2024-06"
    },
    {
      "school": "Helixgymnasiet",
      "field": "Information Technology",
      "city": "Borlänge",
      "start": "2018-08",
      "end": "2021-06"
    }
  ],
  "skills": [
    {
      "id": "languages",
      "label": {
        "en": "Languages",
        "sv": "Språk"
      },
      "items": [
        "C#",
        "TypeScript",
        "Go",
        "Rust",
        "C++",
        "C",
        "PHP",
        "Python",
        "Lua",
        "Kotlin",
        "SQL"
      ]
    },
    {
      "id": "backend",
      "label": {
        "en": "Backend",
        "sv": "Backend"
      },
      "items": [
        ".NET 10",
        "ASP.NET Core",
        "Axum",
        "Symfony",
        "gRPC",
        "REST",
        "Event sourcing",
        "Modular monoliths"
      ]
    },
    {
      "id": "frontend",
      "label": {
        "en": "Frontend",
        "sv": "Frontend"
      },
      "items": [
        "React",
        "Vue",
        "Svelte",
        "Inertia",
        "Astro",
        "Tailwind CSS",
        "Vite"
      ]
    },
    {
      "id": "data",
      "label": {
        "en": "Data",
        "sv": "Data"
      },
      "items": [
        "PostgreSQL",
        "JSONB",
        "Entity Framework Core",
        "SQLx",
        "Doctrine"
      ]
    },
    {
      "id": "infrastructure",
      "label": {
        "en": "Infrastructure",
        "sv": "Infrastruktur"
      },
      "items": [
        "Kubernetes (RKE2)",
        "Helm",
        "Docker",
        "GitHub Actions",
        "GHCR",
        "Cloudflare",
        "mTLS and PKI"
      ]
    },
    {
      "id": "security",
      "label": {
        "en": "Security",
        "sv": "Säkerhet"
      },
      "items": [
        "Pentesting and assessments",
        "Hardening and secure build",
        "Reverse engineering"
      ]
    },
    {
      "id": "systems",
      "label": {
        "en": "Systems",
        "sv": "System"
      },
      "items": [
        "Direct3D 11 and 12",
        "Vulkan",
        "Win32",
        "ECS architecture",
        "Render graphs",
        "CMake"
      ]
    },
    {
      "id": "ai",
      "label": {
        "en": "AI",
        "sv": "AI"
      },
      "items": [
        "Claude Code",
        "Cursor",
        "Codex",
        "Model Context Protocol",
        "Ollama",
        "llama.cpp",
        "Embeddings and RAG"
      ]
    },
    {
      "id": "engines",
      "label": {
        "en": "Game engines",
        "sv": "Spelmotorer"
      },
      "items": [
        "Unreal Engine 5",
        "Unity",
        "Godot",
        "Defold",
        "TenGine (PlaygroundSquad in-house)"
      ]
    }
  ],
  "documents": {
    "resumePdf": "https://albin.fyi/Albin_Brattlof_Resume.pdf",
    "markdown": {
      "en": "https://albin.fyi/index.md",
      "sv": "https://albin.fyi/sv/index.md"
    },
    "llmsTxt": "https://albin.fyi/llms.txt",
    "html": {
      "en": "https://albin.fyi/",
      "sv": "https://albin.fyi/sv/"
    }
  }
}