{
  "$schema": "https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json",
  "basics": {
    "name": "Emil Knuths",
    "label": "Systems developer",
    "url": "https://knuths.dev",
    "summary": "Systems developer at Trafikverket since 2024. Here I've mainly worked with C#/.NET, Node, React/TypeScript and OpenShift. Right now I'm building a self-service portal (by developers, for developers, built on Backstage) where the developer teams get onboarding, a good overview of the organization's systems with collected technical documentation, plus templates for creating things like projects and repositories (with boilerplate code) in both GitHub and Azure DevOps and namespaces in OpenShift, and more. It's all done in close dialogue with the users. Before that I worked on a large SharePoint application in C#/.NET with thousands of users and automated its E2E tests in C#, which saves a lot of time since it's a critical system that used to be tested manually and very thoroughly. In my spare time I run a self-hosted platform (with, among other things, my own chatbots and apps that make my everyday life easier, and this CV is one of them). Over the past six months I've really gotten into agentic development (building with AI agents) and find it a lot of fun. I'm also into home automation, so I host my own Home Assistant server and spend a fair bit of time on it. I studied the IT Security & Software Testing programme (180 credits, Dalarna University), which involves a lot of development. My earlier experience working with young people and as a mentor has given me good collaboration skills and a knack for taking my own initiative.",
    "profiles": [
      {
        "network": "LinkedIn",
        "url": "https://se.linkedin.com/in/emil-knuths-3856ab22b"
      },
      {
        "network": "knuths.dev",
        "url": "https://knuths.dev"
      }
    ]
  },
  "work": [
    {
      "name": "",
      "position": "Systems Developer",
      "startDate": "2024",
      "endDate": "",
      "summary": "Trafikverket"
    },
    {
      "name": "Trafikverket",
      "position": "Student employee",
      "startDate": "2024",
      "endDate": "",
      "summary": "Alongside my studies; led on to my current role."
    },
    {
      "name": "Borlänge municipality",
      "position": "Recreation leader, LSS disability services",
      "startDate": "2018",
      "endDate": "2021",
      "summary": "Support, responsibility and care in services for people with disabilities."
    },
    {
      "name": "Borlänge municipality",
      "position": "Mentor, youth labour-market unit",
      "startDate": "2015",
      "endDate": "2018",
      "summary": "Coaching and mentoring young people towards work or studies."
    },
    {
      "name": "",
      "position": "Earlier",
      "startDate": "2006",
      "endDate": "2018",
      "summary": "Recreation leader, Borlänge municipality (2010–2018), and warehouse work: the ICA warehouse and Clockwork/Dagab, Kronans droghandel, DHL (2006–2012)."
    }
  ],
  "education": [
    {
      "institution": "Dalarna University",
      "area": "IT Security & Software Testing (180 credits)",
      "studyType": "IT Security & Software Testing (180 credits)",
      "startDate": "2021",
      "endDate": "2024"
    },
    {
      "institution": "Valla Folk High School",
      "area": "Youth & recreation leadership programme",
      "studyType": "Youth & recreation leadership programme",
      "startDate": "2014",
      "endDate": "2015"
    },
    {
      "institution": "Hagagymnasiet upper secondary",
      "area": "Social Science Programme (economics)",
      "studyType": "Social Science Programme (economics)",
      "startDate": "2004",
      "endDate": "2007"
    }
  ],
  "skills": [
    {
      "name": "Frontend/UI",
      "keywords": [
        "React",
        "TypeScript",
        "HTML/CSS",
        "responsive & accessible design (a11y)",
        "UI/UX"
      ]
    },
    {
      "name": "Backend & languages",
      "keywords": [
        "C#/.NET",
        "Node",
        "Python",
        "REST APIs",
        "SQL (Postgres/pgvector)",
        "Bash"
      ]
    },
    {
      "name": "DevOps & cloud",
      "keywords": [
        "Azure DevOps (pipelines",
        "repos",
        "boards)",
        "GitHub Actions",
        "Grafana/Loki (observability",
        "log aggregation)",
        "Docker",
        "OpenShift",
        "Linux",
        "Cloudflare"
      ]
    },
    {
      "name": "Test",
      "keywords": [
        "unit testing (xUnit)",
        "E2E test automation (Reqnroll + Playwright)"
      ]
    },
    {
      "name": "Platforms",
      "keywords": [
        "Backstage (developer portal)",
        "SharePoint"
      ]
    },
    {
      "name": "AI & security",
      "keywords": [
        "local LLMs/RAG (Ollama)",
        "agentic development",
        "security & code quality (SonarQube",
        "CodeQL",
        "Dependabot",
        "Trivy)"
      ]
    }
  ],
  "projects": [
    {
      "name": "knuths.dev: self-hosted platform (several apps)",
      "description": "Multiple apps under one domain on a Linux VM: Docker Swarm + Dokploy + Cloudflare Tunnel (no open ports), a shared Postgres, monitoring and automation. Security-hardened (headers/CSP, non-root, vulnerability scanning) and documented for portability. Among the apps is Byggboten, an experiment that grounds a local language model in Sweden's building regulations (RAG with source citations per answer). This CV page is served from here.",
      "keywords": [
        "Docker/Swarm",
        "Cloudflare",
        "Traefik",
        "Linux",
        "nginx",
        "Ollama · RAG"
      ],
      "url": "https://knuths.dev"
    }
  ],
  "languages": [
    {
      "language": "Swedish",
      "fluency": "native"
    },
    {
      "language": "English",
      "fluency": "fluent"
    }
  ]
}
