mirror of
https://github.com/muerwre/muerwre.github.io.git
synced 2025-04-25 02:46:39 +07:00

Author: Fedor Katurov <gotham48@gmail.com> Date: Thu Nov 10 14:45:38 2022 +0600 fixed mobile layouts
12 lines
No EOL
38 KiB
HTML
12 lines
No EOL
38 KiB
HTML
<!DOCTYPE html>
|
|
<html data-head-attrs="">
|
|
<head><title>About Me</title><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="head:count" content="2"><link rel="modulepreload" href="/bio/_payload.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/entry.89414412.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/landing.5f197e9c.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/LayoutHeader.eaaeb804.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/LayoutHeader.vue_used_vue_type_style_index_0_lang.module.0c694d46.js"><link rel="preload" as="style" href="/nuxt/LayoutHeader.vue_used_vue_type_style_index_0_lang.6c21f409.css"><link rel="modulepreload" as="script" crossorigin href="/nuxt/content.e1532ad1.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/LayoutThemeToggle.3d233026.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/LayoutThemeToggle.vue_used_vue_type_style_index_0_lang.module.deebac79.js"><link rel="preload" as="style" href="/nuxt/LayoutThemeToggle.vue_used_vue_type_style_index_0_lang.cfa40af4.css"><link rel="modulepreload" as="script" crossorigin href="/nuxt/LayoutFooter.bd41a71f.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/bio.61a3b837.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/BioHeading.275075a6.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/ArrowRight.8e3e29fb.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/UiActionButton.b488118d.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/IconsCode.4b7aed5d.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/BioSkills.vue_used_vue_type_style_index_0_lang.module.a214871e.js"><link rel="preload" as="style" href="/nuxt/BioSkills.vue_used_vue_type_style_index_0_lang.806edf74.css"><link rel="modulepreload" as="script" crossorigin href="/nuxt/BioSkills.066eb83c.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/BioSkillsCard.0c93549c.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/UiStars.003c95c2.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/IconStar.6000e392.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/UiCard.f2cbf8a2.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/BioProjects.821d72df.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/BioProjectCard.c4b3f9db.js"><link rel="prefetch" as="script" crossorigin href="/nuxt/client-db.1ddbd599.js"><link rel="prefetch" as="script" crossorigin href="/nuxt/web-socket.64c74c0d.js"><link rel="prefetch" as="script" crossorigin href="/nuxt/error-component.1ba6931f.js"><link rel="prefetch" as="script" crossorigin href="/nuxt/default.de28f560.js"><link rel="prefetch" as="style" href="/nuxt/LayoutMainMenuToggle.vue_used_vue_type_style_index_0_lang.5944fda9.css"><link rel="prefetch" as="script" crossorigin href="/nuxt/LayoutMainMenuToggle.6650c77c.js"><link rel="prefetch" as="script" crossorigin href="/nuxt/LayoutMainMenuToggle.vue_used_vue_type_style_index_0_lang.module.ab60ac3f.js"><link rel="prefetch" as="script" crossorigin href="/nuxt/LayoutMainMenu.b80c559d.js"><link rel="prefetch" as="script" crossorigin href="/nuxt/navigation.356f25d1.js"><link rel="prefetch" as="style" href="/nuxt/entry.40fb37b1.css"><link rel="prefetch" as="image" type="image/svg+xml" href="/nuxt/howdy.90a75ece.svg"><link rel="prefetch" as="image" type="image/svg+xml" href="/nuxt/react-logo.1aab3d6d.svg"><link rel="prefetch" as="image" type="image/svg+xml" href="/nuxt/react-native-logo.bdbaa7c9.svg"><link rel="prefetch" as="image" type="image/svg+xml" href="/nuxt/react-ssr-logo.3593105e.svg"><link rel="prefetch" as="image" type="image/svg+xml" href="/nuxt/ts-logo.5847c362.svg"><link rel="prefetch" as="image" type="image/svg+xml" href="/nuxt/golang-logo.f772e478.svg"><link rel="prefetch" as="image" type="image/svg+xml" href="/nuxt/html-logo.1f694231.svg"><link rel="prefetch" as="image" type="image/svg+xml" href="/nuxt/arch-logo.838efbc7.svg"><link rel="prefetch" as="image" type="image/svg+xml" href="/nuxt/gql-logo.1e66e5b3.svg"><link rel="prefetch" as="image" type="image/svg+xml" href="/nuxt/swagger-logo.b314537c.svg"><link rel="prefetch" as="image" type="image/svg+xml" href="/nuxt/vue-logo.17ff892a.svg"><link rel="prefetch" as="image" type="image/svg+xml" href="/nuxt/postgres-logo.d981f813.svg"><link rel="prefetch" as="image" type="image/svg+xml" href="/nuxt/docker-logo.7f942bd1.svg"><link rel="prefetch" as="image" type="image/png" href="/nuxt/vault48.40538b94.png"><link rel="prefetch" as="image" type="image/png" href="/nuxt/orchid-map.2f398715.png"><link rel="prefetch" as="image" type="image/png" href="/nuxt/obsidian-garden.39e6dff3.png"><link rel="stylesheet" href="/nuxt/LayoutHeader.vue_used_vue_type_style_index_0_lang.6c21f409.css"><link rel="stylesheet" href="/nuxt/LayoutThemeToggle.vue_used_vue_type_style_index_0_lang.cfa40af4.css"><link rel="stylesheet" href="/nuxt/BioSkills.vue_used_vue_type_style_index_0_lang.806edf74.css"><style>._header_container_1jt5r_1{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);position:sticky;top:0;z-index:10}._header_container_1jt5r_1:after{background:var(--color-background);content:"";inset:0;opacity:.95;position:absolute;z-index:0}@supports ((-webkit-backdrop-filter:blur(5px)) or (backdrop-filter:blur(5px))){._header_container_1jt5r_1:after{opacity:.85}}._header_content_1jt5r_21{margin:auto;max-width:min(1280px,100vw);padding:0 40px;position:relative;z-index:1}@media (max-width:1024px){._header_content_1jt5r_21{padding:0 40px}}@media (max-width:768px){._header_content_1jt5r_21{padding:0 20px}}</style><style>._header_1nsrt_1{padding:22px 0;text-align:left}._header_1nsrt_1 a{color:var(--color-text);padding:0 25px 0 0;position:relative;text-decoration:none}._header_1nsrt_1 a._active_1nsrt_11{color:var(--color-link)}._header_1nsrt_1 a._active_1nsrt_11:after{background:var(--color-link);left:3px;right:28px}._header_1nsrt_1 a:after{background:var(--color-text);bottom:-6px;content:"";height:2px;left:50%;position:absolute;right:50%;transition:all .25s}</style><style>._wrapper_1km9a_1{display:flex;flex-direction:column;height:100%;padding-top:40px}@media (max-width:1024px){._wrapper_1km9a_1{padding-top:10px}}._content_1km9a_13{flex:1}._footer_1km9a_17{border-top:1px solid var(--color-line);margin-top:60px;padding:10px}._theme_toggle_1km9a_23{stroke:currentColor;stroke-width:.5px;position:absolute;right:20px;top:20px;z-index:12}@media (max-width:768px){._theme_toggle_1km9a_23{stroke-width:1.5px;right:16px;top:16px}}</style><style>._content_1jhz3_1{margin:auto;max-width:min(1280px,100vw);padding:0 40px}@media (max-width:1024px){._content_1jhz3_1{padding:0 40px}}@media (max-width:768px){._content_1jhz3_1{padding:0 20px}}._section_1jhz3_17{padding:40px 0}._section_1jhz3_17._heading_1jhz3_20{padding-bottom:0}@media (max-width:1024px){._heading_1jhz3_20{padding-top:20px}}</style><style>._button_15t7y_1{align-items:center;border-radius:8px;color:#fff;display:inline-flex;justify-content:center;text-decoration:none}._button_15t7y_1._variant-primary_15t7y_9{background-color:var(--color-primary)}._button_15t7y_1._variant-outline_15t7y_12{box-shadow:var(--color-text) 0 0 0 1px;color:var(--color-text);overflow:hidden;position:relative;transition:all .25s}._button_15t7y_1._variant-outline_15t7y_12:after{background:var(--color-primary);border-radius:8px;content:" ";inset:0;opacity:0;position:absolute;transform:scale(0);transition:all .25s;z-index:0}._button_15t7y_1._variant-outline_15t7y_12:hover{box-shadow:var(--color-background) 0 0 0 1px;color:var(--color-primary-contrast)}._button_15t7y_1._variant-outline_15t7y_12:hover:after{opacity:1;transform:scale(1)}._button_15t7y_1._size-md_15t7y_38{height:40px;padding:0 30px}._button_15t7y_1._size-md_15t7y_38._prefixed_15t7y_42,._button_15t7y_1._size-md_15t7y_38._suffixed_15t7y_42{padding:0 10px 0 20px}._button_15t7y_1._size-md_15t7y_38._suffixed_15t7y_42{padding-right:0 20px 0 10px}._title_15t7y_49{flex:1;position:relative;text-align:center;z-index:1}._size-md_15t7y_38._prefixed_15t7y_42 ._title_15t7y_49{padding-left:10px}._size-md_15t7y_38._suffixed_15t7y_42 ._title_15t7y_49{padding-right:10px}._prefix_15t7y_42,._suffix_15t7y_42{display:inline-flex;position:relative;z-index:2}</style><link rel="stylesheet" href="/nuxt/entry.40fb37b1.css" media="print" onload="this.media='all'; this.onload=null;"><script>const w=window,de=document.documentElement,knownColorSchemes=["dark","light"],preference=window.localStorage.getItem("nuxt-color-mode")||"dark";let value=preference==="system"?getColorScheme():preference;const forcedColorMode=de.getAttribute("data-color-mode-forced");forcedColorMode&&(value=forcedColorMode),addColorScheme(value),w["__NUXT_COLOR_MODE__"]={preference,value,getColorScheme,addColorScheme,removeColorScheme};function addColorScheme(e){const o=""+e+"",t="";de.classList?de.classList.add(o):de.className+=" "+o,t&&de.setAttribute("data-"+t,e)}function removeColorScheme(e){const o=""+e+"",t="";de.classList?de.classList.remove(o):de.className=de.className.replace(new RegExp(o,"g"),""),t&&de.removeAttribute("data-"+t)}function prefersColorScheme(e){return w.matchMedia("(prefers-color-scheme"+e+")")}function getColorScheme(){if(w.matchMedia&&prefersColorScheme("").media!=="not all"){for(const e of knownColorSchemes)if(prefersColorScheme(":"+e).matches)return e}return"light"}
|
|
</script></head>
|
|
<body data-head-attrs=""><div id="__nuxt"><div hastransition="true"><div class="_header_container_1jt5r_1"><div class="_header_content_1jt5r_21"><div class="_header_1nsrt_1"><a href="/" class="">Home</a><a aria-current="page" href="/bio" class="_active_1nsrt_11 router-link-exact-active">About me</a></div></div></div><div class="_wrapper_1km9a_1" hastransition="true"><div class="_content_1km9a_13"><button class="_theme_toggle_1km9a_23 _button_jz7in_1 _theme_toggle_1km9a_23"><span></span></button><!--[--><!--[--><article class="_content_1jhz3_1"><section class="_section_1jhz3_17 _heading_1jhz3_20"><div class="_grid_1cp12_1"><div class="_image_1cp12_29"><img src="/nuxt/howdy.90a75ece.svg"></div><div class="_text_1cp12_13"><h1>Howdy!</h1><p> My name is <b>Fedor Katurov</b>, I'm a fullstack developer from Siberia. </p><p> I develop frontend applications with <b>React</b>, <b>Vue</b> and numerous other frameworks for the most of my time, but I'm also capable of doing <b>Typescript</b> and <b>Golang</b> backend. </p><div class="_buttons_1cp12_42"><a href="https://github.com/muerwre" rel="noopener noreferrer" target="_blank" class="_button_15t7y_1 _variant-primary_15t7y_9 _size-md_15t7y_38 _suffixed_15t7y_42"><!----><span class="_title_15t7y_49"><!--[--> Contact me <!--]--></span><span class="_suffix_15t7y_42"><!--[--><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" fill="currentColor"><path d="m24 40-2.1-2.15L34.25 25.5H8v-3h26.25L21.9 10.15 24 8l16 16Z"></path></svg><!--]--></span></a><a href="https://github.com/muerwre" rel="noopener noreferrer" target="_blank" class="_button_15t7y_1 _variant-outline_15t7y_12 _size-md_15t7y_38 _suffixed_15t7y_42"><!----><span class="_title_15t7y_49"><!--[--> Visit my Github <!--]--></span><span class="_suffix_15t7y_42"><!--[--><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" fill="currentColor"><path xmlns="http://www.w3.org/2000/svg" d="m16 35.9-12-12 12.1-12.1 2.15 2.15L8.3 23.9l9.85 9.85Zm15.9.1-2.15-2.15 9.95-9.95-9.85-9.85L32 11.9l12 12Z"></path></svg><!--]--></span></a></div></div></div></section><section class="_section_1jhz3_17"><div><h2>Skills</h2><div class="_list_89lzg_1"><!--[--><div class="_card_e1njf_1"><!--[--><div class="_grid_1kefv_1"><div class="_icon_1kefv_15"><!--[--><img src="/nuxt/react-logo.1aab3d6d.svg" width="48" height="48"><!--]--></div><div class="_text_1kefv_20"><h3 class="_title_1kefv_11">React</h3><div class="_rating_pb5ie_1"><!--[--><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><!--]--></div></div></div><div class="_description_1kefv_26">Classes and FC-s, hooks, context, redux, redux-saga, mobx</div><!--]--></div><div class="_card_e1njf_1"><!--[--><div class="_grid_1kefv_1"><div class="_icon_1kefv_15"><!--[--><img src="/nuxt/ts-logo.5847c362.svg" width="48" height="48"><!--]--></div><div class="_text_1kefv_20"><h3 class="_title_1kefv_11">Typescript</h3><div class="_rating_pb5ie_1"><!--[--><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10 _filled_pb5ie_29"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><!--]--></div></div></div><div class="_description_1kefv_26">For both frontend and backend development: generics, guards, infers</div><!--]--></div><div class="_card_e1njf_1"><!--[--><div class="_grid_1kefv_1"><div class="_icon_1kefv_15"><!--[--><img src="/nuxt/react-ssr-logo.3593105e.svg" width="48" height="48"><!--]--></div><div class="_text_1kefv_20"><h3 class="_title_1kefv_11">SSR (Next, Gatsby)</h3><div class="_rating_pb5ie_1"><!--[--><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10 _filled_pb5ie_29"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><!--]--></div></div></div><div class="_description_1kefv_26">Automated generation, incremental, static, and dynamic rendering</div><!--]--></div><div class="_card_e1njf_1"><!--[--><div class="_grid_1kefv_1"><div class="_icon_1kefv_15"><!--[--><img src="/nuxt/vue-logo.17ff892a.svg" width="48" height="48"><!--]--></div><div class="_text_1kefv_20"><h3 class="_title_1kefv_11">Vue.js & Nuxt</h3><div class="_rating_pb5ie_1"><!--[--><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10 _filled_pb5ie_29"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10 _filled_pb5ie_29"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><!--]--></div></div></div><div class="_description_1kefv_26">Common SPA-s and SSR blogs like this one, with composition API, and Vuex</div><!--]--></div><div class="_card_e1njf_1"><!--[--><div class="_grid_1kefv_1"><div class="_icon_1kefv_15"><!--[--><img src="/nuxt/react-native-logo.bdbaa7c9.svg" width="48" height="48"><!--]--></div><div class="_text_1kefv_20"><h3 class="_title_1kefv_11">React Native</h3><div class="_rating_pb5ie_1"><!--[--><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10 _filled_pb5ie_29"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10 _filled_pb5ie_29"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><!--]--></div></div></div><div class="_description_1kefv_26">Basic developing and releasing experience without native modules</div><!--]--></div><div class="_card_e1njf_1"><!--[--><div class="_grid_1kefv_1"><div class="_icon_1kefv_15"><!--[--><img src="/nuxt/golang-logo.f772e478.svg" width="48" height="48"><!--]--></div><div class="_text_1kefv_20"><h3 class="_title_1kefv_11">Golang</h3><div class="_rating_pb5ie_1"><!--[--><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10 _filled_pb5ie_29"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10 _filled_pb5ie_29"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10 _filled_pb5ie_29"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><!--]--></div></div></div><div class="_description_1kefv_26">Monolith and microservice apps with REST, GraphQL, and GRPC</div><!--]--></div><div class="_card_e1njf_1"><!--[--><div class="_grid_1kefv_1"><div class="_icon_1kefv_15"><!--[--><img src="/nuxt/docker-logo.7f942bd1.svg" width="48" height="48"><!--]--></div><div class="_text_1kefv_20"><h3 class="_title_1kefv_11">Docker</h3><div class="_rating_pb5ie_1"><!--[--><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10 _filled_pb5ie_29"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><!--]--></div></div></div><div class="_description_1kefv_26">Docker, docker-compose, private registries, gitlab-ci, and drone-ci</div><!--]--></div><div class="_card_e1njf_1"><!--[--><div class="_grid_1kefv_1"><div class="_icon_1kefv_15"><!--[--><img src="/nuxt/html-logo.1f694231.svg" width="48" height="48"><!--]--></div><div class="_text_1kefv_20"><h3 class="_title_1kefv_11">HTML, CSS, SVG</h3><div class="_rating_pb5ie_1"><!--[--><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><!--]--></div></div></div><div class="_description_1kefv_26">Adaptive markup, all modern techniques, preprocessors, and CSS-in-JS</div><!--]--></div><div class="_card_e1njf_1"><!--[--><div class="_grid_1kefv_1"><div class="_icon_1kefv_15"><!--[--><img src="/nuxt/arch-logo.838efbc7.svg" width="48" height="48"><!--]--></div><div class="_text_1kefv_20"><h3 class="_title_1kefv_11">Linux Shell</h3><div class="_rating_pb5ie_1"><!--[--><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10 _filled_pb5ie_29"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><!--]--></div></div></div><div class="_description_1kefv_26">Linux user since 2003, can write scripts to automate my work. BTW, I use Arch!</div><!--]--></div><div class="_card_e1njf_1"><!--[--><div class="_grid_1kefv_1"><div class="_icon_1kefv_15"><!--[--><img src="/nuxt/gql-logo.1e66e5b3.svg" width="48" height="48"><!--]--></div><div class="_text_1kefv_20"><h3 class="_title_1kefv_11">GraphQL</h3><div class="_rating_pb5ie_1"><!--[--><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10 _filled_pb5ie_29"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><!--]--></div></div></div><div class="_description_1kefv_26">Both server- and client-side. Queries, mutations, cache manipulation</div><!--]--></div><div class="_card_e1njf_1"><!--[--><div class="_grid_1kefv_1"><div class="_icon_1kefv_15"><!--[--><img src="/nuxt/swagger-logo.b314537c.svg" width="48" height="48"><!--]--></div><div class="_text_1kefv_20"><h3 class="_title_1kefv_11">REST API</h3><div class="_rating_pb5ie_1"><!--[--><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10 _filled_pb5ie_29"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><!--]--></div></div></div><div class="_description_1kefv_26">With Axios, fetch, express, gorilla-mux, and gin-gonic</div><!--]--></div><div class="_card_e1njf_1"><!--[--><div class="_grid_1kefv_1"><div class="_icon_1kefv_15"><!--[--><img src="/nuxt/postgres-logo.d981f813.svg" width="48" height="48"><!--]--></div><div class="_text_1kefv_20"><h3 class="_title_1kefv_11">SQL</h3><div class="_rating_pb5ie_1"><!--[--><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10 _filled_pb5ie_29"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10 _filled_pb5ie_29"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_pb5ie_10 _filled_pb5ie_29"><path d="m11.65 44 3.25-14.05L4 20.5l14.4-1.25L24 6l5.6 13.25L44 20.5l-10.9 9.45L36.35 44 24 36.55Z"></path></svg><!--]--></div></div></div><div class="_description_1kefv_26">Base queries, JOIN-s, indexes and simpl query optimizations</div><!--]--></div><!--]--></div></div></section><section class="_section_1jhz3_17"><div><h2>Pet Projects</h2><div class="_grid_1ng9c_1"><!--[--><div class="_card_e1njf_1"><!--[--><div class="_card_1wy9v_1"><div class="_thumbnail_1wy9v_7"><img src="/nuxt/vault48.40538b94.png" class="_image_1wy9v_14" alt="Vault48"></div><div class="_content_1wy9v_20"><div class="_head_1wy9v_27"><h3 class="_title_1wy9v_31">Vault48</h3><div class="_url_1wy9v_35"><a href="https://vault48.org" rel="noopener noreferrer">https://vault48.org</a></div></div><div class="_description_1wy9v_39">Community blog with a long 13-year history, features photo, video and audio embedding.
|
|
|
|
Beeing initially written with Drupal 5, went through refactoring to Laravel + Vue and then, nowadays works on React and Golang stack.</div></div><div class="_buttons_1wy9v_46"><a href="https://github.com/muerwre/vault-frontend" rel="noopener noreferrer" class="_button_15t7y_1 _variant-outline_15t7y_12 _size-md_15t7y_38 _suffixed_15t7y_42" _target="blank"><!----><span class="_title_15t7y_49"><!--[--> Code <!--]--></span><span class="_suffix_15t7y_42"><!--[--><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" fill="currentColor"><path xmlns="http://www.w3.org/2000/svg" d="m16 35.9-12-12 12.1-12.1 2.15 2.15L8.3 23.9l9.85 9.85Zm15.9.1-2.15-2.15 9.95-9.95-9.85-9.85L32 11.9l12 12Z"></path></svg><!--]--></span></a><a href="https://vault48.org" rel="noopener noreferrer" class="_button_15t7y_1 _variant-outline_15t7y_12 _size-md_15t7y_38 _suffixed_15t7y_42" _target="blank"><!----><span class="_title_15t7y_49"><!--[--> Visit <!--]--></span><span class="_suffix_15t7y_42"><!--[--><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" fill="currentColor"><path d="m24 40-2.1-2.15L34.25 25.5H8v-3h26.25L21.9 10.15 24 8l16 16Z"></path></svg><!--]--></span></a></div></div><!--]--></div><div class="_card_e1njf_1"><!--[--><div class="_card_1wy9v_1"><div class="_thumbnail_1wy9v_7"><img src="/nuxt/orchid-map.2f398715.png" class="_image_1wy9v_14" alt="Orchid Map"></div><div class="_content_1wy9v_20"><div class="_head_1wy9v_27"><h3 class="_title_1wy9v_31">Orchid Map</h3><div class="_url_1wy9v_35"><a href="https://map.vault48.org" rel="noopener noreferrer">https://map.vault48.org</a></div></div><div class="_description_1wy9v_39">Local cycling community Web Maps made with React, Leaflet, and Golang.
|
|
|
|
Implements automatic route building with OSRM and map rasterization with canvas. Used by users in local cycling communities for ride sharing.</div></div><div class="_buttons_1wy9v_46"><a href="https://github.com/muerwre/orchidmap-front" rel="noopener noreferrer" class="_button_15t7y_1 _variant-outline_15t7y_12 _size-md_15t7y_38 _suffixed_15t7y_42" _target="blank"><!----><span class="_title_15t7y_49"><!--[--> Code <!--]--></span><span class="_suffix_15t7y_42"><!--[--><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" fill="currentColor"><path xmlns="http://www.w3.org/2000/svg" d="m16 35.9-12-12 12.1-12.1 2.15 2.15L8.3 23.9l9.85 9.85Zm15.9.1-2.15-2.15 9.95-9.95-9.85-9.85L32 11.9l12 12Z"></path></svg><!--]--></span></a><a href="https://map.vault48.org" rel="noopener noreferrer" class="_button_15t7y_1 _variant-outline_15t7y_12 _size-md_15t7y_38 _suffixed_15t7y_42" _target="blank"><!----><span class="_title_15t7y_49"><!--[--> Visit <!--]--></span><span class="_suffix_15t7y_42"><!--[--><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" fill="currentColor"><path d="m24 40-2.1-2.15L34.25 25.5H8v-3h26.25L21.9 10.15 24 8l16 16Z"></path></svg><!--]--></span></a></div></div><!--]--></div><div class="_card_e1njf_1"><!--[--><div class="_card_1wy9v_1"><div class="_thumbnail_1wy9v_7"><img src="/nuxt/obsidian-garden.39e6dff3.png" class="_image_1wy9v_14" alt="Obsidian Garden"></div><div class="_content_1wy9v_20"><div class="_head_1wy9v_27"><h3 class="_title_1wy9v_31">Obsidian Garden</h3><div class="_url_1wy9v_35"><a href="https://muerwre.github.io" rel="noopener noreferrer">https://muerwre.github.io</a></div></div><div class="_description_1wy9v_39">Frontend for personal knowledge database managed by Obsidian.md software.
|
|
|
|
Made with nuxt3, nuxt-content plugin and some customizations. Deployed with drone-ci directly to github-pages.</div></div><div class="_buttons_1wy9v_46"><a href="https://github.com/muerwre/muerwre.github.io" rel="noopener noreferrer" class="_button_15t7y_1 _variant-outline_15t7y_12 _size-md_15t7y_38 _suffixed_15t7y_42" _target="blank"><!----><span class="_title_15t7y_49"><!--[--> Code <!--]--></span><span class="_suffix_15t7y_42"><!--[--><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" fill="currentColor"><path xmlns="http://www.w3.org/2000/svg" d="m16 35.9-12-12 12.1-12.1 2.15 2.15L8.3 23.9l9.85 9.85Zm15.9.1-2.15-2.15 9.95-9.95-9.85-9.85L32 11.9l12 12Z"></path></svg><!--]--></span></a><a href="https://muerwre.github.io" rel="noopener noreferrer" class="_button_15t7y_1 _variant-outline_15t7y_12 _size-md_15t7y_38 _suffixed_15t7y_42" _target="blank"><!----><span class="_title_15t7y_49"><!--[--> Visit <!--]--></span><span class="_suffix_15t7y_42"><!--[--><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" fill="currentColor"><path d="m24 40-2.1-2.15L34.25 25.5H8v-3h26.25L21.9 10.15 24 8l16 16Z"></path></svg><!--]--></span></a></div></div><!--]--></div><!--]--></div></div></section></article><!--]--><!--]--></div><footer class="_footer_ogxvf_1 _footer_1km9a_17 _footer_1km9a_17"><div>btw, have a nice day</div><div class="_filler_ogxvf_9"></div><div> (2018 - 2022) <a href="https://github.com/muerwre/" rel="noopener noreferrer" target="_blank">muerwre</a></div></footer></div></div></div><script type="module">import p from "/bio/_payload.js";window.__NUXT__={...p,...((function(a,b,c,d,e,f){return {state:{"$scolor-mode":{preference:b,value:b,unknown:c,forced:a}},_errors:{},serverRendered:c,config:{public:{content:{clientDB:{isSPA:a,integrity:1668069987533},navigation:{fields:[]},base:"_content",tags:{p:"prose-p",a:"prose-a",blockquote:"prose-blockquote","code-inline":"prose-code-inline",code:"prose-code",em:"prose-em",h1:"prose-h1",h2:"prose-h2",h3:"prose-h3",h4:"prose-h4",h5:"prose-h5",h6:"prose-h6",hr:"prose-hr",img:"prose-img",ul:"prose-ul",ol:"prose-ol",li:"prose-li",strong:"prose-strong",table:"prose-table",thead:"prose-thead",tbody:"prose-tbody",td:"prose-td",th:"prose-th",tr:"prose-tr"},highlight:{theme:{default:"github-dark",light:"solarized-light"},preload:[d,"c","go","graphql","scss",d,e,"docker","typescript","javascript","nginx","bash","yaml",e],apiURL:"\u002Fapi\u002F_content\u002Fhighlight"},wsUrl:f,documentDriven:a,anchorLinks:{depth:4,exclude:[1]}}},app:{baseURL:"\u002F",buildAssetsDir:"nuxt\u002F",cdnURL:f}},prerenderedAt:1668070011357}}(false,"dark",true,"shell","sh","")))}</script><script type="module" src="/nuxt/entry.89414412.js" crossorigin></script><script type="module" src="/nuxt/landing.5f197e9c.js" crossorigin></script><script type="module" src="/nuxt/LayoutHeader.eaaeb804.js" crossorigin></script><script type="module" src="/nuxt/content.e1532ad1.js" crossorigin></script><script type="module" src="/nuxt/LayoutThemeToggle.3d233026.js" crossorigin></script><script type="module" src="/nuxt/bio.61a3b837.js" crossorigin></script><script type="module" src="/nuxt/BioHeading.275075a6.js" crossorigin></script><script type="module" src="/nuxt/UiActionButton.b488118d.js" crossorigin></script><script type="module" src="/nuxt/ArrowRight.8e3e29fb.js" crossorigin></script><script type="module" src="/nuxt/IconsCode.4b7aed5d.js" crossorigin></script><script type="module" src="/nuxt/BioSkills.066eb83c.js" crossorigin></script><script type="module" src="/nuxt/BioSkillsCard.0c93549c.js" crossorigin></script><script type="module" src="/nuxt/UiCard.f2cbf8a2.js" crossorigin></script><script type="module" src="/nuxt/UiStars.003c95c2.js" crossorigin></script><script type="module" src="/nuxt/IconStar.6000e392.js" crossorigin></script><script type="module" src="/nuxt/BioProjects.821d72df.js" crossorigin></script><script type="module" src="/nuxt/BioProjectCard.c4b3f9db.js" crossorigin></script><script type="module" src="/nuxt/LayoutFooter.bd41a71f.js" crossorigin></script></body>
|
|
</html> |