cloudflare
tcp/443 tcp/80 tcp/8443
Open service 2606:4700:3037::6815:2b52:8443 · www.joacimandersson.com
2026-01-06 20:58
HTTP/1.1 200 OK
Date: Tue, 06 Jan 2026 20:58:46 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=Sf%2BcCPbPnqJ4WJdJiEMt14sqj%2FJT4S0llJWQlXWBY1UKLpL7WBHrWtiu2QoCDtSOZaFr0y%2F4oQl0ifzQRuds%2BRKmlLKVwmPURenvhWx12Jij7fvcIcqbs60AYMGRtFKbOQQ8"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9b9e22a9fdfc4dcc-FRA
alt-svc: h3=":8443"; ma=86400
Page title: Joacim Andersson - Software Engineering
<!DOCTYPE html>
<html lang="en">
<head>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-NBW80J8LB6"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag('js', new Date());
gtag('config', 'G-NBW80J8LB6');
</script>
<meta name="author" content="joacand"/>
<meta name="robots" content="index, follow"/>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script defer src="/assets/common.js"></script>
<link rel="stylesheet" href="/assets/styles.css">
<link rel="icon" type="image/png" href="/assets/logo.png" />
<link rel="preload"
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Merriweather:wght@700&display=swap"
as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Merriweather:wght@700&display=swap"
rel="stylesheet">
</noscript>
<title>Joacim Andersson - Software Engineering</title>
<meta name="description" content="Personal portfolio and blog, programming tutorials, web applications, software projects, and tools."/>
<meta name="keywords" content="portfolio, web tools, applications, software engineering, posts" />
<link rel="prefetch" href="/posts/">
<link rel="preload"
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Merriweather:wght@700&display=swap"
as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Merriweather:wght@700&display=swap"
rel="stylesheet">
</noscript>
<link rel="stylesheet" href="/assets/main.css">
</head>
<body>
<header>
<nav>
<a href="/">Home</a>
<a href="/posts/">Posts</a>
<a href="/tools/">Tools</a>
<a href="/applications/">Applications</a>
<button id="theme-toggle" class="theme-toggle" aria-label="Toggle dark mode">
<span class="toggle-track">
<span class="toggle-thumb"></span>
<span class="toggle-icon sun">☀️</span>
<span class="toggle-icon moon">🌙</span>
</span>
</button>
</nav>
</header>
<main>
<section class="base">
<div class="container">
<div class="base-content">
<div class="base-text">
<h1>Joacim<br>Andersson</h1>
<p class="base-subtitle">Software Engineering | .NET | Cloud | DevOps</p>
<div class="social-links">
<a href="https://www.linkedin.com/in/joacim-andersson" class="social-link" title="LinkedIn">
<svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
<path
d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z" />
</svg>
</a>
<a href="https://github.com/joacand" class="social-link" title="GitHub">
<svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
<path
d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.7
Open service 2606:4700:3037::6815:2b52:443 · www.joacimandersson.com
2026-01-06 20:58
HTTP/1.1 200 OK
Date: Tue, 06 Jan 2026 20:58:46 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=Bmky0LGyoaJbi3bg7k2TUL8NP8XqIO%2B5kG2YQo3mLR6cQDE%2BQJDW3lM1VgJB3XcGbVCjb%2B3Z%2BwLULVFW%2B5BFoPjDB7pBNOgNZAsoVEuIWEXBXE%2BWbh3q5MgaDJvdeuLQ97hB"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9b9e22a9fab3d7d5-FRA
alt-svc: h3=":443"; ma=86400
Page title: Joacim Andersson - Software Engineering
<!DOCTYPE html>
<html lang="en">
<head>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-NBW80J8LB6"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag('js', new Date());
gtag('config', 'G-NBW80J8LB6');
</script>
<meta name="author" content="joacand"/>
<meta name="robots" content="index, follow"/>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script defer src="/assets/common.js"></script>
<link rel="stylesheet" href="/assets/styles.css">
<link rel="icon" type="image/png" href="/assets/logo.png" />
<link rel="preload"
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Merriweather:wght@700&display=swap"
as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Merriweather:wght@700&display=swap"
rel="stylesheet">
</noscript>
<title>Joacim Andersson - Software Engineering</title>
<meta name="description" content="Personal portfolio and blog, programming tutorials, web applications, software projects, and tools."/>
<meta name="keywords" content="portfolio, web tools, applications, software engineering, posts" />
<link rel="prefetch" href="/posts/">
<link rel="preload"
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Merriweather:wght@700&display=swap"
as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Merriweather:wght@700&display=swap"
rel="stylesheet">
</noscript>
<link rel="stylesheet" href="/assets/main.css">
</head>
<body>
<header>
<nav>
<a href="/">Home</a>
<a href="/posts/">Posts</a>
<a href="/tools/">Tools</a>
<a href="/applications/">Applications</a>
<button id="theme-toggle" class="theme-toggle" aria-label="Toggle dark mode">
<span class="toggle-track">
<span class="toggle-thumb"></span>
<span class="toggle-icon sun">☀️</span>
<span class="toggle-icon moon">🌙</span>
</span>
</button>
</nav>
</header>
<main>
<section class="base">
<div class="container">
<div class="base-content">
<div class="base-text">
<h1>Joacim<br>Andersson</h1>
<p class="base-subtitle">Software Engineering | .NET | Cloud | DevOps</p>
<div class="social-links">
<a href="https://www.linkedin.com/in/joacim-andersson" class="social-link" title="LinkedIn">
<svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
<path
d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z" />
</svg>
</a>
<a href="https://github.com/joacand" class="social-link" title="GitHub">
<svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
<path
d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.7
Open service 2606:4700:3032::ac43:b0f6:8443 · www.joacimandersson.com
2026-01-06 20:58
HTTP/1.1 200 OK
Date: Tue, 06 Jan 2026 20:58:46 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=Fp%2FryNyBme8kO8dpbQJSmAxKk8RzGSLDPcQKTFL5ylp17yVw3%2BwgeVsYk2WGa5w24ZsgQEGBAm2k8F8ua%2FwMs1tUpKqvwG4bgF24Rr6MhQKPvX%2BidBU%2BMhAlF2y7gGofLUAZ"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9b9e22aa088737ea-FRA
alt-svc: h3=":8443"; ma=86400
Page title: Joacim Andersson - Software Engineering
<!DOCTYPE html>
<html lang="en">
<head>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-NBW80J8LB6"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag('js', new Date());
gtag('config', 'G-NBW80J8LB6');
</script>
<meta name="author" content="joacand"/>
<meta name="robots" content="index, follow"/>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script defer src="/assets/common.js"></script>
<link rel="stylesheet" href="/assets/styles.css">
<link rel="icon" type="image/png" href="/assets/logo.png" />
<link rel="preload"
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Merriweather:wght@700&display=swap"
as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Merriweather:wght@700&display=swap"
rel="stylesheet">
</noscript>
<title>Joacim Andersson - Software Engineering</title>
<meta name="description" content="Personal portfolio and blog, programming tutorials, web applications, software projects, and tools."/>
<meta name="keywords" content="portfolio, web tools, applications, software engineering, posts" />
<link rel="prefetch" href="/posts/">
<link rel="preload"
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Merriweather:wght@700&display=swap"
as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Merriweather:wght@700&display=swap"
rel="stylesheet">
</noscript>
<link rel="stylesheet" href="/assets/main.css">
</head>
<body>
<header>
<nav>
<a href="/">Home</a>
<a href="/posts/">Posts</a>
<a href="/tools/">Tools</a>
<a href="/applications/">Applications</a>
<button id="theme-toggle" class="theme-toggle" aria-label="Toggle dark mode">
<span class="toggle-track">
<span class="toggle-thumb"></span>
<span class="toggle-icon sun">☀️</span>
<span class="toggle-icon moon">🌙</span>
</span>
</button>
</nav>
</header>
<main>
<section class="base">
<div class="container">
<div class="base-content">
<div class="base-text">
<h1>Joacim<br>Andersson</h1>
<p class="base-subtitle">Software Engineering | .NET | Cloud | DevOps</p>
<div class="social-links">
<a href="https://www.linkedin.com/in/joacim-andersson" class="social-link" title="LinkedIn">
<svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
<path
d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z" />
</svg>
</a>
<a href="https://github.com/joacand" class="social-link" title="GitHub">
<svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
<path
d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.7
Open service 2606:4700:3032::ac43:b0f6:443 · www.joacimandersson.com
2026-01-06 20:58
HTTP/1.1 200 OK
Date: Tue, 06 Jan 2026 20:58:46 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=6JRRCqzNU%2BzI0lFWKWjMDviL9aVBwxYi3CyJNSWwzYNcc4oHQJvh89K%2FqTaywLrM%2BMKMYz5Cs%2FSmN6qm3vfPOOkN5CR%2FeVlSWZS1WMlqWKoJVYTdbm75HbH7x5A1Q2y5uVDv"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9b9e22a9f978366e-FRA
alt-svc: h3=":443"; ma=86400
Page title: Joacim Andersson - Software Engineering
<!DOCTYPE html>
<html lang="en">
<head>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-NBW80J8LB6"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag('js', new Date());
gtag('config', 'G-NBW80J8LB6');
</script>
<meta name="author" content="joacand"/>
<meta name="robots" content="index, follow"/>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script defer src="/assets/common.js"></script>
<link rel="stylesheet" href="/assets/styles.css">
<link rel="icon" type="image/png" href="/assets/logo.png" />
<link rel="preload"
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Merriweather:wght@700&display=swap"
as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Merriweather:wght@700&display=swap"
rel="stylesheet">
</noscript>
<title>Joacim Andersson - Software Engineering</title>
<meta name="description" content="Personal portfolio and blog, programming tutorials, web applications, software projects, and tools."/>
<meta name="keywords" content="portfolio, web tools, applications, software engineering, posts" />
<link rel="prefetch" href="/posts/">
<link rel="preload"
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Merriweather:wght@700&display=swap"
as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Merriweather:wght@700&display=swap"
rel="stylesheet">
</noscript>
<link rel="stylesheet" href="/assets/main.css">
</head>
<body>
<header>
<nav>
<a href="/">Home</a>
<a href="/posts/">Posts</a>
<a href="/tools/">Tools</a>
<a href="/applications/">Applications</a>
<button id="theme-toggle" class="theme-toggle" aria-label="Toggle dark mode">
<span class="toggle-track">
<span class="toggle-thumb"></span>
<span class="toggle-icon sun">☀️</span>
<span class="toggle-icon moon">🌙</span>
</span>
</button>
</nav>
</header>
<main>
<section class="base">
<div class="container">
<div class="base-content">
<div class="base-text">
<h1>Joacim<br>Andersson</h1>
<p class="base-subtitle">Software Engineering | .NET | Cloud | DevOps</p>
<div class="social-links">
<a href="https://www.linkedin.com/in/joacim-andersson" class="social-link" title="LinkedIn">
<svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
<path
d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z" />
</svg>
</a>
<a href="https://github.com/joacand" class="social-link" title="GitHub">
<svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
<path
d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.7
Open service 2606:4700:3037::6815:2b52:80 · www.joacimandersson.com
2026-01-06 20:58
HTTP/1.1 301 Moved Permanently
Date: Tue, 06 Jan 2026 20:58:46 GMT
Content-Length: 0
Connection: close
Location: https://www.joacimandersson.com/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=fRdPI9zsGqABhO%2BojvmSvOQYBqehEAliDPY1CC89afZgxnnFu5Cezc8z6897RRYPC69nxiuVB0f7ECYOQ8uMO3Acrrn%2FnvW1OpMNoeyWwNE0LWg7cPraYVW%2FNHxaTgfXw9tf"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9b9e22a9bef2dbcd-FRA
alt-svc: h3=":443"; ma=86400
Open service 104.21.43.82:8443 · www.joacimandersson.com
2026-01-06 20:58
HTTP/1.1 200 OK
Date: Tue, 06 Jan 2026 20:58:46 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=EeWQzzXN3AThSi0KyWYbaPQF2QFBBxEV%2B1YMO%2BkCXUc2%2Fu%2FeDtR5NP7KtsXE%2FZYdN%2B8zKLHNXws9zkqE%2Br0fA5OCu1DnAZcsCa%2FClLpt%2BJF7BuN22W8x"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9b9e22a9ec2c92b9-FRA
alt-svc: h3=":8443"; ma=86400
Page title: Joacim Andersson - Software Engineering
<!DOCTYPE html>
<html lang="en">
<head>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-NBW80J8LB6"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag('js', new Date());
gtag('config', 'G-NBW80J8LB6');
</script>
<meta name="author" content="joacand"/>
<meta name="robots" content="index, follow"/>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script defer src="/assets/common.js"></script>
<link rel="stylesheet" href="/assets/styles.css">
<link rel="icon" type="image/png" href="/assets/logo.png" />
<link rel="preload"
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Merriweather:wght@700&display=swap"
as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Merriweather:wght@700&display=swap"
rel="stylesheet">
</noscript>
<title>Joacim Andersson - Software Engineering</title>
<meta name="description" content="Personal portfolio and blog, programming tutorials, web applications, software projects, and tools."/>
<meta name="keywords" content="portfolio, web tools, applications, software engineering, posts" />
<link rel="prefetch" href="/posts/">
<link rel="preload"
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Merriweather:wght@700&display=swap"
as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Merriweather:wght@700&display=swap"
rel="stylesheet">
</noscript>
<link rel="stylesheet" href="/assets/main.css">
</head>
<body>
<header>
<nav>
<a href="/">Home</a>
<a href="/posts/">Posts</a>
<a href="/tools/">Tools</a>
<a href="/applications/">Applications</a>
<button id="theme-toggle" class="theme-toggle" aria-label="Toggle dark mode">
<span class="toggle-track">
<span class="toggle-thumb"></span>
<span class="toggle-icon sun">☀️</span>
<span class="toggle-icon moon">🌙</span>
</span>
</button>
</nav>
</header>
<main>
<section class="base">
<div class="container">
<div class="base-content">
<div class="base-text">
<h1>Joacim<br>Andersson</h1>
<p class="base-subtitle">Software Engineering | .NET | Cloud | DevOps</p>
<div class="social-links">
<a href="https://www.linkedin.com/in/joacim-andersson" class="social-link" title="LinkedIn">
<svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
<path
d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z" />
</svg>
</a>
<a href="https://github.com/joacand" class="social-link" title="GitHub">
<svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
<path
d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.7
Open service 104.21.43.82:443 · www.joacimandersson.com
2026-01-06 20:58
HTTP/1.1 200 OK
Date: Tue, 06 Jan 2026 20:58:46 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=4IaZhEb9OqOyeJgD6dMSd6VZIjvgNgUzhWfRsh8tczAOAvWtDTSiNDLtkf62FiOtx1EzLxp37fwfPjVPrzja1pFklBwwaw8XYu3obpfDUKQIqyAn5Syd"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9b9e22a9e9263648-FRA
alt-svc: h3=":443"; ma=86400
Page title: Joacim Andersson - Software Engineering
<!DOCTYPE html>
<html lang="en">
<head>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-NBW80J8LB6"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag('js', new Date());
gtag('config', 'G-NBW80J8LB6');
</script>
<meta name="author" content="joacand"/>
<meta name="robots" content="index, follow"/>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script defer src="/assets/common.js"></script>
<link rel="stylesheet" href="/assets/styles.css">
<link rel="icon" type="image/png" href="/assets/logo.png" />
<link rel="preload"
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Merriweather:wght@700&display=swap"
as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Merriweather:wght@700&display=swap"
rel="stylesheet">
</noscript>
<title>Joacim Andersson - Software Engineering</title>
<meta name="description" content="Personal portfolio and blog, programming tutorials, web applications, software projects, and tools."/>
<meta name="keywords" content="portfolio, web tools, applications, software engineering, posts" />
<link rel="prefetch" href="/posts/">
<link rel="preload"
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Merriweather:wght@700&display=swap"
as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Merriweather:wght@700&display=swap"
rel="stylesheet">
</noscript>
<link rel="stylesheet" href="/assets/main.css">
</head>
<body>
<header>
<nav>
<a href="/">Home</a>
<a href="/posts/">Posts</a>
<a href="/tools/">Tools</a>
<a href="/applications/">Applications</a>
<button id="theme-toggle" class="theme-toggle" aria-label="Toggle dark mode">
<span class="toggle-track">
<span class="toggle-thumb"></span>
<span class="toggle-icon sun">☀️</span>
<span class="toggle-icon moon">🌙</span>
</span>
</button>
</nav>
</header>
<main>
<section class="base">
<div class="container">
<div class="base-content">
<div class="base-text">
<h1>Joacim<br>Andersson</h1>
<p class="base-subtitle">Software Engineering | .NET | Cloud | DevOps</p>
<div class="social-links">
<a href="https://www.linkedin.com/in/joacim-andersson" class="social-link" title="LinkedIn">
<svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
<path
d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z" />
</svg>
</a>
<a href="https://github.com/joacand" class="social-link" title="GitHub">
<svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
<path
d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.7
Open service 172.67.176.246:443 · www.joacimandersson.com
2026-01-06 20:58
HTTP/1.1 200 OK
Date: Tue, 06 Jan 2026 20:58:46 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=%2BQildiKgh1dUmMq0SbMK4w2pUKgjl8iT5Y4tQIBy7DCiw9qezYikd5Tpts%2Fy3buK%2Fz9EakJBXbud90ypCRFv1tmReUOiQqQdqko%2B6bDtBD06Rk1zEw%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9b9e22aa2d666ae8-FRA
alt-svc: h3=":443"; ma=86400
Page title: Joacim Andersson - Software Engineering
<!DOCTYPE html>
<html lang="en">
<head>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-NBW80J8LB6"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag('js', new Date());
gtag('config', 'G-NBW80J8LB6');
</script>
<meta name="author" content="joacand"/>
<meta name="robots" content="index, follow"/>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script defer src="/assets/common.js"></script>
<link rel="stylesheet" href="/assets/styles.css">
<link rel="icon" type="image/png" href="/assets/logo.png" />
<link rel="preload"
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Merriweather:wght@700&display=swap"
as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Merriweather:wght@700&display=swap"
rel="stylesheet">
</noscript>
<title>Joacim Andersson - Software Engineering</title>
<meta name="description" content="Personal portfolio and blog, programming tutorials, web applications, software projects, and tools."/>
<meta name="keywords" content="portfolio, web tools, applications, software engineering, posts" />
<link rel="prefetch" href="/posts/">
<link rel="preload"
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Merriweather:wght@700&display=swap"
as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Merriweather:wght@700&display=swap"
rel="stylesheet">
</noscript>
<link rel="stylesheet" href="/assets/main.css">
</head>
<body>
<header>
<nav>
<a href="/">Home</a>
<a href="/posts/">Posts</a>
<a href="/tools/">Tools</a>
<a href="/applications/">Applications</a>
<button id="theme-toggle" class="theme-toggle" aria-label="Toggle dark mode">
<span class="toggle-track">
<span class="toggle-thumb"></span>
<span class="toggle-icon sun">☀️</span>
<span class="toggle-icon moon">🌙</span>
</span>
</button>
</nav>
</header>
<main>
<section class="base">
<div class="container">
<div class="base-content">
<div class="base-text">
<h1>Joacim<br>Andersson</h1>
<p class="base-subtitle">Software Engineering | .NET | Cloud | DevOps</p>
<div class="social-links">
<a href="https://www.linkedin.com/in/joacim-andersson" class="social-link" title="LinkedIn">
<svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
<path
d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z" />
</svg>
</a>
<a href="https://github.com/joacand" class="social-link" title="GitHub">
<svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
<path
d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.7
Open service 172.67.176.246:8443 · www.joacimandersson.com
2026-01-06 20:58
HTTP/1.1 200 OK
Date: Tue, 06 Jan 2026 20:58:46 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=hXOMtvP%2Fi4MGS1PTbq8Fd%2F7fJ2IbmYLDBfiyWbzIfmK%2BKDP25qOR%2BBOSMjl5bCmi867BhgV%2FxHzsSr5gthi2jgEzq9St9kB4dZA1qyYyAcHx0suvIz%2Be"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9b9e22a9e940e7b9-FRA
alt-svc: h3=":8443"; ma=86400
Page title: Joacim Andersson - Software Engineering
<!DOCTYPE html>
<html lang="en">
<head>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-NBW80J8LB6"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag('js', new Date());
gtag('config', 'G-NBW80J8LB6');
</script>
<meta name="author" content="joacand"/>
<meta name="robots" content="index, follow"/>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script defer src="/assets/common.js"></script>
<link rel="stylesheet" href="/assets/styles.css">
<link rel="icon" type="image/png" href="/assets/logo.png" />
<link rel="preload"
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Merriweather:wght@700&display=swap"
as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Merriweather:wght@700&display=swap"
rel="stylesheet">
</noscript>
<title>Joacim Andersson - Software Engineering</title>
<meta name="description" content="Personal portfolio and blog, programming tutorials, web applications, software projects, and tools."/>
<meta name="keywords" content="portfolio, web tools, applications, software engineering, posts" />
<link rel="prefetch" href="/posts/">
<link rel="preload"
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Merriweather:wght@700&display=swap"
as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Merriweather:wght@700&display=swap"
rel="stylesheet">
</noscript>
<link rel="stylesheet" href="/assets/main.css">
</head>
<body>
<header>
<nav>
<a href="/">Home</a>
<a href="/posts/">Posts</a>
<a href="/tools/">Tools</a>
<a href="/applications/">Applications</a>
<button id="theme-toggle" class="theme-toggle" aria-label="Toggle dark mode">
<span class="toggle-track">
<span class="toggle-thumb"></span>
<span class="toggle-icon sun">☀️</span>
<span class="toggle-icon moon">🌙</span>
</span>
</button>
</nav>
</header>
<main>
<section class="base">
<div class="container">
<div class="base-content">
<div class="base-text">
<h1>Joacim<br>Andersson</h1>
<p class="base-subtitle">Software Engineering | .NET | Cloud | DevOps</p>
<div class="social-links">
<a href="https://www.linkedin.com/in/joacim-andersson" class="social-link" title="LinkedIn">
<svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
<path
d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z" />
</svg>
</a>
<a href="https://github.com/joacand" class="social-link" title="GitHub">
<svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
<path
d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.7
Open service 2606:4700:3032::ac43:b0f6:80 · www.joacimandersson.com
2026-01-06 20:58
HTTP/1.1 301 Moved Permanently
Date: Tue, 06 Jan 2026 20:58:46 GMT
Content-Length: 0
Connection: close
Location: https://www.joacimandersson.com/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=ZWGhEyr8VKRe6seQieBp29ZhbV4Be1%2BQkUkLw%2F28lpFYlTXzxMX9YuqjQIn5vHc015T13QJaQ4m2n1ZdREHHj1EYLcxOO5otSalFA3arh2q7Gx06j65gdNUB28JyFP4KSaPr"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9b9e22a9ca89198f-FRA
alt-svc: h3=":443"; ma=86400
Open service 172.67.176.246:80 · www.joacimandersson.com
2026-01-06 20:58
HTTP/1.1 301 Moved Permanently
Date: Tue, 06 Jan 2026 20:58:46 GMT
Content-Length: 0
Connection: close
Location: https://www.joacimandersson.com/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=xHqccJUM6bRnUk%2FqhTb5FnmzfZiUfXegGasGNZHAiMzhrznTnrRt9oeThY%2B0bQj%2FUUkuN2jpGStnmX4JcL35z2v5GZzmzZJYtoMGPAQFxrvOaJs%2BoNow"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9b9e22a9cb2e902e-FRA
alt-svc: h3=":443"; ma=86400
Open service 104.21.43.82:80 · www.joacimandersson.com
2026-01-06 20:58
HTTP/1.1 301 Moved Permanently
Date: Tue, 06 Jan 2026 20:58:46 GMT
Content-Length: 0
Connection: close
Location: https://www.joacimandersson.com/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=YBlPJy5W0Hq9Yxw5%2BrEM9Py%2FjRcpH5lHSJMWD8DD1k%2BaZt3sKPOFbqpjJt9gU6N%2Fef932jxaTAz9%2BfOzkowjX4zQ84xtUbD6iukJdghOgSyQeSYI%2FWMY"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9b9e22a9db8b7882-FRA
alt-svc: h3=":443"; ma=86400