aboutsummaryrefslogtreecommitdiffhomepage
path: root/public/index.html
diff options
context:
space:
mode:
authorgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>2023-10-21 14:14:08 +0000
committergithub-actions[bot] <github-actions[bot]@users.noreply.github.com>2023-10-21 14:14:08 +0000
commitb61e8b569138b569bb4230d9be49f00162ab06f1 (patch)
tree753aaa441511e0475735fc847d57aca5a95bbc44 /public/index.html
parentc2565ecd71f75d58b0c8765b76549403d6983d83 (diff)
downloadsubmelon.dev-b61e8b569138b569bb4230d9be49f00162ab06f1.tar.gz
submelon.dev-b61e8b569138b569bb4230d9be49f00162ab06f1.tar.bz2
submelon.dev-b61e8b569138b569bb4230d9be49f00162ab06f1.zip
chore: autopublish 2023-10-21T14:14:08Z
Diffstat (limited to 'public/index.html')
-rw-r--r--public/index.html40
1 files changed, 20 insertions, 20 deletions
diff --git a/public/index.html b/public/index.html
index 0779437..154f241 100644
--- a/public/index.html
+++ b/public/index.html
@@ -1,26 +1,26 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="ie=edge"/><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/><meta name="generator" content="Gatsby 5.12.8"/><meta name="theme-color" content="#e1e1e1"/><meta name="twitter:description" content="The official website of Kevin Hoerr, developer of websites." data-gatsby-head="true"/><meta name="twitter:title" content="Kevin J Hoerr &lt;kjhoerr@submelon.tech&gt;" data-gatsby-head="true"/><meta name="twitter:creator" content="Kevin J Hoerr" data-gatsby-head="true"/><meta name="twitter:card" content="summary" data-gatsby-head="true"/><meta name="description" content="The official website of Kevin Hoerr, developer of websites." data-gatsby-head="true"/><style data-href="/styles.d3e43014fff208169f35.css" data-identity="gatsby-global-css">body{background-color:#e1e1e1;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAGXpUWHRUaXRsZQAACNdLSkzOTi/KL81LAQAWSwQhPQTyzQAAABt6VFh0QXV0aG9yAAAI1/NOLcvMU/DITy0qAgAYDwQeUS3vvwAAAZNJREFUeNrt3bFtQ0EMREH5x+q/M3Wi3IJaMGR7yHtbwCWDBY4J+fV4PL5vH879fr9tz/P5/JV3rzAcjI+DhAGBhAGBhAGBhAGBhAGBhAGBhAGBhAGBhAGBhAGBhAGBhAGBhAGBhAGBhAGBhAGBhAGBhAGBhAGBhDHglxXG/+RdjisMB2N1QyZirAWZirESZDLGOpDpGKtANmCsAdmCsQJkE8Z4kG0Yo0E2YowF2YoxEmQzxjiQ7RijQE7AGANyCsYIkJMweJDTMGiQEzFYkFMxSJCTMTiQ0zEokDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAGTuph/E3e5bjCcDBGNOS03fRXGA4GDXLq1YYrDAeDBDn9nskVhoNBgYQBgYQBgYQBgYQBgYQBgYQBgYQBgYQBgYQBgYQBgYQBgYQBgYTxs7wA+yQwVSKvoHMAAAAASUVORK5CYII=);background-repeat:repeat;font-display:serif;font-family:Merriweather,serif;font-size:16px}::selection{background-color:#999;color:#fff}em,p,q{display:block;text-indent:28px}p{margin:0 0 16px}p>a,p>a:hover,p>a:visited{color:#000;padding:1px 3px;text-decoration:none}p>a,p>a:visited{background-color:#e1e1e1}p>a:hover{background-color:#d5d5d5}</style><style data-styled="" data-styled-version="6.0.8">.YRBXQ{padding:8px;width:328px;display:block;text-align:center;-webkit-text-decoration:none;text-decoration:none;color:#666;}/*!sc*/
-.YRBXQ:visited,.YRBXQ:active{padding:8px;width:328px;display:block;text-align:center;-webkit-text-decoration:none;text-decoration:none;color:#666;}/*!sc*/
-data-styled.g1[id="BlockAnchor-sc-49dv1p-0"]{content:"YRBXQ,"}/*!sc*/
-.kHPmEM{background-color:#fff;border:1px #000 solid;border-left:3px #000 solid;border-right:3px #000 solid;padding:4px 8px;}/*!sc*/
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="ie=edge"/><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/><meta name="generator" content="Gatsby 5.12.8"/><meta name="theme-color" content="#e1e1e1"/><meta name="twitter:description" content="The official website of Kevin Hoerr, developer of websites." data-gatsby-head="true"/><meta name="twitter:title" content="Kevin J Hoerr &lt;kjhoerr@submelon.tech&gt;" data-gatsby-head="true"/><meta name="twitter:creator" content="Kevin J Hoerr" data-gatsby-head="true"/><meta name="twitter:card" content="summary" data-gatsby-head="true"/><meta name="description" content="The official website of Kevin Hoerr, developer of websites." data-gatsby-head="true"/><style data-href="/styles.d3e43014fff208169f35.css" data-identity="gatsby-global-css">body{background-color:#e1e1e1;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAGXpUWHRUaXRsZQAACNdLSkzOTi/KL81LAQAWSwQhPQTyzQAAABt6VFh0QXV0aG9yAAAI1/NOLcvMU/DITy0qAgAYDwQeUS3vvwAAAZNJREFUeNrt3bFtQ0EMREH5x+q/M3Wi3IJaMGR7yHtbwCWDBY4J+fV4PL5vH879fr9tz/P5/JV3rzAcjI+DhAGBhAGBhAGBhAGBhAGBhAGBhAGBhAGBhAGBhAGBhAGBhAGBhAGBhAGBhAGBhAGBhAGBhAGBhAGBhDHglxXG/+RdjisMB2N1QyZirAWZirESZDLGOpDpGKtANmCsAdmCsQJkE8Z4kG0Yo0E2YowF2YoxEmQzxjiQ7RijQE7AGANyCsYIkJMweJDTMGiQEzFYkFMxSJCTMTiQ0zEokDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAgkDAGTuph/E3e5bjCcDBGNOS03fRXGA4GDXLq1YYrDAeDBDn9nskVhoNBgYQBgYQBgYQBgYQBgYQBgYQBgYQBgYQBgYQBgYQBgYQBgYQBgYTxs7wA+yQwVSKvoHMAAAAASUVORK5CYII=);background-repeat:repeat;font-display:serif;font-family:Merriweather,serif;font-size:16px}::selection{background-color:#999;color:#fff}em,p,q{display:block;text-indent:28px}p{margin:0 0 16px}p>a,p>a:hover,p>a:visited{color:#000;padding:1px 3px;text-decoration:none}p>a,p>a:visited{background-color:#e1e1e1}p>a:hover{background-color:#d5d5d5}</style><style data-styled="" data-styled-version="6.1.0">.jGQEoV{padding:8px;width:328px;display:block;text-align:center;-webkit-text-decoration:none;text-decoration:none;color:#666;}/*!sc*/
+.jGQEoV:visited,.jGQEoV:active{padding:8px;width:328px;display:block;text-align:center;-webkit-text-decoration:none;text-decoration:none;color:#666;}/*!sc*/
+data-styled.g1[id="BlockAnchor-sc-49dv1p-0"]{content:"jGQEoV,"}/*!sc*/
+.eUptWh{background-color:#fff;border:1px #000 solid;border-left:3px #000 solid;border-right:3px #000 solid;padding:4px 8px;}/*!sc*/
.BlockBody-sc-13lvm6o-0+.BlockBody-sc-13lvm6o-0{margin-top:3px;}/*!sc*/
-.kHPmEM>.BlockAnchor-sc-49dv1p-0:hover{background-color:#ddd;color:#222;}/*!sc*/
-.kHPmEM:last-child,.kHPmEM:last-child>.BlockAnchor-sc-49dv1p-0{border-bottom-left-radius:18px;border-bottom-right-radius:18px;}/*!sc*/
-.jcHuaI{background-color:#fff;border:1px #000 solid;border-left:3px #000 solid;border-right:3px #000 solid;padding:0;}/*!sc*/
+.eUptWh>.BlockAnchor-sc-49dv1p-0:hover{background-color:#ddd;color:#222;}/*!sc*/
+.eUptWh:last-child,.eUptWh:last-child>.BlockAnchor-sc-49dv1p-0{border-bottom-left-radius:18px;border-bottom-right-radius:18px;}/*!sc*/
+.cAbYHx{background-color:#fff;border:1px #000 solid;border-left:3px #000 solid;border-right:3px #000 solid;padding:0;}/*!sc*/
.BlockBody-sc-13lvm6o-0+.BlockBody-sc-13lvm6o-0{margin-top:3px;}/*!sc*/
-.jcHuaI>.BlockAnchor-sc-49dv1p-0:hover{background-color:#ddd;color:#222;}/*!sc*/
-.jcHuaI:last-child,.jcHuaI:last-child>.BlockAnchor-sc-49dv1p-0{border-bottom-left-radius:18px;border-bottom-right-radius:18px;}/*!sc*/
-data-styled.g2[id="BlockBody-sc-13lvm6o-0"]{content:"kHPmEM,jcHuaI,"}/*!sc*/
-.dWZNzD{background-color:#000;width:100%;text-align:center;color:#fff;font-size:36px;font-weight:bold;margin-top:3px;padding-top:4px;}/*!sc*/
-data-styled.g3[id="BlockHeader-sc-1tkpfhe-0"]{content:"dWZNzD,"}/*!sc*/
-.fFqYWQ{width:350px;margin:0px auto;margin-bottom:120px;padding-top:136px;}/*!sc*/
-data-styled.g4[id="Content-sc-1nsqces-0"]{content:"fFqYWQ,"}/*!sc*/
-.jUNfVF{width:100%;position:fixed;left:0px;bottom:0px;text-align:center;font-size:12px;}/*!sc*/
-.jUNfVF span{background-color:#e1e1e1;}/*!sc*/
-data-styled.g5[id="Footer-sc-1as233t-0"]{content:"jUNfVF,"}/*!sc*/
-</style><style>.gatsby-image-wrapper{position:relative;overflow:hidden}.gatsby-image-wrapper picture.object-fit-polyfill{position:static!important}.gatsby-image-wrapper img{bottom:0;height:100%;left:0;margin:0;max-width:none;padding:0;position:absolute;right:0;top:0;width:100%;object-fit:cover}.gatsby-image-wrapper [data-main-image]{opacity:0;transform:translateZ(0);transition:opacity .25s linear;will-change:opacity}.gatsby-image-wrapper-constrained{display:inline-block;vertical-align:top}</style><noscript><style>.gatsby-image-wrapper noscript [data-main-image]{opacity:1!important}.gatsby-image-wrapper [data-placeholder-image]{opacity:0!important}</style></noscript><script type="module">const e="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;e&&document.body.addEventListener("load",(function(e){const t=e.target;if(void 0===t.dataset.mainImage)return;if(void 0===t.dataset.gatsbyImageSsr)return;let a=null,n=t;for(;null===a&&n;)void 0!==n.parentNode.dataset.gatsbyImageWrapper&&(a=n.parentNode),n=n.parentNode;const o=a.querySelector("[data-placeholder-image]"),r=new Image;r.src=t.currentSrc,r.decode().catch((()=>{})).then((()=>{t.style.opacity=1,o&&(o.style.opacity=0,o.style.transition="opacity 500ms linear")}))}),!0);</script><link rel="icon" href="/favicon-32x32.png" type="image/png"/><link rel="manifest" href="/manifest.webmanifest" crossorigin="anonymous"/><link rel="apple-touch-icon" sizes="48x48" href="/icons/icon-48x48.png"/><link rel="apple-touch-icon" sizes="72x72" href="/icons/icon-72x72.png"/><link rel="apple-touch-icon" sizes="96x96" href="/icons/icon-96x96.png"/><link rel="apple-touch-icon" sizes="144x144" href="/icons/icon-144x144.png"/><link rel="apple-touch-icon" sizes="192x192" href="/icons/icon-192x192.png"/><link rel="apple-touch-icon" sizes="256x256" href="/icons/icon-256x256.png"/><link rel="apple-touch-icon" sizes="384x384" href="/icons/icon-384x384.png"/><link rel="apple-touch-icon" sizes="512x512" href="/icons/icon-512x512.png"/><title data-gatsby-head="true">Kevin J Hoerr &lt;kjhoerr@submelon.tech&gt;</title></head><body><div id="___gatsby"><div style="outline:none" tabindex="-1" id="gatsby-focus-wrapper"><main><div class="Content-sc-1nsqces-0 fFqYWQ"><div><div data-gatsby-image-wrapper="" style="width:350px;height:350px" class="gatsby-image-wrapper"><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFOklEQVR42m2UWVCTVxiGg163yqXt2BvRTKWAwAgKrbVKrVM703EcRa1BjRStBSxg2FcBR0CQRBYDhCXIkkDIQkhIQhaykoUQwr6D7fRab03yvz0w0qFTz8w/58yc/3vO+33nPR+NtmcA2Lc90+n0Twrzc5J6Ongi6YDgjVou8ytlEv+wRPRGJOgX1VQ9ZYSEhHy6/W9JSck+2kdG0O5Gyr07iY2c2g2Nchhe5wQ17ZyAd9KBhWk3Vua9+HNtmVr0ejAiFq0XF+Qm7hWyV1nQNrSirKR+RCKCQa2k1ApZgED9Zr2GcliMsJuNIDPltJn9ix53YHNhjvJMWMGpraknsft2GbswWuWTUrbVoINFp/XpCdBq0MJNAkblUiiGxXDZLbAZ9QRswIzDDq/DFph12H1zLgfqq6vYe4TRaH+kPWSoFMMwG/R+k05L2Uzj8JCgfBYL0eFhiI2KRGFONlw2M1wWsmezwGHUQS2XUBqF1K8iB2Y8epS0m/HB/u6uZafVhHGdOmA1GTBHatTa3IxI+hFE0UMQcewIjh3+DEW52Vid9WLWboOLHCoXD4Df2Rro7eWhtDR3mbAO0Apys+/aDHpMGMcDLpsV05NOvNlYR0VhPhJiI3EhLgbfnYzCuZMnEHciFEqRAGszXkyZTVANSyDs70ZHJ9f/ilsPBuP6bVpDfa14xmmH02Lye8iNznrc+GtrC50N9bhAIFe//xbXE87g6tk4XIuPRsHv97A85YaXpK2UiYhCLticKn8jtxaZWamDNF4zZ9OqU8GqH6OmSCreSRfWVld2lDRl3UfRtctI/eEc6m5cwWj5Y7x4/AD6MQ2W3C4oh4fQ2cUF52V1oKH5OQqKWFO0Lm6zb0I3BrteCzupn50UfWFuBibNCHQNFehJuYfBFCbaGAyoawqgbSiGjtuAFe801CNS9Pd1gtvCoRoJMJOV9pbW9rL+vXFUge3PpBmFeUwFl2MCLqUU5qZK6EvysMpvgbWsGO5Xz+BtqYC78Tlm3E5olTIMCrvRzH1BcRqrkZbx4C2trurJhpZIV4n6KZ1cDN2IjKSkgntci+nWGpjzczBZ/RSGvGzI05Ph5ddg1WHD0vQUEaCERNSHjo6mQEtbPYqKs9y06rKigXH5EPp4HL+4jweZsAuDPTzo9WoYOpvQy2RAwUrDWF4mRjKZmBrkYmtldaeGxjEFAb5GN5/r7+5uQW5uhoCWmsy8I+/jQ9HP90t7OyHpb4dUyN+pj0OvgvLJI+hY6TDlZ8LCzsaiRYON+XkskBdi0aqIF3sh7Gnz8zuacDfpxo65D76qq1pSE+lDfF6gu5WDdi4bw8S0EwoRpIXJaP71F7Tevwn1ixxseJxYn53FInGDjQCVEkFgVCYAu7ZyaZu181QeMpmMXl4zBl+3+/htjVTjyxpkPM4A69ZlmCtSMMC6C3E+E7PCOvy9uoQ1csMLLicsY0pKNzLkkwq6wLx9k/GfHpj+WzK7vYWNvJys9+fPJfiPhdARTqeji3ULxufpUJY/gIlbArV0CFuL81j3TgfcJv17C7FXaQGLvZcV9KFL7I+PP82JCI9G6JfhVERYmC/0eKgvIS7GLyhPpeb7nlGGtvLAjxcv+bJZuT6NXE5ZiRuelRVytmP/7TS7DVYoFO7fXhw69MUvx+lfbUZERONUbBwVc/I0Es6cRVNZFgScSvx06Qp14eLP+PrM+c2biYk3t2M+xAb9r2vvQmnBtAOHPz+cRD96XBwVHuk5ER797uiRo+8iwyI9p2K/EcfExCcFBwcf+BjsH+IEtg4uQyEyAAAAAElFTkSuQmCC" alt=""/><picture><source type="image/webp" data-srcset="/static/81e0da73927123f3f6b0c9a2d0750e76/6cac9/main.webp 350w" sizes="350px"/><img data-gatsby-image-ssr="" layout="fixed" data-main-image="" style="opacity:0" sizes="350px" decoding="async" loading="lazy" data-src="/static/81e0da73927123f3f6b0c9a2d0750e76/88e48/main.png" data-srcset="/static/81e0da73927123f3f6b0c9a2d0750e76/88e48/main.png 350w" alt="Picture of Kevin Hoerr"/></picture><noscript><picture><source type="image/webp" srcSet="/static/81e0da73927123f3f6b0c9a2d0750e76/6cac9/main.webp 350w" sizes="350px"/><img data-gatsby-image-ssr="" layout="fixed" data-main-image="" style="opacity:0" sizes="350px" decoding="async" loading="lazy" src="/static/81e0da73927123f3f6b0c9a2d0750e76/88e48/main.png" srcSet="/static/81e0da73927123f3f6b0c9a2d0750e76/88e48/main.png 350w" alt="Picture of Kevin Hoerr"/></picture></noscript><script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script></div></div><div class="BlockHeader-sc-1tkpfhe-0 dWZNzD">Hello!</div><div class="BlockBody-sc-13lvm6o-0 kHPmEM"><p>I&#x27;m a computer science and math graduate from Millersville University. I work as a Solutions Architect and specialize in development operations and systems validation for web applications.</p><p>During my time at Millersville I was the lead Linux admin for the Cyber Defense Organization (CDO). In addition to constructing a new computer lab for our efforts, we participated in NCL and MACCDC.</p><p>Most of my development experience is focused around full stack development. For the front-end I use TypeScript and ReactJS using create-react-app or NextJS. For back-end systems I have used both Java with Spring Boot and rust with actix-web extensively. To mediate APIs I have used Apache Kafka, OpenAPI, and GraphQL.</p><p>My free time is spent engaging in general computing hobbies. When I&#x27;m not trying out new application frameworks, I am fiddling around with Guix or NixOS. I run a kubernetes cluster at home to manage, maintain, and secure my personal network as well as experimenting with distributed workloads.</p><em>- Kevin H.</em></div><div class="BlockBody-sc-13lvm6o-0 jcHuaI"><a href="https://github.com/kjhoerr" rel="me" aria-label="My GitHub account with my most active personal projects" class="BlockAnchor-sc-49dv1p-0 YRBXQ"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 496 512" style="margin-bottom:-4px" height="20" width="20" xmlns="http://www.w3.org/2000/svg"><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg> kjhoerr on GitHub</a></div><div class="BlockBody-sc-13lvm6o-0 jcHuaI"><a href="https://github.com/kjhoerr/pantry" aria-label="Source code repository of Kevin&#x27;s current pet project Pantry" class="BlockAnchor-sc-49dv1p-0 YRBXQ"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 640 512" style="margin-bottom:-4px" height="20" width="20" xmlns="http://www.w3.org/2000/svg"><path d="M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z"></path></svg> Pantry (pet project)</a></div><div class="BlockBody-sc-13lvm6o-0 jcHuaI"><a href="https://cybr.es/@kjhoerr" rel="me" aria-label="My Mastodon account" class="BlockAnchor-sc-49dv1p-0 YRBXQ"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" style="margin-bottom:-4px" height="20" width="20" xmlns="http://www.w3.org/2000/svg"><path d="M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"></path></svg> @kjhoerr@cybr.es</a></div></div><div class="Footer-sc-1as233t-0 jUNfVF"><span>©2023 kjhoerr@https://submelon.dev/:<!-- -->wD.7.8.j.O-0</span></div></main></div><div id="gatsby-announcer" style="position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0" aria-live="assertive" aria-atomic="true"></div></div><script id="gatsby-script-loader">/*<![CDATA[*/window.pagePath="/";/*]]>*/</script><!-- slice-start id="_gatsby-scripts-1" -->
+.cAbYHx>.BlockAnchor-sc-49dv1p-0:hover{background-color:#ddd;color:#222;}/*!sc*/
+.cAbYHx:last-child,.cAbYHx:last-child>.BlockAnchor-sc-49dv1p-0{border-bottom-left-radius:18px;border-bottom-right-radius:18px;}/*!sc*/
+data-styled.g2[id="BlockBody-sc-13lvm6o-0"]{content:"eUptWh,cAbYHx,"}/*!sc*/
+.eGoKYG{background-color:#000;width:100%;text-align:center;color:#fff;font-size:36px;font-weight:bold;margin-top:3px;padding-top:4px;}/*!sc*/
+data-styled.g3[id="BlockHeader-sc-1tkpfhe-0"]{content:"eGoKYG,"}/*!sc*/
+.dVDFVh{width:350px;margin:0px auto;margin-bottom:120px;padding-top:136px;}/*!sc*/
+data-styled.g4[id="Content-sc-1nsqces-0"]{content:"dVDFVh,"}/*!sc*/
+.hgDMFM{width:100%;position:fixed;left:0px;bottom:0px;text-align:center;font-size:12px;}/*!sc*/
+.hgDMFM span{background-color:#e1e1e1;}/*!sc*/
+data-styled.g5[id="Footer-sc-1as233t-0"]{content:"hgDMFM,"}/*!sc*/
+</style><style>.gatsby-image-wrapper{position:relative;overflow:hidden}.gatsby-image-wrapper picture.object-fit-polyfill{position:static!important}.gatsby-image-wrapper img{bottom:0;height:100%;left:0;margin:0;max-width:none;padding:0;position:absolute;right:0;top:0;width:100%;object-fit:cover}.gatsby-image-wrapper [data-main-image]{opacity:0;transform:translateZ(0);transition:opacity .25s linear;will-change:opacity}.gatsby-image-wrapper-constrained{display:inline-block;vertical-align:top}</style><noscript><style>.gatsby-image-wrapper noscript [data-main-image]{opacity:1!important}.gatsby-image-wrapper [data-placeholder-image]{opacity:0!important}</style></noscript><script type="module">const e="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;e&&document.body.addEventListener("load",(function(e){const t=e.target;if(void 0===t.dataset.mainImage)return;if(void 0===t.dataset.gatsbyImageSsr)return;let a=null,n=t;for(;null===a&&n;)void 0!==n.parentNode.dataset.gatsbyImageWrapper&&(a=n.parentNode),n=n.parentNode;const o=a.querySelector("[data-placeholder-image]"),r=new Image;r.src=t.currentSrc,r.decode().catch((()=>{})).then((()=>{t.style.opacity=1,o&&(o.style.opacity=0,o.style.transition="opacity 500ms linear")}))}),!0);</script><link rel="icon" href="/favicon-32x32.png" type="image/png"/><link rel="manifest" href="/manifest.webmanifest" crossorigin="anonymous"/><link rel="apple-touch-icon" sizes="48x48" href="/icons/icon-48x48.png"/><link rel="apple-touch-icon" sizes="72x72" href="/icons/icon-72x72.png"/><link rel="apple-touch-icon" sizes="96x96" href="/icons/icon-96x96.png"/><link rel="apple-touch-icon" sizes="144x144" href="/icons/icon-144x144.png"/><link rel="apple-touch-icon" sizes="192x192" href="/icons/icon-192x192.png"/><link rel="apple-touch-icon" sizes="256x256" href="/icons/icon-256x256.png"/><link rel="apple-touch-icon" sizes="384x384" href="/icons/icon-384x384.png"/><link rel="apple-touch-icon" sizes="512x512" href="/icons/icon-512x512.png"/><title data-gatsby-head="true">Kevin J Hoerr &lt;kjhoerr@submelon.tech&gt;</title></head><body><div id="___gatsby"><div style="outline:none" tabindex="-1" id="gatsby-focus-wrapper"><main><div class="Content-sc-1nsqces-0 dVDFVh"><div><div data-gatsby-image-wrapper="" style="width:350px;height:350px" class="gatsby-image-wrapper"><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFOklEQVR42m2UWVCTVxiGg163yqXt2BvRTKWAwAgKrbVKrVM703EcRa1BjRStBSxg2FcBR0CQRBYDhCXIkkDIQkhIQhaykoUQwr6D7fRab03yvz0w0qFTz8w/58yc/3vO+33nPR+NtmcA2Lc90+n0Twrzc5J6Ongi6YDgjVou8ytlEv+wRPRGJOgX1VQ9ZYSEhHy6/W9JSck+2kdG0O5Gyr07iY2c2g2Nchhe5wQ17ZyAd9KBhWk3Vua9+HNtmVr0ejAiFq0XF+Qm7hWyV1nQNrSirKR+RCKCQa2k1ApZgED9Zr2GcliMsJuNIDPltJn9ix53YHNhjvJMWMGpraknsft2GbswWuWTUrbVoINFp/XpCdBq0MJNAkblUiiGxXDZLbAZ9QRswIzDDq/DFph12H1zLgfqq6vYe4TRaH+kPWSoFMMwG/R+k05L2Uzj8JCgfBYL0eFhiI2KRGFONlw2M1wWsmezwGHUQS2XUBqF1K8iB2Y8epS0m/HB/u6uZafVhHGdOmA1GTBHatTa3IxI+hFE0UMQcewIjh3+DEW52Vid9WLWboOLHCoXD4Df2Rro7eWhtDR3mbAO0Apys+/aDHpMGMcDLpsV05NOvNlYR0VhPhJiI3EhLgbfnYzCuZMnEHciFEqRAGszXkyZTVANSyDs70ZHJ9f/ilsPBuP6bVpDfa14xmmH02Lye8iNznrc+GtrC50N9bhAIFe//xbXE87g6tk4XIuPRsHv97A85YaXpK2UiYhCLticKn8jtxaZWamDNF4zZ9OqU8GqH6OmSCreSRfWVld2lDRl3UfRtctI/eEc6m5cwWj5Y7x4/AD6MQ2W3C4oh4fQ2cUF52V1oKH5OQqKWFO0Lm6zb0I3BrteCzupn50UfWFuBibNCHQNFehJuYfBFCbaGAyoawqgbSiGjtuAFe801CNS9Pd1gtvCoRoJMJOV9pbW9rL+vXFUge3PpBmFeUwFl2MCLqUU5qZK6EvysMpvgbWsGO5Xz+BtqYC78Tlm3E5olTIMCrvRzH1BcRqrkZbx4C2trurJhpZIV4n6KZ1cDN2IjKSkgntci+nWGpjzczBZ/RSGvGzI05Ph5ddg1WHD0vQUEaCERNSHjo6mQEtbPYqKs9y06rKigXH5EPp4HL+4jweZsAuDPTzo9WoYOpvQy2RAwUrDWF4mRjKZmBrkYmtldaeGxjEFAb5GN5/r7+5uQW5uhoCWmsy8I+/jQ9HP90t7OyHpb4dUyN+pj0OvgvLJI+hY6TDlZ8LCzsaiRYON+XkskBdi0aqIF3sh7Gnz8zuacDfpxo65D76qq1pSE+lDfF6gu5WDdi4bw8S0EwoRpIXJaP71F7Tevwn1ixxseJxYn53FInGDjQCVEkFgVCYAu7ZyaZu181QeMpmMXl4zBl+3+/htjVTjyxpkPM4A69ZlmCtSMMC6C3E+E7PCOvy9uoQ1csMLLicsY0pKNzLkkwq6wLx9k/GfHpj+WzK7vYWNvJys9+fPJfiPhdARTqeji3ULxufpUJY/gIlbArV0CFuL81j3TgfcJv17C7FXaQGLvZcV9KFL7I+PP82JCI9G6JfhVERYmC/0eKgvIS7GLyhPpeb7nlGGtvLAjxcv+bJZuT6NXE5ZiRuelRVytmP/7TS7DVYoFO7fXhw69MUvx+lfbUZERONUbBwVc/I0Es6cRVNZFgScSvx06Qp14eLP+PrM+c2biYk3t2M+xAb9r2vvQmnBtAOHPz+cRD96XBwVHuk5ER797uiRo+8iwyI9p2K/EcfExCcFBwcf+BjsH+IEtg4uQyEyAAAAAElFTkSuQmCC" alt=""/><picture><source type="image/webp" data-srcset="/static/81e0da73927123f3f6b0c9a2d0750e76/6cac9/main.webp 350w" sizes="350px"/><img data-gatsby-image-ssr="" layout="fixed" data-main-image="" style="opacity:0" sizes="350px" decoding="async" loading="lazy" data-src="/static/81e0da73927123f3f6b0c9a2d0750e76/88e48/main.png" data-srcset="/static/81e0da73927123f3f6b0c9a2d0750e76/88e48/main.png 350w" alt="Picture of Kevin Hoerr"/></picture><noscript><picture><source type="image/webp" srcSet="/static/81e0da73927123f3f6b0c9a2d0750e76/6cac9/main.webp 350w" sizes="350px"/><img data-gatsby-image-ssr="" layout="fixed" data-main-image="" style="opacity:0" sizes="350px" decoding="async" loading="lazy" src="/static/81e0da73927123f3f6b0c9a2d0750e76/88e48/main.png" srcSet="/static/81e0da73927123f3f6b0c9a2d0750e76/88e48/main.png 350w" alt="Picture of Kevin Hoerr"/></picture></noscript><script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script></div></div><div class="BlockHeader-sc-1tkpfhe-0 eGoKYG">Hello!</div><div class="BlockBody-sc-13lvm6o-0 eUptWh"><p>I&#x27;m a computer science and math graduate from Millersville University. I work as a Solutions Architect and specialize in development operations and systems validation for web applications.</p><p>During my time at Millersville I was the lead Linux admin for the Cyber Defense Organization (CDO). In addition to constructing a new computer lab for our efforts, we participated in NCL and MACCDC.</p><p>Most of my development experience is focused around full stack development. For the front-end I use TypeScript and ReactJS using create-react-app or NextJS. For back-end systems I have used both Java with Spring Boot and rust with actix-web extensively. To mediate APIs I have used Apache Kafka, OpenAPI, and GraphQL.</p><p>My free time is spent engaging in general computing hobbies. When I&#x27;m not trying out new application frameworks, I am fiddling around with Guix or NixOS. I run a kubernetes cluster at home to manage, maintain, and secure my personal network as well as experimenting with distributed workloads.</p><em>- Kevin H.</em></div><div class="BlockBody-sc-13lvm6o-0 cAbYHx"><a href="https://github.com/kjhoerr" rel="me" aria-label="My GitHub account with my most active personal projects" class="BlockAnchor-sc-49dv1p-0 jGQEoV"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 496 512" style="margin-bottom:-4px" height="20" width="20" xmlns="http://www.w3.org/2000/svg"><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg> kjhoerr on GitHub</a></div><div class="BlockBody-sc-13lvm6o-0 cAbYHx"><a href="https://github.com/kjhoerr/pantry" aria-label="Source code repository of Kevin&#x27;s current pet project Pantry" class="BlockAnchor-sc-49dv1p-0 jGQEoV"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 640 512" style="margin-bottom:-4px" height="20" width="20" xmlns="http://www.w3.org/2000/svg"><path d="M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z"></path></svg> Pantry (pet project)</a></div><div class="BlockBody-sc-13lvm6o-0 cAbYHx"><a href="https://cybr.es/@kjhoerr" rel="me" aria-label="My Mastodon account" class="BlockAnchor-sc-49dv1p-0 jGQEoV"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" style="margin-bottom:-4px" height="20" width="20" xmlns="http://www.w3.org/2000/svg"><path d="M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"></path></svg> @kjhoerr@cybr.es</a></div></div><div class="Footer-sc-1as233t-0 hgDMFM"><span>©2023 kjhoerr@https://submelon.dev/:<!-- -->wD.7.8.j.O-0</span></div></main></div><div id="gatsby-announcer" style="position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0" aria-live="assertive" aria-atomic="true"></div></div><script id="gatsby-script-loader">/*<![CDATA[*/window.pagePath="/";/*]]>*/</script><!-- slice-start id="_gatsby-scripts-1" -->
<script
id="gatsby-chunk-mapping"
>
- window.___chunkMapping="{\"app\":[\"/app-47861e59d3f419dbdbf2.js\"],\"component---cache-caches-gatsby-plugin-offline-app-shell-js\":[\"/component---cache-caches-gatsby-plugin-offline-app-shell-js-56599e2012c5599fcb23.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-01d280057775a5d4dc64.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-8edb9b96a28ae08c32a1.js\"]}";
+ window.___chunkMapping="{\"app\":[\"/app-c9bcda2486a7dc4d34ef.js\"],\"component---cache-caches-gatsby-plugin-offline-app-shell-js\":[\"/component---cache-caches-gatsby-plugin-offline-app-shell-js-56599e2012c5599fcb23.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-01d280057775a5d4dc64.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-8edb9b96a28ae08c32a1.js\"]}";
</script>
- <script>window.___webpackCompilationHash="371ed0f440978fe1d116";</script><script src="/webpack-runtime-9ac150044cfc66f3fbd2.js" async></script><script src="/framework-d428d0ddc925cd3f37ed.js" async></script><script src="/app-47861e59d3f419dbdbf2.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file
+ <script>window.___webpackCompilationHash="e482771c8a06a232663f";</script><script src="/webpack-runtime-9ac150044cfc66f3fbd2.js" async></script><script src="/framework-d428d0ddc925cd3f37ed.js" async></script><script src="/app-c9bcda2486a7dc4d34ef.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file