CloudFront
tcp/443 tcp/80
cloudflare
tcp/443 tcp/80 tcp/8443
Open service 18.239.83.39:443 · angkrit.com
2026-01-12 21:05
HTTP/1.1 400 Bad Request Server: CloudFront Date: Mon, 12 Jan 2026 21:05:51 GMT Content-Type: text/html Content-Length: 915 Connection: close X-Cache: Error from cloudfront Via: 1.1 31d06ae261b40b074730272856c3fe20.cloudfront.net (CloudFront) X-Amz-Cf-Pop: AMS58-P5 X-Amz-Cf-Id: qddkISd28oor2SgE-2xyUhIfSo3rD3olWsY6DsU1T-B3gkZtJxYBqQ== Page title: ERROR: The request could not be satisfied <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <TITLE>ERROR: The request could not be satisfied</TITLE> </HEAD><BODY> <H1>400 ERROR</H1> <H2>The request could not be satisfied.</H2> <HR noshade size="1px"> Bad request. We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner. <BR clear="all"> If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation. <BR clear="all"> <HR noshade size="1px"> <PRE> Generated by cloudfront (CloudFront) Request ID: qddkISd28oor2SgE-2xyUhIfSo3rD3olWsY6DsU1T-B3gkZtJxYBqQ== </PRE> <ADDRESS> </ADDRESS> </BODY></HTML>
Open service 18.239.83.39:443 · angkrit.com
2026-01-11 21:05
HTTP/1.1 400 Bad Request Server: CloudFront Date: Sun, 11 Jan 2026 21:05:51 GMT Content-Type: text/html Content-Length: 915 Connection: close X-Cache: Error from cloudfront Via: 1.1 c42cd753c9927a74eed5ac8cd899bf30.cloudfront.net (CloudFront) X-Amz-Cf-Pop: AMS58-P5 X-Amz-Cf-Id: uPPoOgHNZ13i47cCpKyE9IyQ3pTd5RilyWYHiEfczfSSb49W9EKxXg== Page title: ERROR: The request could not be satisfied <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <TITLE>ERROR: The request could not be satisfied</TITLE> </HEAD><BODY> <H1>400 ERROR</H1> <H2>The request could not be satisfied.</H2> <HR noshade size="1px"> Bad request. We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner. <BR clear="all"> If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation. <BR clear="all"> <HR noshade size="1px"> <PRE> Generated by cloudfront (CloudFront) Request ID: uPPoOgHNZ13i47cCpKyE9IyQ3pTd5RilyWYHiEfczfSSb49W9EKxXg== </PRE> <ADDRESS> </ADDRESS> </BODY></HTML>
Open service 18.239.83.39:443 · angkrit.com
2026-01-10 21:05
HTTP/1.1 400 Bad Request Server: CloudFront Date: Sat, 10 Jan 2026 21:05:33 GMT Content-Type: text/html Content-Length: 915 Connection: close X-Cache: Error from cloudfront Via: 1.1 c42cd753c9927a74eed5ac8cd899bf30.cloudfront.net (CloudFront) X-Amz-Cf-Pop: AMS58-P5 X-Amz-Cf-Id: xkF2LsDYQs1X0Hh9oRoBtwgRSX2-aGsUG2CZ0CvLaCJFR-7GF20mjg== Page title: ERROR: The request could not be satisfied <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <TITLE>ERROR: The request could not be satisfied</TITLE> </HEAD><BODY> <H1>400 ERROR</H1> <H2>The request could not be satisfied.</H2> <HR noshade size="1px"> Bad request. We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner. <BR clear="all"> If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation. <BR clear="all"> <HR noshade size="1px"> <PRE> Generated by cloudfront (CloudFront) Request ID: xkF2LsDYQs1X0Hh9oRoBtwgRSX2-aGsUG2CZ0CvLaCJFR-7GF20mjg== </PRE> <ADDRESS> </ADDRESS> </BODY></HTML>
Open service 18.239.83.39:443 · angkrit.com
2026-01-09 21:15
HTTP/1.1 400 Bad Request Server: CloudFront Date: Fri, 09 Jan 2026 21:15:57 GMT Content-Type: text/html Content-Length: 915 Connection: close X-Cache: Error from cloudfront Via: 1.1 f75afc04e5fb2b66fe286e4f840886c6.cloudfront.net (CloudFront) X-Amz-Cf-Pop: AMS58-P5 X-Amz-Cf-Id: ZgO4rCIHuTFh64nHrZbG5JskrTX-A3X78kRtriR1u3a1Jl8_7NZvHw== Page title: ERROR: The request could not be satisfied <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <TITLE>ERROR: The request could not be satisfied</TITLE> </HEAD><BODY> <H1>400 ERROR</H1> <H2>The request could not be satisfied.</H2> <HR noshade size="1px"> Bad request. We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner. <BR clear="all"> If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation. <BR clear="all"> <HR noshade size="1px"> <PRE> Generated by cloudfront (CloudFront) Request ID: ZgO4rCIHuTFh64nHrZbG5JskrTX-A3X78kRtriR1u3a1Jl8_7NZvHw== </PRE> <ADDRESS> </ADDRESS> </BODY></HTML>
Open service 18.239.83.39:443 · angkrit.com
2026-01-08 21:18
HTTP/1.1 400 Bad Request Server: CloudFront Date: Thu, 08 Jan 2026 21:18:09 GMT Content-Type: text/html Content-Length: 915 Connection: close X-Cache: Error from cloudfront Via: 1.1 a44309111e5e1050ff485adaa4681ad0.cloudfront.net (CloudFront) X-Amz-Cf-Pop: AMS58-P5 X-Amz-Cf-Id: MtJbdIDkY7qIKID_sZ7mpkx2NDJZcQr14SDGuamVHQKdbqWrj8uJiA== Page title: ERROR: The request could not be satisfied <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <TITLE>ERROR: The request could not be satisfied</TITLE> </HEAD><BODY> <H1>400 ERROR</H1> <H2>The request could not be satisfied.</H2> <HR noshade size="1px"> Bad request. We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner. <BR clear="all"> If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation. <BR clear="all"> <HR noshade size="1px"> <PRE> Generated by cloudfront (CloudFront) Request ID: MtJbdIDkY7qIKID_sZ7mpkx2NDJZcQr14SDGuamVHQKdbqWrj8uJiA== </PRE> <ADDRESS> </ADDRESS> </BODY></HTML>
Open service 188.114.97.3:443 · angkrit.com
2026-01-08 10:28
HTTP/1.1 404 Not Found
Date: Thu, 08 Jan 2026 10:28:32 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=PTRKplnrS1sJvIiv%2F2tE7K%2BGrt6RPZJ8YFZkAyuhZg0bPFeu9KUzj3zrcz75SEaz4znI0swHykvZ2xXd3bzUUP9GwqU8chia3zVm"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Vary: Accept-Encoding
Server: cloudflare
cache-control: no-cache,no-store
x-frame-options: SAMEORIGIN
X-turbo-charged-by: LiteSpeed
cf-cache-status: DYNAMIC
CF-RAY: 9bab020b4dbd2b0b-LHR
alt-svc: h3=":443"; ma=86400
Page title: Bot Verification
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Bot Verification</title>
<script>
function onSubmit() {
document.getElementById('lsrecaptcha-form').submit();
}
var onloadCallback = function() {
var cont = grecaptcha.render('recaptchadiv', {
'sitekey': '6LewU34UAAAAAHvXqFOcQlm8z1MP1xpGAZCYEeZY',
'callback': onSubmit,
});
grecaptcha.execute(cont);
};
</script>
<style>
body {
height: 100%;
}
.panel {
padding: 30px;
max-width: 425px;
margin: 10% auto;
box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.2);
}
.title {
font-size: 1.5em;
font-weight: 100;
margin-top: 10px;
text-align: center;
}
.recaptcha-center {
margin-top: 35px;
margin-bottom: 20px;
margin-left: 13%;
margin-right: 13%;
display: block;
}
</style>
</head>
<body>
<div class="panel">
<h3 class="title">Verifying that you are not a robot...</h3>
<form id="lsrecaptcha-form" method="POST" action="/.lsrecap/recaptcha?">
<div id="recaptchadiv" class="recaptcha-center"></div>
</form>
</div>
<script src="https://www.recaptcha.net/recaptcha/api.js?onload=onloadCallback&render=explicit"
async defer>
</script>
</body>
</html>
Open service 2a06:98c1:3121::3:8443 · angkrit.com
2026-01-08 10:28
HTTP/1.1 522 <none> Date: Thu, 08 Jan 2026 10:28:45 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9bab020f3d5ad579-AMS alt-svc: h3=":8443"; ma=86400 error code: 522
Open service 2a06:98c1:3120::3:80 · angkrit.com
2026-01-08 10:28
HTTP/1.1 301 Moved Permanently
Date: Thu, 08 Jan 2026 10:28:25 GMT
Content-Length: 0
Connection: close
Location: https://angkrit.com/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=JNF959uE%2Fbg%2F%2BFh%2FqxLUJUKD2d7w5K9KG8sRRjfJFdpILmkjbnbXVr0ArZplfzK%2BrCf3DR1UkjYcw3jL31leteFI1mD1OV9j4bO4HuYOui5VDhZkCYPB"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bab0208fcb6d26d-FRA
alt-svc: h3=":443"; ma=86400
Open service 2a06:98c1:3121::3:443 · angkrit.com
2026-01-08 10:28
HTTP/1.1 200 OK
Date: Thu, 08 Jan 2026 10:28:26 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=GRnBtFby75auJC6tnepb070DvXbIfOahurk6NhCUtl%2Fiw%2FQZeqkbCFJ5UWeAklG4HMYZPx6OUA3J6%2F9CIx6puqXbRHAHYNhZxyJ7%2FS67%2FQgW3QgdZdQy"}]}
Vary: RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Router-Segment-Prefetch, Accept-Encoding
x-nextjs-cache: HIT
x-nextjs-prerender: 1
x-nextjs-stale-time: 4294967294
X-Powered-By: Next.js
Cache-Control: s-maxage=31536000
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
platform: hostinger
panel: hpanel
Content-Security-Policy: upgrade-insecure-requests
X-turbo-charged-by: LiteSpeed
cf-cache-status: DYNAMIC
CF-RAY: 9bab020bccb232b1-EWR
alt-svc: h3=":443"; ma=86400
Page title: Angkrit Boonpleng
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/4cf2300e9c8272f7-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/93f479601ee12b01-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/dd7e1e6a0ff89a32.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-94ef1f9c5bf82738.js"/><script src="/_next/static/chunks/87393535-323d70441b5534a5.js" async=""></script><script src="/_next/static/chunks/558-092fb0da4620b0c2.js" async=""></script><script src="/_next/static/chunks/main-app-e608f35c03157040.js" async=""></script><meta name="next-size-adjust" content=""/><title>Angkrit Boonpleng</title><meta name="description" content="Experienced software developer specializing in web development. Skilled in unit testing, clean code, system architecture, design patterns, and problem-solving."/><link rel="icon" href="/favicon.ico" type="image/x-icon" sizes="256x256"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_188709 __variable_9a8899 antialiased"><div class="relative grid grid-rows-[20px_1fr_20px] items-center justify-items-center min-h-screen p-8 pb-20 gap-16 sm:p-20 font-[family-name:var(--font-geist-sans)] overflow-hidden"><div class="absolute inset-0 opacity-10"><svg class="w-full h-full" viewBox="0 0 1200 800" preserveAspectRatio="none"><defs><style>
@keyframes wave1 {
0%, 100% { d: path("M0,400 Q300,300 600,400 T1200,400 V800 H0 Z"); }
50% { d: path("M0,400 Q300,500 600,400 T1200,400 V800 H0 Z"); }
}
@keyframes wave2 {
0%, 100% { d: path("M0,450 Q300,350 600,450 T1200,450 V800 H0 Z"); }
50% { d: path("M0,450 Q300,550 600,450 T1200,450 V800 H0 Z"); }
}
@keyframes wave3 {
0%, 100% { d: path("M0,500 Q300,400 600,500 T1200,500 V800 H0 Z"); }
50% { d: path("M0,500 Q300,600 600,500 T1200,500 V800 H0 Z"); }
}
.wave1 { animation: wave1 8s ease-in-out infinite; }
.wave2 { animation: wave2 10s ease-in-out infinite reverse; }
.wave3 { animation: wave3 12s ease-in-out infinite; }
</style></defs><path class="wave1 fill-current text-gray-600 dark:text-gray-400" d="M0,400 Q300,300 600,400 T1200,400 V800 H0 Z"></path><path class="wave2 fill-current text-gray-500 dark:text-gray-500" d="M0,450 Q300,350 600,450 T1200,450 V800 H0 Z"></path><path class="wave3 fill-current text-gray-400 dark:text-gray-600" d="M0,500 Q300,400 600,500 T1200,500 V800 H0 Z"></path></svg></div><main class="relative z-10 flex flex-col gap-[32px] row-start-2 items-center sm:items-start"><div class="w-full text-center sm:text-left"><h1 class="text-3xl sm:text-4xl font-bold tracking-tight">Angkrit Boonpleng</h1><h2 class="text-lg sm:text-xl text-gray-600 dark:text-gray-400 mt-2">Software Engineer</h2><p class="mt-6 text-base sm:text-lg leading-relaxed max-w-2xl">Explore selected projects and learn more about my work and background through my portfolio and LinkedIn.</p></div><div class="flex gap-4 items-center flex-col sm:flex-row w-full"><a class="rounded-lg border border-solid border-transparent transition-colors flex items-center justify-center bg-foreground text-background gap-2 hover:bg-[#383838] dark:hover:bg-[#ccc] font-medium text-sm sm:text-base h-11 sm:h-12 px-6 sm:px-8 w-full" href="https://angkrit.my.canva.site/" target="_blank" rel="noopener noreferrer">View Portfolio</a><a class="rounded-lg border border-solid border-black/[.08] dark:border-white/[.145] transition-colors flex items-center justify-center hover:bg-[#f2f2f2] dark:hover:bg-[#1a1a1a] hover:border-transparent text-sm sm:text-base h-11 sm:h-12 px-6 sm:px-8 w-full" href="https://www.linkedin.com/in/angkrit/" target="_blan
Open service 2a06:98c1:3121::3:80 · angkrit.com
2026-01-08 10:28
HTTP/1.1 301 Moved Permanently
Date: Thu, 08 Jan 2026 10:28:25 GMT
Content-Length: 0
Connection: close
Location: https://angkrit.com/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=EsjzWFjh9Zp7JXEU%2FhrQ8BHIHDGEoJ%2FvUqeHyt630fOY0Dg7wIkjpWpJ4bLYvqfO6HIx8PKBmpO4Yvirde13VSBhGzC18YqChULpZ3GhMOtYPXzcZeT3"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bab0208bb79c3c2-SIN
alt-svc: h3=":443"; ma=86400
Open service 188.114.97.3:8443 · angkrit.com
2026-01-08 10:28
HTTP/1.1 522 <none> Date: Thu, 08 Jan 2026 10:28:45 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9bab020ecf1271e7-SJC alt-svc: h3=":8443"; ma=86400 error code: 522
Open service 2a06:98c1:3120::3:443 · angkrit.com
2026-01-08 10:28
HTTP/1.1 200 OK
Date: Thu, 08 Jan 2026 10:28:26 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=zj8g1hoNUUQxqhMu%2FOr4tgbriAcigymMgVk2PhcEIE62xlAWl6Y4BoueJzcadS4REVoKHwUERRX45lT6kuNRVsSQD0Tvuzr%2B4jd6ISsNZimsB%2BI00LHF"}]}
Vary: RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Router-Segment-Prefetch, Accept-Encoding
x-nextjs-cache: HIT
x-nextjs-prerender: 1
x-nextjs-stale-time: 4294967294
X-Powered-By: Next.js
Cache-Control: s-maxage=31536000
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
platform: hostinger
panel: hpanel
Content-Security-Policy: upgrade-insecure-requests
X-turbo-charged-by: LiteSpeed
cf-cache-status: DYNAMIC
CF-RAY: 9bab020cfa255c40-AMS
alt-svc: h3=":443"; ma=86400
Page title: Angkrit Boonpleng
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/4cf2300e9c8272f7-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/93f479601ee12b01-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/dd7e1e6a0ff89a32.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-94ef1f9c5bf82738.js"/><script src="/_next/static/chunks/87393535-323d70441b5534a5.js" async=""></script><script src="/_next/static/chunks/558-092fb0da4620b0c2.js" async=""></script><script src="/_next/static/chunks/main-app-e608f35c03157040.js" async=""></script><meta name="next-size-adjust" content=""/><title>Angkrit Boonpleng</title><meta name="description" content="Experienced software developer specializing in web development. Skilled in unit testing, clean code, system architecture, design patterns, and problem-solving."/><link rel="icon" href="/favicon.ico" type="image/x-icon" sizes="256x256"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_188709 __variable_9a8899 antialiased"><div class="relative grid grid-rows-[20px_1fr_20px] items-center justify-items-center min-h-screen p-8 pb-20 gap-16 sm:p-20 font-[family-name:var(--font-geist-sans)] overflow-hidden"><div class="absolute inset-0 opacity-10"><svg class="w-full h-full" viewBox="0 0 1200 800" preserveAspectRatio="none"><defs><style>
@keyframes wave1 {
0%, 100% { d: path("M0,400 Q300,300 600,400 T1200,400 V800 H0 Z"); }
50% { d: path("M0,400 Q300,500 600,400 T1200,400 V800 H0 Z"); }
}
@keyframes wave2 {
0%, 100% { d: path("M0,450 Q300,350 600,450 T1200,450 V800 H0 Z"); }
50% { d: path("M0,450 Q300,550 600,450 T1200,450 V800 H0 Z"); }
}
@keyframes wave3 {
0%, 100% { d: path("M0,500 Q300,400 600,500 T1200,500 V800 H0 Z"); }
50% { d: path("M0,500 Q300,600 600,500 T1200,500 V800 H0 Z"); }
}
.wave1 { animation: wave1 8s ease-in-out infinite; }
.wave2 { animation: wave2 10s ease-in-out infinite reverse; }
.wave3 { animation: wave3 12s ease-in-out infinite; }
</style></defs><path class="wave1 fill-current text-gray-600 dark:text-gray-400" d="M0,400 Q300,300 600,400 T1200,400 V800 H0 Z"></path><path class="wave2 fill-current text-gray-500 dark:text-gray-500" d="M0,450 Q300,350 600,450 T1200,450 V800 H0 Z"></path><path class="wave3 fill-current text-gray-400 dark:text-gray-600" d="M0,500 Q300,400 600,500 T1200,500 V800 H0 Z"></path></svg></div><main class="relative z-10 flex flex-col gap-[32px] row-start-2 items-center sm:items-start"><div class="w-full text-center sm:text-left"><h1 class="text-3xl sm:text-4xl font-bold tracking-tight">Angkrit Boonpleng</h1><h2 class="text-lg sm:text-xl text-gray-600 dark:text-gray-400 mt-2">Software Engineer</h2><p class="mt-6 text-base sm:text-lg leading-relaxed max-w-2xl">Explore selected projects and learn more about my work and background through my portfolio and LinkedIn.</p></div><div class="flex gap-4 items-center flex-col sm:flex-row w-full"><a class="rounded-lg border border-solid border-transparent transition-colors flex items-center justify-center bg-foreground text-background gap-2 hover:bg-[#383838] dark:hover:bg-[#ccc] font-medium text-sm sm:text-base h-11 sm:h-12 px-6 sm:px-8 w-full" href="https://angkrit.my.canva.site/" target="_blank" rel="noopener noreferrer">View Portfolio</a><a class="rounded-lg border border-solid border-black/[.08] dark:border-white/[.145] transition-colors flex items-center justify-center hover:bg-[#f2f2f2] dark:hover:bg-[#1a1a1a] hover:border-transparent text-sm sm:text-base h-11 sm:h-12 px-6 sm:px-8 w-full" href="https://www.linkedin.com/in/angkrit/" target="_blan
Open service 2a06:98c1:3120::3:8443 · angkrit.com
2026-01-08 10:28
HTTP/1.1 522 <none> Date: Thu, 08 Jan 2026 10:28:45 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9bab020e9e462ef5-EWR alt-svc: h3=":8443"; ma=86400 error code: 522
Open service 188.114.97.3:80 · angkrit.com
2026-01-08 10:28
HTTP/1.1 301 Moved Permanently
Date: Thu, 08 Jan 2026 10:28:25 GMT
Content-Length: 0
Connection: close
Location: https://angkrit.com/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=qUZiFXZImdPjaUR7YdqC0c0tfHotXO6YqjYoRsfUR%2BISEGCKnaeP4LGspercXk9t717L9XumDaf3dOfb9RqSC6d1X1WJe9%2FA6m0s"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bab02085eb43d85-EWR
alt-svc: h3=":443"; ma=86400
Open service 18.239.83.39:443 · angkrit.com
2026-01-07 21:10
HTTP/1.1 400 Bad Request Server: CloudFront Date: Wed, 07 Jan 2026 21:10:41 GMT Content-Type: text/html Content-Length: 915 Connection: close X-Cache: Error from cloudfront Via: 1.1 31d06ae261b40b074730272856c3fe20.cloudfront.net (CloudFront) X-Amz-Cf-Pop: AMS58-P5 X-Amz-Cf-Id: 2flMMmpmJV4EPT6ReqNc5fMOr5Qw9GmLfobu8-0wbZXlD7U35XsZdQ== Page title: ERROR: The request could not be satisfied <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <TITLE>ERROR: The request could not be satisfied</TITLE> </HEAD><BODY> <H1>400 ERROR</H1> <H2>The request could not be satisfied.</H2> <HR noshade size="1px"> Bad request. We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner. <BR clear="all"> If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation. <BR clear="all"> <HR noshade size="1px"> <PRE> Generated by cloudfront (CloudFront) Request ID: 2flMMmpmJV4EPT6ReqNc5fMOr5Qw9GmLfobu8-0wbZXlD7U35XsZdQ== </PRE> <ADDRESS> </ADDRESS> </BODY></HTML>
Open service 18.239.83.39:443 · angkrit.com
2026-01-06 21:06
HTTP/1.1 400 Bad Request Server: CloudFront Date: Tue, 06 Jan 2026 21:06:08 GMT Content-Type: text/html Content-Length: 915 Connection: close X-Cache: Error from cloudfront Via: 1.1 134cb849e01fafad6f264ff9633b073e.cloudfront.net (CloudFront) X-Amz-Cf-Pop: AMS58-P5 X-Amz-Cf-Id: LT-vK6Gu2XcW6BLlkcsQ-awyzMOtqO7vlsfsOV-zpVA8SeC6lty1uA== Page title: ERROR: The request could not be satisfied <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <TITLE>ERROR: The request could not be satisfied</TITLE> </HEAD><BODY> <H1>400 ERROR</H1> <H2>The request could not be satisfied.</H2> <HR noshade size="1px"> Bad request. We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner. <BR clear="all"> If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation. <BR clear="all"> <HR noshade size="1px"> <PRE> Generated by cloudfront (CloudFront) Request ID: LT-vK6Gu2XcW6BLlkcsQ-awyzMOtqO7vlsfsOV-zpVA8SeC6lty1uA== </PRE> <ADDRESS> </ADDRESS> </BODY></HTML>
Open service 18.239.83.39:443 · angkrit.com
2026-01-03 21:05
HTTP/1.1 400 Bad Request Server: CloudFront Date: Sat, 03 Jan 2026 21:05:34 GMT Content-Type: text/html Content-Length: 915 Connection: close X-Cache: Error from cloudfront Via: 1.1 97f993f9d41d16f3f36b8c466857e2d6.cloudfront.net (CloudFront) X-Amz-Cf-Pop: AMS58-P5 X-Amz-Cf-Id: wf1bkjUFJE5KYzXOGsqTKLzgZCQ3OOehSqLHmTS1GxaxgnWVBTalxA== Page title: ERROR: The request could not be satisfied <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <TITLE>ERROR: The request could not be satisfied</TITLE> </HEAD><BODY> <H1>400 ERROR</H1> <H2>The request could not be satisfied.</H2> <HR noshade size="1px"> Bad request. We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner. <BR clear="all"> If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation. <BR clear="all"> <HR noshade size="1px"> <PRE> Generated by cloudfront (CloudFront) Request ID: wf1bkjUFJE5KYzXOGsqTKLzgZCQ3OOehSqLHmTS1GxaxgnWVBTalxA== </PRE> <ADDRESS> </ADDRESS> </BODY></HTML>
Open service 18.239.83.39:443 · angkrit.com
2026-01-02 21:23
HTTP/1.1 400 Bad Request Server: CloudFront Date: Fri, 02 Jan 2026 21:23:02 GMT Content-Type: text/html Content-Length: 915 Connection: close X-Cache: Error from cloudfront Via: 1.1 a44309111e5e1050ff485adaa4681ad0.cloudfront.net (CloudFront) X-Amz-Cf-Pop: AMS58-P5 X-Amz-Cf-Id: n2knfyntptpfL0UT9K_Z176v5U2M2xm5ZtyitiJb-LyM-0tRsFwqow== Page title: ERROR: The request could not be satisfied <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <TITLE>ERROR: The request could not be satisfied</TITLE> </HEAD><BODY> <H1>400 ERROR</H1> <H2>The request could not be satisfied.</H2> <HR noshade size="1px"> Bad request. We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner. <BR clear="all"> If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation. <BR clear="all"> <HR noshade size="1px"> <PRE> Generated by cloudfront (CloudFront) Request ID: n2knfyntptpfL0UT9K_Z176v5U2M2xm5ZtyitiJb-LyM-0tRsFwqow== </PRE> <ADDRESS> </ADDRESS> </BODY></HTML>
Open service 18.239.83.39:443 · angkrit.com
2026-01-01 21:09
HTTP/1.1 400 Bad Request Server: CloudFront Date: Thu, 01 Jan 2026 21:09:23 GMT Content-Type: text/html Content-Length: 915 Connection: close X-Cache: Error from cloudfront Via: 1.1 c0f1616474eb5ab66a150ca4467bd724.cloudfront.net (CloudFront) X-Amz-Cf-Pop: AMS58-P5 X-Amz-Cf-Id: 4se7umXB4X2rXrghIKJ1dLHnznvvWthl_86YsYlyKYYxOQrUHTo-zw== Page title: ERROR: The request could not be satisfied <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <TITLE>ERROR: The request could not be satisfied</TITLE> </HEAD><BODY> <H1>400 ERROR</H1> <H2>The request could not be satisfied.</H2> <HR noshade size="1px"> Bad request. We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner. <BR clear="all"> If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation. <BR clear="all"> <HR noshade size="1px"> <PRE> Generated by cloudfront (CloudFront) Request ID: 4se7umXB4X2rXrghIKJ1dLHnznvvWthl_86YsYlyKYYxOQrUHTo-zw== </PRE> <ADDRESS> </ADDRESS> </BODY></HTML>
Open service 2a06:98c1:3120::3:443 · angkrit.com
2026-01-01 11:51
HTTP/1.1 503 Service Unavailable
Date: Thu, 01 Jan 2026 11:51:40 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Cache-Control: private, no-cache, no-store, must-revalidate, max-age=0
Pragma: no-cache
Server: cloudflare
platform: hostinger
panel: hpanel
Content-Security-Policy: upgrade-insecure-requests
X-turbo-charged-by: LiteSpeed
cf-cache-status: DYNAMIC
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=%2BOFsXTBsfmyOFFetCmpbJJNozhnx8hqfYOHEu97FH7xwrOa6hzK699fYZBGe3zy94B1bcddWPNWEJs7bUMaQVebd5LXaI%2F3xFfTct%2F28JmKfRGCtUKWM"}]}
CF-RAY: 9b71ce464ae39d6f-SIN
alt-svc: h3=":443"; ma=86400
Page title: 503 Service Unavailable
<!DOCTYPE html>
<html style="height:100%">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title> 503 Service Unavailable
</title><style>@media (prefers-color-scheme:dark){body{background-color:#000!important}}</style></head>
<body style="color: #444; margin:0;font: normal 14px/20px Arial, Helvetica, sans-serif; height:100%; background-color: #fff;">
<div style="height:auto; min-height:100%; "> <div style="text-align: center; width:800px; margin-left: -400px; position:absolute; top: 30%; left:50%;">
<h1 style="margin:0; font-size:150px; line-height:150px; font-weight:bold;">503</h1>
<h2 style="margin-top:20px;font-size: 30px;">Service Unavailable
</h2>
<p>The server is temporarily busy, try again later!</p>
</div></div></body></html>
Open service 188.114.97.3:8443 · angkrit.com
2026-01-01 11:51
HTTP/1.1 522 <none> Date: Thu, 01 Jan 2026 11:51:55 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9b71ce423d16835d-SIN alt-svc: h3=":8443"; ma=86400 error code: 522
Open service 2a06:98c1:3121::3:443 · angkrit.com
2026-01-01 11:51
HTTP/1.1 503 Service Unavailable
Date: Thu, 01 Jan 2026 11:51:40 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Cache-Control: private, no-cache, no-store, must-revalidate, max-age=0
Pragma: no-cache
Server: cloudflare
platform: hostinger
panel: hpanel
Content-Security-Policy: upgrade-insecure-requests
X-turbo-charged-by: LiteSpeed
cf-cache-status: DYNAMIC
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=qQcOyHklMc3Zq2YVzqTFExMQstypfgReNiYxkATQtEQSmIcypO9DaWQs87HCrN10R4KMK42jd6WyoMz1oENubRzpOevTH5YREvjYaGOIkFDz7baHq9Xt"}]}
CF-RAY: 9b71ce41bff30bc7-LHR
alt-svc: h3=":443"; ma=86400
Page title: 503 Service Unavailable
<!DOCTYPE html>
<html style="height:100%">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title> 503 Service Unavailable
</title><style>@media (prefers-color-scheme:dark){body{background-color:#000!important}}</style></head>
<body style="color: #444; margin:0;font: normal 14px/20px Arial, Helvetica, sans-serif; height:100%; background-color: #fff;">
<div style="height:auto; min-height:100%; "> <div style="text-align: center; width:800px; margin-left: -400px; position:absolute; top: 30%; left:50%;">
<h1 style="margin:0; font-size:150px; line-height:150px; font-weight:bold;">503</h1>
<h2 style="margin-top:20px;font-size: 30px;">Service Unavailable
</h2>
<p>The server is temporarily busy, try again later!</p>
</div></div></body></html>
Open service 2a06:98c1:3121::3:80 · angkrit.com
2026-01-01 11:51
HTTP/1.1 301 Moved Permanently
Date: Thu, 01 Jan 2026 11:51:34 GMT
Content-Length: 0
Connection: close
Location: https://angkrit.com/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=HtFTqAk5OdjPPM1Ew22fDPRF3CY68pb4xH6vM1nlBMLu6JhvoICGhfHP0K2%2BsDhcEKYc7hrsmtGkF%2Fw%2FHtAEAM6hs1Ol9QFDqLhow5yVRvs6C4G3Z4hh"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9b71ce3b396143f3-EWR
alt-svc: h3=":443"; ma=86400
Open service 2a06:98c1:3121::3:8443 · angkrit.com
2026-01-01 11:51
HTTP/1.1 522 <none> Date: Thu, 01 Jan 2026 11:51:55 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9b71ce417b4c60e6-EWR alt-svc: h3=":8443"; ma=86400 error code: 522
Open service 2a06:98c1:3120::3:8443 · angkrit.com
2026-01-01 11:51
HTTP/1.1 522 <none> Date: Thu, 01 Jan 2026 11:51:55 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9b71ce416ac2b96b-EWR alt-svc: h3=":8443"; ma=86400 error code: 522
Open service 188.114.97.3:443 · angkrit.com
2026-01-01 11:51
HTTP/1.1 404 Not Found
Date: Thu, 01 Jan 2026 11:51:42 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=bElsJ9DdkUiARsh3YEfIjvwgy8UggANCrch01qA5w1X1v6P%2F6%2BYoqn3KUlhpR1w4YXa3Z9j%2FjaaJeAl74bsCuyRJw6N24Xei6k8X"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Vary: Accept-Encoding
Server: cloudflare
cache-control: no-cache,no-store
x-frame-options: SAMEORIGIN
X-turbo-charged-by: LiteSpeed
cf-cache-status: DYNAMIC
CF-RAY: 9b71ce414a63f6a5-FRA
alt-svc: h3=":443"; ma=86400
Page title: Bot Verification
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Bot Verification</title>
<script>
function onSubmit() {
document.getElementById('lsrecaptcha-form').submit();
}
var onloadCallback = function() {
var cont = grecaptcha.render('recaptchadiv', {
'sitekey': '6LewU34UAAAAAHvXqFOcQlm8z1MP1xpGAZCYEeZY',
'callback': onSubmit,
});
grecaptcha.execute(cont);
};
</script>
<style>
body {
height: 100%;
}
.panel {
padding: 30px;
max-width: 425px;
margin: 10% auto;
box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.2);
}
.title {
font-size: 1.5em;
font-weight: 100;
margin-top: 10px;
text-align: center;
}
.recaptcha-center {
margin-top: 35px;
margin-bottom: 20px;
margin-left: 13%;
margin-right: 13%;
display: block;
}
</style>
</head>
<body>
<div class="panel">
<h3 class="title">Verifying that you are not a robot...</h3>
<form id="lsrecaptcha-form" method="POST" action="/.lsrecap/recaptcha?">
<div id="recaptchadiv" class="recaptcha-center"></div>
</form>
</div>
<script src="https://www.recaptcha.net/recaptcha/api.js?onload=onloadCallback&render=explicit"
async defer>
</script>
</body>
</html>
Open service 2a06:98c1:3120::3:80 · angkrit.com
2026-01-01 11:51
HTTP/1.1 301 Moved Permanently
Date: Thu, 01 Jan 2026 11:51:34 GMT
Content-Length: 0
Connection: close
Location: https://angkrit.com/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=aT77j5s61O2EQDsDY9BCt%2BVzJ%2BRcI6O8erl6z1eV8dDb%2BGWcY8dsJWFuPC6nuRjVHjMCxaFB20MnJJYYyPdMrYOcqnPNSwh6J4HtNrdpTHp9Gtg2Fw%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9b71ce3b0e0315a2-SJC
alt-svc: h3=":443"; ma=86400
Open service 188.114.97.3:80 · angkrit.com
2026-01-01 11:51
HTTP/1.1 301 Moved Permanently
Date: Thu, 01 Jan 2026 11:51:34 GMT
Content-Length: 0
Connection: close
Location: https://angkrit.com/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=fWtqMg425uXJulkrPv5l%2F%2Fz4KAadw1KRahBUwv49JSsgcE%2BIejPLUu2gr0Ulb2SrJAGzdnVuV%2FN8imEMMhMn9nSEzaQ%2FUHB%2BuA%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9b71ce3b38e8a1e4-YYZ
alt-svc: h3=":443"; ma=86400
Open service 18.239.83.39:443 · angkrit.com
2025-12-31 21:11
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 11686
Connection: close
Date: Wed, 10 Dec 2025 04:38:59 GMT
x-nextjs-prerender: 1
x-amzn-RequestId: a5d7102b-58bc-4d82-8eb2-6da1d6497f8a
x-nextjs-cache: HIT
x-amzn-Remapped-content-length: 11686
x-opennext: 1
Cache-Control: s-maxage=31536000
ETag: "4pfrf0xe7d90m"
x-powered-by: Next.js
X-Amzn-Trace-Id: Root=1-6938f961-6d70a9627fde059a067cb868;Parent=634d939f165bdd69;Sampled=0;Lineage=1:f13dd47f:0
x-nextjs-stale-time: 4294967294
X-Cache: Hit from cloudfront
Via: 1.1 0d3372129d548b57c62777e24b79e514.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: AMS58-P5
X-Amz-Cf-Id: weJ8ZEiJLzUKVJZHwy3PYRGt0jXjIKvruusnk9fEayCuiG9oc4meqQ==
Age: 1873938
Page title: Angkrit Boonpleng
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/4cf2300e9c8272f7-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/93f479601ee12b01-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/dd7e1e6a0ff89a32.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-94ef1f9c5bf82738.js"/><script src="/_next/static/chunks/87393535-323d70441b5534a5.js" async=""></script><script src="/_next/static/chunks/558-092fb0da4620b0c2.js" async=""></script><script src="/_next/static/chunks/main-app-70c4b52a3b0302fb.js" async=""></script><meta name="next-size-adjust" content=""/><title>Angkrit Boonpleng</title><meta name="description" content="Experienced software developer specializing in web development. Skilled in unit testing, clean code, system architecture, design patterns, and problem-solving."/><link rel="icon" href="/favicon.ico" type="image/x-icon" sizes="256x256"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_188709 __variable_9a8899 antialiased"><div class="relative grid grid-rows-[20px_1fr_20px] items-center justify-items-center min-h-screen p-8 pb-20 gap-16 sm:p-20 font-[family-name:var(--font-geist-sans)] overflow-hidden"><div class="absolute inset-0 opacity-10"><svg class="w-full h-full" viewBox="0 0 1200 800" preserveAspectRatio="none"><defs><style>
@keyframes wave1 {
0%, 100% { d: path("M0,400 Q300,300 600,400 T1200,400 V800 H0 Z"); }
50% { d: path("M0,400 Q300,500 600,400 T1200,400 V800 H0 Z"); }
}
@keyframes wave2 {
0%, 100% { d: path("M0,450 Q300,350 600,450 T1200,450 V800 H0 Z"); }
50% { d: path("M0,450 Q300,550 600,450 T1200,450 V800 H0 Z"); }
}
@keyframes wave3 {
0%, 100% { d: path("M0,500 Q300,400 600,500 T1200,500 V800 H0 Z"); }
50% { d: path("M0,500 Q300,600 600,500 T1200,500 V800 H0 Z"); }
}
.wave1 { animation: wave1 8s ease-in-out infinite; }
.wave2 { animation: wave2 10s ease-in-out infinite reverse; }
.wave3 { animation: wave3 12s ease-in-out infinite; }
</style></defs><path class="wave1 fill-current text-gray-600 dark:text-gray-400" d="M0,400 Q300,300 600,400 T1200,400 V800 H0 Z"></path><path class="wave2 fill-current text-gray-500 dark:text-gray-500" d="M0,450 Q300,350 600,450 T1200,450 V800 H0 Z"></path><path class="wave3 fill-current text-gray-400 dark:text-gray-600" d="M0,500 Q300,400 600,500 T1200,500 V800 H0 Z"></path></svg></div><main class="relative z-10 flex flex-col gap-[32px] row-start-2 items-center sm:items-start"><div class="w-full text-center sm:text-left"><h1 class="text-3xl sm:text-4xl font-bold tracking-tight">Angkrit Boonpleng</h1><h2 class="text-lg sm:text-xl text-gray-600 dark:text-gray-400 mt-2">Software Engineer</h2><p class="mt-6 text-base sm:text-lg leading-relaxed max-w-2xl">Explore selected projects and learn more about my work and background through my portfolio and LinkedIn.</p></div><div class="flex gap-4 items-center flex-col sm:flex-row w-full"><a class="rounded-lg border border-solid border-transparent transition-colors flex items-center justify-center bg-foreground text-background gap-2 hover:bg-[#383838] dark:hover:bg-[#ccc] font-medium text-sm sm:text-base h-11 sm:h-12 px-6 sm:px-8 w-full" href="https://angkrit.my.canva.site/" target="_blank" rel="noopener noreferrer">View Portfolio</a><a class="rounded-lg border border-solid border-black/[.08] dark:border-white/[.145] transition-colors flex items-center justify-center hover:bg-[#f2f2f2] dark:hover:bg-[#1a1a1a] hover:border-transparent text-sm sm:text-base h-11 sm:h-12 px-6 sm:px-8 w-full" href="https://www.linkedin.com/in/angkrit/" target="_blan
Open service 18.239.83.39:443 · angkrit.com
2025-12-30 21:10
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 11686
Connection: close
Date: Wed, 10 Dec 2025 04:38:59 GMT
x-nextjs-prerender: 1
x-amzn-RequestId: a5d7102b-58bc-4d82-8eb2-6da1d6497f8a
x-nextjs-cache: HIT
x-amzn-Remapped-content-length: 11686
x-opennext: 1
Cache-Control: s-maxage=31536000
ETag: "4pfrf0xe7d90m"
x-powered-by: Next.js
X-Amzn-Trace-Id: Root=1-6938f961-6d70a9627fde059a067cb868;Parent=634d939f165bdd69;Sampled=0;Lineage=1:f13dd47f:0
x-nextjs-stale-time: 4294967294
X-Cache: Hit from cloudfront
Via: 1.1 459ec09472abb8544521a9b5cc6706ce.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: AMS58-P5
X-Amz-Cf-Id: L1aPUDvV7WEHK8XXl8dEhPQ0vmOvVqJ0NTkwqIrJgR1HsWbRg-S2JQ==
Age: 1787481
Page title: Angkrit Boonpleng
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/4cf2300e9c8272f7-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/93f479601ee12b01-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/dd7e1e6a0ff89a32.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-94ef1f9c5bf82738.js"/><script src="/_next/static/chunks/87393535-323d70441b5534a5.js" async=""></script><script src="/_next/static/chunks/558-092fb0da4620b0c2.js" async=""></script><script src="/_next/static/chunks/main-app-70c4b52a3b0302fb.js" async=""></script><meta name="next-size-adjust" content=""/><title>Angkrit Boonpleng</title><meta name="description" content="Experienced software developer specializing in web development. Skilled in unit testing, clean code, system architecture, design patterns, and problem-solving."/><link rel="icon" href="/favicon.ico" type="image/x-icon" sizes="256x256"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_188709 __variable_9a8899 antialiased"><div class="relative grid grid-rows-[20px_1fr_20px] items-center justify-items-center min-h-screen p-8 pb-20 gap-16 sm:p-20 font-[family-name:var(--font-geist-sans)] overflow-hidden"><div class="absolute inset-0 opacity-10"><svg class="w-full h-full" viewBox="0 0 1200 800" preserveAspectRatio="none"><defs><style>
@keyframes wave1 {
0%, 100% { d: path("M0,400 Q300,300 600,400 T1200,400 V800 H0 Z"); }
50% { d: path("M0,400 Q300,500 600,400 T1200,400 V800 H0 Z"); }
}
@keyframes wave2 {
0%, 100% { d: path("M0,450 Q300,350 600,450 T1200,450 V800 H0 Z"); }
50% { d: path("M0,450 Q300,550 600,450 T1200,450 V800 H0 Z"); }
}
@keyframes wave3 {
0%, 100% { d: path("M0,500 Q300,400 600,500 T1200,500 V800 H0 Z"); }
50% { d: path("M0,500 Q300,600 600,500 T1200,500 V800 H0 Z"); }
}
.wave1 { animation: wave1 8s ease-in-out infinite; }
.wave2 { animation: wave2 10s ease-in-out infinite reverse; }
.wave3 { animation: wave3 12s ease-in-out infinite; }
</style></defs><path class="wave1 fill-current text-gray-600 dark:text-gray-400" d="M0,400 Q300,300 600,400 T1200,400 V800 H0 Z"></path><path class="wave2 fill-current text-gray-500 dark:text-gray-500" d="M0,450 Q300,350 600,450 T1200,450 V800 H0 Z"></path><path class="wave3 fill-current text-gray-400 dark:text-gray-600" d="M0,500 Q300,400 600,500 T1200,500 V800 H0 Z"></path></svg></div><main class="relative z-10 flex flex-col gap-[32px] row-start-2 items-center sm:items-start"><div class="w-full text-center sm:text-left"><h1 class="text-3xl sm:text-4xl font-bold tracking-tight">Angkrit Boonpleng</h1><h2 class="text-lg sm:text-xl text-gray-600 dark:text-gray-400 mt-2">Software Engineer</h2><p class="mt-6 text-base sm:text-lg leading-relaxed max-w-2xl">Explore selected projects and learn more about my work and background through my portfolio and LinkedIn.</p></div><div class="flex gap-4 items-center flex-col sm:flex-row w-full"><a class="rounded-lg border border-solid border-transparent transition-colors flex items-center justify-center bg-foreground text-background gap-2 hover:bg-[#383838] dark:hover:bg-[#ccc] font-medium text-sm sm:text-base h-11 sm:h-12 px-6 sm:px-8 w-full" href="https://angkrit.my.canva.site/" target="_blank" rel="noopener noreferrer">View Portfolio</a><a class="rounded-lg border border-solid border-black/[.08] dark:border-white/[.145] transition-colors flex items-center justify-center hover:bg-[#f2f2f2] dark:hover:bg-[#1a1a1a] hover:border-transparent text-sm sm:text-base h-11 sm:h-12 px-6 sm:px-8 w-full" href="https://www.linkedin.com/in/angkrit/" target="_blan
Open service 18.239.83.39:443 · angkrit.com
2025-12-30 09:43
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 11686
Connection: close
Date: Wed, 10 Dec 2025 04:38:59 GMT
x-nextjs-prerender: 1
x-amzn-RequestId: a5d7102b-58bc-4d82-8eb2-6da1d6497f8a
x-nextjs-cache: HIT
x-amzn-Remapped-content-length: 11686
x-opennext: 1
Cache-Control: s-maxage=31536000
ETag: "4pfrf0xe7d90m"
x-powered-by: Next.js
X-Amzn-Trace-Id: Root=1-6938f961-6d70a9627fde059a067cb868;Parent=634d939f165bdd69;Sampled=0;Lineage=1:f13dd47f:0
x-nextjs-stale-time: 4294967294
X-Cache: Hit from cloudfront
Via: 1.1 2f7ba54d76b215238a170acfd87327d6.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: AMS58-P5
X-Amz-Cf-Id: ugLwAnBL2YXbSoGWHMrCVm15pLRX2ShGSci-cmUVQ39UAcGg37Agiw==
Age: 1746254
Page title: Angkrit Boonpleng
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/4cf2300e9c8272f7-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/93f479601ee12b01-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/dd7e1e6a0ff89a32.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-94ef1f9c5bf82738.js"/><script src="/_next/static/chunks/87393535-323d70441b5534a5.js" async=""></script><script src="/_next/static/chunks/558-092fb0da4620b0c2.js" async=""></script><script src="/_next/static/chunks/main-app-70c4b52a3b0302fb.js" async=""></script><meta name="next-size-adjust" content=""/><title>Angkrit Boonpleng</title><meta name="description" content="Experienced software developer specializing in web development. Skilled in unit testing, clean code, system architecture, design patterns, and problem-solving."/><link rel="icon" href="/favicon.ico" type="image/x-icon" sizes="256x256"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_188709 __variable_9a8899 antialiased"><div class="relative grid grid-rows-[20px_1fr_20px] items-center justify-items-center min-h-screen p-8 pb-20 gap-16 sm:p-20 font-[family-name:var(--font-geist-sans)] overflow-hidden"><div class="absolute inset-0 opacity-10"><svg class="w-full h-full" viewBox="0 0 1200 800" preserveAspectRatio="none"><defs><style>
@keyframes wave1 {
0%, 100% { d: path("M0,400 Q300,300 600,400 T1200,400 V800 H0 Z"); }
50% { d: path("M0,400 Q300,500 600,400 T1200,400 V800 H0 Z"); }
}
@keyframes wave2 {
0%, 100% { d: path("M0,450 Q300,350 600,450 T1200,450 V800 H0 Z"); }
50% { d: path("M0,450 Q300,550 600,450 T1200,450 V800 H0 Z"); }
}
@keyframes wave3 {
0%, 100% { d: path("M0,500 Q300,400 600,500 T1200,500 V800 H0 Z"); }
50% { d: path("M0,500 Q300,600 600,500 T1200,500 V800 H0 Z"); }
}
.wave1 { animation: wave1 8s ease-in-out infinite; }
.wave2 { animation: wave2 10s ease-in-out infinite reverse; }
.wave3 { animation: wave3 12s ease-in-out infinite; }
</style></defs><path class="wave1 fill-current text-gray-600 dark:text-gray-400" d="M0,400 Q300,300 600,400 T1200,400 V800 H0 Z"></path><path class="wave2 fill-current text-gray-500 dark:text-gray-500" d="M0,450 Q300,350 600,450 T1200,450 V800 H0 Z"></path><path class="wave3 fill-current text-gray-400 dark:text-gray-600" d="M0,500 Q300,400 600,500 T1200,500 V800 H0 Z"></path></svg></div><main class="relative z-10 flex flex-col gap-[32px] row-start-2 items-center sm:items-start"><div class="w-full text-center sm:text-left"><h1 class="text-3xl sm:text-4xl font-bold tracking-tight">Angkrit Boonpleng</h1><h2 class="text-lg sm:text-xl text-gray-600 dark:text-gray-400 mt-2">Software Engineer</h2><p class="mt-6 text-base sm:text-lg leading-relaxed max-w-2xl">Explore selected projects and learn more about my work and background through my portfolio and LinkedIn.</p></div><div class="flex gap-4 items-center flex-col sm:flex-row w-full"><a class="rounded-lg border border-solid border-transparent transition-colors flex items-center justify-center bg-foreground text-background gap-2 hover:bg-[#383838] dark:hover:bg-[#ccc] font-medium text-sm sm:text-base h-11 sm:h-12 px-6 sm:px-8 w-full" href="https://angkrit.my.canva.site/" target="_blank" rel="noopener noreferrer">View Portfolio</a><a class="rounded-lg border border-solid border-black/[.08] dark:border-white/[.145] transition-colors flex items-center justify-center hover:bg-[#f2f2f2] dark:hover:bg-[#1a1a1a] hover:border-transparent text-sm sm:text-base h-11 sm:h-12 px-6 sm:px-8 w-full" href="https://www.linkedin.com/in/angkrit/" target="_blan
Open service 18.239.83.39:443 · angkrit.com
2025-12-22 11:46
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 11686
Connection: close
Date: Wed, 10 Dec 2025 04:38:59 GMT
x-nextjs-prerender: 1
x-amzn-RequestId: a5d7102b-58bc-4d82-8eb2-6da1d6497f8a
x-nextjs-cache: HIT
x-amzn-Remapped-content-length: 11686
x-opennext: 1
Cache-Control: s-maxage=31536000
ETag: "4pfrf0xe7d90m"
x-powered-by: Next.js
X-Amzn-Trace-Id: Root=1-6938f961-6d70a9627fde059a067cb868;Parent=634d939f165bdd69;Sampled=0;Lineage=1:f13dd47f:0
x-nextjs-stale-time: 4294967294
X-Cache: Hit from cloudfront
Via: 1.1 7d758b616f5473c7b4bee1c49ecfa98a.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: AMS58-P5
X-Amz-Cf-Id: 9_y3Goi22mmm3lkEu3Xdhhu3msvg16p4FPduajF7u6v6lEyepFRzkA==
Age: 1062433
Page title: Angkrit Boonpleng
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/4cf2300e9c8272f7-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/93f479601ee12b01-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/dd7e1e6a0ff89a32.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-94ef1f9c5bf82738.js"/><script src="/_next/static/chunks/87393535-323d70441b5534a5.js" async=""></script><script src="/_next/static/chunks/558-092fb0da4620b0c2.js" async=""></script><script src="/_next/static/chunks/main-app-70c4b52a3b0302fb.js" async=""></script><meta name="next-size-adjust" content=""/><title>Angkrit Boonpleng</title><meta name="description" content="Experienced software developer specializing in web development. Skilled in unit testing, clean code, system architecture, design patterns, and problem-solving."/><link rel="icon" href="/favicon.ico" type="image/x-icon" sizes="256x256"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_188709 __variable_9a8899 antialiased"><div class="relative grid grid-rows-[20px_1fr_20px] items-center justify-items-center min-h-screen p-8 pb-20 gap-16 sm:p-20 font-[family-name:var(--font-geist-sans)] overflow-hidden"><div class="absolute inset-0 opacity-10"><svg class="w-full h-full" viewBox="0 0 1200 800" preserveAspectRatio="none"><defs><style>
@keyframes wave1 {
0%, 100% { d: path("M0,400 Q300,300 600,400 T1200,400 V800 H0 Z"); }
50% { d: path("M0,400 Q300,500 600,400 T1200,400 V800 H0 Z"); }
}
@keyframes wave2 {
0%, 100% { d: path("M0,450 Q300,350 600,450 T1200,450 V800 H0 Z"); }
50% { d: path("M0,450 Q300,550 600,450 T1200,450 V800 H0 Z"); }
}
@keyframes wave3 {
0%, 100% { d: path("M0,500 Q300,400 600,500 T1200,500 V800 H0 Z"); }
50% { d: path("M0,500 Q300,600 600,500 T1200,500 V800 H0 Z"); }
}
.wave1 { animation: wave1 8s ease-in-out infinite; }
.wave2 { animation: wave2 10s ease-in-out infinite reverse; }
.wave3 { animation: wave3 12s ease-in-out infinite; }
</style></defs><path class="wave1 fill-current text-gray-600 dark:text-gray-400" d="M0,400 Q300,300 600,400 T1200,400 V800 H0 Z"></path><path class="wave2 fill-current text-gray-500 dark:text-gray-500" d="M0,450 Q300,350 600,450 T1200,450 V800 H0 Z"></path><path class="wave3 fill-current text-gray-400 dark:text-gray-600" d="M0,500 Q300,400 600,500 T1200,500 V800 H0 Z"></path></svg></div><main class="relative z-10 flex flex-col gap-[32px] row-start-2 items-center sm:items-start"><div class="w-full text-center sm:text-left"><h1 class="text-3xl sm:text-4xl font-bold tracking-tight">Angkrit Boonpleng</h1><h2 class="text-lg sm:text-xl text-gray-600 dark:text-gray-400 mt-2">Software Engineer</h2><p class="mt-6 text-base sm:text-lg leading-relaxed max-w-2xl">Explore selected projects and learn more about my work and background through my portfolio and LinkedIn.</p></div><div class="flex gap-4 items-center flex-col sm:flex-row w-full"><a class="rounded-lg border border-solid border-transparent transition-colors flex items-center justify-center bg-foreground text-background gap-2 hover:bg-[#383838] dark:hover:bg-[#ccc] font-medium text-sm sm:text-base h-11 sm:h-12 px-6 sm:px-8 w-full" href="https://angkrit.my.canva.site/" target="_blank" rel="noopener noreferrer">View Portfolio</a><a class="rounded-lg border border-solid border-black/[.08] dark:border-white/[.145] transition-colors flex items-center justify-center hover:bg-[#f2f2f2] dark:hover:bg-[#1a1a1a] hover:border-transparent text-sm sm:text-base h-11 sm:h-12 px-6 sm:px-8 w-full" href="https://www.linkedin.com/in/angkrit/" target="_blan
Open service 18.239.83.39:443 · angkrit.com
2025-12-20 12:45
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 11686
Connection: close
Date: Wed, 10 Dec 2025 04:38:59 GMT
x-nextjs-prerender: 1
x-amzn-RequestId: a5d7102b-58bc-4d82-8eb2-6da1d6497f8a
x-nextjs-cache: HIT
x-amzn-Remapped-content-length: 11686
x-opennext: 1
Cache-Control: s-maxage=31536000
ETag: "4pfrf0xe7d90m"
x-powered-by: Next.js
X-Amzn-Trace-Id: Root=1-6938f961-6d70a9627fde059a067cb868;Parent=634d939f165bdd69;Sampled=0;Lineage=1:f13dd47f:0
x-nextjs-stale-time: 4294967294
X-Cache: Hit from cloudfront
Via: 1.1 c0f1616474eb5ab66a150ca4467bd724.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: AMS58-P5
X-Amz-Cf-Id: D-YwqYmU5J61vUOeRPTZR7yqPPWZ-yHFXgT4olK8ZnXeRV0zemjlOw==
Age: 893181
Page title: Angkrit Boonpleng
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/4cf2300e9c8272f7-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/93f479601ee12b01-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/dd7e1e6a0ff89a32.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-94ef1f9c5bf82738.js"/><script src="/_next/static/chunks/87393535-323d70441b5534a5.js" async=""></script><script src="/_next/static/chunks/558-092fb0da4620b0c2.js" async=""></script><script src="/_next/static/chunks/main-app-70c4b52a3b0302fb.js" async=""></script><meta name="next-size-adjust" content=""/><title>Angkrit Boonpleng</title><meta name="description" content="Experienced software developer specializing in web development. Skilled in unit testing, clean code, system architecture, design patterns, and problem-solving."/><link rel="icon" href="/favicon.ico" type="image/x-icon" sizes="256x256"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_188709 __variable_9a8899 antialiased"><div class="relative grid grid-rows-[20px_1fr_20px] items-center justify-items-center min-h-screen p-8 pb-20 gap-16 sm:p-20 font-[family-name:var(--font-geist-sans)] overflow-hidden"><div class="absolute inset-0 opacity-10"><svg class="w-full h-full" viewBox="0 0 1200 800" preserveAspectRatio="none"><defs><style>
@keyframes wave1 {
0%, 100% { d: path("M0,400 Q300,300 600,400 T1200,400 V800 H0 Z"); }
50% { d: path("M0,400 Q300,500 600,400 T1200,400 V800 H0 Z"); }
}
@keyframes wave2 {
0%, 100% { d: path("M0,450 Q300,350 600,450 T1200,450 V800 H0 Z"); }
50% { d: path("M0,450 Q300,550 600,450 T1200,450 V800 H0 Z"); }
}
@keyframes wave3 {
0%, 100% { d: path("M0,500 Q300,400 600,500 T1200,500 V800 H0 Z"); }
50% { d: path("M0,500 Q300,600 600,500 T1200,500 V800 H0 Z"); }
}
.wave1 { animation: wave1 8s ease-in-out infinite; }
.wave2 { animation: wave2 10s ease-in-out infinite reverse; }
.wave3 { animation: wave3 12s ease-in-out infinite; }
</style></defs><path class="wave1 fill-current text-gray-600 dark:text-gray-400" d="M0,400 Q300,300 600,400 T1200,400 V800 H0 Z"></path><path class="wave2 fill-current text-gray-500 dark:text-gray-500" d="M0,450 Q300,350 600,450 T1200,450 V800 H0 Z"></path><path class="wave3 fill-current text-gray-400 dark:text-gray-600" d="M0,500 Q300,400 600,500 T1200,500 V800 H0 Z"></path></svg></div><main class="relative z-10 flex flex-col gap-[32px] row-start-2 items-center sm:items-start"><div class="w-full text-center sm:text-left"><h1 class="text-3xl sm:text-4xl font-bold tracking-tight">Angkrit Boonpleng</h1><h2 class="text-lg sm:text-xl text-gray-600 dark:text-gray-400 mt-2">Software Engineer</h2><p class="mt-6 text-base sm:text-lg leading-relaxed max-w-2xl">Explore selected projects and learn more about my work and background through my portfolio and LinkedIn.</p></div><div class="flex gap-4 items-center flex-col sm:flex-row w-full"><a class="rounded-lg border border-solid border-transparent transition-colors flex items-center justify-center bg-foreground text-background gap-2 hover:bg-[#383838] dark:hover:bg-[#ccc] font-medium text-sm sm:text-base h-11 sm:h-12 px-6 sm:px-8 w-full" href="https://angkrit.my.canva.site/" target="_blank" rel="noopener noreferrer">View Portfolio</a><a class="rounded-lg border border-solid border-black/[.08] dark:border-white/[.145] transition-colors flex items-center justify-center hover:bg-[#f2f2f2] dark:hover:bg-[#1a1a1a] hover:border-transparent text-sm sm:text-base h-11 sm:h-12 px-6 sm:px-8 w-full" href="https://www.linkedin.com/in/angkrit/" target="_blan
Open service 18.66.147.110:80 · angkrit.com
2025-12-19 00:28
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Fri, 19 Dec 2025 00:28:52 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://angkrit.com/ X-Cache: Redirect from cloudfront Via: 1.1 21369bf2bfeb79adaa5bef1cb96f8540.cloudfront.net (CloudFront) X-Amz-Cf-Pop: FRA60-P4 X-Amz-Cf-Id: Vb1qxfwbXSPdEpGjobbi7jHp1UfNr_Ml8nOmNZHcX97t9Q8bmn3ppA== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 18.66.147.22:80 · angkrit.com
2025-12-19 00:28
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Fri, 19 Dec 2025 00:28:51 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://angkrit.com/ X-Cache: Redirect from cloudfront Via: 1.1 b47ba5841a54cf2d19fc521c78e94514.cloudfront.net (CloudFront) X-Amz-Cf-Pop: FRA60-P4 X-Amz-Cf-Id: rl-oBasHOaaBe_ySMuCMJI6hFWwt4ODE86aXdn--qrH5mCZ3ziU0IQ== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 18.66.147.45:443 · angkrit.com
2025-12-19 00:28
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 11686
Connection: close
Date: Wed, 10 Dec 2025 04:38:59 GMT
x-nextjs-prerender: 1
x-amzn-RequestId: a5d7102b-58bc-4d82-8eb2-6da1d6497f8a
x-nextjs-cache: HIT
x-amzn-Remapped-content-length: 11686
x-opennext: 1
Cache-Control: s-maxage=31536000
ETag: "4pfrf0xe7d90m"
x-powered-by: Next.js
X-Amzn-Trace-Id: Root=1-6938f961-6d70a9627fde059a067cb868;Parent=634d939f165bdd69;Sampled=0;Lineage=1:f13dd47f:0
x-nextjs-stale-time: 4294967294
X-Cache: Hit from cloudfront
Via: 1.1 18c9dea802c00b7c060142aad49f7288.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: FRA60-P4
X-Amz-Cf-Id: W8gkdYCR5JmCN40wMPLrw3rsJsYFBL7i-4m6pC_Iyz2noL7f0QqHTw==
Age: 762592
Page title: Angkrit Boonpleng
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/4cf2300e9c8272f7-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/93f479601ee12b01-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/dd7e1e6a0ff89a32.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-94ef1f9c5bf82738.js"/><script src="/_next/static/chunks/87393535-323d70441b5534a5.js" async=""></script><script src="/_next/static/chunks/558-092fb0da4620b0c2.js" async=""></script><script src="/_next/static/chunks/main-app-70c4b52a3b0302fb.js" async=""></script><meta name="next-size-adjust" content=""/><title>Angkrit Boonpleng</title><meta name="description" content="Experienced software developer specializing in web development. Skilled in unit testing, clean code, system architecture, design patterns, and problem-solving."/><link rel="icon" href="/favicon.ico" type="image/x-icon" sizes="256x256"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_188709 __variable_9a8899 antialiased"><div class="relative grid grid-rows-[20px_1fr_20px] items-center justify-items-center min-h-screen p-8 pb-20 gap-16 sm:p-20 font-[family-name:var(--font-geist-sans)] overflow-hidden"><div class="absolute inset-0 opacity-10"><svg class="w-full h-full" viewBox="0 0 1200 800" preserveAspectRatio="none"><defs><style>
@keyframes wave1 {
0%, 100% { d: path("M0,400 Q300,300 600,400 T1200,400 V800 H0 Z"); }
50% { d: path("M0,400 Q300,500 600,400 T1200,400 V800 H0 Z"); }
}
@keyframes wave2 {
0%, 100% { d: path("M0,450 Q300,350 600,450 T1200,450 V800 H0 Z"); }
50% { d: path("M0,450 Q300,550 600,450 T1200,450 V800 H0 Z"); }
}
@keyframes wave3 {
0%, 100% { d: path("M0,500 Q300,400 600,500 T1200,500 V800 H0 Z"); }
50% { d: path("M0,500 Q300,600 600,500 T1200,500 V800 H0 Z"); }
}
.wave1 { animation: wave1 8s ease-in-out infinite; }
.wave2 { animation: wave2 10s ease-in-out infinite reverse; }
.wave3 { animation: wave3 12s ease-in-out infinite; }
</style></defs><path class="wave1 fill-current text-gray-600 dark:text-gray-400" d="M0,400 Q300,300 600,400 T1200,400 V800 H0 Z"></path><path class="wave2 fill-current text-gray-500 dark:text-gray-500" d="M0,450 Q300,350 600,450 T1200,450 V800 H0 Z"></path><path class="wave3 fill-current text-gray-400 dark:text-gray-600" d="M0,500 Q300,400 600,500 T1200,500 V800 H0 Z"></path></svg></div><main class="relative z-10 flex flex-col gap-[32px] row-start-2 items-center sm:items-start"><div class="w-full text-center sm:text-left"><h1 class="text-3xl sm:text-4xl font-bold tracking-tight">Angkrit Boonpleng</h1><h2 class="text-lg sm:text-xl text-gray-600 dark:text-gray-400 mt-2">Software Engineer</h2><p class="mt-6 text-base sm:text-lg leading-relaxed max-w-2xl">Explore selected projects and learn more about my work and background through my portfolio and LinkedIn.</p></div><div class="flex gap-4 items-center flex-col sm:flex-row w-full"><a class="rounded-lg border border-solid border-transparent transition-colors flex items-center justify-center bg-foreground text-background gap-2 hover:bg-[#383838] dark:hover:bg-[#ccc] font-medium text-sm sm:text-base h-11 sm:h-12 px-6 sm:px-8 w-full" href="https://angkrit.my.canva.site/" target="_blank" rel="noopener noreferrer">View Portfolio</a><a class="rounded-lg border border-solid border-black/[.08] dark:border-white/[.145] transition-colors flex items-center justify-center hover:bg-[#f2f2f2] dark:hover:bg-[#1a1a1a] hover:border-transparent text-sm sm:text-base h-11 sm:h-12 px-6 sm:px-8 w-full" href="https://www.linkedin.com/in/angkrit/" target="_blan
Open service 18.66.147.19:443 · angkrit.com
2025-12-19 00:28
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 11686
Connection: close
Date: Wed, 10 Dec 2025 04:38:59 GMT
x-nextjs-prerender: 1
x-amzn-RequestId: a5d7102b-58bc-4d82-8eb2-6da1d6497f8a
x-nextjs-cache: HIT
x-amzn-Remapped-content-length: 11686
x-opennext: 1
Cache-Control: s-maxage=31536000
ETag: "4pfrf0xe7d90m"
x-powered-by: Next.js
X-Amzn-Trace-Id: Root=1-6938f961-6d70a9627fde059a067cb868;Parent=634d939f165bdd69;Sampled=0;Lineage=1:f13dd47f:0
x-nextjs-stale-time: 4294967294
X-Cache: Hit from cloudfront
Via: 1.1 a962efd99fafcdb81ca24e0e8140a67c.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: FRA60-P4
X-Amz-Cf-Id: NOzj8AD7GA_sfkEhU6CrgzJueUD5IrhezRuEYOApwYUgqANlH0qcbQ==
Age: 762592
Page title: Angkrit Boonpleng
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/4cf2300e9c8272f7-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/93f479601ee12b01-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/dd7e1e6a0ff89a32.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-94ef1f9c5bf82738.js"/><script src="/_next/static/chunks/87393535-323d70441b5534a5.js" async=""></script><script src="/_next/static/chunks/558-092fb0da4620b0c2.js" async=""></script><script src="/_next/static/chunks/main-app-70c4b52a3b0302fb.js" async=""></script><meta name="next-size-adjust" content=""/><title>Angkrit Boonpleng</title><meta name="description" content="Experienced software developer specializing in web development. Skilled in unit testing, clean code, system architecture, design patterns, and problem-solving."/><link rel="icon" href="/favicon.ico" type="image/x-icon" sizes="256x256"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_188709 __variable_9a8899 antialiased"><div class="relative grid grid-rows-[20px_1fr_20px] items-center justify-items-center min-h-screen p-8 pb-20 gap-16 sm:p-20 font-[family-name:var(--font-geist-sans)] overflow-hidden"><div class="absolute inset-0 opacity-10"><svg class="w-full h-full" viewBox="0 0 1200 800" preserveAspectRatio="none"><defs><style>
@keyframes wave1 {
0%, 100% { d: path("M0,400 Q300,300 600,400 T1200,400 V800 H0 Z"); }
50% { d: path("M0,400 Q300,500 600,400 T1200,400 V800 H0 Z"); }
}
@keyframes wave2 {
0%, 100% { d: path("M0,450 Q300,350 600,450 T1200,450 V800 H0 Z"); }
50% { d: path("M0,450 Q300,550 600,450 T1200,450 V800 H0 Z"); }
}
@keyframes wave3 {
0%, 100% { d: path("M0,500 Q300,400 600,500 T1200,500 V800 H0 Z"); }
50% { d: path("M0,500 Q300,600 600,500 T1200,500 V800 H0 Z"); }
}
.wave1 { animation: wave1 8s ease-in-out infinite; }
.wave2 { animation: wave2 10s ease-in-out infinite reverse; }
.wave3 { animation: wave3 12s ease-in-out infinite; }
</style></defs><path class="wave1 fill-current text-gray-600 dark:text-gray-400" d="M0,400 Q300,300 600,400 T1200,400 V800 H0 Z"></path><path class="wave2 fill-current text-gray-500 dark:text-gray-500" d="M0,450 Q300,350 600,450 T1200,450 V800 H0 Z"></path><path class="wave3 fill-current text-gray-400 dark:text-gray-600" d="M0,500 Q300,400 600,500 T1200,500 V800 H0 Z"></path></svg></div><main class="relative z-10 flex flex-col gap-[32px] row-start-2 items-center sm:items-start"><div class="w-full text-center sm:text-left"><h1 class="text-3xl sm:text-4xl font-bold tracking-tight">Angkrit Boonpleng</h1><h2 class="text-lg sm:text-xl text-gray-600 dark:text-gray-400 mt-2">Software Engineer</h2><p class="mt-6 text-base sm:text-lg leading-relaxed max-w-2xl">Explore selected projects and learn more about my work and background through my portfolio and LinkedIn.</p></div><div class="flex gap-4 items-center flex-col sm:flex-row w-full"><a class="rounded-lg border border-solid border-transparent transition-colors flex items-center justify-center bg-foreground text-background gap-2 hover:bg-[#383838] dark:hover:bg-[#ccc] font-medium text-sm sm:text-base h-11 sm:h-12 px-6 sm:px-8 w-full" href="https://angkrit.my.canva.site/" target="_blank" rel="noopener noreferrer">View Portfolio</a><a class="rounded-lg border border-solid border-black/[.08] dark:border-white/[.145] transition-colors flex items-center justify-center hover:bg-[#f2f2f2] dark:hover:bg-[#1a1a1a] hover:border-transparent text-sm sm:text-base h-11 sm:h-12 px-6 sm:px-8 w-full" href="https://www.linkedin.com/in/angkrit/" target="_blan
Open service 18.66.147.45:80 · angkrit.com
2025-12-19 00:28
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Fri, 19 Dec 2025 00:28:51 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://angkrit.com/ X-Cache: Redirect from cloudfront Via: 1.1 da392114e7046bd9720a70f40c796f62.cloudfront.net (CloudFront) X-Amz-Cf-Pop: FRA60-P4 X-Amz-Cf-Id: IPpUNmq-Klz943ENZ1RQrk5NcDt07Yo4-EqNVBf2FXEhx0YbzPtRyQ== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 18.66.147.19:80 · angkrit.com
2025-12-19 00:28
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Fri, 19 Dec 2025 00:28:51 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://angkrit.com/ X-Cache: Redirect from cloudfront Via: 1.1 19dbc4cbbe0be3dca8e57283a83b57c6.cloudfront.net (CloudFront) X-Amz-Cf-Pop: FRA60-P4 X-Amz-Cf-Id: uO0413u6XiJEAK2aHBliZbT34_dlsXlJ8jXZoQhe4Q06Ywm9_bLd2Q== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 18.66.147.110:443 · angkrit.com
2025-12-19 00:28
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 11686
Connection: close
Date: Wed, 10 Dec 2025 04:38:59 GMT
x-nextjs-prerender: 1
x-amzn-RequestId: a5d7102b-58bc-4d82-8eb2-6da1d6497f8a
x-nextjs-cache: HIT
x-amzn-Remapped-content-length: 11686
x-opennext: 1
Cache-Control: s-maxage=31536000
ETag: "4pfrf0xe7d90m"
x-powered-by: Next.js
X-Amzn-Trace-Id: Root=1-6938f961-6d70a9627fde059a067cb868;Parent=634d939f165bdd69;Sampled=0;Lineage=1:f13dd47f:0
x-nextjs-stale-time: 4294967294
X-Cache: Hit from cloudfront
Via: 1.1 013a54c6b9caf01f403c247789c7256c.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: FRA60-P4
X-Amz-Cf-Id: U_r31-G7TzvoQ2s2qQGQFm6R6A7UuOhHzc1bMJ7SbM_zyOjKCb7C1w==
Age: 762592
Page title: Angkrit Boonpleng
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/4cf2300e9c8272f7-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/93f479601ee12b01-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/dd7e1e6a0ff89a32.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-94ef1f9c5bf82738.js"/><script src="/_next/static/chunks/87393535-323d70441b5534a5.js" async=""></script><script src="/_next/static/chunks/558-092fb0da4620b0c2.js" async=""></script><script src="/_next/static/chunks/main-app-70c4b52a3b0302fb.js" async=""></script><meta name="next-size-adjust" content=""/><title>Angkrit Boonpleng</title><meta name="description" content="Experienced software developer specializing in web development. Skilled in unit testing, clean code, system architecture, design patterns, and problem-solving."/><link rel="icon" href="/favicon.ico" type="image/x-icon" sizes="256x256"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_188709 __variable_9a8899 antialiased"><div class="relative grid grid-rows-[20px_1fr_20px] items-center justify-items-center min-h-screen p-8 pb-20 gap-16 sm:p-20 font-[family-name:var(--font-geist-sans)] overflow-hidden"><div class="absolute inset-0 opacity-10"><svg class="w-full h-full" viewBox="0 0 1200 800" preserveAspectRatio="none"><defs><style>
@keyframes wave1 {
0%, 100% { d: path("M0,400 Q300,300 600,400 T1200,400 V800 H0 Z"); }
50% { d: path("M0,400 Q300,500 600,400 T1200,400 V800 H0 Z"); }
}
@keyframes wave2 {
0%, 100% { d: path("M0,450 Q300,350 600,450 T1200,450 V800 H0 Z"); }
50% { d: path("M0,450 Q300,550 600,450 T1200,450 V800 H0 Z"); }
}
@keyframes wave3 {
0%, 100% { d: path("M0,500 Q300,400 600,500 T1200,500 V800 H0 Z"); }
50% { d: path("M0,500 Q300,600 600,500 T1200,500 V800 H0 Z"); }
}
.wave1 { animation: wave1 8s ease-in-out infinite; }
.wave2 { animation: wave2 10s ease-in-out infinite reverse; }
.wave3 { animation: wave3 12s ease-in-out infinite; }
</style></defs><path class="wave1 fill-current text-gray-600 dark:text-gray-400" d="M0,400 Q300,300 600,400 T1200,400 V800 H0 Z"></path><path class="wave2 fill-current text-gray-500 dark:text-gray-500" d="M0,450 Q300,350 600,450 T1200,450 V800 H0 Z"></path><path class="wave3 fill-current text-gray-400 dark:text-gray-600" d="M0,500 Q300,400 600,500 T1200,500 V800 H0 Z"></path></svg></div><main class="relative z-10 flex flex-col gap-[32px] row-start-2 items-center sm:items-start"><div class="w-full text-center sm:text-left"><h1 class="text-3xl sm:text-4xl font-bold tracking-tight">Angkrit Boonpleng</h1><h2 class="text-lg sm:text-xl text-gray-600 dark:text-gray-400 mt-2">Software Engineer</h2><p class="mt-6 text-base sm:text-lg leading-relaxed max-w-2xl">Explore selected projects and learn more about my work and background through my portfolio and LinkedIn.</p></div><div class="flex gap-4 items-center flex-col sm:flex-row w-full"><a class="rounded-lg border border-solid border-transparent transition-colors flex items-center justify-center bg-foreground text-background gap-2 hover:bg-[#383838] dark:hover:bg-[#ccc] font-medium text-sm sm:text-base h-11 sm:h-12 px-6 sm:px-8 w-full" href="https://angkrit.my.canva.site/" target="_blank" rel="noopener noreferrer">View Portfolio</a><a class="rounded-lg border border-solid border-black/[.08] dark:border-white/[.145] transition-colors flex items-center justify-center hover:bg-[#f2f2f2] dark:hover:bg-[#1a1a1a] hover:border-transparent text-sm sm:text-base h-11 sm:h-12 px-6 sm:px-8 w-full" href="https://www.linkedin.com/in/angkrit/" target="_blan
Open service 18.66.147.22:443 · angkrit.com
2025-12-19 00:28
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 11686
Connection: close
Date: Wed, 10 Dec 2025 04:38:59 GMT
x-nextjs-prerender: 1
x-amzn-RequestId: a5d7102b-58bc-4d82-8eb2-6da1d6497f8a
x-nextjs-cache: HIT
x-amzn-Remapped-content-length: 11686
x-opennext: 1
Cache-Control: s-maxage=31536000
ETag: "4pfrf0xe7d90m"
x-powered-by: Next.js
X-Amzn-Trace-Id: Root=1-6938f961-6d70a9627fde059a067cb868;Parent=634d939f165bdd69;Sampled=0;Lineage=1:f13dd47f:0
x-nextjs-stale-time: 4294967294
X-Cache: Hit from cloudfront
Via: 1.1 b2ba97e9b6a83eff85433dad7f6e6288.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: FRA60-P4
X-Amz-Cf-Id: NrhS0LC7PqgHXv4JI_VTeQUqVXIBfgOTuSxAIzp8N0EfaqLAwFzCkg==
Age: 762592
Page title: Angkrit Boonpleng
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/4cf2300e9c8272f7-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/93f479601ee12b01-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/dd7e1e6a0ff89a32.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-94ef1f9c5bf82738.js"/><script src="/_next/static/chunks/87393535-323d70441b5534a5.js" async=""></script><script src="/_next/static/chunks/558-092fb0da4620b0c2.js" async=""></script><script src="/_next/static/chunks/main-app-70c4b52a3b0302fb.js" async=""></script><meta name="next-size-adjust" content=""/><title>Angkrit Boonpleng</title><meta name="description" content="Experienced software developer specializing in web development. Skilled in unit testing, clean code, system architecture, design patterns, and problem-solving."/><link rel="icon" href="/favicon.ico" type="image/x-icon" sizes="256x256"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_188709 __variable_9a8899 antialiased"><div class="relative grid grid-rows-[20px_1fr_20px] items-center justify-items-center min-h-screen p-8 pb-20 gap-16 sm:p-20 font-[family-name:var(--font-geist-sans)] overflow-hidden"><div class="absolute inset-0 opacity-10"><svg class="w-full h-full" viewBox="0 0 1200 800" preserveAspectRatio="none"><defs><style>
@keyframes wave1 {
0%, 100% { d: path("M0,400 Q300,300 600,400 T1200,400 V800 H0 Z"); }
50% { d: path("M0,400 Q300,500 600,400 T1200,400 V800 H0 Z"); }
}
@keyframes wave2 {
0%, 100% { d: path("M0,450 Q300,350 600,450 T1200,450 V800 H0 Z"); }
50% { d: path("M0,450 Q300,550 600,450 T1200,450 V800 H0 Z"); }
}
@keyframes wave3 {
0%, 100% { d: path("M0,500 Q300,400 600,500 T1200,500 V800 H0 Z"); }
50% { d: path("M0,500 Q300,600 600,500 T1200,500 V800 H0 Z"); }
}
.wave1 { animation: wave1 8s ease-in-out infinite; }
.wave2 { animation: wave2 10s ease-in-out infinite reverse; }
.wave3 { animation: wave3 12s ease-in-out infinite; }
</style></defs><path class="wave1 fill-current text-gray-600 dark:text-gray-400" d="M0,400 Q300,300 600,400 T1200,400 V800 H0 Z"></path><path class="wave2 fill-current text-gray-500 dark:text-gray-500" d="M0,450 Q300,350 600,450 T1200,450 V800 H0 Z"></path><path class="wave3 fill-current text-gray-400 dark:text-gray-600" d="M0,500 Q300,400 600,500 T1200,500 V800 H0 Z"></path></svg></div><main class="relative z-10 flex flex-col gap-[32px] row-start-2 items-center sm:items-start"><div class="w-full text-center sm:text-left"><h1 class="text-3xl sm:text-4xl font-bold tracking-tight">Angkrit Boonpleng</h1><h2 class="text-lg sm:text-xl text-gray-600 dark:text-gray-400 mt-2">Software Engineer</h2><p class="mt-6 text-base sm:text-lg leading-relaxed max-w-2xl">Explore selected projects and learn more about my work and background through my portfolio and LinkedIn.</p></div><div class="flex gap-4 items-center flex-col sm:flex-row w-full"><a class="rounded-lg border border-solid border-transparent transition-colors flex items-center justify-center bg-foreground text-background gap-2 hover:bg-[#383838] dark:hover:bg-[#ccc] font-medium text-sm sm:text-base h-11 sm:h-12 px-6 sm:px-8 w-full" href="https://angkrit.my.canva.site/" target="_blank" rel="noopener noreferrer">View Portfolio</a><a class="rounded-lg border border-solid border-black/[.08] dark:border-white/[.145] transition-colors flex items-center justify-center hover:bg-[#f2f2f2] dark:hover:bg-[#1a1a1a] hover:border-transparent text-sm sm:text-base h-11 sm:h-12 px-6 sm:px-8 w-full" href="https://www.linkedin.com/in/angkrit/" target="_blan