<!DOCTYPE html><html lang="en" class="scroll-smooth"> <head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="preload" href="/fonts/ga6daw1J5X9T9RW6j9bNVls-hfgvz8JcMofYTYf6D33WsNFH.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="/fonts/ga6daw1J5X9T9RW6j9bNVls-hfgvz8JcMofYTYf-D33WsNFHuQk.woff2" as="font" type="font/woff2" crossorigin><style>
      @font-face{font-family:'Noto Serif';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/fonts/ga6daw1J5X9T9RW6j9bNVls-hfgvz8JcMofYTYf-D33WsNFHuQk.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
      @font-face{font-family:'Noto Serif';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/fonts/ga6daw1J5X9T9RW6j9bNVls-hfgvz8JcMofYTYf6D33WsNFH.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
      @font-face{font-family:'Noto Serif';font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/fonts/ga6daw1J5X9T9RW6j9bNVls-hfgvz8JcMofYTYf-D33WsNFHuQk.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
      @font-face{font-family:'Noto Serif';font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/fonts/ga6daw1J5X9T9RW6j9bNVls-hfgvz8JcMofYTYf6D33WsNFH.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
      @font-face{font-family:'Noto Serif';font-style:normal;font-weight:900;font-stretch:100%;font-display:swap;src:url(/fonts/ga6daw1J5X9T9RW6j9bNVls-hfgvz8JcMofYTYf-D33WsNFHuQk.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
      @font-face{font-family:'Noto Serif';font-style:normal;font-weight:900;font-stretch:100%;font-display:swap;src:url(/fonts/ga6daw1J5X9T9RW6j9bNVls-hfgvz8JcMofYTYf6D33WsNFH.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
      @font-face{font-family:'Noto Serif';font-style:italic;font-weight:400;font-stretch:100%;font-display:swap;src:url(/fonts/ga6faw1J5X9T9RW6j9bNfFIMZhhWnFTyNZIQD1-_P3vct_NFiQhhYQ.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
      @font-face{font-family:'Noto Serif';font-style:italic;font-weight:400;font-stretch:100%;font-display:swap;src:url(/fonts/ga6faw1J5X9T9RW6j9bNfFIMZhhWnFTyNZIQD1-_P3_ct_NFiQg.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
      @font-face{font-family:'Noto Serif';font-style:italic;font-weight:700;font-stretch:100%;font-display:swap;src:url(/fonts/ga6faw1J5X9T9RW6j9bNfFIMZhhWnFTyNZIQD1-_P3vct_NFiQhhYQ.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
      @font-face{font-family:'Noto Serif';font-style:italic;font-weight:700;font-stretch:100%;font-display:swap;src:url(/fonts/ga6faw1J5X9T9RW6j9bNfFIMZhhWnFTyNZIQD1-_P3_ct_NFiQg.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
    </style><link rel="icon" type="image/png" href="/assets/images/favicon.png"><title>Home — Sergii Gulenok</title><link rel="canonical" href="https://gulenok.lu/"><link rel="alternate" type="application/rss+xml" title="Sergii Gulenok" href="/rss.xml"><meta name="description" content="Thoughts on people, software engineering and people in software engineering. By Sergii Gulenok."><!-- Open Graph --><meta property="og:type" content="website"><meta property="og:site_name" content="Sergii Gulenok"><meta property="og:title" content="Home — Sergii Gulenok"><meta property="og:url" content="https://gulenok.lu/"><meta property="og:image" content="https://gulenok.lu/assets/optimized/sergii-and-denzel-094153e4.webp"><meta property="og:description" content="Thoughts on people, software engineering and people in software engineering. By Sergii Gulenok."><!-- Twitter Card --><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="Home — Sergii Gulenok"><meta name="twitter:image" content="https://gulenok.lu/assets/optimized/sergii-and-denzel-094153e4.webp"><meta name="twitter:description" content="Thoughts on people, software engineering and people in software engineering. By Sergii Gulenok."><script>(function(){const apiKey = "phc_nogJACvawJKdyB5qLNe8GTgCoGL7Kw5TJNx9scEa3vBz";
const apiHost = "https://eu.i.posthog.com";

  !function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.crossOrigin="anonymous",p.async=!0,p.src=s.api_host+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="capture identify alias people.set people.set_once set_config register register_once unregister opt_out_capturing has_opted_out_capturing opt_in_capturing reset isFeatureEnabled onFeatureFlags getFeatureFlag getFeatureFlagPayload reloadFeatureFlags group updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures getActiveMatchingSurveys getSurveys getNextSurveyStep onSessionId".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]);
  if (apiKey && apiHost) {
    posthog.init(apiKey, {
      api_host: apiHost,
      defaults: '2026-01-30'
    })
  }
})();</script><link rel="stylesheet" href="/_astro/_slug_.DsDk9I5C.css"></head> <body class="bg-white text-gray-900 min-h-screen flex flex-col font-sans"> <header class="border-b border-gray-200 py-4"> <nav class="max-w-5xl mx-auto px-4 sm:px-8 flex items-center justify-between"> <!-- Logo + site title --> <a href="/" class="flex-shrink-0 flex items-center gap-2"> <img src="/assets/optimized/favicon-a4034816.webp" alt="Sergii Gulenok" width="32" height="32" class="rounded-full" loading="lazy" decoding="async"> <span class="font-semibold text-gray-900 text-xl sm:text-2xl">Sergii Gulenok</span> </a> <!-- Desktop nav --> <div class="hidden sm:flex items-center gap-8"> <a href="/" class="text-sm font-medium text-gray-700 hover:text-gray-900 transition-colors"> Home </a><a href="/photography" class="text-sm font-medium text-gray-700 hover:text-gray-900 transition-colors"> Photography </a><a href="/cv" class="text-sm font-medium text-gray-700 hover:text-gray-900 transition-colors"> CV </a> <a href="/ua" data-lang-toggle="ua" class="text-sm font-medium px-3 py-1 rounded border border-gray-300 text-gray-600 hover:bg-gray-100 transition-colors"> UA </a> </div> <!-- Mobile: language toggle + hamburger --> <div class="flex items-center gap-2 sm:hidden"> <a href="/ua" data-lang-toggle="ua" class="text-sm font-medium px-3 py-1 rounded border border-gray-300 text-gray-600 hover:bg-gray-100 transition-colors"> UA </a> <button id="mobile-menu-btn" class="flex flex-col justify-center gap-1.5 w-8 h-8 focus:outline-none" aria-label="Toggle menu" aria-expanded="false"> <span class="block h-0.5 w-6 bg-gray-700 transition-all"></span> <span class="block h-0.5 w-6 bg-gray-700 transition-all"></span> <span class="block h-0.5 w-6 bg-gray-700 transition-all"></span> </button> </div> </nav> <!-- Mobile dropdown --> <div id="mobile-menu" class="sm:hidden hidden flex-col px-4 pt-3 pb-4 gap-3 border-t border-gray-100 mt-4"> <a href="/" class="text-sm font-medium text-gray-700 hover:text-gray-900 transition-colors py-1"> Home </a><a href="/photography" class="text-sm font-medium text-gray-700 hover:text-gray-900 transition-colors py-1"> Photography </a><a href="/cv" class="text-sm font-medium text-gray-700 hover:text-gray-900 transition-colors py-1"> CV </a> </div> </header> <script type="module">const n=document.getElementById("mobile-menu-btn"),o=document.getElementById("mobile-menu");n?.addEventListener("click",()=>{const t=o?.classList.toggle("hidden")===!1;o?.classList.toggle("flex",t),n.setAttribute("aria-expanded",String(t))});const g=["gulenok.lu","graywolf.org.ua"];g.includes(window.location.hostname)&&document.querySelectorAll("[data-lang-toggle]").forEach(t=>{const l=t.dataset.langToggle,e=window.location.pathname,a=/^(\/ua)?\/\d{4}\/\d{2}\/\d{2}\//.test(e);l==="ua"?t.href="https://graywolf.org.ua"+(a||e==="/"?"/ua":"/ua"+e):t.href="https://gulenok.lu"+(a?"/":e.replace(/^\/ua/,"")||"/")});document.querySelectorAll("[data-lang-toggle]").forEach(t=>{t.addEventListener("click",()=>{window.posthog?.capture("language_switched",{to_lang:t.dataset.langToggle})})});</script> <main class="flex-1" id="top">   <section class="bg-hero-bg w-full"> <div class="max-w-5xl mx-auto px-4 sm:px-8 py-8 flex flex-col md:flex-row items-stretch gap-12"> <div class="flex-1 min-w-0 flex flex-col justify-center"> <h1 class="text-4xl md:text-5xl font-extrabold mb-5 leading-tight tracking-tight">
Geek by Nature, Engineer by Choice
</h1> <p class="text-gray-700 text-lg leading-relaxed mb-3">
Thoughts on people, software engineering and people in software engineering.
</p> <p class="text-gray-600 text-base leading-relaxed mb-8">
I'm Sergii and write about code, journeys, and whatever comes to mind.
</p> <div class="flex flex-wrap gap-4" role="list" aria-label="Social links"> <a href="https://github.com/ashenwolf" target="_blank" rel="noopener noreferrer" aria-label="GitHub" title="GitHub" role="listitem" class="text-gray-500 hover:text-gray-900 transition-colors" data-ph-social="GitHub"> <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" aria-hidden="true"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg> </a><a href="https://linkedin.com/in/sergii-gulenok" target="_blank" rel="noopener noreferrer" aria-label="LinkedIn" title="LinkedIn" role="listitem" class="text-gray-500 hover:text-gray-900 transition-colors" data-ph-social="LinkedIn"> <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" aria-hidden="true"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 0 1-2.063-2.065 2.064 2.064 0 1 1 2.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/></svg> </a><a href="https://twitter.com/ashenwolf" target="_blank" rel="noopener noreferrer" aria-label="Twitter / X" title="Twitter / X" role="listitem" class="text-gray-500 hover:text-gray-900 transition-colors" data-ph-social="Twitter / X"> <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" aria-hidden="true"><path d="M18.901 1.153h3.68l-8.04 9.19L24 22.846h-7.406l-5.8-7.584-6.638 7.584H.474l8.6-9.83L0 1.154h7.594l5.243 6.932ZM17.61 20.644h2.039L6.486 3.24H4.298Z"/></svg> </a><a href="https://instagram.com/skollwolf" target="_blank" rel="noopener noreferrer" aria-label="Instagram" title="Instagram" role="listitem" class="text-gray-500 hover:text-gray-900 transition-colors" data-ph-social="Instagram"> <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" aria-hidden="true"><path d="M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zM12 0C8.741 0 8.333.014 7.053.072 2.695.272.273 2.69.073 7.052.014 8.333 0 8.741 0 12c0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98C8.333 23.986 8.741 24 12 24c3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98C15.668.014 15.259 0 12 0zm0 5.838a6.162 6.162 0 1 0 0 12.324 6.162 6.162 0 0 0 0-12.324zM12 16a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm6.406-11.845a1.44 1.44 0 1 0 0 2.881 1.44 1.44 0 0 0 0-2.881z"/></svg> </a><a href="https://flickr.com/photos/ashenwolf/" target="_blank" rel="noopener noreferrer" aria-label="Flickr" title="Flickr" role="listitem" class="text-gray-500 hover:text-gray-900 transition-colors" data-ph-social="Flickr"> <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" aria-hidden="true"><path d="M0 12c0 3.074 2.494 5.568 5.568 5.568 3.075 0 5.569-2.494 5.569-5.568 0-3.075-2.494-5.568-5.569-5.568C2.494 6.432 0 8.925 0 12zm12.863 0c0 3.074 2.494 5.568 5.568 5.568C21.505 17.568 24 15.074 24 12c0-3.075-2.495-5.568-5.569-5.568-3.074 0-5.568 2.493-5.568 5.568z"/></svg> </a><a href="https://500px.com/graywolf" target="_blank" rel="noopener noreferrer" aria-label="500px" title="500px" role="listitem" class="text-gray-500 hover:text-gray-900 transition-colors" data-ph-social="500px"> <svg role="img" viewBox="-2.5 0 24 24" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" aria-hidden="true"><path d="m18.58 20.72-.08.08c-1.971 1.981-4.7 3.206-7.714 3.206s-5.743-1.226-7.714-3.206c-1.586-1.568-2.687-3.624-3.059-5.925l-.008-.062q-.054-.375.64-.48.683-.107.75.268c.009.013.014.028.014.045v.009c.157.813.37 1.527.644 2.209l-.028-.08c.492 1.181 1.18 2.187 2.035 3.025l.001.001c1.719 1.719 4.093 2.782 6.716 2.782 1.338 0 2.612-.277 3.767-.776l-.062.024c1.171-.506 2.171-1.193 3.014-2.036l.08-.08c.058-.06.14-.098.23-.098.038 0 .074.006.107.018l-.002-.001c.173.068.32.168.441.294q.482.499.228.782zm-6.32-8.24-.88.88.844.844q.282.282-.094.656c-.105.126-.256.21-.426.228h-.003c-.104-.006-.194-.056-.254-.133l-.001-.001-.83-.817-.88.88c-.048.042-.111.068-.18.068-.007 0-.014 0-.022-.001h.001c-.167-.014-.313-.094-.414-.214l-.001-.001-.026-.026c-.13-.087-.22-.225-.24-.385v-.003c.011-.089.05-.168.107-.228l.88-.87-.88-.88q-.214-.214.187-.602c.101-.126.246-.213.411-.24h.004c.067.004.127.029.175.068h-.001l.87.88.87-.87q.24-.228.64.174.354.368.139.594zm6.308.763v.02c0 2.16-.881 4.115-2.303 5.524l-.001.001c-.701.699-1.532 1.268-2.453 1.667l-.051.02c-.901.39-1.951.616-3.054.616s-2.152-.227-3.105-.636l.051.02c-.973-.419-1.804-.988-2.505-1.687-.7-.693-1.266-1.521-1.656-2.441l-.019-.05c-.084-.154-.153-.333-.198-.521l-.003-.015h-.014q-.121-.362.576-.59.67-.214.8.16c.312.862.753 1.606 1.307 2.249l-.008-.009h.014v-4.566c.012-1.226.534-2.328 1.364-3.105l.002-.002c.845-.852 2.017-1.38 3.312-1.38.027 0 .054 0 .08.001h-.004c.022 0 .048-.001.074-.001 1.287 0 2.45.528 3.285 1.379l.001.001c.859.824 1.393 1.982 1.393 3.265 0 .025 0 .049-.001.074v-.004c-.007 2.623-2.132 4.747-4.754 4.754h-.001c-.004 0-.009 0-.015 0-.529 0-1.041-.078-1.523-.224l.037.01q-.375-.147-.174-.817.214-.683.59-.576l.187.04q.187.04.442.08c.118.022.256.036.396.04h.004c.019 0 .041.001.064.001.898 0 1.709-.367 2.293-.96.595-.577.965-1.384.965-2.277 0-.021 0-.042-.001-.063v.003c0-.016 0-.036 0-.055 0-.88-.37-1.674-.963-2.234l-.001-.001c-.578-.588-1.382-.952-2.271-.952-.026 0-.051 0-.077.001h.004c-.018 0-.039-.001-.061-.001-.928 0-1.76.414-2.32 1.068l-.003.004c-.527.559-.852 1.312-.857 2.142v5.532c.908.564 2.009.898 3.189.898h.055-.003.013c.89 0 1.738-.18 2.509-.505l-.043.016c2.346-.982 3.963-3.258 3.964-5.913 0-.026.001-.057.001-.088 0-1.747-.724-3.325-1.888-4.451l-.002-.002c-1.166-1.159-2.773-1.875-4.547-1.875s-3.381.716-4.547 1.875c-.369.355-.707.735-1.014 1.141l-.018.024-.026.026c-.054.077-.111.145-.174.207-.082.057-.178.101-.282.126l-.006.001c-.06.016-.128.025-.199.025-.115 0-.224-.024-.323-.067l.005.002c-.186-.043-.35-.119-.493-.223l.004.003c-.12-.076-.201-.205-.207-.354v-.001-9.104c0-.001 0-.002 0-.003 0-.137.054-.261.141-.352.087-.095.212-.155.351-.155h.018-.001 11.746q.4 0 .4.737t-.4.737h-10.853v6.469h.014c.794-.785 1.723-1.437 2.748-1.916l.06-.025c.901-.39 1.951-.616 3.054-.616h.042-.002.046c1.087 0 2.121.227 3.057.635l-.049-.019c2.848 1.214 4.808 3.99 4.808 7.223v.024-.001zm-.419-7.779c.071.057.117.143.121.239v.001.004c0 .088-.028.17-.075.238l.001-.001q-.074.107-.221.282-.348.348-.522.348c-.085 0-.161-.036-.214-.093-.793-.709-1.707-1.306-2.703-1.752l-.067-.027c-1.067-.474-2.312-.75-3.622-.75-.026 0-.053 0-.079 0h.004c-1.263.002-2.468.243-3.575.679l.067-.023q-.362.134-.602-.495c-.065-.15-.105-.324-.107-.508v-.001c.012-.126.097-.229.212-.267l.002-.001c1.126-.484 2.437-.765 3.814-.765.067 0 .134.001.201.002h-.01.016c1.523 0 2.972.315 4.286.884l-.07-.027c1.216.509 2.258 1.195 3.149 2.04l-.005-.004z"/></svg> </a> </div> <script>
  document.querySelectorAll('[data-ph-social]').forEach(function (el) {
    el.addEventListener('click', function () {
      window.posthog?.capture('social_link_clicked', {
        platform: el.getAttribute('data-ph-social'),
      });
    });
  });
</script> </div> <div class="flex-1 min-w-0 flex items-center justify-center"> <img src="/assets/optimized/sergii-and-denzel-094153e4.webp" alt="Sergii and Denzel" class="w-[420px] aspect-[2/3] rounded-2xl object-cover photo-glow" loading="eager" fetchpriority="high" width="1200" height="1200"> </div> </div> </section>  <section class="max-w-5xl mx-auto px-4 sm:px-8 py-16"> <h2 class="text-2xl font-bold mb-8">Latest Articles</h2> <div class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-6"> <a href="/2026/05/12/digging-faster-in-the-wrong-place" class="group block" data-ph-card-title="Digging Faster in the Wrong Place" data-ph-card-category="software-engineering"> <div class="aspect-video rounded-xl overflow-hidden mb-3 bg-surface"> <img src="/assets/optimized/dca5b4001b88399f9013259d10a7a129-3a525726.webp" alt="Digging Faster in the Wrong Place" class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300" loading="lazy" decoding="async" width="600" height="600"> </div> <div class="flex items-center gap-2 mb-1"> <span class="text-xs font-semibold uppercase tracking-wider text-accent"> Software Engineering </span> <time class="text-xs text-gray-400" datetime="2026-05-12T00:00:00.000Z"> May 12, 2026 </time> </div> <h3 class="font-bold text-gray-900 leading-snug group-hover:text-accent transition-colors"> Digging Faster in the Wrong Place </h3> </a> <script type="module">document.querySelectorAll("[data-ph-card-title]").forEach(t=>{t.addEventListener("click",()=>{window.posthog?.capture("article_card_clicked",{title:t.dataset.phCardTitle,category:t.dataset.phCardCategory,href:t.getAttribute("href")})})});</script><a href="/2026/05/09/your-program-is-a-data-pipeline" class="group block" data-ph-card-title="Your Program Is a Data Pipeline (Even If You Don't See It)" data-ph-card-category="software-engineering"> <div class="aspect-video rounded-xl overflow-hidden mb-3 bg-surface"> <img src="/assets/optimized/20260509002600-8e0be084.webp" alt="Your Program Is a Data Pipeline (Even If You Don't See It)" class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300" loading="lazy" decoding="async" width="1080" height="608"> </div> <div class="flex items-center gap-2 mb-1"> <span class="text-xs font-semibold uppercase tracking-wider text-accent"> Software Engineering </span> <time class="text-xs text-gray-400" datetime="2026-05-09T00:00:00.000Z"> May 9, 2026 </time> </div> <h3 class="font-bold text-gray-900 leading-snug group-hover:text-accent transition-colors"> Your Program Is a Data Pipeline (Even If You Don&#39;t See It) </h3> </a> <a href="/2026/02/22/we-are-not-the-same" class="group block" data-ph-card-title="We Are Not the Same..." data-ph-card-category="software-engineering"> <div class="aspect-video rounded-xl overflow-hidden mb-3 bg-surface"> <img src="/assets/optimized/perplexity-image-87368a70.webp" alt="We Are Not the Same..." class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300" loading="lazy" decoding="async" width="1080" height="720"> </div> <div class="flex items-center gap-2 mb-1"> <span class="text-xs font-semibold uppercase tracking-wider text-accent"> Software Engineering </span> <time class="text-xs text-gray-400" datetime="2026-02-22T00:00:00.000Z"> Feb 22, 2026 </time> </div> <h3 class="font-bold text-gray-900 leading-snug group-hover:text-accent transition-colors"> We Are Not the Same... </h3> </a> <a href="/2026/02/21/why-we-fight-why-we-resist" class="group block" data-ph-card-title="Why We Fight, Why We Resist" data-ph-card-category="life"> <div class="aspect-video rounded-xl overflow-hidden mb-3 bg-surface"> <img src="/assets/optimized/20260223165719-524d6466.webp" alt="Why We Fight, Why We Resist" class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300" loading="lazy" decoding="async" width="1080" height="720"> </div> <div class="flex items-center gap-2 mb-1"> <span class="text-xs font-semibold uppercase tracking-wider text-accent"> Life </span> <time class="text-xs text-gray-400" datetime="2026-02-21T00:00:00.000Z"> Feb 21, 2026 </time> </div> <h3 class="font-bold text-gray-900 leading-snug group-hover:text-accent transition-colors"> Why We Fight, Why We Resist </h3> </a> <a href="/2026/02/20/to-code-or-not-to-code-that-is-the-question" class="group block" data-ph-card-title="To Code or Not to Code, That Is the Question" data-ph-card-category="software-engineering"> <div class="aspect-video rounded-xl overflow-hidden mb-3 bg-surface"> <img src="/assets/optimized/20260220190858-4421f6d9.webp" alt="To Code or Not to Code, That Is the Question" class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300" loading="lazy" decoding="async" width="1200" height="675"> </div> <div class="flex items-center gap-2 mb-1"> <span class="text-xs font-semibold uppercase tracking-wider text-accent"> Software Engineering </span> <time class="text-xs text-gray-400" datetime="2026-02-20T00:00:00.000Z"> Feb 20, 2026 </time> </div> <h3 class="font-bold text-gray-900 leading-snug group-hover:text-accent transition-colors"> To Code or Not to Code, That Is the Question </h3> </a> <a href="/2023/11/03/things-ive-learnt-from-the-best-software-engineer-i-have-ever-met---part-3" class="group block" data-ph-card-title="Things I’ve Learnt From the Best Software Engineer I Have Ever Met - Part 3" data-ph-card-category="software-engineering"> <div class="aspect-video rounded-xl overflow-hidden mb-3 bg-surface"> <img src="/assets/optimized/cyberpunk-2100-17478bec.webp" alt="Things I’ve Learnt From the Best Software Engineer I Have Ever Met - Part 3" class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300" loading="lazy" decoding="async" width="1200" height="670"> </div> <div class="flex items-center gap-2 mb-1"> <span class="text-xs font-semibold uppercase tracking-wider text-accent"> Software Engineering </span> <time class="text-xs text-gray-400" datetime="2023-11-03T00:00:00.000Z"> Nov 3, 2023 </time> </div> <h3 class="font-bold text-gray-900 leading-snug group-hover:text-accent transition-colors"> Things I’ve Learnt From the Best Software Engineer I Have Ever Met - Part 3 </h3> </a>  </div> </section>  <div class="max-w-5xl mx-auto px-4 sm:px-8 pb-16"> <section class="py-12"> <div class="border-t border-gray-200 mb-10"></div> <div class="flex flex-col md:flex-row gap-10"> <!-- Left 1/3 --> <div class="md:w-1/3 flex-shrink-0"> <h2 class="text-2xl font-bold mb-3">Software Engineering</h2> <p class="text-sm text-gray-600 leading-relaxed mb-5">Deep dives into code, architecture, and the craft of building software.</p> <a href="/category/software-engineering" class="text-sm font-semibold text-accent hover:underline" data-ph-section="Software Engineering" data-ph-more-href="/category/software-engineering"> See more →
</a> </div> <!-- Right 2/3: 2×2 grid --> <div class="flex-1"> <div class="grid grid-cols-1 sm:grid-cols-2 gap-6"> <a href="/2026/05/12/digging-faster-in-the-wrong-place" class="group block" data-ph-card-title="Digging Faster in the Wrong Place" data-ph-card-category="software-engineering"> <div class="aspect-video rounded-xl overflow-hidden mb-3 bg-surface"> <img src="/assets/optimized/dca5b4001b88399f9013259d10a7a129-3a525726.webp" alt="Digging Faster in the Wrong Place" class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300" loading="lazy" decoding="async" width="600" height="600"> </div> <div class="flex items-center gap-2 mb-1"> <span class="text-xs font-semibold uppercase tracking-wider text-accent"> Software Engineering </span> <time class="text-xs text-gray-400" datetime="2026-05-12T00:00:00.000Z"> May 12, 2026 </time> </div> <h3 class="font-bold text-gray-900 leading-snug group-hover:text-accent transition-colors"> Digging Faster in the Wrong Place </h3> </a> <a href="/2026/05/09/your-program-is-a-data-pipeline" class="group block" data-ph-card-title="Your Program Is a Data Pipeline (Even If You Don't See It)" data-ph-card-category="software-engineering"> <div class="aspect-video rounded-xl overflow-hidden mb-3 bg-surface"> <img src="/assets/optimized/20260509002600-8e0be084.webp" alt="Your Program Is a Data Pipeline (Even If You Don't See It)" class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300" loading="lazy" decoding="async" width="1080" height="608"> </div> <div class="flex items-center gap-2 mb-1"> <span class="text-xs font-semibold uppercase tracking-wider text-accent"> Software Engineering </span> <time class="text-xs text-gray-400" datetime="2026-05-09T00:00:00.000Z"> May 9, 2026 </time> </div> <h3 class="font-bold text-gray-900 leading-snug group-hover:text-accent transition-colors"> Your Program Is a Data Pipeline (Even If You Don&#39;t See It) </h3> </a> <a href="/2026/02/22/we-are-not-the-same" class="group block" data-ph-card-title="We Are Not the Same..." data-ph-card-category="software-engineering"> <div class="aspect-video rounded-xl overflow-hidden mb-3 bg-surface"> <img src="/assets/optimized/perplexity-image-87368a70.webp" alt="We Are Not the Same..." class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300" loading="lazy" decoding="async" width="1080" height="720"> </div> <div class="flex items-center gap-2 mb-1"> <span class="text-xs font-semibold uppercase tracking-wider text-accent"> Software Engineering </span> <time class="text-xs text-gray-400" datetime="2026-02-22T00:00:00.000Z"> Feb 22, 2026 </time> </div> <h3 class="font-bold text-gray-900 leading-snug group-hover:text-accent transition-colors"> We Are Not the Same... </h3> </a> <a href="/2026/02/20/to-code-or-not-to-code-that-is-the-question" class="group block" data-ph-card-title="To Code or Not to Code, That Is the Question" data-ph-card-category="software-engineering"> <div class="aspect-video rounded-xl overflow-hidden mb-3 bg-surface"> <img src="/assets/optimized/20260220190858-4421f6d9.webp" alt="To Code or Not to Code, That Is the Question" class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300" loading="lazy" decoding="async" width="1200" height="675"> </div> <div class="flex items-center gap-2 mb-1"> <span class="text-xs font-semibold uppercase tracking-wider text-accent"> Software Engineering </span> <time class="text-xs text-gray-400" datetime="2026-02-20T00:00:00.000Z"> Feb 20, 2026 </time> </div> <h3 class="font-bold text-gray-900 leading-snug group-hover:text-accent transition-colors"> To Code or Not to Code, That Is the Question </h3> </a>  </div> </div> </div> </section> <script type="module">document.querySelectorAll("[data-ph-section]").forEach(e=>{e.addEventListener("click",()=>{window.posthog?.capture("category_more_clicked",{section:e.dataset.phSection,href:e.dataset.phMoreHref})})});</script> <section class="py-12"> <div class="border-t border-gray-200 mb-10"></div> <div class="flex flex-col md:flex-row gap-10"> <!-- Left 1/3 --> <div class="md:w-1/3 flex-shrink-0"> <h2 class="text-2xl font-bold mb-3">Travel</h2> <p class="text-sm text-gray-600 leading-relaxed mb-5">Stories and photos from places around the world.</p> <a href="/category/travel" class="text-sm font-semibold text-accent hover:underline" data-ph-section="Travel" data-ph-more-href="/category/travel"> See more →
</a> </div> <!-- Right 2/3: 2×2 grid --> <div class="flex-1"> <p class="text-sm text-gray-400"> No articles in this category yet. </p> </div> </div> </section>  <section class="py-12"> <div class="border-t border-gray-200 mb-10"></div> <div class="flex flex-col md:flex-row gap-10"> <!-- Left 1/3 --> <div class="md:w-1/3 flex-shrink-0"> <h2 class="text-2xl font-bold mb-3">Life</h2> <p class="text-sm text-gray-600 leading-relaxed mb-5">Reflections, opinions, and things I find worth writing about.</p> <a href="/category/life" class="text-sm font-semibold text-accent hover:underline" data-ph-section="Life" data-ph-more-href="/category/life"> See more →
</a> </div> <!-- Right 2/3: 2×2 grid --> <div class="flex-1"> <div class="grid grid-cols-1 sm:grid-cols-2 gap-6"> <a href="/2026/02/21/why-we-fight-why-we-resist" class="group block" data-ph-card-title="Why We Fight, Why We Resist" data-ph-card-category="life"> <div class="aspect-video rounded-xl overflow-hidden mb-3 bg-surface"> <img src="/assets/optimized/20260223165719-524d6466.webp" alt="Why We Fight, Why We Resist" class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300" loading="lazy" decoding="async" width="1080" height="720"> </div> <div class="flex items-center gap-2 mb-1"> <span class="text-xs font-semibold uppercase tracking-wider text-accent"> Life </span> <time class="text-xs text-gray-400" datetime="2026-02-21T00:00:00.000Z"> Feb 21, 2026 </time> </div> <h3 class="font-bold text-gray-900 leading-snug group-hover:text-accent transition-colors"> Why We Fight, Why We Resist </h3> </a>  </div> </div> </div> </section>  </div>  </main> <footer class="border-t border-gray-200 mt-16"> <div class="max-w-5xl mx-auto px-4 sm:px-8 py-12 grid grid-cols-1 md:grid-cols-3 gap-10"> <!-- Navigation --> <div> <h3 class="text-xs font-semibold uppercase tracking-wider text-gray-400 mb-4"> Navigation </h3> <ul class="space-y-2"> <li> <a href="/" class="text-sm text-gray-600 hover:text-gray-900 transition-colors"> Home </a> </li><li> <a href="/photography" class="text-sm text-gray-600 hover:text-gray-900 transition-colors"> Photography </a> </li><li> <a href="/cv" class="text-sm text-gray-600 hover:text-gray-900 transition-colors"> CV </a> </li> <li> <a href="/ua" class="text-sm text-gray-600 hover:text-gray-900 transition-colors"> UA </a> </li> </ul> </div> <!-- Recent posts --> <div> <h3 class="text-xs font-semibold uppercase tracking-wider text-gray-400 mb-4"> Recent Posts </h3> <ul class="space-y-4"> <li> <a href="/2026/05/12/digging-faster-in-the-wrong-place" class="text-sm text-gray-700 hover:text-gray-900 leading-snug block font-medium"> Digging Faster in the Wrong Place </a> <time class="text-xs text-gray-400 mt-0.5 block">May 2026</time> </li><li> <a href="/2026/05/09/your-program-is-a-data-pipeline" class="text-sm text-gray-700 hover:text-gray-900 leading-snug block font-medium"> Your Program Is a Data Pipeline (Even If You Don&#39;t See It) </a> <time class="text-xs text-gray-400 mt-0.5 block">May 2026</time> </li>  </ul> </div> <!-- Social --> <div> <h3 class="text-xs font-semibold uppercase tracking-wider text-gray-400 mb-4"> Social </h3> <div class="flex flex-wrap gap-4" role="list" aria-label="Social links"> <a href="https://github.com/ashenwolf" target="_blank" rel="noopener noreferrer" aria-label="GitHub" title="GitHub" role="listitem" class="text-gray-500 hover:text-gray-900 transition-colors" data-ph-social="GitHub"> <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" aria-hidden="true"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg> </a><a href="https://linkedin.com/in/sergii-gulenok" target="_blank" rel="noopener noreferrer" aria-label="LinkedIn" title="LinkedIn" role="listitem" class="text-gray-500 hover:text-gray-900 transition-colors" data-ph-social="LinkedIn"> <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" aria-hidden="true"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 0 1-2.063-2.065 2.064 2.064 0 1 1 2.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/></svg> </a><a href="https://twitter.com/ashenwolf" target="_blank" rel="noopener noreferrer" aria-label="Twitter / X" title="Twitter / X" role="listitem" class="text-gray-500 hover:text-gray-900 transition-colors" data-ph-social="Twitter / X"> <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" aria-hidden="true"><path d="M18.901 1.153h3.68l-8.04 9.19L24 22.846h-7.406l-5.8-7.584-6.638 7.584H.474l8.6-9.83L0 1.154h7.594l5.243 6.932ZM17.61 20.644h2.039L6.486 3.24H4.298Z"/></svg> </a><a href="https://instagram.com/skollwolf" target="_blank" rel="noopener noreferrer" aria-label="Instagram" title="Instagram" role="listitem" class="text-gray-500 hover:text-gray-900 transition-colors" data-ph-social="Instagram"> <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" aria-hidden="true"><path d="M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zM12 0C8.741 0 8.333.014 7.053.072 2.695.272.273 2.69.073 7.052.014 8.333 0 8.741 0 12c0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98C8.333 23.986 8.741 24 12 24c3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98C15.668.014 15.259 0 12 0zm0 5.838a6.162 6.162 0 1 0 0 12.324 6.162 6.162 0 0 0 0-12.324zM12 16a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm6.406-11.845a1.44 1.44 0 1 0 0 2.881 1.44 1.44 0 0 0 0-2.881z"/></svg> </a><a href="https://flickr.com/photos/ashenwolf/" target="_blank" rel="noopener noreferrer" aria-label="Flickr" title="Flickr" role="listitem" class="text-gray-500 hover:text-gray-900 transition-colors" data-ph-social="Flickr"> <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" aria-hidden="true"><path d="M0 12c0 3.074 2.494 5.568 5.568 5.568 3.075 0 5.569-2.494 5.569-5.568 0-3.075-2.494-5.568-5.569-5.568C2.494 6.432 0 8.925 0 12zm12.863 0c0 3.074 2.494 5.568 5.568 5.568C21.505 17.568 24 15.074 24 12c0-3.075-2.495-5.568-5.569-5.568-3.074 0-5.568 2.493-5.568 5.568z"/></svg> </a><a href="https://500px.com/graywolf" target="_blank" rel="noopener noreferrer" aria-label="500px" title="500px" role="listitem" class="text-gray-500 hover:text-gray-900 transition-colors" data-ph-social="500px"> <svg role="img" viewBox="-2.5 0 24 24" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" aria-hidden="true"><path d="m18.58 20.72-.08.08c-1.971 1.981-4.7 3.206-7.714 3.206s-5.743-1.226-7.714-3.206c-1.586-1.568-2.687-3.624-3.059-5.925l-.008-.062q-.054-.375.64-.48.683-.107.75.268c.009.013.014.028.014.045v.009c.157.813.37 1.527.644 2.209l-.028-.08c.492 1.181 1.18 2.187 2.035 3.025l.001.001c1.719 1.719 4.093 2.782 6.716 2.782 1.338 0 2.612-.277 3.767-.776l-.062.024c1.171-.506 2.171-1.193 3.014-2.036l.08-.08c.058-.06.14-.098.23-.098.038 0 .074.006.107.018l-.002-.001c.173.068.32.168.441.294q.482.499.228.782zm-6.32-8.24-.88.88.844.844q.282.282-.094.656c-.105.126-.256.21-.426.228h-.003c-.104-.006-.194-.056-.254-.133l-.001-.001-.83-.817-.88.88c-.048.042-.111.068-.18.068-.007 0-.014 0-.022-.001h.001c-.167-.014-.313-.094-.414-.214l-.001-.001-.026-.026c-.13-.087-.22-.225-.24-.385v-.003c.011-.089.05-.168.107-.228l.88-.87-.88-.88q-.214-.214.187-.602c.101-.126.246-.213.411-.24h.004c.067.004.127.029.175.068h-.001l.87.88.87-.87q.24-.228.64.174.354.368.139.594zm6.308.763v.02c0 2.16-.881 4.115-2.303 5.524l-.001.001c-.701.699-1.532 1.268-2.453 1.667l-.051.02c-.901.39-1.951.616-3.054.616s-2.152-.227-3.105-.636l.051.02c-.973-.419-1.804-.988-2.505-1.687-.7-.693-1.266-1.521-1.656-2.441l-.019-.05c-.084-.154-.153-.333-.198-.521l-.003-.015h-.014q-.121-.362.576-.59.67-.214.8.16c.312.862.753 1.606 1.307 2.249l-.008-.009h.014v-4.566c.012-1.226.534-2.328 1.364-3.105l.002-.002c.845-.852 2.017-1.38 3.312-1.38.027 0 .054 0 .08.001h-.004c.022 0 .048-.001.074-.001 1.287 0 2.45.528 3.285 1.379l.001.001c.859.824 1.393 1.982 1.393 3.265 0 .025 0 .049-.001.074v-.004c-.007 2.623-2.132 4.747-4.754 4.754h-.001c-.004 0-.009 0-.015 0-.529 0-1.041-.078-1.523-.224l.037.01q-.375-.147-.174-.817.214-.683.59-.576l.187.04q.187.04.442.08c.118.022.256.036.396.04h.004c.019 0 .041.001.064.001.898 0 1.709-.367 2.293-.96.595-.577.965-1.384.965-2.277 0-.021 0-.042-.001-.063v.003c0-.016 0-.036 0-.055 0-.88-.37-1.674-.963-2.234l-.001-.001c-.578-.588-1.382-.952-2.271-.952-.026 0-.051 0-.077.001h.004c-.018 0-.039-.001-.061-.001-.928 0-1.76.414-2.32 1.068l-.003.004c-.527.559-.852 1.312-.857 2.142v5.532c.908.564 2.009.898 3.189.898h.055-.003.013c.89 0 1.738-.18 2.509-.505l-.043.016c2.346-.982 3.963-3.258 3.964-5.913 0-.026.001-.057.001-.088 0-1.747-.724-3.325-1.888-4.451l-.002-.002c-1.166-1.159-2.773-1.875-4.547-1.875s-3.381.716-4.547 1.875c-.369.355-.707.735-1.014 1.141l-.018.024-.026.026c-.054.077-.111.145-.174.207-.082.057-.178.101-.282.126l-.006.001c-.06.016-.128.025-.199.025-.115 0-.224-.024-.323-.067l.005.002c-.186-.043-.35-.119-.493-.223l.004.003c-.12-.076-.201-.205-.207-.354v-.001-9.104c0-.001 0-.002 0-.003 0-.137.054-.261.141-.352.087-.095.212-.155.351-.155h.018-.001 11.746q.4 0 .4.737t-.4.737h-10.853v6.469h.014c.794-.785 1.723-1.437 2.748-1.916l.06-.025c.901-.39 1.951-.616 3.054-.616h.042-.002.046c1.087 0 2.121.227 3.057.635l-.049-.019c2.848 1.214 4.808 3.99 4.808 7.223v.024-.001zm-.419-7.779c.071.057.117.143.121.239v.001.004c0 .088-.028.17-.075.238l.001-.001q-.074.107-.221.282-.348.348-.522.348c-.085 0-.161-.036-.214-.093-.793-.709-1.707-1.306-2.703-1.752l-.067-.027c-1.067-.474-2.312-.75-3.622-.75-.026 0-.053 0-.079 0h.004c-1.263.002-2.468.243-3.575.679l.067-.023q-.362.134-.602-.495c-.065-.15-.105-.324-.107-.508v-.001c.012-.126.097-.229.212-.267l.002-.001c1.126-.484 2.437-.765 3.814-.765.067 0 .134.001.201.002h-.01.016c1.523 0 2.972.315 4.286.884l-.07-.027c1.216.509 2.258 1.195 3.149 2.04l-.005-.004z"/></svg> </a> </div> <script>
  document.querySelectorAll('[data-ph-social]').forEach(function (el) {
    el.addEventListener('click', function () {
      window.posthog?.capture('social_link_clicked', {
        platform: el.getAttribute('data-ph-social'),
      });
    });
  });
</script> </div> </div> <!-- Bottom bar --> <div class="border-t border-gray-100"> <div class="max-w-5xl mx-auto px-4 sm:px-8 py-4 flex items-center justify-between"> <p class="text-xs text-gray-400">
&copy; 2004-2026 Sergii Gulenok
</p> <a href="#top" class="text-xs text-gray-400 hover:text-gray-700 flex items-center gap-1.5 transition-colors"> <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"> <path d="M12 19V5M5 12l7-7 7 7"></path> </svg> Back to top </a> </div> </div> </footer> </body></html>