muerwre.github.io/bio/index.html
muerwre 178a904adc commit db7ac717d3ca823f51df7d2087bb9fbf94e2fb95
Author: Fedor Katurov <gotham48@gmail.com>
Date:   Thu Nov 3 11:29:19 2022 +0600

    fixed proportions
2022-11-03 05:30:56 +00:00

6 lines
No EOL
28 KiB
HTML

<!DOCTYPE html>
<html data-head-attrs="">
<head><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.98f05c09.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/content.95bc6068.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/LayoutThemeToggle.a84d77df.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/LayoutThemeToggle.vue_used_vue_type_style_index_0_lang.module.a381878b.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.064db1e2.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/bio.8763e521.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/BioHeading.dc282aaa.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/BioSkills.960770a6.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/SkillsCard.96a9317c.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/UiStars.9a649e0d.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/IconStar.d5240e77.js"><link rel="prefetch" as="script" crossorigin href="/nuxt/ContentNavigation.e9239e56.js"><link rel="prefetch" as="style" href="/nuxt/ContentNavigation.82aba83b.css"><link rel="prefetch" as="style" href="/nuxt/ProseCode.vue_used_vue_type_style_index_1_lang.24930a5d.css"><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/navigation.aa5484cc.js"><link rel="prefetch" as="script" crossorigin href="/nuxt/ProseCode.vue_used_vue_type_style_index_1_lang.module.230a312a.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/ContentList.71e0864d.js"><link rel="prefetch" as="script" crossorigin href="/nuxt/ContentSlot.1c92096b.js"><link rel="prefetch" as="script" crossorigin href="/nuxt/DocumentDrivenEmpty.972bbf75.js"><link rel="prefetch" as="script" crossorigin href="/nuxt/DocumentDrivenNotFound.dd3370b8.js"><link rel="prefetch" as="script" crossorigin href="/nuxt/Markdown.3dbb1f9a.js"><link rel="prefetch" as="script" crossorigin href="/nuxt/client-db.2ec5a7de.js"><link rel="prefetch" as="script" crossorigin href="/nuxt/default.3613df44.js"><link rel="prefetch" as="script" crossorigin href="/nuxt/LayoutMainMenuToggle.6fc9d774.js"><link rel="prefetch" as="script" crossorigin href="/nuxt/LayoutMainMenu.be745829.js"><link rel="prefetch" as="script" crossorigin href="/nuxt/web-socket.5f51ce06.js"><link rel="prefetch" as="script" crossorigin href="/nuxt/error-component.82c64eb2.js"><link rel="prefetch" as="style" href="/nuxt/entry.f1a1a940.css"><link rel="prefetch" as="image" type="image/svg+xml" href="/nuxt/howdy.824e8e62.svg"><link rel="prefetch" as="image" type="image/svg+xml" href="/nuxt/react-logo.8351f38f.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="stylesheet" href="/nuxt/LayoutThemeToggle.vue_used_vue_type_style_index_0_lang.cfa40af4.css"><style>._wrapper_1hfaq_1{display:flex;flex-direction:column;height:100%}._content_1hfaq_7{flex:1;padding:40px 120px}@media (max-width:1024px){._content_1hfaq_7{padding:40px 40px 20px}}@media (max-width:768px){._content_1hfaq_7{padding:40px 20px 20px}}._footer_1hfaq_22{border-top:1px solid var(--color-line);margin-top:60px;padding:10px}._theme_toggle_1hfaq_28{stroke:currentColor;stroke-width:.5px;position:absolute;right:20px;top:20px}@media (max-width:768px){._theme_toggle_1hfaq_28{stroke-width:1.5px;right:16px;top:16px}}</style><style>._section_1e0mk_1{padding:40px 0}._section_1e0mk_1._heading_1e0mk_4{padding-bottom:0}</style><style>._grid_15n56_1{grid-column-gap:40px;display:grid;grid-template-columns:1fr 2fr}._text_15n56_7{color:var(--color-text-secondary)}._text_15n56_7 b{color:var(--color-text)}</style><style>._list_89lzg_1{-moz-column-gap:20px;column-gap:20px;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));row-gap:20px}</style><style>._card_1i1za_1{border:1px solid var(--color-line);border-radius:8px;transition:all .25s}._card_1i1za_1:hover{background-color:var(--color-line)}._card_1i1za_1:hover,._card_1i1za_1:hover>._grid_1i1za_9{border-color:var(--color-text-secondary)}._grid_1i1za_9{grid-column-gap:16px;align-items:center;border-bottom:1px solid var(--color-line);display:grid;grid-template-columns:48px 1fr;padding:10px;transition:all .25s}._title_1i1za_23{margin:0 0 4px}._icon_1i1za_27{align-items:center;display:flex}._text_1i1za_32{display:flex;flex-direction:column;padding-bottom:4px}._description_1i1za_38{color:var(--color-text-secondary);font-size:.9rem;line-height:1.4rem;padding:10px}</style><style>._rating_11ify_1{display:flex;flex-direction:row;margin-left:-3px}._rating_11ify_1>img{margin-right:2px}._star_11ify_10{stroke:none;fill:currentColor}._star_11ify_10:first-child{color:var(--color-rating-1)}._star_11ify_10:nth-child(2){color:var(--color-rating-2)}._star_11ify_10:nth-child(3){color:var(--color-rating-3)}._star_11ify_10:nth-child(4){color:var(--color-rating-4)}._star_11ify_10:nth-child(5){color:var(--color-rating-5)}._star_11ify_10._filled_11ify_29{fill:var(--color-line)}</style><link rel="stylesheet" href="/nuxt/entry.f1a1a940.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 class="_wrapper_1hfaq_1" hastransition="true"><div class="_content_1hfaq_7"><button class="_theme_toggle_1hfaq_28 _button_jz7in_1 _theme_toggle_1hfaq_28"><span></span></button><!--[--><article><section class="_section_1e0mk_1 _heading_1e0mk_4"><section class="_grid_15n56_1"><div><img src="/nuxt/howdy.824e8e62.svg"></div><div class="_text_15n56_7"><h1>Howdy!</h1><p> My name is <b>Fedor Katurov</b>, I&#39;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&#39;m also capable of doing <b>Typescript</b> and <b>Golang</b> backend. </p></div></section></section><section class="_section_1e0mk_1"><div><h1>Skills</h1><div class="_list_89lzg_1"><!--[--><div class="_card_1i1za_1"><div class="_grid_1i1za_9"><div class="_icon_1i1za_27"><!--[--><img src="/nuxt/react-logo.8351f38f.svg" width="48" height="48"><!--]--></div><div class="_text_1i1za_32"><h3 class="_title_1i1za_23">React</h3><div class="_rating_11ify_1"><!--[--><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_11ify_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_11ify_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_11ify_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_11ify_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_11ify_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_1i1za_38">Classes and FC-s, hooks, context, redux, redux-saga, mobx</div></div><div class="_card_1i1za_1"><div class="_grid_1i1za_9"><div class="_icon_1i1za_27"><!--[--><img src="/nuxt/ts-logo.5847c362.svg" width="48" height="48"><!--]--></div><div class="_text_1i1za_32"><h3 class="_title_1i1za_23">Typescript</h3><div class="_rating_11ify_1"><!--[--><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_11ify_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_11ify_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_11ify_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_11ify_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_11ify_10 _filled_11ify_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_1i1za_38">For both frontend and backend development: generics, guards, infers</div></div><div class="_card_1i1za_1"><div class="_grid_1i1za_9"><div class="_icon_1i1za_27"><!--[--><img src="/nuxt/react-ssr-logo.3593105e.svg" width="48" height="48"><!--]--></div><div class="_text_1i1za_32"><h3 class="_title_1i1za_23">SSR (Next, Gatsby)</h3><div class="_rating_11ify_1"><!--[--><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_11ify_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_11ify_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_11ify_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_11ify_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_11ify_10 _filled_11ify_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_1i1za_38">Automated generation, incremental, static, and dynamic rendering</div></div><div class="_card_1i1za_1"><div class="_grid_1i1za_9"><div class="_icon_1i1za_27"><!--[--><img src="/nuxt/vue-logo.17ff892a.svg" width="48" height="48"><!--]--></div><div class="_text_1i1za_32"><h3 class="_title_1i1za_23">Vue.js &amp; Nuxt</h3><div class="_rating_11ify_1"><!--[--><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_11ify_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_11ify_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_11ify_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_11ify_10 _filled_11ify_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_11ify_10 _filled_11ify_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_1i1za_38">Common SPA-s and SSR blogs like this one, with composition API, and Vuex</div></div><div class="_card_1i1za_1"><div class="_grid_1i1za_9"><div class="_icon_1i1za_27"><!--[--><img src="/nuxt/react-native-logo.bdbaa7c9.svg" width="48" height="48"><!--]--></div><div class="_text_1i1za_32"><h3 class="_title_1i1za_23">React Native</h3><div class="_rating_11ify_1"><!--[--><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_11ify_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_11ify_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_11ify_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_11ify_10 _filled_11ify_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_11ify_10 _filled_11ify_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_1i1za_38">Basic developing and releasing experience without native modules</div></div><div class="_card_1i1za_1"><div class="_grid_1i1za_9"><div class="_icon_1i1za_27"><!--[--><img src="/nuxt/golang-logo.f772e478.svg" width="48" height="48"><!--]--></div><div class="_text_1i1za_32"><h3 class="_title_1i1za_23">Golang</h3><div class="_rating_11ify_1"><!--[--><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_11ify_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_11ify_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_11ify_10 _filled_11ify_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_11ify_10 _filled_11ify_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_11ify_10 _filled_11ify_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_1i1za_38">Monolith and microservice apps with REST, GraphQL, and GRPC</div></div><div class="_card_1i1za_1"><div class="_grid_1i1za_9"><div class="_icon_1i1za_27"><!--[--><img src="/nuxt/docker-logo.7f942bd1.svg" width="48" height="48"><!--]--></div><div class="_text_1i1za_32"><h3 class="_title_1i1za_23">Docker</h3><div class="_rating_11ify_1"><!--[--><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_11ify_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_11ify_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_11ify_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_11ify_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_11ify_10 _filled_11ify_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_1i1za_38">Docker, docker-compose, private registries, gitlab-ci, and drone-ci</div></div><div class="_card_1i1za_1"><div class="_grid_1i1za_9"><div class="_icon_1i1za_27"><!--[--><img src="/nuxt/html-logo.1f694231.svg" width="48" height="48"><!--]--></div><div class="_text_1i1za_32"><h3 class="_title_1i1za_23">HTML, CSS, SVG</h3><div class="_rating_11ify_1"><!--[--><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_11ify_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_11ify_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_11ify_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_11ify_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_11ify_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_1i1za_38">Adaptive markup, all modern techniques, preprocessors, and CSS-in-JS</div></div><div class="_card_1i1za_1"><div class="_grid_1i1za_9"><div class="_icon_1i1za_27"><!--[--><img src="/nuxt/arch-logo.838efbc7.svg" width="48" height="48"><!--]--></div><div class="_text_1i1za_32"><h3 class="_title_1i1za_23">Linux Shell</h3><div class="_rating_11ify_1"><!--[--><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_11ify_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_11ify_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_11ify_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_11ify_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_11ify_10 _filled_11ify_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_1i1za_38">Linux user since 2003, can write scripts to automate my work. BTW, I use Arch!</div></div><div class="_card_1i1za_1"><div class="_grid_1i1za_9"><div class="_icon_1i1za_27"><!--[--><img src="/nuxt/gql-logo.1e66e5b3.svg" width="48" height="48"><!--]--></div><div class="_text_1i1za_32"><h3 class="_title_1i1za_23">GraphQL</h3><div class="_rating_11ify_1"><!--[--><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_11ify_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_11ify_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_11ify_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_11ify_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_11ify_10 _filled_11ify_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_1i1za_38">Both server- and client-side. Queries, mutations, cache manipulation</div></div><div class="_card_1i1za_1"><div class="_grid_1i1za_9"><div class="_icon_1i1za_27"><!--[--><img src="/nuxt/swagger-logo.b314537c.svg" width="48" height="48"><!--]--></div><div class="_text_1i1za_32"><h3 class="_title_1i1za_23">REST API</h3><div class="_rating_11ify_1"><!--[--><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_11ify_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_11ify_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_11ify_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_11ify_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_11ify_10 _filled_11ify_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_1i1za_38">With Axios, fetch, express, gorilla-mux, and gin-gonic</div></div><div class="_card_1i1za_1"><div class="_grid_1i1za_9"><div class="_icon_1i1za_27"><!--[--><img src="/nuxt/postgres-logo.d981f813.svg" width="48" height="48"><!--]--></div><div class="_text_1i1za_32"><h3 class="_title_1i1za_23">SQL</h3><div class="_rating_11ify_1"><!--[--><svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewbox="0 0 48 48" class="_star_11ify_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_11ify_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_11ify_10 _filled_11ify_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_11ify_10 _filled_11ify_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_11ify_10 _filled_11ify_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_1i1za_38">Base queries, JOIN-s, indexes and simpl query optimizations</div></div><!--]--></div></div></section></article><!--]--></div><footer class="_footer_ogxvf_1 _footer_1hfaq_22 _footer_1hfaq_22"><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><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:1667453403728},navigation:{fields:["blblblb"]},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:1667453426929}}(false,"dark",true,"shell","sh","")))}</script><script type="module" src="/nuxt/entry.98f05c09.js" crossorigin></script><script type="module" src="/nuxt/content.95bc6068.js" crossorigin></script><script type="module" src="/nuxt/LayoutThemeToggle.a84d77df.js" crossorigin></script><script type="module" src="/nuxt/bio.8763e521.js" crossorigin></script><script type="module" src="/nuxt/BioHeading.dc282aaa.js" crossorigin></script><script type="module" src="/nuxt/BioSkills.960770a6.js" crossorigin></script><script type="module" src="/nuxt/SkillsCard.96a9317c.js" crossorigin></script><script type="module" src="/nuxt/UiStars.9a649e0d.js" crossorigin></script><script type="module" src="/nuxt/IconStar.d5240e77.js" crossorigin></script><script type="module" src="/nuxt/LayoutFooter.064db1e2.js" crossorigin></script></body>
</html>